Skip to content

GuardHei/UltimateTAA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UltimateTAA

Roadmap

  1. Setup basic lighting loop (only one directional light) - Fin.
  2. Implement basic post processing pipeline - Fin.
  3. Implement basic TAA - Fin.
  4. Implement basic motion vector pass - Fin.
  5. Implement more advanced TAA - Fin.
  6. Implement more advanced materials - Fin.
  7. Implement precomputed radiance transfer GI with realtime relighting - Fin.
    1. Offline capture - Fin.
    2. Runtime radiance update
      1. Single bounce - Fin.
      2. Multi bounce - Fin.
      3. Indirect shadow - Fin.
    3. Runtime irradiance prefilter - Fin.
    4. Runtime irradiance sampling - Fin.
  8. Implement Cascaded Directional Shadow - 50% Fin.
    1. Cascaded shadowmap render - Fin.
    2. Cascaded hard shadow sample - Fin.
    3. Cascaded PCF soft shadow sample - WIP.
    4. Cascaded PCSS soft shadow sample - WIP.

Preview

Dynamic Diffuse GI Test 1

enclosed_room_probe_lit.mp4

Dynamic Diffuse GI Test 2

Sponza_Hallway.mp4

Dynamic Diffuse GI Test 3

Sponza_Timelapse.mp4
Damaged Helmet
Damaged Helmet (glTF 2.0)
PBR Spheres
PBR Spheres
More PBR Materials - 1 More PBR Materials - 0
More PBR Materials More PBR Materials
Temporal Dithered Parallax Occlusion Mapping - 0 Temporal Dithered Parallax Occlusion Mapping - 1
Temporal Dithered Parallax Occlusion Mapping - 0 Temporal Dithered Parallax Occlusion Mapping - 1
Without Clear Coat With Clear Coat
Clear Coat = 0 (Metallic = 1, Smoothness = .5) Clear Coat = 1 (Metallic = 1, Smoothness = .5)
Without Anisotropy With Anisotropy
Anisotropy = 0 Anisotropy = 1
fabric_material.png non_fabric_material.png
Velvet Fabric PBR Original PBR

Advanced Render Pipeline

Rendering Layers

Bit Usage
0 Default
1 Static objects
2 Terrain

Stencil Bits

Bits 0 (LSB) - 1

Reserved for TAA

Mask Usage
00 Static
01 Dynamic
10 Alpha
11 Custom

Bit 2

Reserved to exclude pixels from static velocity calculation. Can be used as a custom bit after the velocity passes.

1: Already calculated dynamic velocity

0: Still requires the full screen static velocity pass

Bits 3 - 7

Unused

Thin - GBuffer

GBuffer Format Channel R Channel G Channel B Channel A
GBuffer 0 RGBA16_SFloat Forward R Forward G Forward B SSS Param / TAA Anti-flicker
GBuffer 1 R16G16_UNorm Normal X Normal Y N/A N/A
GBuffer 2 RGBA8_UNorm Specular R Specular G Specular B Linear Roughness
GBuffer 3 R8_UNorm IBL Occlusion N/A N/A N/A
Velocity RG16_SNorm Velocity X Velocity Y N/A N/A
Depth D24S8 Depth N/A N/A Stencil

Render Pass Overview

Cascaded Shadowmap Pass

Render the cascaded shadowmap for the main directional light (only support 1 directional light shadow at the moment).

Diffuse Probe Radiance Update Pass

Update the radiance of the diffuse probes.

Diffuse Probe Irradiance Update Pass

Prefilter the irradiance of the diffuse probes.

Diffuse Probe Irradiance Padding Pass

Add the 1-px padding of the irradiance maps for bilinear filtering.

Occluder Depth Stencil Prepass

Draw depth and stencil of all occluder objects.

Depth Stencil Prepass

Draw depth and stencil of all the rest objects.

Dynamic Velocity Pass

Draw the velocity of the dynamic objects, toggle stencil[2] to 1.

Static Velocity Pass

Draw the velocity of the static objects, using stencil[2] to kill dynamic pixels.

Downsample and Dilate Velocity Pass (Roadmap)

Downsample velocity texture to quarter resolution (half width, half height), and each pixel represents the closet velocity of the 2x2 quad.

Directional Light Shadowmap Pass (Roadmap)

Draw shadowmap of the main directional light.

Forward Opaque Lighting Pass

Shade forward opaque materials. Output lighting (direct lighting + indirect diffuse + emissive) result and SSS Param to RawColorTex. Output world space normal (Oct Quad Encoded) to GBuffer 1. Output specular color and linear roughness to GBuffer 2. Output IBL occlusion to GBuffer 3.

Specular Image Based Lighting Pass

Evaluate specular IBL.

Screen Space Reflection Pass (WIP)

Compute screen space reflection, output mixing intensity in the alpha channel.

Integrate Indirect Specular Pass

Mix IBL and SSR results together.

Integrate Opaque Lighting Pass

Integrate indirect specular result back the lighting buffer, output to ColorTex.

Skybox Pass

Draw Skybox Pass.

Forward Transparent Lighting Pass (Roadmap)

Shade forward transparent materials. Evaluate specular IBL within the forward pass.

Stop NaN Propagation Pass

Replace NaN, Inf, -Inf with pure black (0, 0, 0, 1).

Resolve Temporal Antialiasing Pass

Resolve taa.

Tonemap Pass

Color grade and tonemap.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published