Class LightSample


  • public class LightSample
    extends java.lang.Object
    Represents a sample taken from a light source that faces a point being shaded.
    • Constructor Detail

      • LightSample

        public LightSample()
        Creates a new light sample object (invalid by default).
    • Method Detail

      • isValid

        boolean isValid()
      • setShadowRay

        public void setShadowRay​(Ray shadowRay)
        Set the current shadow ray. The ray's direction is used as the sample's orientation.
        Parameters:
        shadowRay - shadow ray from the point being shaded towards the light
      • traceShadow

        public final void traceShadow​(ShadingState state)
        Trace the shadow ray, attenuating the sample's color by the opacity of intersected objects.
        Parameters:
        state - shading state representing the point to be shaded
      • getShadowRay

        public Ray getShadowRay()
        Get the sample's shadow ray.
        Returns:
        shadow ray
      • getDiffuseRadiance

        public Color getDiffuseRadiance()
        Get diffuse radiance.
        Returns:
        diffuse radiance
      • getSpecularRadiance

        public Color getSpecularRadiance()
        Get specular radiance.
        Returns:
        specular radiance
      • setRadiance

        public void setRadiance​(Color d,
                                Color s)
        Set the diffuse and specular radiance emitted by the current light source. These should usually be the same, but are distinguished to allow for non-physical light setups or light source types which compute diffuse and specular responses seperately.
        Parameters:
        d - diffuse radiance
        s - specular radiance
      • dot

        public float dot​(Vector3 v)
        Compute a dot product between the current shadow ray direction and the specified vector.
        Parameters:
        v - direction vector
        Returns:
        dot product of the vector with the shadow ray direction