doublesided material renderfix

as per the OG writeup, need to apply horizon trick strictly to the specular component
This commit is contained in:
AzaezelX 2022-02-14 14:42:15 -06:00
parent e90419ab7f
commit 1f7d06542e
4 changed files with 10 additions and 10 deletions

View file

@ -496,9 +496,9 @@ vec4 computeForwardProbes(Surface surface,
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
#if CAPTURING == 1 #if CAPTURING == 1
return vec4(mix(surface.baseColor.rgb,(irradiance + specular) * horizon,surface.metalness/2),0); return vec4(mix(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0);
#else #else
return vec4((irradiance + specular) * horizon, 0);//alpha writes disabled return vec4((irradiance + specular* horizon) , 0);//alpha writes disabled
#endif #endif
} }
@ -657,5 +657,5 @@ vec4 debugVizForwardProbes(Surface surface,
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
return vec4((irradiance + specular) * horizon, 0);//alpha writes disabled return vec4((irradiance + specular* horizon) , 0);//alpha writes disabled
} }

View file

@ -501,9 +501,9 @@ float4 computeForwardProbes(Surface surface,
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
#if CAPTURING == 1 #if CAPTURING == 1
return float4(lerp(surface.baseColor.rgb,(irradiance + specular) * horizon,surface.metalness/2),0); return float4(lerp(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0);
#else #else
return float4((irradiance + specular) * horizon, 0);//alpha writes disabled return float4((irradiance + specular* horizon) , 0);//alpha writes disabled
#endif #endif
} }
@ -662,5 +662,5 @@ float4 debugVizForwardProbes(Surface surface,
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
return float4((irradiance + specular) * horizon, 0);//alpha writes disabled return float4((irradiance + specular* horizon) , 0);//alpha writes disabled
} }

View file

@ -200,8 +200,8 @@ void main()
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
#if CAPTURING == 1 #if CAPTURING == 1
OUT_col = vec4(mix(surface.baseColor.rgb,(irradiance + specular) * horizon,surface.metalness/2),0); OUT_col = vec4(mix(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0);
#else #else
OUT_col = vec4((irradiance + specular) * horizon, 0);//alpha writes disabled OUT_col = vec4((irradiance + specular* horizon) , 0);//alpha writes disabled
#endif #endif
} }

View file

@ -188,8 +188,8 @@ float4 main(PFXVertToPix IN) : SV_TARGET
float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N));
horizon *= horizon; horizon *= horizon;
#if CAPTURING == 1 #if CAPTURING == 1
return float4(lerp(surface.baseColor.rgb,(irradiance + specular) * horizon,surface.metalness/2),0); return float4(lerp(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0);
#else #else
return float4((irradiance + specular) * horizon, 0);//alpha writes disabled return result = float4((irradiance + specular* horizon) , 0);//alpha writes disabled
#endif #endif
} }