case class LambertSimulator(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 diffuse, lambertian-like reflectance.

The provided BRDF will be rotated s.t. it's axis of symmetry aligns with the surface's normals.

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 is not explicitly taken into account in the simulation process. It needs to be included in the provided SH-projection of the BRDF.

Linear Supertypes
Serializable, Serializable, Product, Equals, TransferSimulatorMultiBounce, TransferSimulator, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LambertSimulator
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. TransferSimulatorMultiBounce
  7. TransferSimulator
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new LambertSimulator(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

  1. type TransferMatrices = IndexedSeq[DenseMatrix[Double]]
    Attributes
    protected
    Definition Classes
    TransferSimulator

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val bounces: Int
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def emptyMatrix: DenseMatrix[Double]
    Attributes
    protected
    Definition Classes
    TransferSimulator
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. 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
    LambertSimulatorTransferSimulatorMultiBounce
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. val mesh: TriangleMesh3D
    Definition Classes
    LambertSimulatorTransferSimulator
  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 occlusion: OcclusionInformation
    Definition Classes
    LambertSimulatorTransferSimulator
  18. val samples: IndexedSeq[Vector[_3D]]
    Attributes
    protected
    Definition Classes
    TransferSimulator
  19. val samplesSh: IndexedSeq[DenseVector[Double]]
    Attributes
    protected
    Definition Classes
    TransferSimulator
  20. val shBands: Int
    Definition Classes
    LambertSimulatorTransferSimulator
  21. val shBandsIn: Int
    Definition Classes
    TransferSimulator
  22. val shBandsOut: Int
    Definition Classes
    TransferSimulator
  23. def simulate(): Transfer

    Simulates light transfer and returns the final transfer data.

    Simulates light transfer and returns the final transfer data.

    Definition Classes
    TransferSimulatorMultiBounceTransferSimulator
  24. 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
  25. def simulateBounces: IndexedSeq[Transfer]
    Attributes
    protected
    Definition Classes
    TransferSimulatorMultiBounce
  26. val symmetricBRDF: MeshSurfaceProperty[DenseVector[Double]]
  27. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  28. val triangulation: TriangleList
    Attributes
    protected
    Definition Classes
    TransferSimulator
  29. val vertexCount: Int
    Attributes
    protected
    Definition Classes
    TransferSimulator
  30. val volumePerSample: Double
    Attributes
    protected
    Definition Classes
    TransferSimulator
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from TransferSimulator

Inherited from AnyRef

Inherited from Any

Ungrouped