@@ -984,6 +984,10 @@ float3 GetSunColor(float3 normal, float3 viewDirection)
984984# include "InverseSquareLighting/InverseSquareLighting.hlsli"
985985# endif
986986
987+ # if defined (IBL)
988+ # include "IBL/IBL.hlsli"
989+ # endif
990+
987991PS_OUTPUT main (PS_INPUT input)
988992{
989993 PS_OUTPUT psout;
@@ -1140,7 +1144,13 @@ PS_OUTPUT main(PS_INPUT input)
11401144# if defined (VC)
11411145 float specularFraction = lerp (1 , fresnel * diffuseOutput.refractionMul, distanceFactor);
11421146 float3 finalColorPreFog = lerp (diffuseColor, specularColor, specularFraction) + sunColor * depthControl.w;
1143- float3 finalColor = lerp (finalColorPreFog, input.FogParam.xyz * PosAdjust[eyeIndex].w, input.FogParam.w);
1147+ float3 fogColor = input.FogParam.xyz;
1148+ # if defined (IBL)
1149+ if (SharedData::iblSettings.EnableDiffuseIBL && !SharedData::InInterior) {
1150+ fogColor = ImageBasedLighting::GetFogIBLColor (fogColor);
1151+ }
1152+ # endif
1153+ float3 finalColor = lerp (finalColorPreFog, fogColor * PosAdjust[eyeIndex].w, input.FogParam.w);
11441154# if defined (WETNESS_EFFECTS) && defined (DEBUG_WETNESS_EFFECTS)
11451155 // DEBUG MODE: Override water color with debug visualization
11461156 float3 debugColor = WetnessEffects::GetDebugWetnessColorStandard (waterData.rippleInfo, 2.0 , 3.0 );
@@ -1152,12 +1162,23 @@ PS_OUTPUT main(PS_INPUT input)
11521162# else
11531163 float specularFraction = lerp (1 , fresnel, distanceFactor);
11541164 float3 finalColorPreFog = lerp (diffuseOutput.refractionDiffuseColor, specularColor, specularFraction) + sunColor * depthControl.w;
1155- finalColorPreFog = lerp (finalColorPreFog, input.FogParam.xyz * PosAdjust[eyeIndex].w, input.FogParam.w);
1165+ float3 preFogColor = input.FogParam.xyz;
1166+ # if defined (IBL)
1167+ if (SharedData::iblSettings.EnableDiffuseIBL && !SharedData::InInterior) {
1168+ preFogColor = ImageBasedLighting::GetFogIBLColor (preFogColor);
1169+ }
1170+ # endif
1171+ finalColorPreFog = lerp (finalColorPreFog, preFogColor * PosAdjust[eyeIndex].w, input.FogParam.w);
11561172
11571173 float3 refractionColor = diffuseOutput.refractionColor;
11581174
11591175 float fogFactor = min (FogParam.w, pow (saturate (-diffuseOutput.depth * FogParam.y - FogParam.x), FogParam.z));
11601176 float3 fogColor = lerp (FogNearColor.xyz, FogFarColor.xyz, fogFactor);
1177+ # if defined (IBL)
1178+ if (SharedData::iblSettings.EnableDiffuseIBL && !SharedData::InInterior) {
1179+ fogColor = ImageBasedLighting::GetFogIBLColor (fogColor);
1180+ }
1181+ # endif
11611182 refractionColor = lerp (refractionColor, fogColor, fogFactor);
11621183
11631184 float3 finalColor = lerp (refractionColor, finalColorPreFog, diffuseOutput.refractionMul);
0 commit comments