diff --git a/Content/Editor/MaterialTemplates/Features/ForwardShading.hlsl b/Content/Editor/MaterialTemplates/Features/ForwardShading.hlsl index 92f3bfd30..123201d1e 100644 --- a/Content/Editor/MaterialTemplates/Features/ForwardShading.hlsl +++ b/Content/Editor/MaterialTemplates/Features/ForwardShading.hlsl @@ -152,7 +152,13 @@ void PS_Forward( #if USE_FOG && MATERIAL_SHADING_MODEL != SHADING_MODEL_UNLIT // Calculate exponential height fog - float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0, gBuffer.ViewPos.z); +#if DIRECTX && FEATURE_LEVEL < FEATURE_LEVEL_SM6 + // TODO: fix D3D11/D3D10 bug with incorrect distance + float fogSceneDistance = distance(materialInput.WorldPosition, ViewPos); +#else + float fogSceneDistance = gBuffer.ViewPos.z; +#endif + float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0, fogSceneDistance); if (ExponentialHeightFog.VolumetricFogMaxDistance > 0) { diff --git a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp index a140fb577..64dfe8303 100644 --- a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp +++ b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp @@ -43,6 +43,9 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, SpanBindSR(volumetricFogTextureRegisterIndex, volumetricFogTexture);