@@ -15,7 +15,7 @@ import normalUtilsParsFragment from "./shaders/normal-utils-pars.frag";
1515import resolutionParsFragment from "./shaders/resolution-pars.frag" ;
1616import worldUtilsParsFragment from "./shaders/world-utils-pars.frag" ;
1717
18- // Extensions for built-in shaders .
18+ // G-Buffer shader chunks for built-in materials .
1919import gbufferNormalFragment from "./shaders/gbuffer-normal.frag" ;
2020import gbufferOcclusionFragment from "./shaders/gbuffer-occlusion.frag" ;
2121import gbufferRoughnessFragment from "./shaders/gbuffer-roughness.frag" ;
@@ -51,6 +51,8 @@ export class ShaderChunkExtensions {
5151
5252 ShaderChunkExtensions . registered = true ;
5353
54+ // Custom Shader Chunk Registration
55+
5456 Object . assign ( ShaderChunk , {
5557 "pp_camera_pars_fragment" : cameraParsFragment ,
5658 "pp_colorspace_conversion_pars_fragment" : colorspaceConversionParsFragment ,
@@ -67,14 +69,14 @@ export class ShaderChunkExtensions {
6769 "pp_world_utils_pars_fragment" : worldUtilsParsFragment
6870 } ) ;
6971
72+ // G-Buffer Support
73+
7074 ShaderChunk . normal_fragment_maps += "\n" + gbufferNormalFragment ;
7175 ShaderChunk . aomap_fragment += "\n" + gbufferOcclusionFragment ;
7276 ShaderChunk . roughnessmap_fragment += "\n" + gbufferRoughnessFragment ;
7377 ShaderChunk . metalnessmap_fragment += "\n" + gbufferMetalnessFragment ;
7478 ShaderChunk . emissivemap_fragment += "\n" + gbufferEmissionFragment ;
7579
76- // Ensure that all shaders at least write default values.
77-
7880 const shaders = [
7981 ShaderLib . background ,
8082 ShaderLib . backgroundCube ,
@@ -93,6 +95,7 @@ export class ShaderChunkExtensions {
9395
9496 for ( const shader of shaders ) {
9597
98+ // Ensure that all shaders write default values.
9699 shader . fragmentShader = shader . fragmentShader . replace (
97100 / ( ^ * v o i d \s + m a i n \( \) \s + { .* ) / m,
98101 "#include <pp_normal_codec_pars_fragment>\n\n$1\n\n#include <pp_default_output_fragment>"
0 commit comments