1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifdef LIGHT{X}
- #if defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})
- //No light calculation
- #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, roughness, NdotV, specularEnvironmentR90, NdotL);
- #endif
- #ifdef HEMILIGHT{X}
- info = computeHemisphericLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightGround, roughness, NdotV, specularEnvironmentR90, NdotL);
- #endif
- #if defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})
- info = computeLighting(viewDirectionW, normalW, light{X}.vLightData, light{X}.vLightDiffuse.rgb, light{X}.vLightSpecular, light{X}.vLightDiffuse.a, roughness, NdotV, specularEnvironmentR90, NdotL);
- #endif
- #endif
-
- #ifdef SHADOW{X}
- #ifdef SHADOWESM{X}
- #if defined(POINTLIGHT{X})
- notShadowLevel = computeShadowWithESMCube(light{X}.vLightData.xyz, shadowSampler{X}, light{X}.shadowsInfo.x, light{X}.shadowsInfo.z);
- #else
- notShadowLevel = computeShadowWithESM(light{X}.vPositionFromLight, shadowSampler{X}, light{X}.shadowsInfo.x, light{X}.shadowsInfo.z);
- #endif
- #else
- #ifdef SHADOWPCF{X}
- #if defined(POINTLIGHT{X})
- notShadowLevel = computeShadowWithPCFCube(light{X}.vLightData.xyz, shadowSampler{X}, light{X}.shadowsInfo.y, light{X}.shadowsInfo.x);
- #else
- notShadowLevel = computeShadowWithPCF(vPositionFromLight{X}, shadowSampler{X}, light{X}.shadowsInfo.y, light{X}.shadowsInfo.x);
- #endif
- #else
- #if defined(POINTLIGHT{X})
- notShadowLevel = computeShadowCube(light{X}.vLightData.xyz, shadowSampler{X}, light{X}.shadowsInfo.x);
- #else
- notShadowLevel = computeShadow(vPositionFromLight{X}, shadowSampler{X}, light{X}.shadowsInfo.x);
- #endif
- #endif
- #endif
- #else
- notShadowLevel = 1.;
- #endif
-
- #if defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})
- lightDiffuseContribution += lightmapColor * notShadowLevel;
-
- #ifdef SPECULARTERM
- #ifndef LIGHTMAPNOSPECULAR{X}
- lightSpecularContribution += info.specular * notShadowLevel * lightmapColor;
- #endif
- #endif
- #else
- lightDiffuseContribution += info.diffuse * notShadowLevel;
-
- #ifdef OVERLOADEDSHADOWVALUES
- if (NdotL < 0.000000000011)
- {
- notShadowLevel = 1.;
- }
- shadowedOnlyLightDiffuseContribution *= notShadowLevel;
- #endif
- #ifdef SPECULARTERM
- lightSpecularContribution += info.specular * notShadowLevel;
- #endif
- #endif
- #endif
|