Kaynağa Gözat

Removed physical code from envmap_pars_frag

arobertson0 6 yıl önce
ebeveyn
işleme
fc3033fdb6

+ 4 - 47
examples/webgl_materials_envmaps_parallax.html

@@ -38,17 +38,10 @@
 			#endif
 			`;
 
-			var envmapParsReplace = `
-			#define BOX_PROJECTED_ENV_MAP
-
-			#if defined( USE_ENVMAP ) || defined( PHYSICAL )
-
-				uniform float reflectivity;
-				uniform float envMapIntensity;
-
-			#endif
+			var envmapPhysicalParsReplace = `
+			#if defined( USE_ENVMAP )
 
-			#ifdef USE_ENVMAP
+				#define BOX_PROJECTED_ENV_MAP
 
 				#ifdef BOX_PROJECTED_ENV_MAP
 
@@ -75,41 +68,10 @@
 
 				#endif
 
-				#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )
-
-					varying vec3 vWorldPosition;
-
-				#endif
-
-				#ifdef ENVMAP_TYPE_CUBE
-
-					uniform samplerCube envMap;
-
-				#else
-
-					uniform sampler2D envMap;
-
-				#endif
-
-				uniform float flipEnvMap;
-				uniform int maxMipLevel;
-
-				#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )
-
+				#ifdef ENVMAP_MODE_REFRACTION
 					uniform float refractionRatio;
-
-				#else
-
-					varying vec3 vReflect;
-
 				#endif
 
-			#endif
-			`;
-
-			var envmapPhysicalParsReplace = `
-			#if defined( USE_ENVMAP ) && defined( PHYSICAL )
-
 				vec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {
 					vec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );
 					#ifdef ENVMAP_TYPE_CUBE
@@ -349,11 +311,6 @@
 						worldposReplace
 					);
 
-					shader.fragmentShader = shader.fragmentShader.replace(
-						'#include <envmap_pars_fragment>',
-						envmapParsReplace
-					);
-
 					shader.fragmentShader = shader.fragmentShader.replace(
 						'#include <envmap_physical_pars_fragment>',
 						envmapPhysicalParsReplace

+ 2 - 0
src/renderers/shaders/ShaderChunk.d.ts

@@ -35,6 +35,7 @@ export let ShaderChunk: {
 	encodings_pars_fragment: string;
 	encodings_fragment: string;
 	envmap_fragment: string;
+	envmap_common_pars_fragment: string
 	envmap_pars_fragment: string;
 	envmap_pars_vertex: string;
 	envmap_vertex: string;
@@ -48,6 +49,7 @@ export let ShaderChunk: {
 	lightmap_pars_fragment: string;
 	lights_lambert_vertex: string;
 	lights_pars_begin: string;
+	envmap_physical_pars_fragment: string;
 	lights_pars_map: string;
 	lights_phong_fragment: string;
 	lights_phong_pars_fragment: string;

+ 2 - 0
src/renderers/shaders/ShaderChunk.js

@@ -25,6 +25,7 @@ import emissivemap_pars_fragment from './ShaderChunk/emissivemap_pars_fragment.g
 import encodings_fragment from './ShaderChunk/encodings_fragment.glsl.js';
 import encodings_pars_fragment from './ShaderChunk/encodings_pars_fragment.glsl.js';
 import envmap_fragment from './ShaderChunk/envmap_fragment.glsl.js';
+import envmap_common_pars_fragment from './ShaderChunk/envmap_common_pars_fragment.glsl.js';
 import envmap_pars_fragment from './ShaderChunk/envmap_pars_fragment.glsl.js';
 import envmap_pars_vertex from './ShaderChunk/envmap_pars_vertex.glsl.js';
 import envmap_vertex from './ShaderChunk/envmap_vertex.glsl.js';
@@ -150,6 +151,7 @@ export var ShaderChunk = {
 	encodings_fragment: encodings_fragment,
 	encodings_pars_fragment: encodings_pars_fragment,
 	envmap_fragment: envmap_fragment,
+	envmap_common_pars_fragment: envmap_common_pars_fragment,
 	envmap_pars_fragment: envmap_pars_fragment,
 	envmap_pars_vertex: envmap_pars_vertex,
 	envmap_physical_pars_fragment: envmap_physical_pars_fragment,

+ 15 - 0
src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js

@@ -0,0 +1,15 @@
+export default /* glsl */`
+#ifdef USE_ENVMAP
+
+	uniform float envMapIntensity;
+	uniform float flipEnvMap;
+	uniform int maxMipLevel;
+
+	#ifdef ENVMAP_TYPE_CUBE
+		uniform samplerCube envMap;
+	#else
+		uniform sampler2D envMap;
+	#endif
+	
+#endif
+`;

+ 3 - 16
src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js

@@ -1,24 +1,11 @@
 export default /* glsl */`
