Object

scalismo.faces.render

TriangleRenderer

Related Doc: package render

Permalink

object TriangleRenderer

main renderer object to render images of triangle meshes

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

Type Members

  1. case class TriangleFragment(mesh: TriangleMesh[_3D], triangleId: TriangleId, worldBCC: BarycentricCoordinates, x: Int, y: Int, z: Double, ccwWinding: Boolean) extends Product with Serializable

    Permalink

    a triangle fragment, with information about triangle origin and the position within

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  14. def rasterTriangle[A](triangleId: TriangleId, a: Point[_3D], b: Point[_3D], c: Point[_3D], pointShader: PointShader, pixelShader: PixelShader[A], buffer: RenderBuffer[A]): Unit

    Permalink

    rasterize a single triangle

    rasterize a single triangle

    triangleId

    triangle id in triangulation

    a

    point A in triangle

    b

    point B in triangle

    c

    point C in triangle

    pointShader

    performs correction of BCC from screen space to eye space

    pixelShader

    called to paint each pixel of the triangle

    buffer

    render buffer, stores the painted values and does depth management

  15. def renderCorrespondence(mesh: TriangleMesh[_3D], pointShader: PointShader, buffer: RenderBuffer[Option[TriangleFragment]]): RenderBuffer[Option[TriangleFragment]]

    Permalink

    render a correspondence image into a buffer, contains information about triangle rasterization

  16. def renderCorrespondence(mesh: TriangleMesh[_3D], triangleFilter: (TriangleId) ⇒ Boolean, pointShader: PointShader, screenTransform: InvertibleTransform3D, buffer: RenderBuffer[Option[TriangleFragment]]): RenderBuffer[Option[TriangleFragment]]

    Permalink

    render a correspondence image into a buffer, contains information about triangle rasterization

  17. def renderCorrespondenceImage(mesh: TriangleMesh[_3D], pointShader: PointShader, width: Int, height: Int): PixelImage[Option[TriangleFragment]]

    Permalink

    render a correspondence image for a given mesh into a new buffer, contains information about triangle rasterization

  18. def renderDepthWindow(mesh: TriangleMesh[_3D], pointShader: PointShader, buffer: RenderBuffer[Double]): RenderBuffer[Double]

    Permalink

    render window depth values (as used by Z buffer, in range [0, 1])

  19. def renderMesh[A](mesh: TriangleMesh[_3D], triangleFilter: (TriangleId) ⇒ Boolean, pointShader: PointShader, screenTransform: InvertibleTransform3D, pixelShader: PixelShader[A], buffer: RenderBuffer[A]): RenderBuffer[A]

    Permalink

    render a mesh, renders each triangle which passes the filter into the rendering buffer.

    render a mesh, renders each triangle which passes the filter into the rendering buffer. This function uses a user-defined screenTransform and a triangle filter to select triangles. NOTE: Use this function only when you know what you are doing.

    mesh

    mesh to render, a collection of triangles

    triangleFilter

    filter triangles to render, use for culling and clipping

    pointShader

    called to transform points from object space to NDC in the canonical viewing volume

    pixelShader

    called to paint the pixels of the rendered image

    buffer

    holds the rendered values, does z management

  20. def renderMesh[A](mesh: TriangleMesh[_3D], pointShader: PointShader, screenTransform: InvertibleTransform3D, pixelShader: PixelShader[A], buffer: RenderBuffer[A]): RenderBuffer[A]

    Permalink

    render a mesh, renders each triangle into the rendering buffer.

    render a mesh, renders each triangle into the rendering buffer. This function uses a user-defined screenTransform. NOTE: Use this function only when you know what you are doing.

    mesh

    mesh to render, a collection of triangles

    pointShader

    called to transform points from object space to NDC in the canonical viewing volume

    pixelShader

    called to paint the pixels of the rendered image

    buffer

    holds the rendered values, does z management

  21. def renderMesh[A](mesh: TriangleMesh[_3D], pointShader: PointShader, pixelShader: PixelShader[A], buffer: RenderBuffer[A]): RenderBuffer[A]

    Permalink

    render a mesh, renders each triangle into the rendering buffer

    render a mesh, renders each triangle into the rendering buffer

    mesh

    mesh to render, a collection of triangles

    pointShader

    called to transform points from object space to NDC in the canonical viewing volume

    pixelShader

    called to paint the pixels of the rendered image

    buffer

    holds the rendered values, does z management

  22. def renderProperty[A](mesh: TriangleMesh[_3D], pointShader: PointShader, property: MeshSurfaceProperty[A], buffer: RenderBuffer[Option[A]])(implicit arg0: ClassTag[A]): RenderBuffer[Option[A]]

    Permalink

    render an arbitrary mesh surface property

    render an arbitrary mesh surface property

    mesh

    mesh on which the property is defined

    pointShader

    called to transform points from object space to NDC in the canonical viewing volume

    property

    the surface property to render

    buffer

    holds the rendered values, does z management

  23. def renderPropertyImage[A](mesh: TriangleMesh[_3D], pointShader: PointShader, property: MeshSurfaceProperty[A], width: Int, height: Int)(implicit arg0: ClassTag[A]): PixelImage[Option[A]]

    Permalink

    render an arbitrary mesh surface property as an image

  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  26. def transformPoint(point: Point[_3D], pointShader: PointShader, screenTrafo: Transform3D): Point[_3D]

    Permalink

    render a point position in the given buffer domain using a point shader

  27. def transformPoint(point: Point[_3D], pointShader: PointShader, bufferDomain: PixelImageDomain): Point[_3D]

    Permalink

    render a point position in the given buffer domain using a point shader

  28. def visibilityAsSurfaceProperty(mesh: TriangleMesh[_3D], pointShader: PointShader, pixelImageDomain: PixelImageDomain, offset: Double, boundaryAlwaysVisible: Boolean): MeshSurfaceProperty[Boolean]

    Permalink

    Creates a Surface Property which tells on every point on the mesh surface its visibility according to the pointShader.

    Creates a Surface Property which tells on every point on the mesh surface its visibility according to the pointShader. Procedure: 1. Render surface coordinates with pointShader. 2. Because we want visibility of coordinates between two pixels, we interpolate between the pixels. 3. Compare if the z component of the mesh surface point is smaller than the z component of the corresponding rendered point. pt.z <= renderedPoint.z + offset An offset > 0 is necessary.

    boundaryAlwaysVisible: Problem: At mesh boundaries we interpolate the z value with the buffer bg value. Case 1, bgValue is NegativeInfinity: boundaryAlwaysVisible = false Interpolation yields always NegativeInfinity. Thus, the boundary pixels are always invisible. Case 2, bgValue is PositiveInfinity: Interpolation yields always PositiveInfinity, thus the boundary pixels are always visible.

    mesh

    mesh to render

    pointShader

    called to to transform object space points to NDC in the cononical view volume

    pixelImageDomain

    domain of buffer to evaluate visibility (sampled with a z buffer)

    offset

    numerical z buffer value offset ~1e-3

    boundaryAlwaysVisible

    make boundary pixels (at occluding contours vs background) always visible

  29. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped