case class GlossySimulator(mesh: TriangleMesh3D, occlusion: OcclusionInformation, bounces: Int, shBands: Int, symmetricBRDF: MeshSurfaceProperty[DenseVector[Double]]) extends TransferSimulatorMultiBounce with Product with Serializable
Light transport simulator for symmetric BRDFs. Simulates glossy, specular reflectance.
The provided BRDF will be rotated s.t. it's axis of symmetry aligns with the reflection of the view direction on the object.
Please not that the BRDF needs to be symmetric w.r.t. its z-axis (c.f. ZH class).
- mesh
The mesh to simulate light transfer for.
- occlusion
An instance of OcclusionInformation for the specified mesh.
- bounces
The number light bounces the will be taken into account (1 or less for occlusion-only simulation).
- shBands
The number of SH bands to use for the simulation.
- symmetricBRDF
A SH convolution kernel of a BRDF with rotational symmetry about the Z axis (c.f. ZH.asConvolution).
- Note
The cosine term of the rendering equation cannot be taken into account in the simulation process.
- Alphabetic
- By Inheritance
- GlossySimulator
- Serializable
- Serializable
- Product
- Equals
- TransferSimulatorMultiBounce
- TransferSimulator
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
GlossySimulator(mesh: TriangleMesh3D, occlusion: OcclusionInformation, bounces: Int, shBands: Int, symmetricBRDF: MeshSurfaceProperty[DenseVector[Double]])
- mesh
The mesh to simulate light transfer for.
- occlusion
An instance of OcclusionInformation for the specified mesh.
- bounces
The number light bounces the will be taken into account (1 or less for occlusion-only simulation).
- shBands
The number of SH bands to use for the simulation.
- symmetricBRDF
A SH convolution kernel of a BRDF with rotational symmetry about the Z axis (c.f. ZH.asConvolution).
Type Members
-
type
TransferMatrices = IndexedSeq[DenseMatrix[Double]]
- Attributes
- protected
- Definition Classes
- TransferSimulator
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
bounces: Int
- Definition Classes
- GlossySimulator → TransferSimulatorMultiBounce
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
emptyMatrix: DenseMatrix[Double]
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
getBRDF(triangleId: TriangleId, bcc: BarycentricCoordinates, sample: Vector[_3D]): DenseVector[Double]
Returns an SH-projection of the used BRDF at a specific point on the mesh.
Returns an SH-projection of the used BRDF at a specific point on the mesh.
- Definition Classes
- GlossySimulator → TransferSimulatorMultiBounce
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
mesh: TriangleMesh3D
- Definition Classes
- GlossySimulator → TransferSimulator
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
val
occlusion: OcclusionInformation
- Definition Classes
- GlossySimulator → TransferSimulator
-
val
samples: IndexedSeq[Vector[_3D]]
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
val
samplesSh: IndexedSeq[DenseVector[Double]]
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
val
shBands: Int
- Definition Classes
- GlossySimulator → TransferSimulator
-
val
shBandsIn: Int
- Definition Classes
- TransferSimulator
-
val
shBandsOut: Int
- Definition Classes
- TransferSimulator
-
def
simulate(): Transfer
Simulates light transfer and returns the final transfer data.
Simulates light transfer and returns the final transfer data.
- Definition Classes
- TransferSimulatorMultiBounce → TransferSimulator
-
def
simulateAll(): IndexedSeq[Transfer]
Simulates light transfer and returns the final transfer data together with the transfer data of each individual light bounce.
Simulates light transfer and returns the final transfer data together with the transfer data of each individual light bounce.
- Definition Classes
- TransferSimulatorMultiBounce
-
def
simulateBounces: IndexedSeq[Transfer]
- Attributes
- protected
- Definition Classes
- TransferSimulatorMultiBounce
- val symmetricBRDF: MeshSurfaceProperty[DenseVector[Double]]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
val
triangulation: TriangleList
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
val
vertexCount: Int
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
val
volumePerSample: Double
- Attributes
- protected
- Definition Classes
- TransferSimulator
-
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( ... )