DRTVWR-559 Don't use automatic probes on water (fixes lots of visual artifacts)

meow-7.2.2
RunitaiLinden 2023-04-21 11:19:14 -05:00
parent d07eaf9302
commit 5c903d9c95
2 changed files with 17 additions and 4 deletions

View File

@ -651,12 +651,11 @@ vec3 sampleProbeAmbient(vec3 pos, vec3 dir)
return col[1]+col[0];
}
void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
void doProbeSample(inout vec3 ambenv, inout vec3 glossenv,
vec2 tc, vec3 pos, vec3 norm, float glossiness)
{
// TODO - don't hard code lods
float reflection_lods = max_probe_lod;
preProbeSample(pos);
vec3 refnormpersp = reflect(pos.xyz, norm.xyz);
@ -676,10 +675,24 @@ void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
#endif
}
void sampleReflectionProbes(inout vec3 ambenv, inout vec3 glossenv,
vec2 tc, vec3 pos, vec3 norm, float glossiness)
{
preProbeSample(pos);
doProbeSample(ambenv, glossenv, tc, pos, norm, glossiness);
}
void sampleReflectionProbesWater(inout vec3 ambenv, inout vec3 glossenv,
vec2 tc, vec3 pos, vec3 norm, float glossiness)
{
sampleReflectionProbes(ambenv, glossenv, tc, pos, norm, glossiness);
// don't sample automatic probes for water
sample_automatic = false;
preProbeSample(pos);
sample_automatic = true;
// always include void probe on water
probeIndex[probeInfluences++] = 0;
doProbeSample(ambenv, glossenv, tc, pos, norm, glossiness);
// fudge factor to get PBR water at a similar luminance ot legacy water
glossenv *= 0.4;

View File

@ -729,7 +729,7 @@
name="1"
value="1"/>
<combo_box.item
label="Manual + terrain and water"
label="Manual + terrain"
name="2"
value="2"/>
<combo_box.item