-#if defined( USE_ENVMAP ) || defined( PHYSICAL )
-	uniform float reflectivity;
-	uniform float envMapIntensity;
-#endif
-
 #ifdef USE_ENVMAP
 
-	#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( PHONG ) )
-		varying vec3 vWorldPosition;
-	#endif
+	uniform float reflectivity;
 
-	#ifdef ENVMAP_TYPE_CUBE
-		uniform samplerCube envMap;
-	#else
-		uniform sampler2D envMap;
-	#endif
-	uniform float flipEnvMap;
-	uniform int maxMipLevel;
+	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( PHONG )
 
-	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )
+		varying vec3 vWorldPosition;
 		uniform float refractionRatio;
 	#else
 		varying vec3 vReflect;

+ 5 - 1
src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js

@@ -1,5 +1,9 @@
 export default /* glsl */`
-#if defined( USE_ENVMAP ) && defined( PHYSICAL )
+#if defined( USE_ENVMAP )
+
+	#ifdef ENVMAP_MODE_REFRACTION
+		uniform float refractionRatio;
+	#endif
 
 	vec3 getLightProbeIndirectIrradiance( /*const in SpecularLightProbe specularLightProbe,*/ const in GeometricContext geometry, const in int maxMIPLevel ) {
 

+ 1 - 0
src/renderers/shaders/ShaderLib/meshbasic_frag.glsl.js

@@ -16,6 +16,7 @@ uniform float opacity;
 #include <alphamap_pars_fragment>
 #include <aomap_pars_fragment>
 #include <lightmap_pars_fragment>
+#include <envmap_common_pars_fragment>
 #include <envmap_pars_fragment>
 #include <fog_pars_fragment>
 #include <specularmap_pars_fragment>

+ 1 - 0
src/renderers/shaders/ShaderLib/meshlambert_frag.glsl.js

@@ -23,6 +23,7 @@ varying vec3 vIndirectFront;
 #include <aomap_pars_fragment>
 #include <lightmap_pars_fragment>
 #include <emissivemap_pars_fragment>
+#include <envmap_common_pars_fragment>
 #include <envmap_pars_fragment>
 #include <bsdfs>
 #include <lights_pars_begin>

+ 1 - 0
src/renderers/shaders/ShaderLib/meshphong_frag.glsl.js

@@ -18,6 +18,7 @@ uniform float opacity;
 #include <aomap_pars_fragment>
 #include <lightmap_pars_fragment>
 #include <emissivemap_pars_fragment>
+#include <envmap_common_pars_fragment>
 #include <envmap_pars_fragment>
 #include <gradientmap_pars_fragment>
 #include <fog_pars_fragment>

+ 4 - 1
src/renderers/shaders/ShaderLib/meshphysical_frag.glsl.js

@@ -13,6 +13,9 @@ uniform float roughness;
 uniform float metalness;
 uniform float opacity;
 
+#ifdef REFLECTIVITY
+	uniform float reflectivity;
+#endif
 #ifdef CLEARCOAT
 	uniform float clearCoat;
 	uniform float clearCoatRoughness;
@@ -46,7 +49,7 @@ varying vec3 vViewPosition;
 #include <emissivemap_pars_fragment>
 #include <bsdfs>
 #include <cube_uv_reflection_fragment>
-#include <envmap_pars_fragment>
+#include <envmap_common_pars_fragment>
 #include <envmap_physical_pars_fragment>
 #include <fog_pars_fragment>
 #include <lights_pars_begin>