SlideShare ist ein Scribd-Unternehmen logo
1 von 63
SMOKE & MIRRORS:
ADVANCED VOLUMETRIC EFFECTS FOR GAMES
Simon Green, Nuttapong Chentanez
OVERVIEW
 Background
 Simulation
 Rendering
 Demos
 Future work
WHAT IS FLAMEWORKS?
 A system for adding volumetric fire and smoke effects to
games
 Part of the NVIDIA GameWorks family of visual effects
libraries
 Combines
— Efficient grid-based fluid simulator
— High quality volume rendering
 Inspired by ILM Plume, FumeFX, Maya Fluids, Houdini Pyro
— But real-time!
GOALS
High quality
Fast, efficient, scalable
Simple, easy to integrate into games
Customizable
SIMULATION
 Grid-based fluid simulator
— Gas simulator really – no liquid surface tracking etc.
 Features
— Multi-grid solver
— MacCormack advection (second order accurate)
— Vorticity confinement
— Combustion model
— Density resolution multiplier (upscaling)
SIMULATION
 Quantities
— Velocity
— Temperature
— Fuel
— Smoke Density
 Discretization
— Use collocated grid i.e. all quantities stored at cell center
— Stored in two vec4 3D textures
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
ADVECTION
 Fluid physical quantities such as temperature, density
etc. are moved by fluid velocity
— Fluid velocity itself is also moved by fluid velocity!
 Semi-Lagrangian Method [Stam 99]
— Start at a cell center
— Trace velocity field backward in time
— Interpolate quantity from grid
 Tri-Linear interpolation
 Optionally, move fuel at faster speed
ADVECTION
 Semi-Lagrangian method is first order accurate
— Causes a lot of numerical diffusion
— Smoke and flame smooth out
— Small scale details disappear
— Vortices disappear
 Use Modified MacCormack Method [Selle et al. 08]
— For temperature, density, fuel only
— Second order accurate
— Tracing backward and then forward in time to estimate the error
— Subtract the estimated error off to get a more accurate answer
ADVECTION
Semi-Lagrangian MacCormack
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
VORTICITY CONFINEMENT
 Identify where vortices are, then add force to amplify them
[Fedkiw et al. 01]
Before After* *exaggerated for visualization purpose
VORTICITY CONFINEMENT
Without vorticity confinement With vorticity confinement
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
EMITTERS
 Add density, temperature, fuel and velocity to simulation
 Currently supported shapes
— Sphere
— Plane
— Box
— Cone
 Custom emitters and force fields possible using callbacks
— Developer can write compute shaders that write to density and
velocity textures
CUSTOM EMITTER HLSL EXAMPLE
Texture3D<float4> srcTex : register (t0);
RWTexture3D<float4> dstTex : register (u0);
[numthreads(THREADS_X, THREADS_Y, THREADS_Z)]
void DensityEmitter(uint3 i : SV_DispatchThreadID)
{
// read existing data at this cell
float4 d = srcTex[i];
float3 p = voxelToWorld(i);
float r= length(p – emitterPos);
if (r < emitterRadius) {
d.x += smoothstep(emitterRadius, emitterInnerRadius, r);
};
// write new data
dstTex[i] = d;
}
COMBUSTION MODEL
 If temperature is above ignition temp and there is fuel,
combustion occurs:
— Consumes fuel
— Increases temperature
— Generates expansion by modifying simulation
divergence [Feldman & O’Brien 03]
— Temperature causes upwards buoyancy
 Optionally have temperature cooling
— Cooling rate proportional to temperaturek
— k = 4 is commonly used in practice
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
INCOMPRESSIBILITY SOLVER
 Goal: Make velocity field divergence free
 Why?
— Incompressible fluid -> divergence free velocity field
— Responsible for swirling motion commonly associated with fluid
— Conserves mass
 How?
— Compute a pressure field whose gradient canceled out divergence of
velocity field [Stam 99]
— Pressure field is the solution to a linear system
SOLVING LINEAR SYSTEM
 Geometric multi-grid
— Open boundary on top, sides
— Closed boundary on bottom
— Ignores internal obstacles
 Use Iterate Orthogonal Projection (IOP) [Molemaker et al. 08],
