This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Reason 1: Logarithmic scalability to large modelsReason 1: Logarithmic scalability to large models• Very handy for today‘s huge modelsVery handy for today‘s huge models
• But: For PBR not But: For PBR not thatthat important (multiresolution)… important (multiresolution)…
• Reason 2 : Image quality / shading qualityReason 2 : Image quality / shading quality• Ray traced image quality not yet standard in PBG…Ray traced image quality not yet standard in PBG…
– But would beBut would benice to havenice to have
• Reason 1: Logarithmic scalability to large modelsReason 1: Logarithmic scalability to large models• Very handy for today‘s huge modelsVery handy for today‘s huge models
• But: For PBR not But: For PBR not thatthat important (multiresolution)… important (multiresolution)…
• Reason 2 : Image quality / shading qualityReason 2 : Image quality / shading quality• Ray traced image quality not yet standard in PBG…Ray traced image quality not yet standard in PBG…
– But would beBut would benice to havenice to have
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
• Native point-based data (acquisition)Native point-based data (acquisition)• Direct ray tracing avoids tesselationDirect ray tracing avoids tesselation
– Much simplerMuch simpler
• And for native And for native triangulartriangular models ? models ?• Triangular model Triangular model Point-based model Point-based model PBRT PBRT
– Does this make sense ?Does this make sense ?
• Highly controversial issue amongst ray tracing researchersHighly controversial issue amongst ray tracing researchers
– RT is log. in #tris, anyway. Don‘t need multiresolution…RT is log. in #tris, anyway. Don‘t need multiresolution…
– Many new problems with points as primitivesMany new problems with points as primitives Consistency, efficiency, loss of information…Consistency, efficiency, loss of information…
• Native point-based data (acquisition)Native point-based data (acquisition)• Direct ray tracing avoids tesselationDirect ray tracing avoids tesselation
– Much simplerMuch simpler
• And for native And for native triangulartriangular models ? models ?• Triangular model Triangular model Point-based model Point-based model PBRT PBRT
– Does this make sense ?Does this make sense ?
• Highly controversial issue amongst ray tracing researchersHighly controversial issue amongst ray tracing researchers
– RT is log. in #tris, anyway. Don‘t need multiresolution…RT is log. in #tris, anyway. Don‘t need multiresolution…
– Many new problems with points as primitivesMany new problems with points as primitives Consistency, efficiency, loss of information…Consistency, efficiency, loss of information…
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examplesInteractive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 1: Boeing 777 (350 million triangles, 40 GB data)Example 1: Boeing 777 (350 million triangles, 40 GB data)
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 1: Boeing 777 (350 million triangles, 40 GB data)Example 1: Boeing 777 (350 million triangles, 40 GB data)
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 2: Lawrence Livermore isosurface (8 billion voxels)Example 2: Lawrence Livermore isosurface (8 billion voxels)
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 2: Lawrence Livermore isosurface (8 billion voxels)Example 2: Lawrence Livermore isosurface (8 billion voxels)
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 3: Forest landscape (1.5 billion triangles)Example 3: Forest landscape (1.5 billion triangles)
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Example 3: Forest landscape (1.5 billion triangles)Example 3: Forest landscape (1.5 billion triangles)
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Yes, can render all three already today Yes, can render all three already today without without PB techniquesPB techniques
• But: Doesn‘t make sense (>1G prim. for <1M pixels ?)But: Doesn‘t make sense (>1G prim. for <1M pixels ?)
– Too much data: Tiny camera moveToo much data: Tiny camera movetotally different datatotally different data Even though image doesn‘t change at all…Even though image doesn‘t change at all…
– Sample only every 1000Sample only every 1000thth pixel pixel SevereSevere aliasing aliasing Aliasing: THE most important problem of RTRT todayAliasing: THE most important problem of RTRT today
Need multiresolution approach also for RTNeed multiresolution approach also for RT• Probably best via PB approach Probably best via PB approach
– Current results only intermediate step…Current results only intermediate step…
– … … towards long-term goal of multiresolution (PB)RTtowards long-term goal of multiresolution (PB)RT
Interactive ray tracing: Three recent examplesInteractive ray tracing: Three recent examples• Yes, can render all three already today Yes, can render all three already today without without PB techniquesPB techniques
• But: Doesn‘t make sense (>1G prim. for <1M pixels ?)But: Doesn‘t make sense (>1G prim. for <1M pixels ?)
– Too much data: Tiny camera moveToo much data: Tiny camera movetotally different datatotally different data Even though image doesn‘t change at all…Even though image doesn‘t change at all…
– Sample only every 1000Sample only every 1000thth pixel pixel SevereSevere aliasing aliasing Aliasing: THE most important problem of RTRT todayAliasing: THE most important problem of RTRT today
Need multiresolution approach also for RTNeed multiresolution approach also for RT• Probably best via PB approach Probably best via PB approach
– Current results only intermediate step…Current results only intermediate step…
– … … towards long-term goal of multiresolution (PB)RTtowards long-term goal of multiresolution (PB)RT
How to ray trace PB models ?How to ray trace PB models ?
• Alternative 1: Growing raysAlternative 1: Growing rays• Experience: Tracing beams very costly (much more than rays)Experience: Tracing beams very costly (much more than rays)
• Alternative 1: Growing raysAlternative 1: Growing rays• Experience: Tracing beams very costly (much more than rays)Experience: Tracing beams very costly (much more than rays)
How to ray trace PB models ?How to ray trace PB models ?
• Alternative 1: Growing raysAlternative 1: Growing rays• Many un-answered questionsMany un-answered questions
– Where Where exactlyexactly is the hit point ? is the hit point ? E.g., where to start the shadow ray from ?E.g., where to start the shadow ray from ?
• Alternative 1: Growing raysAlternative 1: Growing rays• Many un-answered questionsMany un-answered questions
– Where Where exactlyexactly is the hit point ? is the hit point ? E.g., where to start the shadow ray from ?E.g., where to start the shadow ray from ?
Hitpoint Hitpoint position ?position ?
Position APosition Apoints gathered points gathered
• Step 1: Choosing the splat radiiStep 1: Choosing the splat radii• Too small Too small Holes in the model Holes in the model
• Too large Too large Many regions of influence will overlap (slow) Many regions of influence will overlap (slow)
• Use Wu et al.‘s optimal subsampling techniqueUse Wu et al.‘s optimal subsampling technique• Wu [EG04]: Determine rWu [EG04]: Determine rii such as to such as to
– Optimally cover surfaceOptimally cover surface
– Achieve minimal overlapAchieve minimal overlap
Optimal solution: Use exactly that techniqueOptimal solution: Use exactly that technique
• Note: Can also use ‚other‘ radii Note: Can also use ‚other‘ radii • e.g., user-specified…e.g., user-specified…
• Might just be slower or contain holesMight just be slower or contain holes
• Step 1: Choosing the splat radiiStep 1: Choosing the splat radii• Too small Too small Holes in the model Holes in the model
• Too large Too large Many regions of influence will overlap (slow) Many regions of influence will overlap (slow)
• Use Wu et al.‘s optimal subsampling techniqueUse Wu et al.‘s optimal subsampling technique• Wu [EG04]: Determine rWu [EG04]: Determine rii such as to such as to
– Optimally cover surfaceOptimally cover surface
– Achieve minimal overlapAchieve minimal overlap
Optimal solution: Use exactly that techniqueOptimal solution: Use exactly that technique
• Note: Can also use ‚other‘ radii Note: Can also use ‚other‘ radii • e.g., user-specified…e.g., user-specified…
• Might just be slower or contain holesMight just be slower or contain holes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with• Each point x always influenced by only few xEach point x always influenced by only few x ii
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with• Each point x always influenced by only few xEach point x always influenced by only few x ii
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
– Leaves: Store list of splats whose ROI overlaps cellLeaves: Store list of splats whose ROI overlaps cell
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
– Leaves: Store list of splats whose ROI overlaps cellLeaves: Store list of splats whose ROI overlaps cell
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
– Leaves: Store list of splats whose ROI overlaps cellLeaves: Store list of splats whose ROI overlaps cell
• KD-Tree: Inherit advantages of fast triangular ray tracingKD-Tree: Inherit advantages of fast triangular ray tracing
– Fast traversal, occlusion culling, good kd-trees (SAH)…Fast traversal, occlusion culling, good kd-trees (SAH)…
• Step 2: Determining the splats to intersect withStep 2: Determining the splats to intersect with– Enclose each splat‘s ROI with tight fitting boxEnclose each splat‘s ROI with tight fitting box
– Build kd-tree over those AA boxesBuild kd-tree over those AA boxes
– Leaves: Store list of splats whose ROI overlaps cellLeaves: Store list of splats whose ROI overlaps cell
• KD-Tree: Inherit advantages of fast triangular ray tracingKD-Tree: Inherit advantages of fast triangular ray tracing
– Fast traversal, occlusion culling, good kd-trees (SAH)…Fast traversal, occlusion culling, good kd-trees (SAH)…
• Step 3: Ray/surface intersection in each voxelStep 3: Ray/surface intersection in each voxel• Find distance t : F(t)=0Find distance t : F(t)=0
• Equidistant sampling along tEquidistant sampling along t
– Have intersection if sgn(F(tHave intersection if sgn(F(t i+1i+1)) != sign(F(t)) != sign(F(tii))))
– But: Too coarse sampling can miss the surfaceBut: Too coarse sampling can miss the surface
• Optimizations: Fast SSE implementation (no details)Optimizations: Fast SSE implementation (no details)
• Quite fast, but: Still main cost factorQuite fast, but: Still main cost factorFurther optimize kd-tree to minimize F(x) callsFurther optimize kd-tree to minimize F(x) calls
• Need to take closer look at kd-treeNeed to take closer look at kd-tree
• Step 3: Ray/surface intersection in each voxelStep 3: Ray/surface intersection in each voxel• Find distance t : F(t)=0Find distance t : F(t)=0
• Equidistant sampling along tEquidistant sampling along t
– Have intersection if sgn(F(tHave intersection if sgn(F(t i+1i+1)) != sign(F(t)) != sign(F(tii))))
– But: Too coarse sampling can miss the surfaceBut: Too coarse sampling can miss the surface
• Optimizations: Fast SSE implementation (no details)Optimizations: Fast SSE implementation (no details)
• Quite fast, but: Still main cost factorQuite fast, but: Still main cost factorFurther optimize kd-tree to minimize F(x) callsFurther optimize kd-tree to minimize F(x) calls
• Need to take closer look at kd-treeNeed to take closer look at kd-tree
• Observation 1: Many full cells don‘t contain surf.Observation 1: Many full cells don‘t contain surf.• Reason: KD-tree was built over ROI‘sReason: KD-tree was built over ROI‘s
– ROI‘s bound surface, but not closelyROI‘s bound surface, but not closely
• Observation 1: Many full cells don‘t contain surf.Observation 1: Many full cells don‘t contain surf.• Reason: KD-tree was built over ROI‘sReason: KD-tree was built over ROI‘s
– ROI‘s bound surface, but not closelyROI‘s bound surface, but not closely
• Observation 1: Many full cells don‘t contain surf.Observation 1: Many full cells don‘t contain surf.• Actual surface only touches few voxelsActual surface only touches few voxels
• Observation 1: Many full cells don‘t contain surf.Observation 1: Many full cells don‘t contain surf.• Actual surface only touches few voxelsActual surface only touches few voxels
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf. • Many non-empty cells that are not necessaryMany non-empty cells that are not necessary
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf. • Many non-empty cells that are not necessaryMany non-empty cells that are not necessary
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf. • Many non-empty cells that are not necessaryMany non-empty cells that are not necessary
– Can make quite a differenceCan make quite a difference
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf. • Many non-empty cells that are not necessaryMany non-empty cells that are not necessary
– Can make quite a differenceCan make quite a difference
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf.
• Fix: Determine min(F()) and max(F()) in each cellFix: Determine min(F()) and max(F()) in each cell Cull cells with min > 0 or max < 0Cull cells with min > 0 or max < 0
• Currently: Sample F with random xCurrently: Sample F with random xCan produce false culling (holes)Can produce false culling (holes)
• Observation 1: Many full cells don‘t contain surf. Observation 1: Many full cells don‘t contain surf.
• Fix: Determine min(F()) and max(F()) in each cellFix: Determine min(F()) and max(F()) in each cell Cull cells with min > 0 or max < 0Cull cells with min > 0 or max < 0
• Currently: Sample F with random xCurrently: Sample F with random xCan produce false culling (holes)Can produce false culling (holes)
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on:Example from earlier-on:
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on:Example from earlier-on:
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on: Green regions would suffice…Example from earlier-on: Green regions would suffice…
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on: Green regions would suffice…Example from earlier-on: Green regions would suffice…
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on: Green regions would suffice…Example from earlier-on: Green regions would suffice…
• Fix: Post-shrinking of cells Fix: Post-shrinking of cells • Cut voxel into slices, cull slices Cut voxel into slices, cull slices
– Same problem as before: False culling…Same problem as before: False culling…
• Important: Not only fewer cell intersections…Important: Not only fewer cell intersections…• Also: Cells much thinner: Finer sampling, fewer artifactsAlso: Cells much thinner: Finer sampling, fewer artifacts
• Observation 2: Most cells too largeObservation 2: Most cells too large• Reason: Only split planes at ROI bordersReason: Only split planes at ROI borders
• Example from earlier-on: Green regions would suffice…Example from earlier-on: Green regions would suffice…
• Fix: Post-shrinking of cells Fix: Post-shrinking of cells • Cut voxel into slices, cull slices Cut voxel into slices, cull slices
– Same problem as before: False culling…Same problem as before: False culling…
• Important: Not only fewer cell intersections…Important: Not only fewer cell intersections…• Also: Cells much thinner: Finer sampling, fewer artifactsAlso: Cells much thinner: Finer sampling, fewer artifacts
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
– Undo splits that don‘t make sense any moreUndo splits that don‘t make sense any more
• Observation 3: After shrink/cull, many cells emptyObservation 3: After shrink/cull, many cells empty• Example from earlier-on: Most cells empty after cull/shrinkExample from earlier-on: Most cells empty after cull/shrink
• Overall Framerate: ~5-15 fps @ 1PCOverall Framerate: ~5-15 fps @ 1PC• Nice scalability to very complex modelsNice scalability to very complex models• High-quality shadingHigh-quality shading
• Problems and limitations:Problems and limitations:• Sometimes small holes (false culling, undersampling, …)Sometimes small holes (false culling, undersampling, …)
• All is static: Can‘t move points, can‘t change radiiAll is static: Can‘t move points, can‘t change radii
– Not applicable to random point cloud (forest leaves…)Not applicable to random point cloud (forest leaves…)
• Overall Framerate: ~5-15 fps @ 1PCOverall Framerate: ~5-15 fps @ 1PC• Nice scalability to very complex modelsNice scalability to very complex models• High-quality shadingHigh-quality shading
• Problems and limitations:Problems and limitations:• Sometimes small holes (false culling, undersampling, …)Sometimes small holes (false culling, undersampling, …)
• All is static: Can‘t move points, can‘t change radiiAll is static: Can‘t move points, can‘t change radii
• Impact of Shadows and Reflections: ExampleImpact of Shadows and Reflections: Example• Impact of Shadows and Reflections: ExampleImpact of Shadows and Reflections: Example
Q2: Why Q2: Why Point-basedPoint-based techniques techniques in Ray Tracing? in Ray Tracing?
• Need multiresolution approach also for RTNeed multiresolution approach also for RT• Trivial for „nice“ (manifold) meshes (Progressive meshes,…)Trivial for „nice“ (manifold) meshes (Progressive meshes,…)
• But: „problematic“ for real-world models (Forest, Boeing, …)But: „problematic“ for real-world models (Forest, Boeing, …)
– Should be much easier for point-based representationShould be much easier for point-based representation
Eventual goal of (our) PBRT activitiesEventual goal of (our) PBRT activities• Not ray tracing (nice) point-based modelsNot ray tracing (nice) point-based models
• Rather: Multiresolution ray tracing using a PB approachRather: Multiresolution ray tracing using a PB approach
– Reduce (in-core) dataReduce (in-core) data
– Fight aliasingFight aliasing
• Current activities only first step in that direction…Current activities only first step in that direction…
• Need multiresolution approach also for RTNeed multiresolution approach also for RT• Trivial for „nice“ (manifold) meshes (Progressive meshes,…)Trivial for „nice“ (manifold) meshes (Progressive meshes,…)
• But: „problematic“ for real-world models (Forest, Boeing, …)But: „problematic“ for real-world models (Forest, Boeing, …)
– Should be much easier for point-based representationShould be much easier for point-based representation
Eventual goal of (our) PBRT activitiesEventual goal of (our) PBRT activities• Not ray tracing (nice) point-based modelsNot ray tracing (nice) point-based models
• Rather: Multiresolution ray tracing using a PB approachRather: Multiresolution ray tracing using a PB approach
– Reduce (in-core) dataReduce (in-core) data
– Fight aliasingFight aliasing
• Current activities only first step in that direction…Current activities only first step in that direction…
So: Why Interactive So: Why Interactive Point-basedPoint-based Ray Tracing ? Ray Tracing ?
Advantages of PBG in particular for ray tracers:Advantages of PBG in particular for ray tracers:• Native point-based data (acquisition)Native point-based data (acquisition)
• Avoid tesselation … sure, makes sense.Avoid tesselation … sure, makes sense.
• And for native And for native triangulartriangular models ? models ?• Triangular model Triangular model Point-based model Point-based model PBRT PBRT
– Does this make sense ?Does this make sense ?
Advantages of PBG in particular for ray tracers:Advantages of PBG in particular for ray tracers:• Native point-based data (acquisition)Native point-based data (acquisition)
• Avoid tesselation … sure, makes sense.Avoid tesselation … sure, makes sense.
• And for native And for native triangulartriangular models ? models ?• Triangular model Triangular model Point-based model Point-based model PBRT PBRT
So: Why Interactive So: Why Interactive Point-basedPoint-based Ray Tracing ? Ray Tracing ?
Advantages of PBG in particular for ray tracers:Advantages of PBG in particular for ray tracers:
Highly controversial issue amongst ray tracersHighly controversial issue amongst ray tracers• Ray tracing is logarithmic in scene size, anywayRay tracing is logarithmic in scene size, anyway
– Don‘t need point-based multiresolution capabilitiesDon‘t need point-based multiresolution capabilities• Triangles very well suited for fast ray tracingTriangles very well suited for fast ray tracing
– How to (efficiently) intersect points ?How to (efficiently) intersect points ?• Triangles: well-defined surfaceTriangles: well-defined surface
– How to consistently intersect points ?How to consistently intersect points ?– In particular for secondary rays In particular for secondary rays
shadow ray has to see exactly the same surfaceshadow ray has to see exactly the same surface– Sampling: Loss of information ?Sampling: Loss of information ?
Many new problems, PBG advantages over rast. don‘t apply…Many new problems, PBG advantages over rast. don‘t apply… Where are the advantages ?Where are the advantages ?
Advantages of PBG in particular for ray tracers:Advantages of PBG in particular for ray tracers:
Highly controversial issue amongst ray tracersHighly controversial issue amongst ray tracers• Ray tracing is logarithmic in scene size, anywayRay tracing is logarithmic in scene size, anyway
– Don‘t need point-based multiresolution capabilitiesDon‘t need point-based multiresolution capabilities• Triangles very well suited for fast ray tracingTriangles very well suited for fast ray tracing
– How to (efficiently) intersect points ?How to (efficiently) intersect points ?• Triangles: well-defined surfaceTriangles: well-defined surface
– How to consistently intersect points ?How to consistently intersect points ?– In particular for secondary rays In particular for secondary rays
shadow ray has to see exactly the same surfaceshadow ray has to see exactly the same surface– Sampling: Loss of information ?Sampling: Loss of information ?
Many new problems, PBG advantages over rast. don‘t apply…Many new problems, PBG advantages over rast. don‘t apply… Where are the advantages ?Where are the advantages ?
• Impact of Shadows and Reflections: ExampleImpact of Shadows and Reflections: Example• Impact of Shadows and Reflections: ExampleImpact of Shadows and Reflections: Example
• Point-based models become commonplacePoint-based models become commonplace• Acquisition: Almost all models are point cloudsAcquisition: Almost all models are point clouds
– Direct PBR simplifies 3D processing pipelineDirect PBR simplifies 3D processing pipeline Today: AcquisitionToday: Acquisitiontriangulationtriangulationrenderingrendering Direct PBR: Get rid of (non-trivial) triangulationDirect PBR: Get rid of (non-trivial) triangulation
• Plus: Increasing use in rendering/modellingPlus: Increasing use in rendering/modelling
– Multiresolution, no connectivity/topology, much simpler,…Multiresolution, no connectivity/topology, much simpler,…
• Point-based models become commonplacePoint-based models become commonplace• Acquisition: Almost all models are point cloudsAcquisition: Almost all models are point clouds
– Direct PBR simplifies 3D processing pipelineDirect PBR simplifies 3D processing pipeline Today: AcquisitionToday: Acquisitiontriangulationtriangulationrenderingrendering Direct PBR: Get rid of (non-trivial) triangulationDirect PBR: Get rid of (non-trivial) triangulation
• Plus: Increasing use in rendering/modellingPlus: Increasing use in rendering/modelling
– Multiresolution, no connectivity/topology, much simpler,…Multiresolution, no connectivity/topology, much simpler,…
• Point-based models become commonplacePoint-based models become commonplace• Acquisition: Almost all models are point cloudsAcquisition: Almost all models are point clouds
– Direct PBR simplifies 3D processing pipelineDirect PBR simplifies 3D processing pipeline Today: AcquisitionToday: Acquisitiontriangulationtriangulationrenderingrendering Direct PBR: Get rid of (non-trivial) triangulationDirect PBR: Get rid of (non-trivial) triangulation
• Plus: Increasing use in rendering/modellingPlus: Increasing use in rendering/modelling
– Multiresolution, no connectivity/topology, much simpler,…Multiresolution, no connectivity/topology, much simpler,…
• But – Why point-based But – Why point-based ray tracingray tracing ? ?• Actually, two different questions:Actually, two different questions:
– Q1: Why Q1: Why ray tracingray tracing for point-based models ? for point-based models ?
– Q2: Why Q2: Why point-basedpoint-based approach to ray tracing ? approach to ray tracing ?
• Point-based models become commonplacePoint-based models become commonplace• Acquisition: Almost all models are point cloudsAcquisition: Almost all models are point clouds
– Direct PBR simplifies 3D processing pipelineDirect PBR simplifies 3D processing pipeline Today: AcquisitionToday: Acquisitiontriangulationtriangulationrenderingrendering Direct PBR: Get rid of (non-trivial) triangulationDirect PBR: Get rid of (non-trivial) triangulation
• Plus: Increasing use in rendering/modellingPlus: Increasing use in rendering/modelling
– Multiresolution, no connectivity/topology, much simpler,…Multiresolution, no connectivity/topology, much simpler,…
• But – Why point-based But – Why point-based ray tracingray tracing ? ?• Actually, two different questions:Actually, two different questions:
– Q1: Why Q1: Why ray tracingray tracing for point-based models ? for point-based models ?
– Q2: Why Q2: Why point-basedpoint-based approach to ray tracing ? approach to ray tracing ?
How to ray trace PB models ?How to ray trace PB models ?
• Alternative 1: Growing raysAlternative 1: Growing rays• Many un-answered questionsMany un-answered questions
– Where exactly is the hit point ?Where exactly is the hit point ?
– How sensitive is the procedure to exact form of beam ?How sensitive is the procedure to exact form of beam ? E.g., what if the beam were traced a little bit further ?E.g., what if the beam were traced a little bit further ?
• Alternative 1: Growing raysAlternative 1: Growing rays• Many un-answered questionsMany un-answered questions
– Where exactly is the hit point ?Where exactly is the hit point ?
– How sensitive is the procedure to exact form of beam ?How sensitive is the procedure to exact form of beam ? E.g., what if the beam were traced a little bit further ?E.g., what if the beam were traced a little bit further ?
Hitpoint Hitpoint position ?position ?
Position APosition Apoints gathered points gathered