27 lines
		
	
	
		
			566 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			566 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
// Weighted blended OIT by McGuire and Bavoil
 | 
						|
#version 450
 | 
						|
 | 
						|
#include "compiled.inc"
 | 
						|
 | 
						|
uniform sampler2D gbuffer0; // accum
 | 
						|
uniform sampler2D gbuffer1; // revealage
 | 
						|
 | 
						|
uniform vec2 texSize;
 | 
						|
 | 
						|
in vec2 texCoord;
 | 
						|
out vec4 fragColor;
 | 
						|
 | 
						|
void main() {
 | 
						|
	vec4 accum = texelFetch(gbuffer0, ivec2(texCoord * texSize), 0);
 | 
						|
	float revealage = 1.0 - accum.a;
 | 
						|
 | 
						|
	// Save the blending and color texture fetch cost
 | 
						|
	if (revealage == 0.0) {
 | 
						|
		discard;
 | 
						|
	}
 | 
						|
 | 
						|
	float f = texelFetch(gbuffer1, ivec2(texCoord * texSize), 0).r;
 | 
						|
 | 
						|
	fragColor = vec4(accum.rgb / clamp(f, 0.0001, 5000), revealage);
 | 
						|
}
 |