浏览代码

Fix Shader

sebastien 7 年之前
父节点
当前提交
45604ea1c6

+ 4 - 4
src/Shaders/ShadersInclude/lightFragment.fx

@@ -5,17 +5,17 @@
         #ifdef PBR
             #ifdef SPOTLIGHT{X}
                 info = computeSpotLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDirection, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, roughness, NdotV, specularEnvironmentR0, specularEnvironmentR90, geometricRoughnessFactor, light{X}.vLightFalloff, NdotL);
-            #elif HEMILIGHT{X}
+            #elif defined(HEMILIGHT{X})
                 info = computeHemisphericLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightGround, roughness, NdotV, specularEnvironmentR0, specularEnvironmentR90, geometricRoughnessFactor, NdotL);
-            #elif POINTLIGHT{X}
+            #elif defined(POINTLIGHT{X})
                 info = computePointLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, roughness, NdotV, specularEnvironmentR0, specularEnvironmentR90, geometricRoughnessFactor, light{X}.vLightFalloff, NdotL);
-            #elif DIRLIGHT{X}
+            #elif defined(DIRLIGHT{X})
                 info = computeDirectionalLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, roughness, NdotV, specularEnvironmentR0, specularEnvironmentR90, geometricRoughnessFactor, NdotL);
             #endif
         #else
             #ifdef SPOTLIGHT{X}
                 info = computeSpotLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDirection, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, glossiness);
-            #elif HEMILIGHT{X}
+            #elif defined(HEMILIGHT{X})
                 info = computeHemisphericLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightGround, glossiness);
             #elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
                 info = computeLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, glossiness);

+ 2 - 2
src/Shaders/ShadersInclude/lightFragmentDeclaration.fx

@@ -30,9 +30,9 @@
 	#ifdef SPOTLIGHT{X}
 		uniform vec4 vLightDirection{X};
 		uniform vec4 vLightFalloff{X};
-	#elif POINTLIGHT{X}
+	#elif defined(POINTLIGHT{X})
 		uniform vec4 vLightFalloff{X};
-	#elif HEMILIGHT{X}
+	#elif defined(HEMILIGHT{X})
 		uniform vec3 vLightGround{X};
 	#endif
 	#ifdef PROJECTEDLIGHTTEXTURE{X}

+ 2 - 2
src/Shaders/ShadersInclude/lightUboDeclaration.fx

@@ -8,9 +8,9 @@
 		#ifdef SPOTLIGHT{X}
 			vec4 vLightDirection;
 			vec4 vLightFalloff;
-		#elif POINTLIGHT{X}
+		#elif defined(POINTLIGHT{X})
 			vec4 vLightFalloff;
-		#elif HEMILIGHT{X}
+		#elif defined(HEMILIGHT{X})
 			vec3 vLightGround;
 		#endif
 		vec4 shadowsInfo;

+ 1 - 1
src/Shaders/ShadersInclude/pbrFunctions.fx

@@ -81,7 +81,7 @@ float computeDiffuseTerm(float NdotL, float NdotV, float VdotH, float roughness)
 
 float adjustRoughnessFromLightProperties(float roughness, float lightRadius, float lightDistance)
 {
-    #ifdef USEPHYSICALLIGHTFALLOFF
+    #if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)
         // At small angle this approximation works. 
         float lightRoughness = lightRadius / lightDistance;
         // Distribution can sum.

+ 3 - 3
src/Shaders/ShadersInclude/pbrLightFunctions.fx

@@ -11,7 +11,7 @@ float computeDistanceLightFalloff(vec3 lightOffset, float lightDistanceSquared,
 {   
     #ifdef USEPHYSICALLIGHTFALLOFF
         float lightDistanceFalloff = 1.0 / ((lightDistanceSquared + 0.001));
-    #elif USEGLTFLIGHTFALLOFF
+    #elif defined(USEGLTFLIGHTFALLOFF)
         // Prevents infinity issues at 0.
         const float minDistanceSquared = 0.01*0.01;
         float lightDistanceFalloff = 1.0 / (max(lightDistanceSquared, minDistanceSquared));
@@ -47,13 +47,13 @@ float computeDirectionalLightFalloff(vec3 lightDirection, vec3 directionToLightC
         // not directional light type)
         vec4 lightDirectionSpreadSG = vec4(-lightDirection * concentrationKappa, -concentrationKappa);
         falloff = exp2(dot(vec4(directionToLightCenterW, 1.0), lightDirectionSpreadSG));
-    #elif USEGLTFLIGHTFALLOFF
+    #elif defined(USEGLTFLIGHTFALLOFF)
         // On the CPU
         // float lightAngleScale = 1.0 f / max (0.001f, ( cosInner - cosOuter ));
         // float lightAngleOffset = -cosOuter * angleScale;
 
         float cd = dot(-lightDirection, directionToLightCenterW);
-        float falloff = clamp(cd * lightAngleScale + lightAngleOffset, 0., 1.);
+        falloff = clamp(cd * lightAngleScale + lightAngleOffset, 0., 1.);
         // smooth the transition
         falloff *= falloff;
     #else