object UniversalSurfaceSpaceShader
PRT shader for rendering geometry with arbitrary BRDFs in surface-local space.
The light-brdf convolution is performed in surface-local (i.e. tangent) space such that the SH expansion of the BRDF does not need to be rotated into object space.
Instead the light is rotated into tangent space by the transfer matrices. For more information please refer to ObjectToSurfaceSpaceTransfer.
This shader is typically used in combination with faces.render.prt.transfersimulation.UniversalPrtSimulator and faces.render.prt.parametricrendering.techniques.UniversalPrtTechnique.
- Alphabetic
- By Inheritance
- UniversalSurfaceSpaceShader
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class GlobalLightShader (transfer: GreyOrRGB[ObjectToSurfaceSpaceTransfer], light: GreyOrRGB[DenseVector[Double]], bsdf: GreyOrRGB[MeshSurfaceProperty[SHBrdf with CosineTerm]], objectSpaceViewDirections: SurfacePointProperty[Vector[_3D]], tangentSpace: SurfacePointProperty[DenseMatrix[Double]]) extends UniversalSurfaceSpaceTemplate with Product with Serializable
- case class LocalLightShader (transfer: GreyOrRGB[ObjectToSurfaceSpaceTransfer with TransferSingleBounce], localLight: GreyOrRGB[SurfacePointProperty[DenseVector[Double]]], bsdf: GreyOrRGB[MeshSurfaceProperty[SHBrdf with CosineTerm]], objectSpaceViewDirections: SurfacePointProperty[Vector[_3D]], tangentSpace: SurfacePointProperty[DenseMatrix[Double]]) extends UniversalSurfaceSpaceTemplate with Product with Serializable
- sealed abstract class UniversalSurfaceSpaceTemplate extends PixelShader[RGBA]
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(transfer: GreyOrRGB[ObjectToSurfaceSpaceTransfer with TransferSingleBounce], localLight: GreyOrRGB[SurfacePointProperty[DenseVector[Double]]], brdf: GreyOrRGB[MeshSurfaceProperty[SHBrdf with CosineTerm]], objectSpaceViewDirections: SurfacePointProperty[Vector[_3D]], tangentSpace: SurfacePointProperty[DenseMatrix[Double]]): LocalLightShader
Returns a pixel shader for PRT rendering using arbitrary BRDFs under scene illumination that can spatially vary (e.g.
Returns a pixel shader for PRT rendering using arbitrary BRDFs under scene illumination that can spatially vary (e.g. due to point light sources in close proximity).
- transfer
Precomputed transfer.
- localLight
A SurfacePointProperty representing SH expansions of incoming light for each vertex of the rendered mesh.
- brdf
A MeshSurfaceProperty representing the surface-local SH expansion of each surface point's local BRDF. The SH expansion of the BRDF must include the render equation's cosine term.
- objectSpaceViewDirections
A SurfacePointProperty representing the directions of view to the vertices of the rendered mesh.
- tangentSpace
Tangent space of a mesh (c.f. TangentSpace).
- returns
An instance of PixelShader[RGBA].
-
def
apply(transfer: GreyOrRGB[ObjectToSurfaceSpaceTransfer], light: GreyOrRGB[DenseVector[Double]], brdf: GreyOrRGB[MeshSurfaceProperty[SHBrdf with CosineTerm]], objectSpaceViewDirections: SurfacePointProperty[Vector[_3D]], tangentSpace: SurfacePointProperty[DenseMatrix[Double]]): GlobalLightShader
Returns a pixel shader for PRT rendering using arbitrary BRDFs under globally uniform illumination.
Returns a pixel shader for PRT rendering using arbitrary BRDFs under globally uniform illumination.
- transfer
Precomputed transfer.
- light
SH expansion of light from an environment map.
- brdf
A MeshSurfaceProperty representing the surface-local SH expansion of each surface point's local BRDF. The SH expansion of the BRDF must include the render equation's cosine term.
- objectSpaceViewDirections
A SurfacePointProperty representing the directions of view to the vertices of the rendered mesh.
- tangentSpace
Tangent space of a mesh (c.f. TangentSpace).
- returns
An instance of PixelShader[RGBA].
-
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
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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( ... )