Package org.sunflow.core.gi
Class IrradianceCacheGIEngine
- java.lang.Object
-
- org.sunflow.core.gi.IrradianceCacheGIEngine
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
IrradianceCacheGIEngine.Node
private static class
IrradianceCacheGIEngine.Sample
-
Field Summary
Fields Modifier and Type Field Description private GlobalPhotonMapInterface
globalPhotonMap
private float
invTolerance
private float
maxSpacing
private float
minSpacing
private IrradianceCacheGIEngine.Node
root
private java.util.concurrent.locks.ReentrantReadWriteLock
rwl
private int
samples
private float
tolerance
-
Constructor Summary
Constructors Constructor Description IrradianceCacheGIEngine()
-
Method Summary
All Methods Instance Methods Concrete Methods 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.private Color
getIrradiance(Point3 p, Vector3 n)
boolean
init(Options options, Scene scene)
Initialize the engine.private void
insert(Point3 p, Vector3 n, float r0, Color irr)
-
-
-
Field Detail
-
samples
private int samples
-
tolerance
private float tolerance
-
invTolerance
private float invTolerance
-
minSpacing
private float minSpacing
-
maxSpacing
private float maxSpacing
-
root
private IrradianceCacheGIEngine.Node root
-
rwl
private java.util.concurrent.locks.ReentrantReadWriteLock rwl
-
globalPhotonMap
private GlobalPhotonMapInterface globalPhotonMap
-
-
Method Detail
-
init
public boolean init(Options options, Scene scene)
Description copied from interface:GIEngine
Initialize the engine. This is called before rendering begins.
-
getGlobalRadiance
public Color getGlobalRadiance(ShadingState state)
Description copied from interface:GIEngine
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 returnColor.BLACK
if they can't or don't wish to support this.- Specified by:
getGlobalRadiance
in interfaceGIEngine
- Parameters:
state
- shading state- Returns:
- color approximating global radiance
-
getIrradiance
public Color getIrradiance(ShadingState state, Color diffuseReflectance)
Description copied from interface:GIEngine
Return the incomming irradiance due to indirect diffuse illumination at the specified surface point.- Specified by:
getIrradiance
in interfaceGIEngine
- Parameters:
state
- current render state describing the point to be computeddiffuseReflectance
- diffuse albedo of the point being shaded, this can be used for importance tracking- Returns:
- irradiance from indirect diffuse illumination at the specified point
-
-