diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR.materialtype b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR.materialtype index 31f8bd3c32..77caf42834 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR.materialtype +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR.materialtype @@ -1237,8 +1237,8 @@ } }, { - "name": "angleOffset", - "displayName": " Angle Offset", + "name": "transmissionAngleBias", + "displayName": " Angle Bias", "description": "cosine of angle to extend below (N . L = 0) in scattering through thin objects", "type": "float", "defaultValue": 0.1, @@ -1246,7 +1246,7 @@ "softMax": 1.0, "connection": { "type": "ShaderInput", - "name": "m_angleOffset" + "name": "m_transmissionNdLBias" } }, { diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_Common.azsli b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_Common.azsli index 7c791e1cd0..c15b49dc7d 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_Common.azsli +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_Common.azsli @@ -101,7 +101,7 @@ ShaderResourceGroup MaterialSrg : SRG_PerMaterial Texture2D m_transmissionThicknessMap; uint m_transmissionThicknessMapUvIndex; float m_shrinkFactor; - float m_angleOffset; + float m_transmissionNdLBias; float m_distanceAttenuation; } diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_ForwardPass.azsl b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_ForwardPass.azsl index e35941c623..5e02da679e 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_ForwardPass.azsl +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_ForwardPass.azsl @@ -278,7 +278,7 @@ PbrLightingOutput ForwardPassPS_Common(VSOutput IN, bool isFrontFace, out float // ------- Thin Object Light Transmission ------- // Angle offset for subsurface scattering through thin objects - lightingData.angleOffset = MaterialSrg::m_angleOffset; + lightingData.transmissionNdLBias = MaterialSrg::m_transmissionNdLBias; // Shrink (absolute) offset towards the normal opposite direction to ensure correct shadow map projection lightingData.shrinkFactor = MaterialSrg::m_shrinkFactor; diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.azsl b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.azsl index 8a041a93f1..faa16b205a 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.azsl +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.azsl @@ -344,7 +344,7 @@ PbrLightingOutput SkinPS_Common(VSOutput IN) // ------- Thin Object Light Transmission ------- // Angle offset for subsurface scattering through thin objects - lightingData.angleOffset = MaterialSrg::m_angleOffset; + lightingData.transmissionNdLBias = MaterialSrg::m_transmissionNdLBias; // Shrink (absolute) offset towards the normal opposite direction to ensure correct shadow map projection lightingData.shrinkFactor = MaterialSrg::m_shrinkFactor; diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.materialtype b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.materialtype index fa190657c0..d42f62d0ac 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.materialtype +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin.materialtype @@ -651,8 +651,8 @@ } }, { - "name": "angleOffset", - "displayName": " Angle Offset", + "name": "transmissionAngleBias", + "displayName": " Angle Bias", "description": "cosine of angle to extend below (N . L = 0) in scattering through thin objects", "type": "float", "defaultValue": 0.1, @@ -660,7 +660,7 @@ "softMax": 1.0, "connection": { "type": "ShaderInput", - "name": "m_angleOffset" + "name": "m_transmissionNdLBias" } }, { diff --git a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin_Common.azsli b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin_Common.azsli index 2ec1e6e8dc..630291c260 100644 --- a/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin_Common.azsli +++ b/Gems/Atom/Feature/Common/Assets/Materials/Types/Skin_Common.azsli @@ -72,7 +72,7 @@ ShaderResourceGroup MaterialSrg : SRG_PerMaterial Texture2D m_transmissionThicknessMap; uint m_transmissionThicknessMapUvIndex; float m_shrinkFactor; - float m_angleOffset; + float m_transmissionNdLBias; float m_distanceAttenuation; Texture2D m_wrinkle_baseColor_texture1; diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/BackLighting.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/BackLighting.azsli index adb2dea927..0506f08db1 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/BackLighting.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/BackLighting.azsli @@ -71,8 +71,8 @@ float3 GetBackLighting(Surface surface, LightingData lightingData, float3 lightI } // Irradiance arround surface point. - // Increase angle of influence (angle(N,L) -> angle(N,L) + acos(angleOffset)) to smooth transition regions - float3 E = surface.albedo * max(lightingData.angleOffset + dot(-surface.normal, dirToLight),0.0); + // Increase angle of influence (angle(N,L) -> angle(N,L) + acos(transmissionNdLBias)) to smooth transition regions + float3 E = surface.albedo * max(lightingData.transmissionNdLBias + dot(-surface.normal, dirToLight),0.0); // Transmission distance modulated by hardcoded constant (could be exposed as a weight of scattering distance for transmission) float s = transmissionDistance * 100.0; diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lighting/LightingData.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lighting/LightingData.azsli index cc55c4796e..7e7af6be96 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lighting/LightingData.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lighting/LightingData.azsli @@ -31,8 +31,8 @@ class LightingData // Direction light shadow coordinates for shrinked positions (used in scattering through thin objects) float3 shrinkedShadowCoords[ViewSrg::MaxCascadeCount]; - // Angle to accept below (N . L = 0) in scattering through thin objects - float angleOffset; + // (N . L) to accept below (N . L = 0) in scattering through thin objects + float transmissionNdLBias; // Shrink (absolute) offset towards the normal opposite direction to ensure correct shadow map projection float shrinkFactor;