de.grogra.ray.antialiasing
Class AdaptiveSupersampling

java.lang.Object
  extended by de.grogra.ray.antialiasing.AdaptiveSupersampling
All Implemented Interfaces:
Antialiasing

public class AdaptiveSupersampling
extends java.lang.Object
implements Antialiasing

The adaptive supersampling algorithm is a nonuniform supersampling algorithm. Only if a supersampling for a pixel is reasonable the pixel is divided into subpixel. The following algorithm is used to perform the division: The color values of the four corners and the center of a pixel are determined. If the difference of two color values exceeds a given limit the pixel is recursively divided into subpixels until a depth limit of the recursion is achieved.

Author:
Micha

Constructor Summary
AdaptiveSupersampling()
           
 
Method Summary
 void getColorFromFrustum(double x, double y, double width, double height, Color4f color)
          This method has to return a color value determined for a given pixel frustum.
 void initialize(RTCamera camera, RayProcessor processor)
          Initializes the antialiasing method and sets the camera and ray processor object that has to be used.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AdaptiveSupersampling

public AdaptiveSupersampling()
Method Detail

getColorFromFrustum

public void getColorFromFrustum(double x,
                                double y,
                                double width,
                                double height,
                                Color4f color)
Description copied from interface: Antialiasing
This method has to return a color value determined for a given pixel frustum. A pixel frustum is a sub frustum of the view frustum that encloses exactly a special pixel of the image. The pixel frustum is indirectly described by describing the related pixel.

Specified by:
getColorFromFrustum in interface Antialiasing
Parameters:
x - Describes the relative x position of the top left corner of the pixel. It can range from -1 to +1.
y - Describes the relative y position of the top left corner of the pixel. It can range from -1 to +1.
width - Describes the relative width of the of the pixel. It can range from 0 to +2.
height - Describes the relative height of the of the pixel. It can range from 0 to +2.
color - The determined color for the pixel frustum will be saved in this parameter. So this parameter will be changed!

initialize

public void initialize(RTCamera camera,
                       RayProcessor processor)
Description copied from interface: Antialiasing
Initializes the antialiasing method and sets the camera and ray processor object that has to be used.

Specified by:
initialize in interface Antialiasing
Parameters:
camera - sets the camera object that has to be used for the antialiasing class.
processor - sets the ray processor object that has to be used for the antialiasing class.