Skylight Shader参数 IndirectLightRendering.h–>FSkyDiffuseLightingParameters
PS函数 ReflectionEnvironmentPixelShader.usf–>ReflectionEnvironmentSkyLighting
相关shader
IMPLEMENT_GLOBAL_SHADER(FDiffuseIndirectCompositePS, "/Engine/Private/DiffuseIndirectComposite.usf", "MainPS", SF_Pixel);
IMPLEMENT_GLOBAL_SHADER(FAmbientCubemapCompositePS, "/Engine/Private/AmbientCubemapComposite.usf", "MainPS", SF_Pixel);
IMPLEMENT_GLOBAL_SHADER(FReflectionEnvironmentSkyLightingPS, "/Engine/Private/ReflectionEnvironmentPixelShader.usf", "ReflectionEnvironmentSkyLighting", SF_Pixel);
FDeferredShadingSceneRenderer::Render() {
RenderDeferredReflectionsAndSkyLighting() {
AddSkyReflectionPass()
}
}
IndirectLightRendering.cpp{
RenderDeferredReflectionsAndSkyLighting(){
AddSkyReflectionPass()
}
}
in SkyLightComponent.h::USkyLightComponent add
{
UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category = Light)
FLightingChannels LightingChannels;
}
in SceneManagement.h::FSkyLightSceneProxy add
{
uint8 LightingChannelMask;
}
in SkyLightComponent.cpp::FSkyLightSceneProxy add
{
LightingChannelMask(GetLightingChannelMaskForStruct(InLightComponent->LightingChannels))
}
in IndirectLightRendering.h::FSkyDiffuseLightingParameters add
{
SHADER_PARAMETER(uint32,LightingChannelMask)
}
in IndirectLightRendering.cpp::GetSkyDiffuseLightingParameters add
{
Out.LightingChannelMask = SkyLight->LightingChannelMask;
}
在RenderDeferredReflectionsAndSkyLighting函数添加LightingChannelsTexture
函数申明在DeferredShadingRenderer.h,函数定义在IndirectLightRendering.cpp
{
FRDGTextureRef LightingChannelsTexture;
}
在FReflectionEnvironmentSkyLightingPS::FParameters添加
{