org.sunflow.core.shader

Class ShinyDiffuseShader

Implemented Interfaces:
RenderObject, Shader
Known Direct Subclasses:
TexturedShinyDiffuseShader

public class ShinyDiffuseShader
extends java.lang.Object
implements Shader

Constructor Summary

ShinyDiffuseShader()

Method Summary

Color
getDiffuse(ShadingState state)
Color
getRadiance(ShadingState state)
Gets the radiance for a specified rendering state.
void
scatterPhoton(ShadingState state, Color power)
Scatter a photon with the specied power.
boolean
update(ParameterList pl, SunflowAPI api)
Update this object given a list of parameters.

Constructor Details

ShinyDiffuseShader

public ShinyDiffuseShader()

Method Details

getDiffuse

public Color getDiffuse(ShadingState state)

getRadiance

public Color getRadiance(ShadingState state)
Gets the radiance for a specified rendering state. When this method is called, you can assume that a hit has been registered in the state and that the hit surface information has been computed.
Specified by:
getRadiance in interface Shader
Parameters:
state - current render state
Returns:
color emitted or reflected by the shader

scatterPhoton

public void scatterPhoton(ShadingState state,
                          Color power)
Scatter a photon with the specied power. Incoming photon direction is specified by the ray attached to the current render state. This method can safely do nothing if photon scattering is not supported or relevant for the shader type.
Specified by:
scatterPhoton in interface Shader
Parameters:
state - current state
power - power of the incoming photon.

update

public boolean update(ParameterList pl,
                      SunflowAPI api)
Update this object given a list of parameters. This method is guarenteed to be called at least once on every object, but it should correctly handle empty parameter lists. This means that the object should be in a valid state from the time it is constructed. This method should also return true or false depending on whether the update was succesfull or not.
Specified by:
update in interface RenderObject
Parameters:
pl - list of parameters to read from
api - reference to the current scene
Returns:
true if the update is succesfull, false otherwise