real-time visualization of large detailed volumes on gpu

15
1 Real-time visualization of large detailed volumes on GPU Cyril Crassin, Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities INRIA Rhône-Alpes / Grenoble Universities Interactive GigaVoxels

Upload: vail

Post on 22-Feb-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Interactive GigaVoxels. Real-time visualization of large detailed volumes on GPU. Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities. Volumetric representations for special effects. Volumetric special effects [KH05, KAP02] Impressive natural scenes - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Real-time visualization of large detailed volumes on GPU

11

Real-time visualization of large detailed volumes on GPU

Cyril Crassin,Cyril Crassin, Fabrice Neyret, Sylvain LefebvreFabrice Neyret, Sylvain LefebvreINRIA Rhône-Alpes / Grenoble UniversitiesINRIA Rhône-Alpes / Grenoble Universities

Interactive GigaVoxels

Page 2: Real-time visualization of large detailed volumes on GPU

22

Volumetric representations for Volumetric representations for special effectsspecial effects

Volumetric special effectsVolumetric special effects [KH05, [KH05, KAP02]KAP02]

Impressive natural scenesImpressive natural scenesAccurate director vision modelingAccurate director vision modelingRealistic and controllable modelRealistic and controllable model

Voxel enginesVoxel enginesRealistic global illumination modelsRealistic global illumination modelsEffects compositingEffects compositing

Particles, fluids, etc.Particles, fluids, etc.Unified renderingUnified rendering

Costly rendering solutionsCostly rendering solutions Computations timeComputations time Memory occupationMemory occupation

Source: [Digital Domain]

Page 3: Real-time visualization of large detailed volumes on GPU

33

What we doWhat we do Voxels ray-casting for real-time scenes in Voxels ray-casting for real-time scenes in Video GamesVideo Games

Full scenes representationFull scenes representation Multi-Scale: Large and detailedMulti-Scale: Large and detailed

Hyper-texture usageHyper-texture usage Details enhancement on surface-based scenesDetails enhancement on surface-based scenes Procedural amplificationProcedural amplification

AdvantagesAdvantages Compact representation for very small detailsCompact representation for very small details

Memory and rendering efficiencyMemory and rendering efficiency Easy filtering and LODEasy filtering and LOD

3D Mip-Mapping3D Mip-Mapping A lot of tricky effects becomes easyA lot of tricky effects becomes easy

Depth Of Field, volumetric light effectsDepth Of Field, volumetric light effects

Page 4: Real-time visualization of large detailed volumes on GPU

44

Pictures and videosPictures and videos

Page 5: Real-time visualization of large detailed volumes on GPU

55

Data structureData structureHybrid data structureHybrid data structure

NN33-tree : Generalized Octree-tree : Generalized Octree Allow multi-scale subdivision depending on data densitiesAllow multi-scale subdivision depending on data densities

Limit tree depth for rendering performancesLimit tree depth for rendering performances Acceleration structure Acceleration structure

Empty space skippingEmpty space skipping Dense, empty and detailed zones encodingDense, empty and detailed zones encoding

Small voxel grids in leafsSmall voxel grids in leafs Rendering performances Rendering performances

Allow hardware filtering (Tri/Quadri-linear)Allow hardware filtering (Tri/Quadri-linear)Mip-MappingMip-Mapping

Memory efficiencyMemory efficiencyImprove storage cost/structure cost efficiencyImprove storage cost/structure cost efficiencyLocal density hypothesis in complex zonesLocal density hypothesis in complex zones

Data generation and transfer efficiencyData generation and transfer efficiencyRegular blocs generation/loadingRegular blocs generation/loadingBloc transfers to the GPUBloc transfers to the GPU

Page 6: Real-time visualization of large detailed volumes on GPU

66

RenderingRenderingScreen space volume ray-castingScreen space volume ray-casting

Direct NDirect N33-tree traversal on GPU-tree traversal on GPU Close to GPU Kd-tree traversal for triangle Close to GPU Kd-tree traversal for triangle ray-tracing [EVG04,FS05,HSHH07]ray-tracing [EVG04,FS05,HSHH07]

Kd-Restart is the most efficient on current Kd-Restart is the most efficient on current architectures (G80/G92/GT200)architectures (G80/G92/GT200)

Regular bricks rendering in leafsRegular bricks rendering in leafsVolumetric ray-casting [KW03, Sch05]Volumetric ray-casting [KW03, Sch05]

Hardware filteringHardware filtering Mip-MappingMip-Mapping

Adaptive samplingAdaptive sampling Distance dependantDistance dependant

