33 lines
		
	
	
		
			924 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			924 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								// Exclusive to SSR for now
							 | 
						||
| 
								 | 
							
								#version 450
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "compiled.inc"
							 | 
						||
| 
								 | 
							
								#include "std/gbuffer.glsl"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uniform sampler2D tex;
							 | 
						||
| 
								 | 
							
								uniform sampler2D gbuffer0; // Roughness
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uniform vec2 dirInv;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								in vec2 texCoord;
							 | 
						||
| 
								 | 
							
								out vec4 fragColor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void main() {
							 | 
						||
| 
								 | 
							
									float roughness = textureLod(gbuffer0, texCoord, 0.0).b;
							 | 
						||
| 
								 | 
							
									// if (roughness == 0.0) { // Always blur for now, non blured output can produce noise
							 | 
						||
| 
								 | 
							
										// fragColor.rgb = textureLod(tex, texCoord).rgb;
							 | 
						||
| 
								 | 
							
										// return;
							 | 
						||
| 
								 | 
							
									// }
							 | 
						||
| 
								 | 
							
									if (roughness >= 0.8) { // No reflections
							 | 
						||
| 
								 | 
							
										fragColor.rgb = textureLod(tex, texCoord, 0.0).rgb;
							 | 
						||
| 
								 | 
							
										return;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									fragColor.rgb = textureLod(tex, texCoord + dirInv * 2.5, 0.0).rgb;
							 | 
						||
| 
								 | 
							
									fragColor.rgb += textureLod(tex, texCoord + dirInv * 1.5, 0.0).rgb;
							 | 
						||
| 
								 | 
							
									fragColor.rgb += textureLod(tex, texCoord, 0.0).rgb;
							 | 
						||
| 
								 | 
							
									fragColor.rgb += textureLod(tex, texCoord - dirInv * 1.5, 0.0).rgb;
							 | 
						||
| 
								 | 
							
									fragColor.rgb += textureLod(tex, texCoord - dirInv * 2.5, 0.0).rgb;
							 | 
						||
| 
								 | 
							
									fragColor.rgb /= vec3(5.0);
							 | 
						||
| 
								 | 
							
								}
							 |