|
@@ -150,6 +150,14 @@ function replaceLightNums( string, parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+function replaceClippingPlaneNums( string, parameters ) {
|
|
|
+
|
|
|
+ return string
|
|
|
+ .replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )
|
|
|
+ .replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
function parseIncludes( string ) {
|
|
|
|
|
|
var pattern = /^[ \t]*#include +<([\w\d.]+)>/gm;
|
|
@@ -358,8 +366,6 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
|
|
|
parameters.doubleSided ? '#define DOUBLE_SIDED' : '',
|
|
|
parameters.flipSided ? '#define FLIP_SIDED' : '',
|
|
|
|
|
|
- '#define NUM_CLIPPING_PLANES ' + parameters.numClippingPlanes,
|
|
|
-
|
|
|
parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
|
|
|
parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',
|
|
|
|
|
@@ -462,9 +468,6 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
|
|
|
parameters.doubleSided ? '#define DOUBLE_SIDED' : '',
|
|
|
parameters.flipSided ? '#define FLIP_SIDED' : '',
|
|
|
|
|
|
- '#define NUM_CLIPPING_PLANES ' + parameters.numClippingPlanes,
|
|
|
- '#define UNION_CLIPPING_PLANES ' + ( parameters.numClippingPlanes - parameters.numClipIntersection ),
|
|
|
-
|
|
|
parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
|
|
|
parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',
|
|
|
|
|
@@ -502,9 +505,11 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
|
|
|
|
|
|
vertexShader = parseIncludes( vertexShader );
|
|
|
vertexShader = replaceLightNums( vertexShader, parameters );
|
|
|
+ vertexShader = replaceClippingPlaneNums( vertexShader, parameters );
|
|
|
|
|
|
fragmentShader = parseIncludes( fragmentShader );
|
|
|
fragmentShader = replaceLightNums( fragmentShader, parameters );
|
|
|
+ fragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );
|
|
|
|
|
|
vertexShader = unrollLoops( vertexShader );
|
|
|
fragmentShader = unrollLoops( fragmentShader );
|