Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course,...
Transcript of Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course,...
![Page 1: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/1.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
VolumetricGlobal Illumination
At TreyarchJT Hooker
Treyarch Senior Graphics Engineer
![Page 2: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/2.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Volumetric Global Illumination• GI in volume texture• Lean texture data• IBL baked from probes• Convex blend shapes
![Page 3: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/3.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Presentation Order
Where we started
Evolution along the way
Where we ended up
![Page 4: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/4.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Traditional Approach: Lightmaps
Could be ok, but…
![Page 5: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/5.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Lightmap Downsides
Works poorly on detailed
or intersecting geometry
![Page 6: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/6.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Lightmap Downsides
Doesn’t work at all on
dynamic geometry
![Page 7: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/7.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Lightmap Downsides
Software ray-tracing and
shading takes forever
![Page 8: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/8.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Lightmap Downsides
Results not visible
in world editor
![Page 9: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/9.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Process of Invention
Deferred Renderer
Reflections already present
So how do we apply deferred GI?
![Page 10: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/10.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflection Probesas Diffuse Data
• Higher Mips:convolved specular[DROBOT13]
• Lowest Mip:diffuse irradiance
• Real time IBL
![Page 11: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/11.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Occlusion Is A Problem
![Page 12: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/12.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Visibility Is A Problem• Where the probe
doesn’t see• Looks like shadows
![Page 13: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/13.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Irradiance Volume [TATARCHUK05]
![Page 14: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/14.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Render a Reflection Probe Per Voxel?
138 Volumes × 403 Voxels × 6 Faces÷ 60 FPS ÷ 60 Seconds
= 14,720 Minutes (≈ 10 Days)
![Page 15: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/15.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Collect Colors From Reflection Probes• Re-project cube maps• Combine to fill holes
[BUEHLER01]
![Page 16: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/16.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
In Practice•4096 rays per voxel•15 neighbors considered
•Missed rays are in-painted
![Page 17: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/17.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Re-Project From Existing Probes
![Page 18: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/18.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reprojection
Neighbor candidates sorted based on distance
What about spec?
![Page 19: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/19.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reprojection
Angle and distance to surface defines a solid angle in the cube map
![Page 20: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/20.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reprojection
Sample area validated against depth pyramid
If visibleappropriate mip sampled
![Page 21: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/21.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reprojection Caluclation
![Page 22: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/22.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reprojection Calculation
distFromUnitCube = √( 1 + u2 + v2 ); // Compensation for cube-map shape.
angleOfVoxel = 4 * PI / numSamples; // Solid angle from voxel.
inSqrt = 1 + distFromVoxel2 * angleOfVoxel * ( angleOfVoxel – 4PI ) / ( 4 * PI2 * distFromProbe2 );
angleOfProbe = 2PI * ( 1 – √inSqrt ); // Solid angle from reflection probe.
cubeRes = 1.0f / √( angleOfProbe * distFromUnitCube3 ); // Resolution needed for sample.
mipLevel = clamp( mipCount – log2( cubeRes ), 0, mipCount ); // Mip level to use.
return mipLevel;
![Page 23: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/23.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Biggest Benefit• Hardware rendering
• Re-render to get bounces
• Only have to ray-trace and re-project once
![Page 24: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/24.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Texture Encoding
• Flat Color?
![Page 25: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/25.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
• Ambient / Highlight / Direction?
Texture Encoding
![Page 26: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/26.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
• Second Order Spherical Harmonic?
Texture Encoding
![Page 27: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/27.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
• Ambient Cube! [MCTAGGART04]
• BC6H Compressed
Texture Encoding
![Page 28: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/28.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Volume Texture Layout
![Page 29: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/29.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Performance Benefits
Only 3 samples
Hardware trilinear filtering
Evaluation:color[n] = normal2 ∙ float3( Xsample[n], Ysample[n], Zsample[n] )
color = xVolume.SampleLevel( coord ) * normal.x * normal.x +
yVolume.SampleLevel( coord ) * normal.y * normal.y +
zVolume.SampleLevel( coord ) * normal.z * normal.z;
![Page 30: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/30.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Light Leaking Is A Problem
![Page 31: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/31.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Common Approach
Adjust trilinear Based on normal[SILVENNOINEN15]
Our approach needsto be more reliable
![Page 32: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/32.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
More Voxel Data
Planes
Signeddistance field
Bad artifacts
![Page 33: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/33.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Solve With Shaping
![Page 34: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/34.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Click To Size Boxes
![Page 35: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/35.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Click To Add BoxesAuto-parenton creation
![Page 36: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/36.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Voxels Near Walls
![Page 37: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/37.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Consider Backfaces
![Page 38: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/38.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Complex Room Shapes
![Page 39: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/39.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Solution: Convex Shapes
![Page 40: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/40.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
MultifaceVolumesClick to add and remove faces.
![Page 41: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/41.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
MultifaceVolume EditingDrag / Cut / Slice / Rotate
![Page 42: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/42.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Subtract ShapesCSG addThen subtract
![Page 43: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/43.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Override VolumesLike priorityOnly two levels.
![Page 44: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/44.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Runtime Implementation
1. Cull against volume AABB’s to build a list of volumes
2. Per pixel calculate attenuation on visible volumes
Convex hull CSG
Groups of six planes either extended, combined or subtracted
![Page 45: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/45.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Example GI Volume
struct PlaneGroup
{
float4 planes[6]; // Groups of six planes.bool subtractive; // Per group, specifies whether it adds or subtracts.bool finished; // Per group, whether it should be combined with the previous.
}
struct GIvolume
{
PlaneGroup *groups;
}
// Blends, or “feather”, are pre-multiplied into the plane definition.
planes[i].xyz = planeNormal;
planes[i].w = planeOffset;
planes[i] /= blendWidth; // Blend width is a scalar for how wide the blend is.
![Page 46: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/46.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Group Size?
[6]+[6+6+…?
[6]+[4+4+...?
[4]+[4+4+…?
[8]+[2+2+…?
![Page 47: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/47.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Shader Exampleattenuation = 0;groupAtten = 1;for ( int group = 0; group < numGroups; group++){
groupAtten *= saturate( dot( planes[group][0].xyz, pos ) + planes[group][0].w );groupAtten *= saturate( dot( planes[group][1].xyz, pos ) + planes[group][1].w );groupAtten *= saturate( dot( planes[group][2].xyz, pos ) + planes[group][2].w );groupAtten *= saturate( dot( planes[group][3].xyz, pos ) + planes[group][3].w );groupAtten *= saturate( dot( planes[group][4].xyz, pos ) + planes[group][4].w );groupAtten *= saturate( dot( planes[group][5].xyz, pos ) + planes[group][5].w );if( finished[group] ){
if( subtractive[group] )attenuation = max( attenuation, groupAtten );
elseattenuation *= 1.0f - groupAtten;
groupAtten = 1;}
}return saturate( attenuation );
![Page 48: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/48.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Why Not K-DOPs?
KDOP – k-sided Discrete Oriented Polytope
Pairs of planes or slabsInstead of individual planesX
![Page 49: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/49.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Runtime Implementation
3. Sample three ambient cube values depending on normal
4. Blend results between all volumes
![Page 50: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/50.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Challenges
![Page 51: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/51.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Problem: Geo Within Voxels
![Page 52: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/52.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Solution: Smart Centers
![Page 53: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/53.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Invalidate Near Geometry
![Page 54: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/54.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Empty Space Skip
![Page 55: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/55.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Problem: Seams
![Page 56: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/56.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Solution: Volume Smoothing
![Page 57: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/57.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Careful Lighting Artistry
![Page 58: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/58.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Auto Volumes?“Do-Everything Button”
![Page 59: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/59.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Volume Blending And Density Volume Overdraw Per Tile
Debug Tools
![Page 60: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/60.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflections
![Page 61: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/61.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflection Planes [LAGARDE12]
![Page 62: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/62.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Clever Artistry
![Page 63: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/63.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflection Plane Parallax
float reflectionMip = ( 1 – gloss ) * numMips;
// as things get rougher “fade off” parallax correction// by pushing out intersection planesfloat minDist = saturate( ( reflectionMip – 2.5 ) / ( numMips – 2.5 ) ) * 100;distanceToPlane = max( abs( distanceToPlane ), minDist );
float intersectionDist = abs( distanceToPlane / -dot( direction, plane.xyz ) );
![Page 64: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/64.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Parallax Fade Out
![Page 65: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/65.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflection Brightness Correction[LAZAROV13]
![Page 66: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/66.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Reflection Brightness Correction
![Page 67: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/67.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Max specular brightness is just a guess based on angle and gloss The light mostly probably came from a certain direction and area This defines a cone of a certain size Actual numbers determined experimentally
We know the diffuse light is a function of what’s in the specular map Assume a maximum specular brightness that created this diffuse brightness Adjust the sampled specular against the theoretical maximum
float maximumSpecValue = max3( 1.26816,
9.13681 * exp2( 6.85741 - 2 * mip ) * nDotV,
9.70809 * exp2( 7.085 - mip - 0.403181 * mip2) * nDotV );
float adjustedMaxSpec = diffuseGILum * maximumSpecValue;
float3 specLum = luminance( cubeMapSample );
float3 reflection = cubeMapSample *
adjustedMaxSpec / ( adjustedMaxSpec + speculum );
Brightness Correction
![Page 68: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/68.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
1. As good or better quality than light maps
![Page 69: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/69.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
2. Less than 2ms for reflections and GI
![Page 70: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/70.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
3. Works on all geometry
![Page 71: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/71.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
4. Less baking time with incremental baking
![Page 72: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/72.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
5. Baking is done in editor
![Page 73: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/73.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
6. Moving and changing GI
![Page 74: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/74.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Pros:
7. Loose connection between light and geo
![Page 75: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/75.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Cons:
1. Takes set up time
![Page 76: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/76.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Cons:
2. Training is hard
![Page 77: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/77.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Cons:
3. Either lower resolution
or more memory use in game
![Page 78: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/78.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Cons:
4. Need beefy dev machines
(48Gb RAM and 12Gb VRAM)
![Page 79: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/79.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Cons:
5. Development challenges
![Page 80: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/80.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
Special Thanks
Treyarch:Dimitar Lazarov – Original Idea
Kevin Myers – Baking CodeEveryone Else at Treyarch
Activision Central Tech:Peter-Pike Sloan – Lots of Math
Josiah Manson – Light Bake FeaturesAngelo Pesce – Reflection Solutions
![Page 81: Volumetric Global Illumination At Treyarch - Activision · Advances in Real -Time Rendering course, SIGGRAPH 2016 Volumetric Global Illumination At Treyarch JT Hooker Treyarch Senior](https://reader031.fdocuments.us/reader031/viewer/2022021714/5bfaaaf109d3f23e788ba71a/html5/thumbnails/81.jpg)
Advances in Real-Time Rendering course, SIGGRAPH 2016
References [DROBOT13] DROBOT, M., 2013. Lighting Killzone: Shadow Fall, Digital Dragons
[TATARCHUCK05] TATARCHUK, N., 2005. Irradiance Volumes for Games, GDC Europe
[BUEHLER01] BUEHLER, C., BOSSE, M., MCMILLAN, L., GORTLER, S., COHEN, M., 2001. Unstructured Lumigraph Rendering, SIGGRAPH
[MCTAGGART04] MCTAGGART, G., 2004. Half-Life 2 / Valve Source Shading, Game Developers Conference
[SILVENNOINEN15] SILVENNOINEN, A., TIMONEN, V., 2015. Multi-Scale Global Illumination in Quantum Break, SIGGRAPH
[LAGARDE12] LAGARDE, S., ZANUTTINI, A., 2012. Local Image-based Lighting With Parallax-corrected Cubemaps, SIGGRAPH
[LAZAROV13] LAZAROV, D., 2013. Getting More Physical in Call of Duty: Black Ops II, SIGGRAPH