dynamic sparse voxel octrees for next-gen real-time rendering

62
This subtitle is 20 points Bullets are blue They have 110% line spacing, 2 points before & after Longer bullets in the form of a paragraph are harder to read if there is insufficient line spacing. This is the maximum recommended number of lines per slide (seven). Sub bullets look like this Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Upload: others

Post on 11-Feb-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Page 2: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Beyond Programmable Shading Course ACM SIGGRAPH 2012

Dynamic Sparse Voxel Octrees

For Next-Gen Real-Time Rendering

Cyril Crassin, NVIDIA Research

Page 3: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Massive complex scenes

Page 4: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012 [Matt Swoboda] Procedural content

Page 5: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Multi-Bounces GI

Page 6: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Compact multi-resolution

voxel representation

Sparse Voxel Octree

Laine and Karras

(NVIDIA) 2010

Olick. 2008

Crassin et al. 2009

(GigaVoxels)

Page 7: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

SVO as a 3D G-Buffer

Page 8: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Hierarchical volumes

– Multi-resolution geometry

– Filtered values

Voxel Octree

Page 9: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Pre-filtered geometric representation

– Adapt geometry-resolution to sampling resolution

Geometry pre-filtering

Page 10: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Voxel cone-tracing model Camera

Rendered image

Pixel cone footprint

Source pixel

Page 11: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Filtered geometry is integrated as

a participating media

– Volume ray-casting

Voxel cone-tracing model

Page 12: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Challenges

#1 : Cinematic image quality

• Aliasing, Depth Of Field, Geometry Complexity

• Transparency

#2 : Illumination

• Visibility and light transport

#4 : Production costs

• Content creation, Procedural amplification /Generation, LODs

#5 : Scaling up

• Massive detailed scenes

Representation

Global scene access Filtering

Page 13: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

Beyond Programmable Shading Course ACM SIGGRAPH 2012

SVO STORAGE AND TRAVERSAL

Page 14: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Nodes in linear video memory

– 2x2x2 nodes tiles

– 1 pointer per node to a node-tile

Voxels stored into a 3D texture

– Allows hardware tri-linear interpolation

SVO Structure

1

2

4 5

8 6 7

3

9

1 2 3 4 5

Octree

pool Lin

ear

Mem

ory

6 7 8 9

3D

Textu

re

Brick

pool

Page 15: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

One thread/cone

KD-restart

– Dependent accesses

Stack-based

– Local thread storage

Octree traversal

1

2 3

4 5

6 7 8 9

1

2

4 5

6 7

3

Tree Descent

Skip

Node

Page 16: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

Beyond Programmable Shading Course ACM SIGGRAPH 2012

CINEMATIC IMAGE QUALITY

Challenge #1

Page 17: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Massive detailed scenes

Pixel

Page 18: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Supersampling / MSAA not scalable

– Will always be beaten by geometry

Per-primitive transform + raster

– For mostly averaged geometries

Per-pixel integration (AA)

Pixel

Page 19: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Pre-filtering geometry is the only-way to go !

– Adapt geometry-complexity to sampling resolution

But B-reps don’t filter correctly

Pre-filtering

[DSSC08]

Page 20: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Scalable representation

– Unique rep + multi-scale

– Continuous LOD

Very high voxel

resolution

– Animation difficult

Voxel LOD

Camera Rendered image

Pixel cone footprint

Pre-filtered voxel

samples

Cone source pixel

Page 21: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

One 3D texture/tree [Bruneton et al. 2012]

– See PROLAND : http://proland.inrialpes.fr

• 51FPS @1024x768, 180,000 trees. GTX 580

• Trees only : 10.6ms

Forest rendering

Page 22: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

The blurrier, the faster !

Voxel depth-of-field

Lens Image plane

Aperture

Plane in focus

Page 23: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Representing Appearance And

Pre-Filtering Subpixel Data In

SVOs

[Heitz and Neyret 2012]

3-10Mcones/s

– 100-300ms / frame

@720p (1280x720)

Correlation problem

[Heitz and Neyret 2012]

×

Page 24: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Primary rays require massive voxel

resolutions

– Require out-of-core rendering

Animation is difficult

– Highly tessellated object in one voxel

Limitations

Page 25: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

One cone per pixel

The smoother, the faster to compute !

Voxel soft shadows

Area light source

Occluder

3-9ms @ 1280x720

Page 26: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Multiple shadowing lights sources

– Only one geometry pass

– Scales much better than shadow maps !

Voxel soft shadows

Page 27: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

8ms @ 512x512 – 27ms @ 720p - 62ms @ FullHD Voxel-Based GI

Page 28: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Hybrid rendering pipeline

– Rasterized primary rays

• GPU pipeline optimized for direct visibility

– Cone-traced secondary rays

• Flexibility and scalability

Forward or deferred rendering

Rendering pipeline

Page 29: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

GIVoxels

Interactive Indirect Illumination Using Voxel Cone Tracing

Page 30: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Rendering algorithm

1. Light injection

– Rasterization (RSM)

2. Light filtering

– Compute

3. Camera pass (final gathering)

– Forward FS or deferred

compute shader

Importance sampling

of the BRDF

Diffuse cones

l

n View

direction

d

n

Light source

Specular cone

Page 31: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Glossy reflections

Page 32: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Multiple-bounces

Page 33: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Scalable lighting rep. !

– Independent of geometric complexity

Control over rendering time

– Maximum voxel resolution (Number of octree levels)

– Number of cones per pixel / Aperture of

the cones: The wider, the faster !

Graceful performance degradation

Performances and scalability

Page 34: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Large cones

– Precision / Light leaking

But never noisy !!

Discussion

Page 35: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Memory consumption:

– 9 levels SVO: ~200MB-1GB

