package prt

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. trait Demo extends JFrame with InteractiveApp

Value Members

  1. object BRDFTest extends App
  2. object Demo1SymmetricBRDFs extends JFrame with Demo

    The initial formulation of the PRT rendering introduced in 2002 was limited to rotationally symmetric BRDFs.

    The initial formulation of the PRT rendering introduced in 2002 was limited to rotationally symmetric BRDFs. This allowed a fast transformation of the BRDF (given in Zonal Harmonics) into the tangential surface spaces at the rendered points of the mesh.

    This approach can be used for Lambertian reflection or to approximate glossy reflection.

    Controls: Use arrow keys to cycle through the transfer data of the different stages of transfer simulation (i.e. full transfer data, self-shadowing, n individual bounces)

    Test data can be obtained from: https://www.dropbox.com/sh/hmis0443fdrs6n8/AAAJVx2mTAXPvLICy7X-mqfLa?dl=0

  3. object Demo1SymmetricBRDFsNewAPI extends App
  4. object Demo2ArbitraryBRDFs extends JFrame with Demo

    PRT Rendering of Arbitrary BRDFs

    PRT Rendering of Arbitrary BRDFs

    PRT can be used in combination with any kind of BRDF or even BSDF (generalized BRDF with scattering beneath the object's surface). These can be of any form and can depend on the view direction. In order to render objects with these BSDFs with interactive framerates or even in realtime, these BSDFs - more precisely their SH-projections - are tabulated for a set of view directions that densely covers all possible view directions. Thus many many costly SH-projections of BSDFs can be avoided during rendering.

    In contrast to the technique in Demo1SymmetricBRDFs the generic prt technique needs to rotate the sh-lighting into the local surface space that the BSDF is defined in.

    This demo builds on top of Demo1SymmetricBRDFs, explanations focus on generic-brdf-topics.

    Test data can be obtained from: https://www.dropbox.com/sh/hmis0443fdrs6n8/AAAJVx2mTAXPvLICy7X-mqfLa?dl=0

  5. object Demo2ArbitraryBRDFsNewAPI extends App
  6. object Demo3Caching extends JFrame with Demo

    This program demonstrates how the simulated transfer data can easily be stored to and read from persistent storage.

    This program demonstrates how the simulated transfer data can easily be stored to and read from persistent storage. PRT related data is calculated during the first execution of this program. If it could be written to disk successfully the program will reload the data from disk when executed thereafter. This will considerably speed up the start of the program.

    Objects of type TabulatedBRDF, RaycastData and TransferData can easily be cached using the following code template

    Cached { generate_object_here }.fromFile(file).get()

    This will generate the object using the provided generator code in case the specified file does not exist or does not comply with the required format. Otherwise the instance will be created from the data in the file.

    The get() is required if the implicit conversion from Cached[A] to A is not applied for some reason.

    Files can be overwritten with

    Cached { generate_object_here }.store(file)

    which will regenerate and store the object to disk afterwards.

    This requires the packages

    • faces.render.prt.caching as well as
    • faces.render.prt.cachingimplementations

    The range of cachable types can be extended by implementing the CachedIO[A] interface for any type A.

    Test data can be obtained from: https://www.dropbox.com/sh/hmis0443fdrs6n8/AAAJVx2mTAXPvLICy7X-mqfLa?dl=0

  7. object Demo3CachingNewAPI extends App
  8. object Demo4SubsurfaceScattering extends JFrame with Demo

    PRT can be used to render all kinds of materials and scenes.

    PRT can be used to render all kinds of materials and scenes. With some modification the technique can even be used to render volumetric effects such as subsurface scattering or scattering in gasses and liquids, etc. Most of these effects require the simulation and rendering to be performed using voxels.

    Although this is not possible with this implementation (lack of support for voxels), interesting effects can be approximated using layered meshes and BSDFs that scatter into light the object. The internal layers of the mesh are used to simulate scattering inside the material of the rendered object.

    Please note that the effect showcased in this demo is not based on any particular subsurface scattering model and is only meant to demonstrate the versatility of precomputed radiance transfer.

    Depending on the prt settings and rendered mesh, the simulation of SSS might take a long time and require excessive heap space. It might be necessary to run the simulation with a bigger max heap size.

    Controls: Press space to toggle subsurface scattering effect. This switches between transfer data for with and without intra-object light scattering.

  9. object Demo5PointLightsNewAPI extends App
  10. object InteractiveVerification extends App

Ungrouped