- material
- -
- envNode
- -
- envMap
- -
- Scene.environment
- -
- lights
- -
- intensity
- -
MeshStandardNodeMaterial uses EnvironmentNode for PBR image-based lighting.
A PBR node material can inherit Scene.environment, consume a classic envMap, or own a custom envNode. Build two PMREM maps from typed-array panoramas and compare the ownership boundary without changing the mesh.
Creating a backend-specific PBR material and two filtered environment maps.
MeshStandardNodeMaterial uses EnvironmentNode for PBR image-based lighting.
The two equirectangular DataTextures are synthetic but carry explicit sRGB source metadata.
pmremTexture() consumes the filtered target in the custom NodeMaterial path.
The scene sphere inherits cool fill; the node and map spheres explicitly consume warm fill.
PBR node materials honor Scene.environment when no material-level override exists.
pmremTexture(warmTarget.texture) overrides the default environment node for one material.
The classic texture property is still a valid explicit ownership path; WebGL2 uses this fallback.
Removing both scene and material ownership makes the direct-light contribution visible.
Rebuild the sources, choose an owner, then measure post-conversion PBR shading.
Scene.environment is the renderer-wide default for PBR node materials. envNode is a per-material node override; it is not a second Scene.environment. In WebGL2, the same explicit ownership lesson uses MeshStandardMaterial.envMap because the official LightProbeGrid and classic material path remain WebGL-specific.
Sources: EnvironmentNode · NodeMaterial · MeshStandardNodeMaterial · PMREMGenerator · official WebGPU environment example · LightProbeGrid · XREstimatedLight