AdvantagesAdvantagesGood scaling on huge volumesGood scaling on huge volumes

Low dependency on data volume, low overdraw, Low dependency on data volume, low overdraw, few geometrical manipulationfew geometrical manipulation

Early rays terminationEarly rays termination

LightingLighting Classical Blinn-Phong per ray sampleClassical Blinn-Phong per ray sample

On the fly computed or stored gradient dataOn the fly computed or stored gradient data Shadow mapsShadow maps

Page 7: Real-time visualization of large detailed volumes on GPU

77

Out-of-core data streaming (1)Out-of-core data streaming (1)Produce / Store on GPU only data needed for the current Produce / Store on GPU only data needed for the current point of viewpoint of view

Tree update and bricks loading in real time during explorationTree update and bricks loading in real time during exploration

GPU Cache mechanismGPU Cache mechanism Pools of chunksPools of chunks

Implemented in texture memoryImplemented in texture memory Sub-Texture update operationsSub-Texture update operations

Manually managed LRU mechanismManually managed LRU mechanism Time stamps updated during renderingTime stamps updated during rendering

Via visibility mechanismVia visibility mechanism

Tree storage: Nodes-PoolTree storage: Nodes-PoolClassical pointer-based structureClassical pointer-based structureSmall size 3D textureSmall size 3D texture

Bricks storage: Bricks-PoolBricks storage: Bricks-PoolVery large 3D texture Very large 3D texture

Usually the whole remaining GPU memoryUsually the whole remaining GPU memory

Page 8: Real-time visualization of large detailed volumes on GPU

88

Out-of-core data streaming (2)Out-of-core data streaming (2)Visibility based loading and LODVisibility based loading and LOD

Loaded tree branches subdivision/mergingLoaded tree branches subdivision/merging Depending on brick distance to the viewDepending on brick distance to the view

A voxel project to one pixel constraintA voxel project to one pixel constraint Nodes visibility detectionNodes visibility detection

Per ray needed nodes information provided by renderingPer ray needed nodes information provided by rendering Screen space Nodes ID buffersScreen space Nodes ID buffers

Fast stream compaction operationFast stream compaction operation Reduced Nodes ID buffer read back to CPUReduced Nodes ID buffer read back to CPU

Progressive loadingProgressive loading Upper nodes used while waiting for new dataUpper nodes used while waiting for new data Bricks kept in parents nodesBricks kept in parents nodes

Min of 3 levels kept for mip-mapping implementationMin of 3 levels kept for mip-mapping implementation

Page 9: Real-time visualization of large detailed volumes on GPU

99

ResultsResults

Scenes Scenes LizardLizard

2048^3 SP FLOAT, 32GB2048^3 SP FLOAT, 32GB Visible ManVisible Man

2048^3 RGBA8, 32GB2048^3 RGBA8, 32GB Bones fieldBones field

8192^3 ALPHA8, 512GB (1GB on disk)8192^3 ALPHA8, 512GB (1GB on disk) Sierpinski spongeSierpinski sponge

8.4M^3 ALPHA88.4M^3 ALPHA8 CloudsClouds

512^3 SP FLOAT512^3 SP FLOATHyper-texture usageHyper-texture usage

Page 10: Real-time visualization of large detailed volumes on GPU

1100

Visible ManVisible Man 2048^3 RGBA8, 32GB, 20FPS@512^22048^3 RGBA8, 32GB, 20FPS@512^2

Page 11: Real-time visualization of large detailed volumes on GPU

1111

LizardLizard 2048^3 SP FLOAT, 32GB, 15FPS@512^22048^3 SP FLOAT, 32GB, 15FPS@512^2

Page 12: Real-time visualization of large detailed volumes on GPU

1122

Sierpinski spongeSierpinski sponge8.4M^3 ALPHA8 procedural, 80FPS@512^38.4M^3 ALPHA8 procedural, 80FPS@512^3

Page 13: Real-time visualization of large detailed volumes on GPU

1133

Bones FieldBones Field8192^3 ALPHA8, 512GB (1GB on disk)8192^3 ALPHA8, 512GB (1GB on disk)

Page 14: Real-time visualization of large detailed volumes on GPU

1144

CloudsClouds 512^3 SP FLOAT512^3 SP FLOAT

Page 15: Real-time visualization of large detailed volumes on GPU

1155

G80 Reverse EngineeringG80 Reverse EngineeringResultsResults

DzdzDzdz

See online:See online: http://www.icare3d.org/GPU/CN08http://www.icare3d.org/GPU/CN08