to enforce solid boundary condition for internal obstacles
— Set the normal component of fluid velocity to that of solid
— Do multi-grid
— Set the normal component of fluid velocity to that of solid
— (can repeat for more accurate solution)
SIMULATION LOOP
Incompressibility
Solve
Advection
Vorticity
Confinement
Add SourceCombustion
OBSTACLES
Currently support:
 Implicits: sphere, capsule, box
 Pre-computed signed distance fields (stored on a grid)
 Can be scaled, translated, rotated during run time
We rasterize the following to grid at each time step:
 Distance to nearest obstacle
 Normal and velocity of the nearest obstacle
Solver then use these fields for all simulation steps
Advection and incompressibility solve
MOVING GRID
 Grid can be translated to follow moving objects
 Basically adds opposite velocity during advection
 Currently grid is always axis-aligned
DRAGON DEMO
128 x 128 x 256 velocity grid (4M voxels)
2x density res multiplier = 256 x 256 x 512 (32M voxels)
~30fps on GeForce Titan
HIGH-RES DENSITY
 Density grid can be stored at higher resolution than velocity
— Usually 2x or 4x resolution
 Improves performance since velocity solver is main bottleneck
 Velocities are interpolated during density advection
— Not strictly correct since interpolated velocities aren’t divergence-
free
— But looks fine
DENSITY 1X
DENSITY 2X
DENSITY 4X
RENDERING OPTIONS
—Particles
 Advect particles through velocity field from simulation
 Render as point sprites
 Requires depth sorting for correct bending
—Iso-surface rendering
 Using marching cubes or ray marching to extract surface
—Volume Rendering
 Highest quality option
VOLUME RENDERING
Separate part of FlameWorks
Optional - developers are free to do their own rendering
Implemented using ray-marching in pixel shader
Features
Color mapping
Depth compositing
Down-sampled rendering with up-sampling
Empty space skipping
Edge fading
Heat Haze
COLOR MAPPING
Temperature is mapped to color using 1D texture LUT
Can also effect alpha (transparency)
Can use a physically-based Blackbody radiation model
(see GTC 2012 talk)
Or arbitrary artist-defined map
COMPOSITING
HEAT HAZE
 Adds to perception of heat
 Offset background lookup based on gradient of temperature
(or just luminance) in screen space
HEAT HAZE - OFF
HEAT HAZE - ON
LINEAR FILTERING
 Fastest option
 Some artifacts at low res
CUBIC FILTERING
 Smoother
— Blurs some details
 Uses 8 bilinear lookups
— [Sigg & Hadwiger 05]
 But ~8 times more expensive
ALTERNATIVE LOOKS - TOON SHADING
VOLUMETRIC SHADOWS
Shadows are very important for smoke, dust etc.
We generate a dense 3D shadow volume as a pre-pass
Can be generated at fraction of density texture resolution
(½ or ¼ typically)
Ray march towards light, computing transmittance
For dense volumes, only need small number of samples (2-8)
Problem: banding visible
Solution: jitter ray start position towards light by random
amount
Causes noise, so blur result in 3D
SHADOWS - OFF
SHADOWS – 2 SAMPLES
SHADOWS – 4 SAMPLES
SHADOWS – 4 SAMPLES + JITTER
SHADOWS – 4 SAMPLES + JITTER + BLUR
VOLUME SCATTERING APPROXIMATION
 Scattering is an important effect for smoky volumes
 Simple approximation:
— Evaluate lighting (emission) to 3D texture
— (High dynamic range is important)
— Blur texture in 3 dimensions
 Separable blur
— Read blurred texture during ray march
 Mix with original
 Similar to Crytek light propagation volumes
REFLECTIONS
 Easy to cast arbitrary rays though volumes
 E.g. Reflections of fire in other objects
 Calculate reflection ray, intersect with volume bounding box,
then ray march through volume
 Can use a down-sampled volume (mipmaps) for blurry
reflections
RAY MARCHED REFLECTIONS
TEXTURE COORDINATE ADVECTION
 For low resolution sims, procedural texturing can be useful to
add detail
 Advect 3D texture coordinates, use to add procedural noise to
