Interactive ray tracing of point based models
Download
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 [email protected] 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

[email protected]


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


    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