org.sunflow.core
Interface GIEngine

All Known Implementing Classes:
AmbientOcclusionGIEngine, FakeGIEngine, InstantGI, IrradianceCacheGIEngine, PathTracingGIEngine

public interface GIEngine

This represents a global illumination algorithm. It provides an interface to compute indirect diffuse bounces of light and make those results available to shaders.


Method Summary
 Color getGlobalRadiance(ShadingState state)
          This is an optional method for engines that contain a secondary illumination engine which can return an approximation of the global radiance in the scene (like a photon map).
 Color getIrradiance(ShadingState state, Color diffuseReflectance)
          Return the incomming irradiance due to indirect diffuse illumination at the specified surface point.
 boolean init(Options options, Scene scene)
          Initialize the engine.
 

Method Detail

getGlobalRadiance

Color getGlobalRadiance(ShadingState state)
This is an optional method for engines that contain a secondary illumination engine which can return an approximation of the global radiance in the scene (like a photon map). Engines can safely return Color.BLACK if they can't or don't wish to support this.

Parameters:
state - shading state
Returns:
color approximating global radiance

init

boolean init(Options options,
             Scene scene)
Initialize the engine. This is called before rendering begins.

Returns:
true if the init phase succeeded, false otherwise

getIrradiance

Color getIrradiance(ShadingState state,
                    Color diffuseReflectance)
Return the incomming irradiance due to indirect diffuse illumination at the specified surface point.

Parameters:
state - current render state describing the point to be computed
diffuseReflectance - diffuse albedo of the point being shaded, this can be used for importance tracking
Returns:
irradiance from indirect diffuse illumination at the specified point