Skip to content

8: Renderer Structure

ADM8 edited this page Jun 7, 2026 · 2 revisions

The Renderer traces a Single Main Raypath Per pixel, Iterating through Reflective/Transparent/Translucent Surfaces until it Terminates by:

  • Hitting an Opaque Surface
  • Missing (Sky)
  • Reaching Max Iteration Amount

On each step The Raypath Evaluates the Shading Model:

  • Samples values needed for Compositing
  • Samples Light Contribution (one Raypath per Light)
  • Performs Optional Per-Shading Model Effects

After Termination, It composes the Final Color in Layers back to front. Example:
Color = Opaque -> Glass Absorbtion -> Mirror Absorbtion -> Transparent Overlay

DeferredLightingCommon.ush
RayTracingCommon.ush
RayTracingDeferredShadingCommon.ush
RayTracingLightingCommon.ush
AQ_Structs.ush
AQ_Functions.ush
AQ_RaytracingCommon.ush
Shader Inputs
Shader Entry Point
├── AQ_InitBasic.ush
├── Raypath Loop
│   ├── On Hit
│   │   ├── AQ_InitComplex.ush
│   │   ├── AQ_ShadingModel_Dielectric.ush
│   │   │   ├── AQ_AmbientOcclusion.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_Foliage.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_DielectricMirror.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_MetallicMirror.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_ThinTranslucent.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_Water.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_Translucent.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   ├── AQ_ShadingModel_Unlit.ush
│   │   ├── AQ_ShadingModel_LitTransparent.ush
│   │   │   ├── AQ_AmbientOcclusion.ush
│   │   │   └── AQ_Lighting.ush
│   │   │       ├── Spot Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       ├── Sphere Light
│   │   │       │   ├── AQ_ReflectedDirectPointLighting.ush
│   │   │       │   └── AQ_LightingPointLights.ush
│   │   │       └── AQ_ReflectedDirectLighting.ush
│   │   └── AQ_ShadingModel_Invalid.ush
│   └── On Miss
│       └── AQ_ShadingModel_Sky.ush
├── Layer Composition
│   ├── Shading Model Sky
│   ├── Shading Model Dielectric
│   ├── Shading Model Dielectric Mirror
│   ├── Shading Model Metallic Mirror
│   ├── Shading Model Volumetric/Thin Translucent
│   ├── Shading Model Foliage
│   ├── Shading Model Water
│   ├── Shading Model Unlit
│   ├── Shading Model Lit Transparent
│   └── Shading Model Invalid
├── Fog Application
├── Debug Viewmodes
├── NaN/Inf Checks
└── Final Color
Shader End
Credit I made this nice tree structure at https://tree.nathanfriend.com/

Clone this wiki locally