density/temperature
— Use a simplified version of “Advected Textures” [Neyret 03]
 Advect several sets of 3D texture coordinates
— Coordinates blur out over time
— So regenerate periodically
— Blend between results of looking up in each texture, to achieve
smooth results
IMPLEMENTATION
 Current implementation uses DirectX 11 Compute
— best fit for games
— good graphics interoperability
— potential for simultaneous graphics-compute
 OpenGL version possible in future
— Performance of mobile GPUs is increasing quickly
SIMULATION PERFORMANCE
X Y Z Voxels Grid size
(4 x fp16)
Time
(msecs)
64 64 64 256K 2 MB 1.0
128 64 64 512K 4 MB 1.7
128 128 128 2M 8 MB 5.1
256 128 128 4M 32 MB 10.7
256 256 256 16M 128 MB 40.0
GeForce GTX Titan
Numbers subject to change.
FUTURE WORK
 Optimization
 Integration with GI-Works
— Fire acts as volumetric light source
 Improved volume rendering
— More general lighting
— Frustum buffers for compositing multiple volumes
 Z-buffer collisions
 Simulation in the cloud?
QUESTIONS?
 Twitter: @simesgreen
REFERENCES
 Stable Fluids by Stam J. 1999
 Visual Simulation of Smoke by Fedkiw R., Stam J.and Jensen W. H. 2001
 Animating Suspended Particle Explosions by Feldman B. and O’Brien J. 2003
 Advected Textures by Fabrice N. 2003
 Fast Third-Order Texture Filtering by Sigg C. and Hadwiger M. 2005
 Low Viscosity Flow Simulations for Animation by Molemaker J., Cohen M. J., Patel
S. and Noh J. 2008
 An Unconditionally Stable MacCormack Method by Selle A., Fedkiw R., Kim B., Liu
Y. and Rossignac J. 2008
 Water Flow in Portal 2 by Vlachos A. 2010
 Flame On: Real-Time Fire Simulation for Video Games by Green S. 2012

Weitere ähnliche Inhalte

Was ist angesagt?

A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemBo Li
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
HDR Theory and practicce (JP)
HDR Theory and practicce (JP)HDR Theory and practicce (JP)
HDR Theory and practicce (JP)Hajime Uchimura
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingElectronic Arts / DICE
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The SurgePhilip Hammer
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsMark Kilgard
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Johan Andersson
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3stevemcauley
 
Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2Philip Hammer
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 

Was ist angesagt? (20)

A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering System
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
HDR Theory and practicce (JP)
HDR Theory and practicce (JP)HDR Theory and practicce (JP)
HDR Theory and practicce (JP)
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Beyond porting
Beyond portingBeyond porting
Beyond porting
 
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3Shiny PC Graphics in Battlefield 3
Shiny PC Graphics in Battlefield 3
 
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time RenderingDD18 - SEED - Raytracing in Hybrid Real-Time Rendering
DD18 - SEED - Raytracing in Hybrid Real-Time Rendering
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Dissecting the Rendering of The Surge
Dissecting the Rendering of The SurgeDissecting the Rendering of The Surge
Dissecting the Rendering of The Surge
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUs
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2Bindless Deferred Decals in The Surge 2
Bindless Deferred Decals in The Surge 2
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 

Ähnlich wie FlameWorks GTC 2014

D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And EffectsThomas Goddard
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...Johan Andersson
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3Electronic Arts / DICE
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxMannyK4
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)byteLAKE
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014Jarosław Pleskot
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solver
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solverS4495-plasma-turbulence-sims-gyrokinetic-tokamak-solver
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solverPraveen Narayanan
 
CS 354 Texture Mapping
CS 354 Texture MappingCS 354 Texture Mapping
CS 354 Texture MappingMark Kilgard
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applicationsstefan_b
 
Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Matthias Trapp
 
Realtime 3D Visualization without GPU
Realtime 3D Visualization without GPURealtime 3D Visualization without GPU
Realtime 3D Visualization without GPUTobias G
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Johan Andersson
 
Masked Software Occlusion Culling
Masked Software Occlusion CullingMasked Software Occlusion Culling
Masked Software Occlusion CullingIntel® Software
 