• + Temporary buffers for building

Construction + Update Time (GK104)

– Construction : ~70ms at initialization time

– Update: ~4-5ms / frame

What is the cost of an SVO ?

GI Sponza Demo

Page 36: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Coherency: Execution + Data access

Traversal coherency

Soft Shadow Diffuse Tracing

Page 37: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Traversal coherency

Diffuse Only Diffuse + Specular

Page 38: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

This can run in a game !

• SVOgi

Voxel-based GI

Page 39: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

The Technology Behind the

“Unreal Engine 4 Elemental Demo”

Martin Mittring

Advances in Real-Time Rendering in

Games: Part II

Wednesday, 8 August 2:05 pm - 3:05 pm

Page 40: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

Beyond Programmable Shading Course ACM SIGGRAPH 2012

CONTENT CREATION

Page 41: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Signed Distance Field

• Procedural generation and Amplification

Procedural content generation

[Slisesix, by rgba] [Matt Swoboda]

Page 42: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

CSG operations

– 3D-Coat

Voxel sculpting

© 3D-Coat 2010

Page 43: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

LODs

– Eg. Terrain generation in Crysis

– No problem of topology

Procedural content generation

Crysis 2 terrain editor

[GPU Gems 2]

Page 44: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

Beyond Programmable Shading Course ACM SIGGRAPH 2012

OTHER COOL USAGES

Page 45: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Brick maps [Christensen and Batali 2004]

– Bake static lighting

Irradiance volumes [Greger et al 1998]

– Volume of diffuse lighting samples

– Pre-computed Radiance Transfer [Sloan et al. 2002]

World-space light baking

[Greger 98]

Christensen and Batali (Pixar) 2004

Page 46: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Rendering volumetric effects

– Smoke, clouds…

Participating medias

[Greger 98]

Page 47: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Physics: Collision detection

Other applications

Allard et al. Siggraph 2010

Page 48: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Particles collision detection

Fluid simulation

– Eulerian or Lagrangian SPH

Other applications

Crane et al. (NVIDIA) 2007 Source: Igor Zanic

Simon Green’s Torch Man Demo

Page 49: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

Beyond Programmable Shading Course ACM SIGGRAPH 2012

DISCUSSIONS AND DIRECTIONS

Page 50: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Animation and dynamic content

– If you use the geometry enough time to amortize,

it is fine !

Limitations

Page 51: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Compute-based [Schwarz and Seidel 10, Pantaleoni 11]

– Not using hw rasterizer

Multi-pass graphics-based

– Slice-by-slice / Multiple-slices MRT [Fang et al. 00, Crane et al. 07, Li et al. 05,

Dong et al. 04, Zhang et al. 07, Eisemann and Decoret 08]

Voxelization

Crane et al. 2007

VoxelPipe [Pantaleoni 11]

Page 52: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Thin surface / Classical conservative

Single Pass Dense Voxelization

x

x

y y z

z

Y-proj

Z-proj

X-proj

Normal

Triangle Dominant

Axis Selection

Triangle Projection

Voxel Attributes

Computation

Geometry Shader Fragment Shader

Ha

rdw

are

Se

tup

/Ra

ster

.

Write to 3D surface

Edges Shifting

Fragments Clipping

VS

Rasterization Conservative Rasterization

Page 53: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Top-down octree construction

– Compute + Graphics

Octree construction

Node queue

1 2 3 4 0

Create New Node Tiles

Node queue

1 2 3 4 5 6 7 8 0

9 10 11 12 13 14 15 16

1 thread per node

Voxelize Mesh at level resolution

0

1

2

Tag octree nodes

1 thread per voxel-fragment

Page 54: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

9 levels octree (512^3)

– RGBA32F

Kepler GK104 performance

– 30% - 58% faster than Fermi GF100

Performances

Times in ms

Page 55: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

How to animate large

scale of small details ?

– FFD deformation

Voxel deformation

[Neyret 98]

Shell Maps [Porumbescu et al. 05, Jeschke et al. 07]

[Decaudin and Neyret 2009]

Page 56: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Memory cost of large scenes

– Needs streaming or dynamic re-voxelization

• Well fitted to streaming

Limitations

Page 57: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Problem: Primary rays require massive

amounts of voxels !

– Large scenes + details (screen resolution @ all

necessary scales and everywhere)

Dynamic streaming can be affordable

– Ideal case: 2/3 voxels per pixel @1080p

1920x1080 x3 x32B/voxel ~= 200MB

Challenges

Page 58: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

8K^3 virtual

resolution

50ms @512x512

8800 GT (2007)

~5Mcones/s

Massive scenes

Page 59: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Virtualized virtual memory system

– Dynamic paging

– Octree as a hierarchical page-table

• Virtually unlimited resolution

• At the cost of a log time point sampling

Out-of-core

1

2 3

4 5

6 7 8 9

10 11

12 13 14 15

16 17

20 21

18 19

Page 60: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Johan Andersson

Elmar Eisemann

Aaron Lefhon

David Luebke

Yury Uralsky

Ignacio Llamas

For helpful suggestions and discussions

Acknowledgements

Page 61: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

Contact details

• Email: [email protected]

• Website: http://www.icare3d.org

• Twitter: @Icare3D

Thank you !

Page 62: Dynamic Sparse Voxel Octrees For Next-Gen Real-Time Rendering

This subtitle is 20 points

Bullets are blue

They have 110% line spacing, 2 points before & after

Longer bullets in the form of a paragraph are harder to

read if there is insufficient line spacing. This is the

maximum recommended number of lines per slide

(seven).

Sub bullets look like this

Beyond Programmable Shading Course, ACM SIGGRAPH 2012

This slide has a 16:9 media window