Update leenkx/Shaders/ssrefr_pass/ssrefr_pass.frag.glsl
This commit is contained in:
		@ -57,17 +57,14 @@ vec4 binarySearch(vec3 dir) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vec4 rayCast(vec3 dir) {
 | 
			
		||||
    float ddepth;
 | 
			
		||||
    dir *= ss_refractionRayStep;
 | 
			
		||||
    for (int i = 0; i < maxSteps; i++) {
 | 
			
		||||
        hitCoord += dir;
 | 
			
		||||
        ddepth = getDeltaDepth(hitCoord);
 | 
			
		||||
        if (ddepth > 0.0)
 | 
			
		||||
            return binarySearch(dir);
 | 
			
		||||
    }
 | 
			
		||||
    // No hit — fallback to projecting the ray to UV space
 | 
			
		||||
    vec2 fallbackUV = getProjectedCoord(hitCoord);
 | 
			
		||||
    return vec4(fallbackUV, 0.0, 0.5); // We set .w lower to indicate fallback
 | 
			
		||||
	float ddepth;
 | 
			
		||||
	dir *= ss_refractionRayStep;
 | 
			
		||||
	for (int i = 0; i < maxSteps; i++) {
 | 
			
		||||
		hitCoord += dir;
 | 
			
		||||
		ddepth = getDeltaDepth(hitCoord);
 | 
			
		||||
		if (ddepth > 0.0) return binarySearch(dir);
 | 
			
		||||
	}
 | 
			
		||||
	return vec4(getProjectedCoord(hitCoord), 0.0, 1.0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void main() {
 | 
			
		||||
@ -77,7 +74,7 @@ void main() {
 | 
			
		||||
    float ior = gr.x;
 | 
			
		||||
    float opac = gr.y;
 | 
			
		||||
    float d = textureLod(gbufferD, texCoord, 0.0).r * 2.0 - 1.0;
 | 
			
		||||
    if (d == 0.0 || opac == 1.0 || ior == 1.0) {
 | 
			
		||||
    if (d == 0.0 || d == 1.0 || opac == 1.0 || ior == 1.0) {
 | 
			
		||||
        fragColor.rgb = textureLod(tex1, texCoord, 0.0).rgb;
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user