Siggraph realtime radiosity architecture

37
A Real Time Radiosity Architecture for Video Games Sam Martin, Per Einarsson Geomerics, DICE

description

Realtime radiosity

Transcript of Siggraph realtime radiosity architecture

Page 1: Siggraph realtime radiosity architecture

A Real Time Radiosity Architecture for Video Games

Sam Martin, Per Einarsson

Geomerics, DICE

Page 2: Siggraph realtime radiosity architecture

Radiosity Architecture

• Hot topic: real time radiosity– Research focus on algorithms– Several popular “categories” of algorithm

• Architecture– Structure surrounding the algorithm– Use case: Integration in Frostbite 2

Page 3: Siggraph realtime radiosity architecture

Agenda

• Enlighten– Overview– Architectural Features

• Frostbite– Overview – Pipelines– Demo

• Summary / Questions

Page 4: Siggraph realtime radiosity architecture

Overview: Goals And Trade-offs

• XBox360, PS3, Multi-core PCsTarget current consoles

• Cost and quality must be scalableFlexible toolkit, not fixed solution

• Cannot sacrifice VQ for real timeMaintain visual quality

• Physically based but controllable“Believability” over accuracy

Page 5: Siggraph realtime radiosity architecture

Four Key Architectural Features

1. Separate lighting pipeline

2. Single bounce with feedback

3. Lightmap output

4. Relighting from target geometry

Page 6: Siggraph realtime radiosity architecture

“Arches”

Page 7: Siggraph realtime radiosity architecture

Enlighten Pipeline

Precompute

• Decompose scene into systems• Project detail geometry to target geometry for relighting• Distill target shape for real time radiosity

Runtime

• Render direct lighting as usual (GPU)• Asynchronously generate radiosity (CPU)• Combine direct and indirect shading on GPU

Page 8: Siggraph realtime radiosity architecture

Runtime Lighting Pipeline

On target mesh

On detail mesh + indirect specular

Standard lighting

Point-sampled input to Enlighten

PointSpotDirectionalEnvironmentAreaUser-specified

+ radiosity from previous frame

Direct Light Sources

Final GPU composite

Page 9: Siggraph realtime radiosity architecture

Direct Lighting

Page 10: Siggraph realtime radiosity architecture

Point Sampled Direct Lighting

Page 11: Siggraph realtime radiosity architecture

Enlighten Output (Target)

Page 12: Siggraph realtime radiosity architecture

Enlighten Output (Detail)

Page 13: Siggraph realtime radiosity architecture

Final Composite

Page 14: Siggraph realtime radiosity architecture

Model single bounce with feedback

Bounce feedback scale = 1.0 Bounce feedback scale = 0.0

Page 15: Siggraph realtime radiosity architecture

Enlighten Lightmap Output

106 x 106 texels90% coverage “Directional

Irradiance”

“Spherical”

Page 16: Siggraph realtime radiosity architecture

Target Geometry

Has simple UV surface area

Tri count not important

Various authoring options

Page 17: Siggraph realtime radiosity architecture

Detail Geometry

UVs generated by projection

No additional lighting data

“Off-axis” lighting comes from directional data in lightmap

Does not interact with radiosity

Page 18: Siggraph realtime radiosity architecture

Example UV Projection

Page 19: Siggraph realtime radiosity architecture

Recap: Architectural Features

1. Separate lighting pipeline

2. Single bounce with feedback

3. Lightmap output

4. Relighting from target geometry

Page 20: Siggraph realtime radiosity architecture

Agenda

• Enlighten– Quick overview, Key decisions, The future

• Frostbite– Motivation– Pipeline– Runtime– Demo

• QA?

Page 21: Siggraph realtime radiosity architecture

Motivation

• Why real-time radiosity in Frostbite?

- Workflows and iteration times

- Dynamic environments

- Flexible architecture

Page 22: Siggraph realtime radiosity architecture

Precompute pipeline

1. Classify static and dynamic objects

2. Generate radiosity systems

3. Parametrize static geometry

4. Generate runtime data

Page 23: Siggraph realtime radiosity architecture

1. Static & dynamic geometry

• Static objects receive and bounce light- Uses dynamic lightmaps

• Dynamic object only receive light- Samples lighting from lightprobes

Mesh classification Underlying geometry Transferred lightingInput scene

Page 24: Siggraph realtime radiosity architecture

2. Radiosity systems

• Processed and updated in parallel • Input dependencies control light transport• Used for radiosity granularity

Systems Input dependencies

Page 25: Siggraph realtime radiosity architecture

3. Parametrization

Automatic uv projection System atlases

• Static meshes uses target geometry- Target geometry is used to compute radiosity- Project detail mesh onto target mesh to get uvs

• Systems packed into separate uv atlases

Page 26: Siggraph realtime radiosity architecture

4. Runtime data generation

Distributed precompute pipeline generates runtime datasets for dynamic radiosity updates

• One dataset per system (streaming friendly)• Distributed precompute with Incredibuild’s XGI• Data dependent on geometry only (not light or albedo)•

Page 27: Siggraph realtime radiosity architecture

Rendering

• Separate direct light / radiosity pipeline- CPU: radiosity

- GPU: direct light & compositing

• Frostbite uses deferred rendering- All lights can bounce dynamic radiosity

• Separate lightmap / lightprobe rendering- Lighmaps rendered in forward pass

- Lightprobes added to 3D textures and rendered deferred

Page 28: Siggraph realtime radiosity architecture

Runtime pipeline

1) Radiosity pass (CPU) Update indirect lightmaps & lightprobes Lift lightprobes into 3D textures

2) Geometry pass (GPU) Add indirect lightmaps to separate g-buffer Use stencil buffer to mask out dynamic objects

3) Light pass (GPU) Render deferred light sources Add lightmaps from g-buffer Add lightprobes from 3D textures

Page 29: Siggraph realtime radiosity architecture

Direct lightingRadiosity

Page 30: Siggraph realtime radiosity architecture

Direct light

Page 31: Siggraph realtime radiosity architecture

Lightmaps

Page 32: Siggraph realtime radiosity architecture

Lightprobes

Page 33: Siggraph realtime radiosity architecture

Final composite

Page 34: Siggraph realtime radiosity architecture

Demo

Page 36: Siggraph realtime radiosity architecture

Bonus Extras! Enlighten Future

• Replace lightmaps?• Shift more towards data parallel?• Incremental update vs fixed cost?• Split lighting integral by distance?

Owner
I'm unsure about this slide. Maybe cut or move to 'extra slides'.Per - any thoughts?
Page 37: Siggraph realtime radiosity architecture