Skip to content

Hierachy & Sampling

Wumpf edited this page Oct 26, 2014 · 9 revisions

Precomputation

  • Get triangles, compute BVH
  • Compute BRDFs for triangles and above

CPU Side Runtime

  • Load initial hierarchy
  • On query (via a buffer by the GPU):
    • If in hierarchy -> load more
    • If triangle hit -> position known -> do nothing

GPU Side Runtime

  • Magic BRDF on hierarchy levels only

  • Something simple (phong, ...) on triangle level and below (Materialindices)

  • Mip mapping gives "unbiased" input for BRDF on (sub-)triangles

  • Lightsample storing

    • path vertices are stored in light cache (see GPU impl survey)
    • path vertices have a size (relevant for the random connected samples)
      • Different sized samples
    • Divide into light and view-pass samples
      • random connections only to light vertices
      • gathering/radiance estimate for both types
    • compression pass (weight all, merge only "lightweight")
      • goal: keep important samples while saving fewer samples
      • delete randomly to avoid biasing due to start conditions

Passes

  • Light sample creation
    • kernel for each light type, generates samples for light light cache
  • Hitpoint sample creation
  • compression (?)
Clone this wiki locally