abstract class Transfer extends AnyRef

Stores the transfer matrices for a mesh as required for the PRT technique.

This class provides methods that facilitate the transformation of scene illumination to local distributions of incoming light for each vertex.

Transfer matrices can be combined with other transformation such as rotations. This is done in the class ObjectToSurfaceSpaceTransfer in which transfer matrices are combined with a transformation from object to surface-local space, for example.

Transfer matrices can map light to arbitrary spaces but are required to accept object space light as input. The image space is indicated by the classes that inherit from this class (e.g. ObjectToSurfaceSpaceTransfer and ObjectSpaceTransfer).

More on PRT and Transfer Matrices: In PRT, light transport is precomputed. By representing light using spherical harmonics it is possible to establish a linear relationship between unblocked scene illumination (i.e. the illuminatiion without any occlusion or reflection effects of the rendered geometry) and illumination at each point of the rendered geometry, that includes reflection and occlusion effects. In other words, this linear relationship transforms any incoming, unblocked light distribution to position-specific local light distributions that take into account the effects of occlusion and reflection due to rendered geometry.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Transfer
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(light: DenseVector[Double]): SurfacePointProperty[DenseVector[Double]]

    Maps the SH-expansion of the scene's illumination to an individual, local light distribution for each vertex.

    Maps the SH-expansion of the scene's illumination to an individual, local light distribution for each vertex.

    Equivalent to transferLight.

    light

    The SH-representation of the unaffected illumination.

  5. def apply(triangleId: TriangleId, bcc: BarycentricCoordinates): DenseMatrix[Double]

    Returns the transfer matrix for a point on the mesh's surface.

    Returns the transfer matrix for a point on the mesh's surface.

    triangleId

    The id of the triangle that contains the point of interest.

    bcc

    The barycentric coordinates of the point of interest w.r.t. triangleId.

    returns

    The interpolated transfer matrix for the specified surface point.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  17. val shBandsIn: Int
  18. val shBandsOut: Int
  19. val shComponentsIn: Int
  20. val shComponentsOut: Int
  21. val surfacePointProperty: SurfacePointProperty[DenseMatrix[Double]]
  22. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    AnyRef → Any
  24. def transferLight(light: DenseVector[Double]): SurfacePointProperty[DenseVector[Double]]

    Maps the SH-expansion of the scene's illumination to an individual, local light distribution for each vertex.

    Maps the SH-expansion of the scene's illumination to an individual, local light distribution for each vertex.

    The light is assumed to be constant for each point in space (disregarding the influence of the rendered geometry), i.e. the light sources are assumed to be infinitely far away.

    In order to use point light sources that are in close proximity to the rendered geometry, please use the TransferSingleBounce class instead.

    light

    The SH-representation of the unaffected scene illumination in object space.

  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped