© 2021 Sony Interactive Entertainment LLC. Ghost of Tsushima is a trademark of Sony Interactive Entertainment LLC.
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Samurai Landscapes: Building and Rendering Tsushima Island on PS4
Matthew Pohlmann
Samurai Shading in Ghost of Tsushima
Jasmin Patry
Zen of Streaming: Building and Loading Ghost of Tsushima
Adrian Bentley
Procedural Grass in Ghost of Tsushima
Eric Wohllaib
Blowing from the West: Simulating Wind in Ghost of Tsushima
Bill Rockenbeck
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Sky Visibility = 1 Everywhere
Sky Visibility
Bounced Sky Visibility
Sky Visibility = 1 Everywhere
Direct Sky Visibility Only
Direct + Bounced Sky Visibility
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
No Sun Bounce
With Sun Bounce
Sky Visibility = 1 Everywhere
Sky Visibility
Bounced Sky Visibility
Sky Visibility = 1 Everywhere
Direct Sky Visibility Only
Direct + Bounced Sky Visibility
Direct + Bounced Sky Visibility + Sun Bounce
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
No Directionality Boost
With Directionality Boost
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Old Windowing Function (Stupid Spherical Harmonics Tricks)
New Windowing Function
No Deringing
With Deringing
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Operation | Tetrahedral Mesh (~5000 probes) | Grid Update (73 tiles) |
---|---|---|
Full Update (baseline) | 60 μs | 123 μs |
Direct only (no bounce) | 30 μs (-50%) | 110 μs (-11%) |
Without Deringing | 53 μs (-12%) | 120 μs (-2%) |
Without Dir. Boost | 60 μs (no change) | 123 μs (no change) |
Bonus Slide
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Interior Mask
Without Interior Mask
Interior Mask Applied
Interior Mask Applied
Interior Mask
Without Interior Mask
Interior Mask Applied
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Bonus Slide
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Cube Map Shadow Tracing
With Cube Map Shadow Tracing
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Indirect Specular Horizon Occlusion
With Indirect Specular Horizon Occlusion
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
float SpecularHorizonOcclusion(
float3 normalReflect, float3 normal, float3 normalVtx, float alpha)
{
float radSpecCone = RadHalfConeAngleFromGgxAlpha(alpha);
radSpecCone = max(radSpecCone, 0.4);
float3 normalPlane = normalize(cross(normalReflect, normalVtx));
float3 normalProj = normalize(normal - dot(normalPlane, normal) * normalPlane);
float radNormalProj = RadACosFast01(saturate(dot(normalProj, normalVtx)));
float radReflect = RadACosFast(dot(normalReflect, normalVtx));
float radHorizonOcc = min(radSpecCone + radReflect - pi * 0.5, 2.0 * radNormalProj);
float uRadHorizonOcc = saturate(radHorizonOcc / (2.0 * radSpecCone));
float uSpecularOcc = GSquare(uRadHorizonOcc) * (2.0 - GSquare(uRadHorizonOcc));
uSpecularOcc *= 0.95;
return saturate(1.0 - uSpecularOcc);
}
Bonus Slide
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Parallax Compensation
Without Parallax Compensation
With Parallax Compensation
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Step | Time (μs) |
---|---|
Relight reflection probe |
347
|
Generate mipmaps | 37 |
Convolve with GGX NDF | 250 |
Compress to BC6H | 60 |
Total | 700 |
Bonus Slide
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Multiple Scattering For Clouds, Haze, and Particles
With Multiple Scattering For Clouds, Haze, and Particles
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Spectral vs Rec.709 with Bruneton08 Coefficients
Spectral
Rec.709
Spectral
Rec.709
Spectral
Rec.709
Spectral
Rec.709
Transmittance
Outscattering
Hue
Hue
Absolute
Absolute
Transmittance
Outscattering
Hue
Hue
Absolute
Absolute
Spectral
LMS
Spectral
LMS
Spectral
LMS
Spectral
LMS
Spectral vs LMS Color Space
Rec.709 Color Space
New LMS Color Space
White point (D65):
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Rayleigh scattering coefficients:
Primaries:
CIE 1931 Chromaticity Diagram
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
No Cloud Density AA
With Cloud Density AA
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Only Forward Scattering
Only Backscattering
Combined Forward and Backscattering
Backlit “Silver Lining”
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Density AA
With Density AA
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Trilinear Filtering
Bicubic Filtering
Tricubic Filtering
Trilinear Filtering
Bicubic Filtering
Tricubic Filtering
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Bonus Slide
Filter | Base PS4 (μs) (1080p) |
PS4 Pro (μs) (1800cb) |
---|---|---|
Trilinear |
363
|
430 |
Bicubic |
430
|
443
|
Tricubic |
667
|
483
|
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Particle Haze Lighting Off
Particle Haze Lighting On
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without Multi-Scattering Approximation
With Multi-Scattering Approximation
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Original Image
50% Contrast
50% Contrast Using Bilateral Filter
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
\(I_i\)
\(I_i\) (input)
\(B\) (bilateral blur)
\(I_o\) (output)
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
\(I_i\)
\(I_i\)
\(B\)
\(I_o\)
50% Contrast Using Bilateral Filter
40% Bilateral Blur + 60% Wide Gaussian Blur
Original Image
Typical In-Game Settings (75% High Contrast, 100% Low Contrast)
50% Detail Strength Boost
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Rec.709 Per-Channel Tonemapping
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
CUT
Desaturate/Resaturate Tonemap
CUT
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
CUT
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
ACEScg
Strong shift of reds towards yellow
Custom
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
ACEScg
Custom Color Space
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Without White Balance Adjustment
With Artistic White Balance Adjustment
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
RGB Reflectance Spectra \(\mathcal{R}_j\;(j \in \{r, g, b\})\)
Wavelength (nm)
Reflectance
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
float3 PurkineShift(
float3 rgbLightHdr,
float4x3 matLmsrFromRgb,
float3x3 matRgbFromLmsGain)
{
float4 lmsr = mul(matLmsrFromRgb, rgbLightHdr);
float3 lmsGain = rsqrt(1.0f + lmsr.xyz);
return rgbLightHdr + mul(matRgbFromLmsGain, lmsGain) * lmsr.w;
}
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
No Purkinje Shift
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Average Illuminance 0.05 lux
Without Purkinje Shift
With Purkinje Shift
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
SIGGRAPH 2021 ADVANCES IN
REAL-TIME RENDERING IN GAMES course
Text
Twitter: @jasminpatry