Eevee: Fix Black volumetrics.
Was caused by a division by 0.
This commit is contained in:
parent
cd7e43f29f
commit
cf6e45b522
|
@ -61,7 +61,7 @@ float phase_function(vec3 v, vec3 l, float g)
|
|||
float cos_theta = dot(v, l);
|
||||
g = clamp(g, -1.0 + 1e-3, 1.0 - 1e-3);
|
||||
float sqr_g = g * g;
|
||||
return (1- sqr_g) / (4.0 * M_PI * pow(1 + sqr_g - 2 * g * cos_theta, 3.0 / 2.0));
|
||||
return (1- sqr_g) / max(1e-8, 4.0 * M_PI * pow(1 + sqr_g - 2 * g * cos_theta, 3.0 / 2.0));
|
||||
}
|
||||
|
||||
#ifdef LAMPS_LIB
|
||||
|
|
|
@ -39,7 +39,7 @@ void main()
|
|||
vec3 wdir = cameraVec;
|
||||
|
||||
vec2 phase = texelFetch(volumePhase, volume_cell, 0).rg;
|
||||
float s_anisotropy = phase.x / phase.y;
|
||||
float s_anisotropy = phase.x / max(1.0, phase.y);
|
||||
|
||||
/* Environment : Average color. */
|
||||
outScattering.rgb += irradiance_volumetric(worldPosition) * s_scattering * phase_function_isotropic();
|
||||
|
@ -78,6 +78,6 @@ void main()
|
|||
/* Catch NaNs */
|
||||
if (any(isnan(outScattering)) || any(isnan(outTransmittance))) {
|
||||
outScattering = vec4(0.0);
|
||||
outTransmittance = vec4(0.0);
|
||||
outTransmittance = vec4(1.0);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue