THREE.JS / FOUNDATIONS 136
Indirect matters.
Direct lights are only one part of a lighting model. Keep the same points, hemisphere irradiance, and ambient-occlusion input, then switch the custom model between ignoring and consuming those context values.
Initializing
-
Preparing native and custom indirect-light paths.
- Material
- -
- Lighting model
- -
- Indirect path
- -
- AO contract
- -
- Active lights
- -
- Graph builds
- -
- Draw calls
- -
- Triangles
- -
- CPU avg
- -
- CPU p95
- -
- Context cache
- -
Lighting contractready
Light, irradiance gain, and AO uniforms update without rebuilding; material/model changes wait for rebuild.
Lighting graphphysical
surface nodes->lights + AO->PhysicalLightingModel->output
The native model consumes direct light, irradiance, and ambient occlusion through its full PBR path.
Custom indirect lighting unavailable.
The official PhysicalLightingModel implements indirect() and manually invokes ambientOcclusion(). This lab exposes those responsibilities in a custom context. Use ?forceWebGL=1 for WebGL2.
LAB 136 / CUSTOM INDIRECT + AO