1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef LIGHTWEIGHT_TRANSPARENTLIGHTING_INCLUDED
- #define LIGHTWEIGHT_TRANSPARENTLIGHTING_INCLUDED
- half4 LuxLWRPTransparentFragmentPBR(InputData inputData, half3 albedo, half metallic, half3 specular,
- half smoothness, half occlusion, half3 emission, half alpha
- )
- {
- BRDFData brdfData;
- InitializeBRDFData(albedo, metallic, specular, smoothness, alpha, brdfData);
- Light mainLight = GetMainLight(inputData.shadowCoord);
- MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI, half4(0, 0, 0, 0));
- // GetMainLight will return screen space shadows.
- #if defined(_MAIN_LIGHT_SHADOWS)
- ShadowSamplingData shadowSamplingData = GetMainLightShadowSamplingData();
- half shadowStrength = GetMainLightShadowStrength();
- mainLight.shadowAttenuation = SampleShadowmap(inputData.shadowCoord, TEXTURE2D_ARGS(_MainLightShadowmapTexture, sampler_MainLightShadowmapTexture), shadowSamplingData, shadowStrength, false);
- #endif
- half3 color = GlobalIllumination(brdfData, inputData.bakedGI, occlusion, inputData.normalWS, inputData.viewDirectionWS);
- color += LightingPhysicallyBased(brdfData, mainLight, inputData.normalWS, inputData.viewDirectionWS);
- #ifdef _ADDITIONAL_LIGHTS
- int pixelLightCount = GetAdditionalLightsCount();
- for (int i = 0; i < pixelLightCount; ++i)
- {
- Light light = GetAdditionalLight(i, inputData.positionWS);
- color += LightingPhysicallyBased(brdfData, light, inputData.normalWS, inputData.viewDirectionWS);
- }
- #endif
- #ifdef _ADDITIONAL_LIGHTS_VERTEX
- color += inputData.vertexLighting * brdfData.diffuse;
- #endif
- color += emission;
- return half4(color, alpha);
- }
- #endif
|