vault backup: 2025-02-13 14:47:34
This commit is contained in:
@@ -780,7 +780,7 @@ void GetShadowTerms(float SceneDepth, half4 PrecomputedShadowFactors, uint Shadi
|
||||
float StepOffset = Dither - 0.5;
|
||||
bool bHitCastContactShadow = false;
|
||||
bool bHairNoShadowLight = ShadingModelID == SHADINGMODELID_HAIR && !LightData.ShadowedBits;
|
||||
float HitDistance = ShadowRayCast( TranslatedWorldPosition, L, ContactShadowLength, 8, StepOffset, bHairNoShadowLight, bHitCastContactShadow );
|
||||
float HitDistance = ShadowRayCast( TranslatedWorldPosition, L, ContactShadowLength, 8, StepOffset, bHairNoShadowLight, bHitCastContactShadow );//通过RayMarching来计算是否HitContactShadow以及HitDistance。
|
||||
|
||||
if ( HitDistance > 0.0 )
|
||||
{
|
||||
@@ -803,9 +803,9 @@ void GetShadowTerms(float SceneDepth, half4 PrecomputedShadowFactors, uint Shadi
|
||||
ContactShadowOcclusion *= 1.0 - saturate( exp( -Density * HitDistance ) );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
float ContactShadow = 1.0 - ContactShadowOcclusion;
|
||||
|
||||
//根据是否命中赋予对应的ContactShadow亮度数值,之后乘以Shadow.SurfaceShadow与Shadow.TransmissionShadow。
|
||||
Shadow.SurfaceShadow *= ContactShadow;
|
||||
Shadow.TransmissionShadow *= ContactShadow;
|
||||
}
|
||||
|
Reference in New Issue
Block a user