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.
- Alphabetic
- By Inheritance
- Transfer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
-
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.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- val shBandsIn: Int
- val shBandsOut: Int
- val shComponentsIn: Int
- val shComponentsOut: Int
- val surfacePointProperty: SurfacePointProperty[DenseMatrix[Double]]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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.
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )