Package org.sunflow.core
Interface Shader
- All Superinterfaces:
RenderObject
- All Known Implementing Classes:
AmbientOcclusionShader
,AnisotropicWardShader
,ConstantShader
,CornellBox
,DiffuseShader
,GlassShader
,Hair
,IDShader
,ImageBasedLight
,MirrorShader
,NormalShader
,PhongShader
,PrimIDShader
,QuickGrayShader
,ShinyDiffuseShader
,SimpleShader
,SphereLight
,SunSkyLight
,TexturedAmbientOcclusionShader
,TexturedDiffuseShader
,TexturedPhongShader
,TexturedShinyDiffuseShader
,TexturedWardShader
,TriangleMeshLight
,UberShader
,UVShader
,ViewCausticsShader
,ViewGlobalPhotonsShader
,ViewIrradianceShader
,WireframeShader
A shader represents a particular light-surface interaction.
-
Method Summary
Modifier and TypeMethodDescriptiongetOpacity
(ShadingState state) Returns how much light is blocked by this shader.getRadiance
(ShadingState state) Gets the radiance for a specified rendering state.boolean
isOpaque()
Returnstrue
if this shader is fully opaque.void
scatterPhoton
(ShadingState state, Color power) Scatter a photon with the specied power.Methods inherited from interface org.sunflow.core.RenderObject
update
-
Method Details
-
getRadiance
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.- Parameters:
state
- current render state- Returns:
- color emitted or reflected by the shader
-
scatterPhoton
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.- Parameters:
state
- current statepower
- power of the incoming photon.
-
isOpaque
boolean isOpaque()Returnstrue
if this shader is fully opaque. This gives a quick way to find out if a shader needs further processing when hit by a shadow ray. -
getOpacity
Returns how much light is blocked by this shader.
-