Borderless Per Face Texture Mapping
Borderless Per Face Texture MappingBorderless Per Face Texture Mapping
Borderless Per Face Texture Mappingbasisspace
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applicationsstefan_b
 
Unity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxUnity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxssuser2c3c67
 
Implementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererImplementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererDavide Pasca
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderEidos-Montréal
 

Ähnlich wie FlameWorks GTC 2014 (20)

DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
D3 D10 Unleashed New Features And Effects
D3 D10 Unleashed   New Features And EffectsD3 D10 Unleashed   New Features And Effects
D3 D10 Unleashed New Features And Effects
 
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
The Intersection of Game Engines & GPUs: Current & Future (Graphics Hardware ...
 
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3
 
Practical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsxPractical spherical harmonics based PRT methods.ppsx
Practical spherical harmonics based PRT methods.ppsx
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
 
The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014The Technology behind Shadow Warrior, ZTG 2014
The Technology behind Shadow Warrior, ZTG 2014
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solver
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solverS4495-plasma-turbulence-sims-gyrokinetic-tokamak-solver
S4495-plasma-turbulence-sims-gyrokinetic-tokamak-solver
 
CS 354 Texture Mapping
CS 354 Texture MappingCS 354 Texture Mapping
CS 354 Texture Mapping
 
Shadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive ApplicationsShadow Techniques for Real-Time and Interactive Applications
Shadow Techniques for Real-Time and Interactive Applications
 
Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)Efficient LDI Representation (TPCG 2008)
Efficient LDI Representation (TPCG 2008)
 
Realtime 3D Visualization without GPU
Realtime 3D Visualization without GPURealtime 3D Visualization without GPU
Realtime 3D Visualization without GPU
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
Masked Software Occlusion Culling
Masked Software Occlusion CullingMasked Software Occlusion Culling
Masked Software Occlusion Culling
 
Borderless Per Face Texture Mapping
Borderless Per Face Texture MappingBorderless Per Face Texture Mapping
Borderless Per Face Texture Mapping
 
Advanced Lighting for Interactive Applications
Advanced Lighting for Interactive ApplicationsAdvanced Lighting for Interactive Applications
Advanced Lighting for Interactive Applications
 
Unity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptxUnity AMD FSR - SIGGRAPH 2021.pptx
Unity AMD FSR - SIGGRAPH 2021.pptx
 
Implementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES rendererImplementing a modern, RenderMan compliant, REYES renderer
Implementing a modern, RenderMan compliant, REYES renderer
 
Rendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb RaiderRendering Techniques in Rise of the Tomb Raider
Rendering Techniques in Rise of the Tomb Raider
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

