mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2025-06-27 02:32:39 +08:00
dither cloud intersection threshold to avoid silhouettes. make snells window only apply to water.
This commit is contained in:
@ -284,9 +284,8 @@ vec3 specularReflections(
|
||||
in bool isHand // mask for the hand
|
||||
|
||||
#ifdef FORWARD_SPECULAR
|
||||
, inout float reflectanceForAlpha
|
||||
#else
|
||||
, bool isWater
|
||||
, inout float reflectanceForAlpha
|
||||
#endif
|
||||
|
||||
,in vec4 flashLight_stuff
|
||||
@ -327,7 +326,7 @@ vec3 specularReflections(
|
||||
float shlickFresnel = shlickFresnelRoughness(dot(-normalize(viewDir), vec3(0.0,0.0,1.0)), roughness);
|
||||
|
||||
#if defined FORWARD_SPECULAR && defined SNELLS_WINDOW
|
||||
if(isEyeInWater == 1) shlickFresnel = mix(shlickFresnel, 1.0, min(max(0.98 - (1.0-shlickFresnel),0.0)/(1-0.98),1.0));
|
||||
if(isEyeInWater == 1 && isWater) shlickFresnel = mix(shlickFresnel, 1.0, min(max(0.98 - (1.0-shlickFresnel),0.0)/(1-0.98),1.0));
|
||||
#endif
|
||||
|
||||
// F0 < 230 dialectrics
|
||||
|
@ -334,10 +334,13 @@ vec4 raymarchCloud(
|
||||
float shapeWithDensityFaded = shape*density * pow(clamp((rayPosition.y - minHeight)/(max(maxHeight-minHeight,1.0)*0.25),0.0,1.0),2.0);
|
||||
|
||||
|
||||
if(shapeWithDensityFaded > mix(0.06, 1e-5, dither)){
|
||||
cloudPlaneDistance.x = length(rayPosition - cameraPosition); cloudPlaneDistance.y = 0.0;
|
||||
}
|
||||
|
||||
// check if the pixel has visible clouds before doing work.
|
||||
if(shapeWithDensityFaded > 1e-5){
|
||||
|
||||
cloudPlaneDistance.x = length(rayPosition - cameraPosition); cloudPlaneDistance.y = 0.0;
|
||||
|
||||
// can add the initial cloud shape sample for a free shadow starting step :D
|
||||
float indirectShadowMask = 1.0 - min(max(rayPosition.y - minHeight,0.0) / max(maxHeight-minHeight,1.0), 1.0);
|
||||
|
Reference in New Issue
Block a user