ソースを参照

Fix spotlights for PBR

David Catuhe 8 年 前
コミット
638d3abf57

ファイルの差分が大きいため隠しています
+ 2927 - 2925
dist/preview release/babylon.d.ts


ファイルの差分が大きいため隠しています
+ 2927 - 2925
dist/preview release/babylon.module.d.ts


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

@@ -113,8 +113,8 @@ lightingInfo computeSpotLighting(vec3 viewDirectionW, vec3 vNormal, vec4 lightDa
     roughness = adjustRoughnessFromLightProperties(roughness, rangeRadius, lightDistance);
     
     // Diffuse
-    vec3 H = normalize(viewDirectionW - lightDirection.xyz);
-    NdotL = max(0.00000000001, dot(vNormal, -lightDirection.xyz));
+    vec3 H = normalize(viewDirectionW + directionToLightCenterW);
+    NdotL = max(0.00000000001, dot(vNormal, directionToLightCenterW));
     float VdotH = clamp(dot(viewDirectionW, H), 0.00000000001, 1.0);
 
     float diffuseTerm = computeDiffuseTerm(NdotL, NdotV, VdotH, roughness);