interactive ray tracing of point based models
Download
Skip this Video
Download Presentation
Interactive Ray Tracing of Point-based Models

Loading in 2 Seconds...

play fullscreen
1 / 57

Interactive Ray Tracing of Point-based Models - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

Interactive Ray Tracing of Point-based Models. Ingo Wald SCI Institute, University of Utah wald@sci.utah.edu. Motivation. Why point-based rendering ? Many advantages, but no details here … But: Why point-based ray tracing ? Actually, two different questions:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Interactive Ray Tracing of Point-based Models' - niesha


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
interactive ray tracing of point based models

Interactive Ray Tracingof Point-based Models

Ingo Wald

SCI Institute, University of Utah

wald@sci.utah.edu

motivation
Motivation
  • Why point-based rendering ?
    • Many advantages, but no details here …
  • But: Why point-based ray tracing ?
    • Actually, two different questions:
      • Q1: Why ray tracing for point-based models ?
      • Q2: Why use point-based techniques in ray tracing ?
q1 why ray tracing
Q1: Why Ray Tracing ?
  • Reason 1: Logarithmic scalability to large models
    • Very handy for today‘s huge models
    • But: For PBR not that important (multiresolution)…
  • Reason 2 : Image quality / shading quality
    • Ray traced image quality not yet standard in PBG…
      • But would benice to have
q2 why point based techniques in ray tracing
Q2: Why Point-based techniques in Ray Tracing?
  • Native point-based data (acquisition)
    • Direct ray tracing avoids tesselation
      • Much simpler
  • And for native triangular models ?
    • Triangular model  Point-based model  PBRT
      • Does this make sense ?
    • Highly controversial issue amongst ray tracing researchers
      • RT is log. in #tris, anyway. Don‘t need multiresolution…
      • Many new problems with points as primitives
        • Consistency, efficiency, loss of information…
q2 why point based techniques in ray tracing1
Q2: Why Point-based techniques in Ray Tracing?

Interactive ray tracing: Three recent examples

q2 why point based techniques in ray tracing2
Q2: Why Point-based techniques in Ray Tracing?

Interactive ray tracing: Three recent examples

  • Example 1: Boeing 777 (350 million triangles, 40 GB data)
q2 why point based techniques in ray tracing3
Q2: Why Point-based techniques in Ray Tracing?

Interactive ray tracing: Three recent examples

  • Example 2: Lawrence Livermore isosurface (8 billion voxels)
q2 why point based techniques in ray tracing4
Q2: Why Point-based techniques in Ray Tracing?

Interactive ray tracing: Three recent examples

  • Example 3: Forest landscape (1.5 billion triangles)
q2 why point based techniques in ray tracing5
Q2: Why Point-based techniques in Ray Tracing?

Interactive ray tracing: Three recent examples

    • Yes, can render all three already today without PB techniques
    • But: Doesn‘t make sense (>1G prim. for <1M pixels ?)
      • Too much data: Tiny camera movetotally different data
        • Even though image doesn‘t change at all…
      • Sample only every 1000th pixel  Severe aliasing
        • Aliasing: THE most important problem of RTRT today
  • Need multiresolution approach also for RT
    • Probably best via PB approach
      • Current results only intermediate step…
      • … towards long-term goal of multiresolution (PB)RT
how to ray trace pb models
How to ray trace PB models ?
  • Problem: Zero ray-point hit probability
    • Rays infinitely thin
    • Points infitnitely thin, too
  • Two possible solutions
    • Use „thick“ rays that have volume (cones, beams, …)
      • Reconstruct from all points overlapping ray‘s volume
    • „Grow“ points to have a surface
      • can then be found by „thin“ ray
    • Long history of debate on which is better…
how to ray trace pb models1
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Experience: Tracing beams very costly (much more than rays)
how to ray trace pb models2
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Many un-answered questions
      • Where exactly is the hit point ?
        • E.g., where to start the shadow ray from ?

points gathered by beam

Position A

Hitpoint position ?

how to ray trace pb models3
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Many un-answered questions
      • Where exactly is the hit point ?
      • How stable is the decision ?

points gathered by beam

Position A

Hitpoint position ?

how to ray trace pb models4
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Many un-answered questions
      • Where exactly is the hit point ?
      • How stable is the decision ?
      • Is it consistent ?
        • E.g., when viewed from different angle (shadow ray)

Position B (Light ?)

Position A

surface seen from A

Same surface, different viewpoint:

Same hitpoint ?

Is it in shadow ?

Hitpoint position ?

how to ray trace pb models5
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Many un-answered questions
      • Where exactly is the hit point ?
      • How stable is the decision?
      • Is it consistent ?
    • Too many open questions
how to ray trace pb models6
How to ray trace PB models ?
  • Alternative 2: Growing points
    • Define unique surface through points
      • Always consistent
    • Most trivial solution: Use disks/ellipses/…
      • Trivial
how to ray trace pb models7
How to ray trace PB models ?
  • Alternative 2: Growing points
    • Define unique surface through points
      • Always consistent
    • Most trivial solution: Use disks/ellipses/…
      • Trivial, but shading discontinuities (worse w/ shadows)
