Title: Interactive Ray Tracing of Pointbased Models
1Interactive Ray Tracingof Point-based Models
- Ingo Wald
- MPI Informatik, Saarbrücken, Germany
- wald_at_mpi-inf.mpg.de
2Motivation
- Why point-based rendering ?
- Many advantages, but no details here at PBG
- 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
?
3Q1 Why Ray Tracing ?
- Reason 1 Logarithmic scalability to large models
- Very handy for todays 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
4Q2 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. Dont need
multiresolution - Many new problems with points as primitives
- Consistency, efficiency, loss of information
5Q2 Why Point-based techniques in Ray Tracing?
- Interactive ray tracing Three recent examples
6Q2 Why Point-based techniques in Ray Tracing?
- Interactive ray tracing Three recent examples
- Example 1 Boeing 777 (350 million triangles, 40
GB data)
7Q2 Why Point-based techniques in Ray Tracing?
- Interactive ray tracing Three recent examples
- Example 2 Lawrence Livermore isosurface (8
billion voxels)
8Q2 Why Point-based techniques in Ray Tracing?
- Interactive ray tracing Three recent examples
- Example 3 Forest landscape (1.5 billion
triangles)
9Q2 Why Point-based techniques in Ray Tracing?
- Interactive ray tracing Three recent examples
- Yes, can render all three already today without
PB techniques - But Doesnt make sense (gt1G prim. for lt1M pixels
?) - Too much data Tiny camera move?totally different
data - Even though image doesnt 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
10How 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 rays
volume - Grow points to have a surface
- can then be found by thin ray
- Long history of debate on which is better
11How to ray trace PB models ?
- Alternative 1 Growing rays
- Experience Tracing beams very costly (much more
than rays)
12How 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 ?
13How 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 ?
14How 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 ?)
surface seen from A
Position A
Same surface, different viewpoint Same hitpoint
? Is it in shadow ?
Hitpoint position ?
15How 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
16How to ray trace PB models ?
- Alternative 2 Growing points
- Define unique surface through points
- Always consistent
- Most trivial solution Use disks/ellipses/
- Trivial
17How 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)
18How to ray trace PB models ?
- Better Define smooth surface
- Use Adamson/Alexas 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-xigtri
- 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
19Choosing 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
20Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Each point x always influenced by only few xi
C
B
D
A
21Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats ROI with tight fitting box
C
B
D
A
22Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats ROI with tight fitting box
- Build kd-tree over those AA boxes
C
B
D
A
23Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats ROI with tight fitting box
- Build kd-tree over those AA boxes
C
B
D
A
24Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats ROI with tight fitting box
- Build kd-tree over those AA boxes
C
B
D
A
25Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats ROI with tight fitting box
- Build kd-tree over those AA boxes
C
B
D
A
26Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats 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,B
A
A,B,C
-
(right side incomplete)
D
A
A
-
27Intersecting the Surface
- Step 2 Determining the splats to intersect with
- Enclose each splats 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,B
A
A,B,C
-
D
A
A
-
28Intersecting 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(ti1)) ! 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
29KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Reason KD-tree was built over ROIs
- ROIs bound surface, but not closely
30KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Example from before
C
C
-
-
B
B
B,C
A,B
A
A,B,C
-
A,B,C
A
A
A,B,C
31KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Actual surface only touches few voxels
C
C
-
-
B
B
B,C
A,B
A
A,B,C
-
A,B,C
A,B,C
A
A
A,B,C
32KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Many non-empty cells that are not necessary
C
C
-
-
B
B
B,C
A,B
A
A,B,C
-
A,B,C
A,B,C
A
A
A,B,C
33KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Many non-empty cells that are not necessary
- Can make quite a difference
C
C
-
-
B
B
B,C
A,B
A
A,B,C
-
A,B,C
A,B,C
A
A
A,B,C
34KD-Tree Post-optimizations
- Observation 1 Many full cells dont contain
surf. - Fix Determine min(F()) and max(F()) in each cell
- Cull cells with min gt 0 or max lt 0
- Currently Sample F with random x
- Can produce false culling (holes)
- Better Interval arithmetic (Not implemented yet)
35KD-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,B
A
A,B,C
-
A
A
36KD-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,B
A
A,B,C
-
A
A
A
37KD-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
38KD-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,B
A
A,B,C
-
A
39KD-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
40KD-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 dont make sense any more
C
B,C
A,B
A
41Results
- Overall Framerate1Dual-Opteron 2.4GHz, 512x512
42Results
- Overall Framerate 5-15 fps _at_ 1PC
- Nice scalability to very complex models
- ManyIffis 24M points w/ shadows ? 2fps_at_1PC
43Results
- Overall Framerate 5-15 fps _at_ 1PC
- Nice scalability to very complex models
- High-quality shading
- Global Illumination
44Results
- Overall Framerate 5-15 fps _at_ 1PC
- Nice scalability to very complex models
- High-quality shading
- Problems and limitations
- Sometimes small holes (false culling,
undersampling, ) - All is static Cant move points, cant change
radii - Assumes continuous surface
- Not applicable to random point cloud (forest
leaves)
45Summary 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
46Questions ?
47Questions ?
48Q1 Why Ray Tracing ?
- Impact of Shadows and Reflections Example
49Q2 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
50AdamsonAlexas 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 !)
51So 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 ?
52So 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
- Dont 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.
dont apply - Where are the advantages ?
53Q1 Why Ray Tracing
- Impact of Shadows and Reflections Example
54MotivationWhy 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,
55MotivationWhy 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 ?
56Outline
- Motivation
- Why point based ray tracing
- Our approach
- Thin rays vs thick rays
- Fast traversal and intersection
- Results
- Summary and Future Work
57How 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 ?