Package 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

Modifier and Type
Method
Description
`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 Details

### 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