## Uses of Class
org.sunflow.core.ShadingState

- Packages that use ShadingState
  Package | Description
  --- | ---
  org.sunflow.core |
  org.sunflow.core.gi |
  org.sunflow.core.light |
  org.sunflow.core.modifiers |
  org.sunflow.core.photonmap |
  org.sunflow.core.primitive |
  org.sunflow.core.shader |

- - ### Uses of ShadingState in org.sunflow.core

    Methods in org.sunflow.core that return ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `ShadingState` | Scene.`getRadiance(IntersectionState istate, float rx, float ry, double lensU, double lensV, double time, int instance, int dim, ShadingCache cache)` Get the radiance seen through a particular pixel
    `ShadingState` | ShadingState.`traceFinalGather(Ray r, int i)` Trace a final gather ray and return the intersection result as a new render state

    Methods in org.sunflow.core with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `void` | ShadingCache.`add(ShadingState state, Shader shader, Color c)`
    `Color` | GIEngine.`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` | GIEngine.`getIrradiance(ShadingState state, Color diffuseReflectance)` Return the incomming irradiance due to indirect diffuse illumination at the specified surface point.
    `Color` | Shader.`getOpacity(ShadingState state)` Returns how much light is blocked by this shader.
    `Color` | Shader.`getRadiance(ShadingState state)` Gets the radiance for a specified rendering state.
    `void` | LightSource.`getSamples(ShadingState state)` Samples the light source to compute direct illumination.
    `void` | CausticPhotonMapInterface.`getSamples(ShadingState state)` Retrieve caustic photons at the specified shading location and add them as diffuse light samples.
    `Color` | ShadingCache.`lookup(ShadingState state, Shader shader)`
    `void` | Modifier.`modify(ShadingState state)` Modify the shading state for the point to be shaded.
    `void` | PrimitiveList.`prepareShadingState(ShadingState state)` Prepare the specified `ShadingState` by setting all of its internal parameters.
    `void` | Instance.`prepareShadingState(ShadingState state)` Prepare the shading state for shader invocation.
    `void` | Shader.`scatterPhoton(ShadingState state, Color power)` Scatter a photon with the specied power.
    `void` | PhotonStore.`store(ShadingState state, Vector3 dir, Color power, Color diffuse)` Store the specified photon.
    `void` | LightSample.`traceShadow(ShadingState state)` Trace the shadow ray, attenuating the sample's color by the opacity of intersected objects.

  - ### Uses of ShadingState in org.sunflow.core.gi

    Methods in org.sunflow.core.gi with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `Color` | InstantGI.`getGlobalRadiance(ShadingState state)`
    `Color` | AmbientOcclusionGIEngine.`getGlobalRadiance(ShadingState state)`
    `Color` | FakeGIEngine.`getGlobalRadiance(ShadingState state)`
    `Color` | IrradianceCacheGIEngine.`getGlobalRadiance(ShadingState state)`
    `Color` | PathTracingGIEngine.`getGlobalRadiance(ShadingState state)`
    `Color` | InstantGI.`getIrradiance(ShadingState state, Color diffuseReflectance)`
    `Color` | AmbientOcclusionGIEngine.`getIrradiance(ShadingState state, Color diffuseReflectance)`
    `Color` | FakeGIEngine.`getIrradiance(ShadingState state, Color diffuseReflectance)`
    `Color` | IrradianceCacheGIEngine.`getIrradiance(ShadingState state, Color diffuseReflectance)`
    `Color` | PathTracingGIEngine.`getIrradiance(ShadingState state, Color diffuseReflectance)`

  - ### Uses of ShadingState in org.sunflow.core.light

    Methods in org.sunflow.core.light with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `Color` | SunSkyLight.`getOpacity(ShadingState state)`
    `Color` | TriangleMeshLight.`getOpacity(ShadingState state)`
    `Color` | ImageBasedLight.`getOpacity(ShadingState state)`
    `Color` | SphereLight.`getOpacity(ShadingState state)`
    `Color` | SunSkyLight.`getRadiance(ShadingState state)`
    `Color` | TriangleMeshLight.`getRadiance(ShadingState state)`
    `Color` | ImageBasedLight.`getRadiance(ShadingState state)`
    `Color` | SphereLight.`getRadiance(ShadingState state)`
    `void` | SunSkyLight.`getSamples(ShadingState state)`
    `void` | PointLight.`getSamples(ShadingState state)`
    `void` | DirectionalSpotlight.`getSamples(ShadingState state)`
    `void` | TriangleMeshLight.`getSamples(ShadingState state)`
    `void` | ImageBasedLight.`getSamples(ShadingState state)`
    `void` | SphereLight.`getSamples(ShadingState state)`
    `boolean` | SphereLight.`isVisible(ShadingState state)`
    `void` | SunSkyLight.`prepareShadingState(ShadingState state)`
    `void` | ImageBasedLight.`prepareShadingState(ShadingState state)`
    `void` | SunSkyLight.`scatterPhoton(ShadingState state, Color power)`
    `void` | TriangleMeshLight.`scatterPhoton(ShadingState state, Color power)`
    `void` | ImageBasedLight.`scatterPhoton(ShadingState state, Color power)`
    `void` | SphereLight.`scatterPhoton(ShadingState state, Color power)`

  - ### Uses of ShadingState in org.sunflow.core.modifiers

    Methods in org.sunflow.core.modifiers with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `void` | BumpMappingModifier.`modify(ShadingState state)`
    `void` | NormalMapModifier.`modify(ShadingState state)`
    `void` | PerlinModifier.`modify(ShadingState state)`

  - ### Uses of ShadingState in org.sunflow.core.photonmap

    Methods in org.sunflow.core.photonmap with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `void` | CausticPhotonMap.`getSamples(ShadingState state)`
    `void` | GlobalPhotonMap.`store(ShadingState state, Vector3 dir, Color power, Color diffuse)`
    `void` | CausticPhotonMap.`store(ShadingState state, Vector3 dir, Color power, Color diffuse)`
    `void` | GridPhotonMap.`store(ShadingState state, Vector3 dir, Color power, Color diffuse)`

  - ### Uses of ShadingState in org.sunflow.core.primitive

    Methods in org.sunflow.core.primitive with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `Color` | Hair.`getOpacity(ShadingState state)`
    `Color` | CornellBox.`getOpacity(ShadingState state)`
    `Color` | Hair.`getRadiance(ShadingState state)`
    `Color` | CornellBox.`getRadiance(ShadingState state)`
    `void` | CornellBox.`getSamples(ShadingState state)`
    `void` | Torus.`prepareShadingState(ShadingState state)`
    `void` | Plane.`prepareShadingState(ShadingState state)`
    `void` | CubeGrid.`prepareShadingState(ShadingState state)`
    `void` | JuliaFractal.`prepareShadingState(ShadingState state)`
    `void` | QuadMesh.`prepareShadingState(ShadingState state)`
    `void` | ParticleSurface.`prepareShadingState(ShadingState state)`
    `void` | TriangleMesh.`prepareShadingState(ShadingState state)`
    `void` | Hair.`prepareShadingState(ShadingState state)`
    `void` | Background.`prepareShadingState(ShadingState state)`
    `void` | Box.`prepareShadingState(ShadingState state)`
    `void` | SphereFlake.`prepareShadingState(ShadingState state)`
    `void` | Sphere.`prepareShadingState(ShadingState state)`
    `void` | CornellBox.`prepareShadingState(ShadingState state)`
    `void` | Cylinder.`prepareShadingState(ShadingState state)`
    `void` | BanchoffSurface.`prepareShadingState(ShadingState state)`
    `void` | Hair.`scatterPhoton(ShadingState state, Color power)`
    `void` | CornellBox.`scatterPhoton(ShadingState state, Color power)`

  - ### Uses of ShadingState in org.sunflow.core.shader

    Methods in org.sunflow.core.shader with parameters of type ShadingState
    Modifier and Type | Method and Description
    --- | ---
    `Color` | TexturedAmbientOcclusionShader.`getBrightColor(ShadingState state)`
    `Color` | AmbientOcclusionShader.`getBrightColor(ShadingState state)`
    `Color` | DiffuseShader.`getDiffuse(ShadingState state)`
    `Color` | TexturedShinyDiffuseShader.`getDiffuse(ShadingState state)`
    `Color` | ShinyDiffuseShader.`getDiffuse(ShadingState state)`
    `Color` | TexturedDiffuseShader.`getDiffuse(ShadingState state)`
    `Color` | TexturedWardShader.`getDiffuse(ShadingState state)`
    `protected Color` | PhongShader.`getDiffuse(ShadingState state)`
    `protected Color` | AnisotropicWardShader.`getDiffuse(ShadingState state)`
    `Color` | TexturedPhongShader.`getDiffuse(ShadingState state)`
    `Color` | UberShader.`getDiffuse(ShadingState state)`
    `Color` | WireframeShader.`getFillColor(ShadingState state)`
    `Color` | WireframeShader.`getLineColor(ShadingState state)`
    `Color` | ConstantShader.`getOpacity(ShadingState state)`
    `Color` | ViewIrradianceShader.`getOpacity(ShadingState state)`
    `Color` | DiffuseShader.`getOpacity(ShadingState state)`
    `Color` | UVShader.`getOpacity(ShadingState state)`
    `Color` | WireframeShader.`getOpacity(ShadingState state)`
    `Color` | TexturedShinyDiffuseShader.`getOpacity(ShadingState state)`
    `Color` | NormalShader.`getOpacity(ShadingState state)`
    `Color` | ShinyDiffuseShader.`getOpacity(ShadingState state)`
    `Color` | PrimIDShader.`getOpacity(ShadingState state)`
    `Color` | TexturedDiffuseShader.`getOpacity(ShadingState state)`
    `Color` | TexturedWardShader.`getOpacity(ShadingState state)`
    `Color` | PhongShader.`getOpacity(ShadingState state)`
    `Color` | GlassShader.`getOpacity(ShadingState state)`
    `Color` | QuickGrayShader.`getOpacity(ShadingState state)`
    `Color` | IDShader.`getOpacity(ShadingState state)`
    `Color` | AnisotropicWardShader.`getOpacity(ShadingState state)`
    `Color` | TexturedPhongShader.`getOpacity(ShadingState state)`
    `Color` | UberShader.`getOpacity(ShadingState state)`
    `Color` | SimpleShader.`getOpacity(ShadingState state)`
    `Color` | MirrorShader.`getOpacity(ShadingState state)`
    `Color` | ViewCausticsShader.`getOpacity(ShadingState state)`
    `Color` | AmbientOcclusionShader.`getOpacity(ShadingState state)`
    `Color` | ViewGlobalPhotonsShader.`getOpacity(ShadingState state)`
    `Color` | ConstantShader.`getRadiance(ShadingState state)`
    `Color` | ViewIrradianceShader.`getRadiance(ShadingState state)`
    `Color` | DiffuseShader.`getRadiance(ShadingState state)`
    `Color` | UVShader.`getRadiance(ShadingState state)`
    `Color` | WireframeShader.`getRadiance(ShadingState state)`
    `Color` | TexturedShinyDiffuseShader.`getRadiance(ShadingState state)`
    `Color` | NormalShader.`getRadiance(ShadingState state)`
    `Color` | ShinyDiffuseShader.`getRadiance(ShadingState state)`
    `Color` | PrimIDShader.`getRadiance(ShadingState state)`
    `Color` | TexturedDiffuseShader.`getRadiance(ShadingState state)`
    `Color` | PhongShader.`getRadiance(ShadingState state)`
    `Color` | GlassShader.`getRadiance(ShadingState state)`
    `Color` | QuickGrayShader.`getRadiance(ShadingState state)`
    `Color` | IDShader.`getRadiance(ShadingState state)`
    `Color` | AnisotropicWardShader.`getRadiance(ShadingState state)`
    `Color` | TexturedPhongShader.`getRadiance(ShadingState state)`
    `Color` | UberShader.`getRadiance(ShadingState state)`
    `Color` | SimpleShader.`getRadiance(ShadingState state)`
    `Color` | MirrorShader.`getRadiance(ShadingState state)`
    `Color` | ViewCausticsShader.`getRadiance(ShadingState state)`
    `Color` | AmbientOcclusionShader.`getRadiance(ShadingState state)`
    `Color` | ViewGlobalPhotonsShader.`getRadiance(ShadingState state)`
    `Color` | UberShader.`getSpecular(ShadingState state)`
    `void` | ConstantShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | ViewIrradianceShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | DiffuseShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | UVShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | WireframeShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | NormalShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | ShinyDiffuseShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | PrimIDShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | PhongShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | GlassShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | QuickGrayShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | IDShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | AnisotropicWardShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | UberShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | SimpleShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | MirrorShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | ViewCausticsShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | AmbientOcclusionShader.`scatterPhoton(ShadingState state, Color power)`
    `void` | ViewGlobalPhotonsShader.`scatterPhoton(ShadingState state, Color power)`