Module raytracer

Class AdaptiveSupersampling

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

public class AdaptiveSupersampling extends 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 Details

    • AdaptiveSupersampling

      public AdaptiveSupersampling()
  • Method Details

    • 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.
    • 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!