vault backup: 2025-02-11 21:12:55
This commit is contained in:
parent
bb9633fecd
commit
da264458f6
@ -360,8 +360,9 @@ void DeferredLightPixelMain(
|
|||||||
const float SceneDepth = CalcSceneDepth(InputParams.ScreenUV);
|
const float SceneDepth = CalcSceneDepth(InputParams.ScreenUV);
|
||||||
const FDerivedParams DerivedParams = GetDerivedParams(InputParams, SceneDepth);
|
const FDerivedParams DerivedParams = GetDerivedParams(InputParams, SceneDepth);
|
||||||
|
|
||||||
|
//设置获取光源各种信息
|
||||||
FDeferredLightData LightData = InitDeferredLightFromUniforms(CURRENT_LIGHT_TYPE);
|
FDeferredLightData LightData = InitDeferredLightFromUniforms(CURRENT_LIGHT_TYPE);
|
||||||
UpdateLightDataColor(LightData, InputParams, DerivedParams);
|
UpdateLightDataColor(LightData, InputParams, DerivedParams);//根据当前世界坐标计算LightData.Color *= 大气&云&阴影的衰减值 * IES灯亮度(非IES灯数值为1)
|
||||||
|
|
||||||
float3 V =-DerivedParams.CameraVector;
|
float3 V =-DerivedParams.CameraVector;
|
||||||
float3 L = LightData.Direction; // Already normalized
|
float3 L = LightData.Direction; // Already normalized
|
||||||
@ -404,7 +405,7 @@ void DeferredLightPixelMain(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else // STRATA_ENABLED
|
#else // STRATA_ENABLED
|
||||||
|
//取得屏幕空间数据(FGbufferData、AO)
|
||||||
FScreenSpaceData ScreenSpaceData = GetScreenSpaceData(InputParams.ScreenUV);
|
FScreenSpaceData ScreenSpaceData = GetScreenSpaceData(InputParams.ScreenUV);
|
||||||
// Only light pixels marked as using deferred shading
|
// Only light pixels marked as using deferred shading
|
||||||
BRANCH if (ScreenSpaceData.GBuffer.ShadingModelID > 0
|
BRANCH if (ScreenSpaceData.GBuffer.ShadingModelID > 0
|
||||||
@ -413,19 +414,23 @@ void DeferredLightPixelMain(
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
//通过SceneDepth获取的CameraVector以及当前像素的世界坐标
|
||||||
const float SceneDepth = CalcSceneDepth(InputParams.ScreenUV);
|
const float SceneDepth = CalcSceneDepth(InputParams.ScreenUV);
|
||||||
const FDerivedParams DerivedParams = GetDerivedParams(InputParams, SceneDepth);
|
const FDerivedParams DerivedParams = GetDerivedParams(InputParams, SceneDepth);
|
||||||
|
|
||||||
|
//设置获取光源各种信息
|
||||||
FDeferredLightData LightData = InitDeferredLightFromUniforms(CURRENT_LIGHT_TYPE);
|
FDeferredLightData LightData = InitDeferredLightFromUniforms(CURRENT_LIGHT_TYPE);
|
||||||
UpdateLightDataColor(LightData, InputParams, DerivedParams);
|
UpdateLightDataColor(LightData, InputParams, DerivedParams);//根据当前世界坐标计算LightData.Color *= 大气&云&阴影的衰减值 * IES灯亮度(非IES灯数值为1)
|
||||||
|
|
||||||
|
|
||||||
#if USE_HAIR_COMPLEX_TRANSMITTANCE
|
#if USE_HAIR_COMPLEX_TRANSMITTANCE
|
||||||
|
//针对ShadingModel Hair(同时需要CustomData.a > 0)计算头发散射结果
|
||||||
if (ScreenSpaceData.GBuffer.ShadingModelID == SHADINGMODELID_HAIR && ShouldUseHairComplexTransmittance(ScreenSpaceData.GBuffer))
|
if (ScreenSpaceData.GBuffer.ShadingModelID == SHADINGMODELID_HAIR && ShouldUseHairComplexTransmittance(ScreenSpaceData.GBuffer))
|
||||||
{
|
{
|
||||||
LightData.HairTransmittance = EvaluateDualScattering(ScreenSpaceData.GBuffer, DerivedParams.CameraVector, -DeferredLightUniforms.Direction);
|
LightData.HairTransmittance = EvaluateDualScattering(ScreenSpaceData.GBuffer, DerivedParams.CameraVector, -DeferredLightUniforms.Direction);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
//计算当前像素的抖动值
|
||||||
float Dither = InterleavedGradientNoise(InputParams.PixelPos, View.StateFrameIndexMod8);
|
float Dither = InterleavedGradientNoise(InputParams.PixelPos, View.StateFrameIndexMod8);
|
||||||
|
|
||||||
float SurfaceShadow = 1.0f;
|
float SurfaceShadow = 1.0f;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user