Reset some values and a somewhat decent result
This commit is contained in:
parent
79446c289b
commit
81e9a162be
2 changed files with 5 additions and 3 deletions
|
@ -55,6 +55,9 @@ Color CloudShader::shade(const Scene &scene, const Ray &ray) const
|
||||||
accumulatedDensity += sampleDensity;
|
accumulatedDensity += sampleDensity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (accumulatedDensity > 1)
|
||||||
|
cloudColor /= accumulatedDensity;
|
||||||
|
|
||||||
float transmittance = exp(-accumulatedDensity * settings.lightAbsorptionThroughCloud);
|
float transmittance = exp(-accumulatedDensity * settings.lightAbsorptionThroughCloud);
|
||||||
|
|
||||||
return background * transmittance + cloudColor;
|
return background * transmittance + cloudColor;
|
||||||
|
@ -118,9 +121,8 @@ Color CloudShader::lightMarch(const Scene &scene, Vector3d currentInCloudPositio
|
||||||
float transmittance = getDensityTransmittance(density);
|
float transmittance = getDensityTransmittance(density);
|
||||||
float scatter = scatterFactor(normalized(lengthDistance), illumination.direction);
|
float scatter = scatterFactor(normalized(lengthDistance), illumination.direction);
|
||||||
|
|
||||||
// TODO: Back to default
|
|
||||||
float factor = settings.darknessThreshold +
|
float factor = settings.darknessThreshold +
|
||||||
(1.0f - settings.darknessThreshold) * (1); // (transmittance * scatter)
|
(1.0f - settings.darknessThreshold) * (transmittance * scatter); // (transmittance * scatter)
|
||||||
cloudColor += factor * illumination.color;
|
cloudColor += factor * illumination.color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ struct CloudSettings
|
||||||
float scale = 10;
|
float scale = 10;
|
||||||
float densityOffset = -0.57f;
|
float densityOffset = -0.57f;
|
||||||
float densityIntensity = 7.0f; // 7.0f
|
float densityIntensity = 7.0f; // 7.0f
|
||||||
float darknessThreshold = 0.2f; // 0.07f
|
float darknessThreshold = 0.07f; // 0.07f
|
||||||
float shadowIntensity = 0.6f;
|
float shadowIntensity = 0.6f;
|
||||||
float shadowLightAbsorption = 1;
|
float shadowLightAbsorption = 1;
|
||||||
float lightAbsorptionTowardsLight = 1.0f;
|
float lightAbsorptionTowardsLight = 1.0f;
|
||||||
|
|
Loading…
Reference in a new issue