FlameWorks GTC 2014

  • 1. SMOKE & MIRRORS: ADVANCED VOLUMETRIC EFFECTS FOR GAMES Simon Green, Nuttapong Chentanez
  • 2. OVERVIEW  Background  Simulation  Rendering  Demos  Future work
  • 3. WHAT IS FLAMEWORKS?  A system for adding volumetric fire and smoke effects to games  Part of the NVIDIA GameWorks family of visual effects libraries  Combines — Efficient grid-based fluid simulator — High quality volume rendering  Inspired by ILM Plume, FumeFX, Maya Fluids, Houdini Pyro — But real-time!
  • 4. GOALS High quality Fast, efficient, scalable Simple, easy to integrate into games Customizable
  • 5. SIMULATION  Grid-based fluid simulator — Gas simulator really – no liquid surface tracking etc.  Features — Multi-grid solver — MacCormack advection (second order accurate) — Vorticity confinement — Combustion model — Density resolution multiplier (upscaling)
  • 6. SIMULATION  Quantities — Velocity — Temperature — Fuel — Smoke Density  Discretization — Use collocated grid i.e. all quantities stored at cell center — Stored in two vec4 3D textures
  • 9. ADVECTION  Fluid physical quantities such as temperature, density etc. are moved by fluid velocity — Fluid velocity itself is also moved by fluid velocity!  Semi-Lagrangian Method [Stam 99] — Start at a cell center — Trace velocity field backward in time — Interpolate quantity from grid  Tri-Linear interpolation  Optionally, move fuel at faster speed
  • 10. ADVECTION  Semi-Lagrangian method is first order accurate — Causes a lot of numerical diffusion — Smoke and flame smooth out — Small scale details disappear — Vortices disappear  Use Modified MacCormack Method [Selle et al. 08] — For temperature, density, fuel only — Second order accurate — Tracing backward and then forward in time to estimate the error — Subtract the estimated error off to get a more accurate answer
  • 13. VORTICITY CONFINEMENT  Identify where vortices are, then add force to amplify them [Fedkiw et al. 01] Before After* *exaggerated for visualization purpose
  • 14. VORTICITY CONFINEMENT Without vorticity confinement With vorticity confinement
  • 16. EMITTERS  Add density, temperature, fuel and velocity to simulation  Currently supported shapes — Sphere — Plane — Box — Cone  Custom emitters and force fields possible using callbacks — Developer can write compute shaders that write to density and velocity textures
  • 17. CUSTOM EMITTER HLSL EXAMPLE Texture3D<float4> srcTex : register (t0); RWTexture3D<float4> dstTex : register (u0); [numthreads(THREADS_X, THREADS_Y, THREADS_Z)] void DensityEmitter(uint3 i : SV_DispatchThreadID) { // read existing data at this cell float4 d = srcTex[i]; float3 p = voxelToWorld(i); float r= length(p – emitterPos); if (r < emitterRadius) { d.x += smoothstep(emitterRadius, emitterInnerRadius, r); }; // write new data dstTex[i] = d; }
  • 18. COMBUSTION MODEL  If temperature is above ignition temp and there is fuel, combustion occurs: — Consumes fuel — Increases temperature — Generates expansion by modifying simulation divergence [Feldman & O’Brien 03] — Temperature causes upwards buoyancy  Optionally have temperature cooling — Cooling rate proportional to temperaturek — k = 4 is commonly used in practice
  • 20. INCOMPRESSIBILITY SOLVER  Goal: Make velocity field divergence free  Why? — Incompressible fluid -> divergence free velocity field — Responsible for swirling motion commonly associated with fluid — Conserves mass  How? — Compute a pressure field whose gradient canceled out divergence of velocity field [Stam 99] — Pressure field is the solution to a linear system
  • 21. SOLVING LINEAR SYSTEM  Geometric multi-grid — Open boundary on top, sides — Closed boundary on bottom — Ignores internal obstacles  Use Iterate Orthogonal Projection (IOP) [Molemaker et al. 08], to enforce solid boundary condition for internal obstacles — Set the normal component of fluid velocity to that of solid — Do multi-grid — Set the normal component of fluid velocity to that of solid — (can repeat for more accurate solution)
  • 23. OBSTACLES Currently support:  Implicits: sphere, capsule, box  Pre-computed signed distance fields (stored on a grid)  Can be scaled, translated, rotated during run time We rasterize the following to grid at each time step:  Distance to nearest obstacle  Normal and velocity of the nearest obstacle Solver then use these fields for all simulation steps Advection and incompressibility solve
  • 24. MOVING GRID  Grid can be translated to follow moving objects  Basically adds opposite velocity during advection  Currently grid is always axis-aligned
  • 25. DRAGON DEMO 128 x 128 x 256 velocity grid (4M voxels) 2x density res multiplier = 256 x 256 x 512 (32M voxels) ~30fps on GeForce Titan
  • 26. HIGH-RES DENSITY  Density grid can be stored at higher resolution than velocity — Usually 2x or 4x resolution  Improves performance since velocity solver is main bottleneck  Velocities are interpolated during density advection — Not strictly correct since interpolated velocities aren’t divergence- free — But looks fine
  • 30. RENDERING OPTIONS —Particles  Advect particles through velocity field from simulation  Render as point sprites  Requires depth sorting for correct bending —Iso-surface rendering  Using marching cubes or ray marching to extract surface —Volume Rendering  Highest quality option
  • 31. VOLUME RENDERING Separate part of FlameWorks Optional - developers are free to do their own rendering Implemented using ray-marching in pixel shader Features Color mapping Depth compositing Down-sampled rendering with up-sampling Empty space skipping Edge fading Heat Haze
  • 32. COLOR MAPPING Temperature is mapped to color using 1D texture LUT Can also effect alpha (transparency) Can use a physically-based Blackbody radiation model (see GTC 2012 talk) Or arbitrary artist-defined map
  • 33.
  • 34.
  • 35.
  • 37.
  • 38.
  • 39.
  • 40. HEAT HAZE  Adds to perception of heat  Offset background lookup based on gradient of temperature (or just luminance) in screen space
  • 41. HEAT HAZE - OFF
  • 43. LINEAR FILTERING  Fastest option  Some artifacts at low res
  • 44. CUBIC FILTERING  Smoother — Blurs some details  Uses 8 bilinear lookups — [Sigg & Hadwiger 05]  But ~8 times more expensive
  • 45. ALTERNATIVE LOOKS - TOON SHADING
  • 46. VOLUMETRIC SHADOWS Shadows are very important for smoke, dust etc. We generate a dense 3D shadow volume as a pre-pass Can be generated at fraction of density texture resolution (½ or ¼ typically) Ray march towards light, computing transmittance For dense volumes, only need small number of samples (2-8) Problem: banding visible Solution: jitter ray start position towards light by random amount Causes noise, so blur result in 3D
  • 48. SHADOWS – 2 SAMPLES
  • 49. SHADOWS – 4 SAMPLES
  • 50. SHADOWS – 4 SAMPLES + JITTER
  • 51. SHADOWS – 4 SAMPLES + JITTER + BLUR
  • 52. VOLUME SCATTERING APPROXIMATION  Scattering is an important effect for smoky volumes  Simple approximation: — Evaluate lighting (emission) to 3D texture — (High dynamic range is important) — Blur texture in 3 dimensions  Separable blur — Read blurred texture during ray march  Mix with original  Similar to Crytek light propagation volumes
  • 53.
  • 54.
  • 55.
  • 56. REFLECTIONS  Easy to cast arbitrary rays though volumes  E.g. Reflections of fire in other objects  Calculate reflection ray, intersect with volume bounding box, then ray march through volume  Can use a down-sampled volume (mipmaps) for blurry reflections
  • 58. TEXTURE COORDINATE ADVECTION  For low resolution sims, procedural texturing can be useful to add detail  Advect 3D texture coordinates, use to add procedural noise to density/temperature — Use a simplified version of “Advected Textures” [Neyret 03]  Advect several sets of 3D texture coordinates — Coordinates blur out over time — So regenerate periodically — Blend between results of looking up in each texture, to achieve smooth results
  • 59. IMPLEMENTATION  Current implementation uses DirectX 11 Compute — best fit for games — good graphics interoperability — potential for simultaneous graphics-compute  OpenGL version possible in future — Performance of mobile GPUs is increasing quickly
  • 60. SIMULATION PERFORMANCE X Y Z Voxels Grid size (4 x fp16) Time (msecs) 64 64 64 256K 2 MB 1.0 128 64 64 512K 4 MB 1.7 128 128 128 2M 8 MB 5.1 256 128 128 4M 32 MB 10.7 256 256 256 16M 128 MB 40.0 GeForce GTX Titan Numbers subject to change.
  • 61. FUTURE WORK  Optimization  Integration with GI-Works — Fire acts as volumetric light source  Improved volume rendering — More general lighting — Frustum buffers for compositing multiple volumes  Z-buffer collisions  Simulation in the cloud?
  • 63. REFERENCES  Stable Fluids by Stam J. 1999  Visual Simulation of Smoke by Fedkiw R., Stam J.and Jensen W. H. 2001  Animating Suspended Particle Explosions by Feldman B. and O’Brien J. 2003  Advected Textures by Fabrice N. 2003  Fast Third-Order Texture Filtering by Sigg C. and Hadwiger M. 2005  Low Viscosity Flow Simulations for Animation by Molemaker J., Cohen M. J., Patel S. and Noh J. 2008  An Unconditionally Stable MacCormack Method by Selle A., Fedkiw R., Kim B., Liu Y. and Rossignac J. 2008  Water Flow in Portal 2 by Vlachos A. 2010  Flame On: Real-Time Fire Simulation for Video Games by Green S. 2012