how to ray trace pb models8
How to ray trace PB models ?
  • Better: Define smooth surface
    • Use Adamson/Alexa‘s model
      • Each point xi has normal ni and radius ri of influence
      • Influence wi falls off with distance to xi
        • With wi(xi)=1 and wi(x)=0 for all |x-xi|>ri
      • Define weighted average position X(x) and N(x)
      • Define „distance“ function F(x) := ((x-X(x)).N(x)
      • Implicit fct F(x)=0 is smooth surface
    • Need:
      • Useful ri ‘s (not given)
      • Fast ray/surface intersection framework
choosing splat radii
Choosing Splat Radii
  • Step 1: Choosing the splat radii
    • Too small  Holes in the model
    • Too large  Many regions of influence will overlap (slow)
  • Use Wu et al.‘s optimal subsampling technique
    • Wu [EG04]: Determine ri such as to
      • Optimally cover surface
      • Achieve minimal overlap

Optimal solution: Use exactly that technique

  • Note: Can also use ‚other‘ radii
    • e.g., user-specified…
    • Might just be slower or contain holes
intersecting the surface
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
    • Each point x always influenced by only few xi

C

B

D

A

intersecting the surface1
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box

C

B

D

A

intersecting the surface2
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes

C

B

D

A

intersecting the surface3
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes

C

B

D

A

intersecting the surface4
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes

C

B

D

A

intersecting the surface5
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes

C

B

D

A

intersecting the surface6
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes
      • Leaves: Store list of splats whose ROI overlaps cell

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

(right side incomplete)

D

A

A

-

intersecting the surface7
Intersecting the Surface
  • Step 2: Determining the splats to intersect with
      • Enclose each splat‘s ROI with tight fitting box
      • Build kd-tree over those AA boxes
      • Leaves: Store list of splats whose ROI overlaps cell
    • KD-Tree: Inherit advantages of fast triangular ray tracing
      • Fast traversal, occlusion culling, good kd-trees (SAH)…

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

D

A

A

-

intersecting the surface8
Intersecting the Surface
  • Step 3: Ray/surface intersection in each voxel
    • Find distance t : F(t)=0
    • Equidistant sampling along t
      • Have intersection if sgn(F(ti+1)) != sign(F(ti))
      • But: Too coarse sampling can miss the surface
    • Optimizations: Fast SSE implementation (no details)
  • Quite fast, but: Still main cost factor
  • Further optimize kd-tree to minimize F(x) calls
    • Need to take closer look at kd-tree
kd tree post optimizations
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
    • Reason: KD-tree was built over ROI‘s
      • ROI‘s bound surface, but not closely
kd tree post optimizations1
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
    • Example from before

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A,B,C

A

A

A,B,C

kd tree post optimizations2
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
    • Actual surface only touches few voxels

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A,B,C

A,B,C

A

A

A,B,C

kd tree post optimizations3
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
    • Many non-empty cells that are not necessary

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A,B,C

A,B,C

A

A

A,B,C

kd tree post optimizations4
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
    • Many non-empty cells that are not necessary
      • Can make quite a difference

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A,B,C

A,B,C

A

A

A,B,C

kd tree post optimizations5
KD-Tree Post-optimizations
  • Observation 1: Many full cells don‘t contain surf.
  • Fix: Determine min(F()) and max(F()) in each cell
    • Cull cells with min > 0 or max < 0
    • Currently: Sample F with random x
      • Can produce false culling (holes)
    • Better: Interval arithmetic (Not implemented yet)
kd tree post optimizations6
KD-Tree Post-optimizations
  • Observation 2: Most cells too large
    • Reason: Only split planes at ROI borders
    • Example from earlier-on:

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A

A

kd tree post optimizations7
KD-Tree Post-optimizations
  • Observation 2: Most cells too large
    • Reason: Only split planes at ROI borders
    • Example from earlier-on: Green regions would suffice…

C

-

-

C

B

B

B,C

-

A

A,B

A,B,C

A

A

A

kd tree post optimizations8
KD-Tree Post-optimizations
  • Observation 2: Most cells too large
    • Reason: Only split planes at ROI borders
    • Example from earlier-on: Green regions would suffice…
  • Fix: Post-shrinking of cells
    • Cut voxel into slices, cull slices
      • Same problem as before: False culling…
  • Important: Not only fewer cell intersections…
    • Also: Cells much thinner: Finer sampling, fewer artifacts
kd tree post optimizations9
KD-Tree Post-optimizations
  • Observation 3: After shrink/cull, many cells empty
    • Example from earlier-on: Most cells empty after cull/shrink

-

-

C

B

B,C

-

A

A,B

A,B,C

A

kd tree post optimizations10
KD-Tree Post-optimizations
  • Observation 3: After shrink/cull, many cells empty
    • Example from earlier-on: Most cells empty after cull/shrink

C

B,C

A,B

A

kd tree post optimizations11
KD-Tree Post-optimizations
  • Observation 3: After shrink/cull, many cells empty
    • Example from earlier-on: Most cells empty after cull/shrink
    • Optimization: Post-collapse
      • Undo splits that don‘t make sense any more

C

B,C

A,B

A

results
Results
  • Overall Framerate:1Dual-Opteron 2.4GHz, 512x512
results1
Results
  • Overall Framerate: ~5-15 fps @ 1PC
  • Nice scalability to very complex models
    • „ManyIffis“: 24M points w/ shadows  ~2fps@1PC
results2
Results
  • Overall Framerate: ~5-15 fps @ 1PC
  • Nice scalability to very complex models
  • High-quality shading
    • Global Illumination
results3
Results
  • Overall Framerate: ~5-15 fps @ 1PC
  • Nice scalability to very complex models
  • High-quality shading
  • Problems and limitations:
    • Sometimes small holes (false culling, undersampling, …)
    • All is static: Can‘t move points, can‘t change radii
    • Assumes continuous surface:
      • Not applicable to random point cloud (forest leaves…)
summary future work
Summary & Future Work
  • Summary
    • Motivated/Argued for Point-based Ray Tracing
    • Discussed „thin rays“ vs „thick rays“ issue
    • Outlined framework for Interactive PBRT
  • Future work
    • Performance & Stability
      • Bounding the surface, interval arithmetic, …
    • Multiresolution PBRT
      • In particular, for massively complex models
q1 why ray tracing1
Q1: Why Ray Tracing ?
  • Impact of Shadows and Reflections: Example
q2 why point based techniques in ray tracing6
Q2: Why Point-based techniques in Ray Tracing?
  • Need multiresolution approach also for RT
    • Trivial for „nice“ (manifold) meshes (Progressive meshes,…)
    • But: „problematic“ for real-world models (Forest, Boeing, …)
      • Should be much easier for point-based representation
  • Eventual goal of (our) PBRT activities
    • Not ray tracing (nice) point-based models
    • Rather: Multiresolution ray tracing using a PB approach
      • Reduce (in-core) data
      • Fight aliasing
    • Current activities only first step in that direction…
adamson alexa s model
Adamson&Alexa‘s model
  • Observations
    • Need position and normal for each point  assume as given
    • Need radius of influence for each point
    • For each x, most wi(x) will be zero
      • Fast computation: Need to know which...
    • Evaluating F(x) will be costly
      • Need to minimize F(x) calls
      • Need to quickly determine where surface can NOT be
      • Need to minimize number of points contributing to x

 Need to minimize regions of influence (minimize ri !)

so why interactive point based ray tracing
So: Why Interactive Point-based Ray Tracing ?

Advantages of PBG in particular for ray tracers:

  • Native point-based data (acquisition)
    • Avoid tesselation … sure, makes sense.
  • And for native triangular models ?
    • Triangular model  Point-based model  PBRT
      • Does this make sense ?
so why interactive point based ray tracing1
So: Why Interactive Point-based Ray Tracing ?

Advantages of PBG in particular for ray tracers:

 Highly controversial issue amongst ray tracers

  • Ray tracing is logarithmic in scene size, anyway
    • Don‘t need point-based multiresolution capabilities
  • Triangles very well suited for fast ray tracing
    • How to (efficiently) intersect points ?
  • Triangles: well-defined surface
    • How to consistently intersect points ?
    • In particular for secondary rays
      • shadow ray has to see exactly the same surface
    • Sampling: Loss of information ?
  • Many new problems, PBG advantages over rast. don‘t apply…
    • Where are the advantages ?
q1 why ray tracing2
Q1: Why Ray Tracing
  • Impact of Shadows and Reflections: Example
motivation why point based rendering
Motivation:Why Point-based Rendering ?
  • Point-based models become commonplace
    • Acquisition: Almost all models are point clouds
      • Direct PBR simplifies 3D processing pipeline
        • Today: Acquisitiontriangulationrendering
        • Direct PBR: Get rid of (non-trivial) triangulation
    • Plus: Increasing use in rendering/modelling
      • Multiresolution, no connectivity/topology, much simpler,…
motivation why point based rendering1
Motivation:Why Point-based Rendering ?
  • Point-based models become commonplace
    • Acquisition: Almost all models are point clouds
      • Direct PBR simplifies 3D processing pipeline
        • Today: Acquisitiontriangulationrendering
        • Direct PBR: Get rid of (non-trivial) triangulation
    • Plus: Increasing use in rendering/modelling
      • Multiresolution, no connectivity/topology, much simpler,…
  • But – Why point-based ray tracing ?
    • Actually, two different questions:
      • Q1: Why ray tracing for point-based models ?
      • Q2: Why point-based approach to ray tracing ?
outline
Outline
  • Motivation
    • Why point based ray tracing
  • Our approach
    • Thin rays vs thick rays
    • Fast traversal and intersection
  • Results
  • Summary and Future Work
how to ray trace pb models9
How to ray trace PB models ?
  • Alternative 1: Growing rays
    • Many un-answered questions
      • Where exactly is the hit point ?
      • How sensitive is the procedure to exact form of beam ?
        • E.g., what if the beam were traced a little bit further ?

points gathered by beam

Position A

Hitpoint position ?

Same surface ?

ad