org.sunflow.core
Interface GIEngine
- 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.
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(Scene scene) - Initialize the engine.
|
getGlobalRadiance
public 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.
- color approximating global radiance
getIrradiance
public Color getIrradiance(ShadingState state,
Color diffuseReflectance)
Return the incomming irradiance due to indirect diffuse illumination at
the specified surface point.
state
- current render state describing the point to be computeddiffuseReflectance
- diffuse albedo of the point being shaded, this
can be used for importance tracking
- irradiance from indirect diffuse illumination at the specified
point
init
public boolean init(Scene scene)
Initialize the engine. This is called before rendering begins.
true
if the init phase succeeded,
false
otherwise