Update leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl
This commit is contained in:
		@ -29,18 +29,17 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
 | 
				
			|||||||
#include "std/gbuffer.glsl"
 | 
					#include "std/gbuffer.glsl"
 | 
				
			||||||
#include "std/imageatomic.glsl"
 | 
					#include "std/imageatomic.glsl"
 | 
				
			||||||
#include "std/conetrace.glsl"
 | 
					#include "std/conetrace.glsl"
 | 
				
			||||||
 | 
					#include "std/brdf.glsl"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uniform sampler2D gbufferD;
 | 
					uniform sampler2D gbufferD;
 | 
				
			||||||
uniform sampler2D gbuffer0;
 | 
					uniform sampler2D gbuffer0;
 | 
				
			||||||
uniform sampler3D voxels;
 | 
					uniform sampler3D voxels;
 | 
				
			||||||
uniform sampler3D voxelsSDF;
 | 
					uniform sampler3D voxelsSDF;
 | 
				
			||||||
uniform layout(rgba16) image2D voxels_specular;
 | 
					uniform layout(rgba8) image2D voxels_specular;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uniform float clipmaps[voxelgiClipmapCount * 10];
 | 
					uniform float clipmaps[voxelgiClipmapCount * 10];
 | 
				
			||||||
uniform mat4 InvVP;
 | 
					uniform mat4 InvVP;
 | 
				
			||||||
uniform vec2 cameraProj;
 | 
					 | 
				
			||||||
uniform vec3 eye;
 | 
					uniform vec3 eye;
 | 
				
			||||||
uniform vec3 eyeLook;
 | 
					 | 
				
			||||||
uniform vec2 postprocess_resolution;
 | 
					uniform vec2 postprocess_resolution;
 | 
				
			||||||
uniform sampler2D sveloc;
 | 
					uniform sampler2D sveloc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -56,12 +55,10 @@ void main() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	float x = uv.x * 2 - 1;
 | 
						float x = uv.x * 2 - 1;
 | 
				
			||||||
	float y = uv.y * 2 - 1;
 | 
						float y = uv.y * 2 - 1;
 | 
				
			||||||
	vec4 v = vec4(x, y, 1.0, 1.0);
 | 
						vec4 clipPos = vec4(x, y, depth, 1.0);
 | 
				
			||||||
	v = vec4(InvVP * v);
 | 
					    vec4 worldPos = InvVP * clipPos;
 | 
				
			||||||
	v.xyz /= v.w;
 | 
					    vec3 P = worldPos.xyz / worldPos.w;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vec3 viewRay = v.xyz - eye;
 | 
					 | 
				
			||||||
	vec3 P = getPos(eye, eyeLook, normalize(viewRay), depth, cameraProj);
 | 
					 | 
				
			||||||
	vec4 g0 = textureLod(gbuffer0, uv, 0.0);
 | 
						vec4 g0 = textureLod(gbuffer0, uv, 0.0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vec3 n;
 | 
						vec3 n;
 | 
				
			||||||
@ -71,7 +68,7 @@ void main() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	vec2 velocity = -textureLod(sveloc, uv, 0.0).rg;
 | 
						vec2 velocity = -textureLod(sveloc, uv, 0.0).rg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vec3 color = traceSpecular(P, n, voxels, voxelsSDF, normalize(eye - P), g0.z * g0.z, clipmaps, pixel, velocity).rgb;
 | 
						vec3 color = traceSpecular(P, n, voxels, voxelsSDF, normalize(eye - P), g0.z * g0.z, clipmaps, pixel, velocity).rgb * voxelgiRefl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	imageStore(voxels_specular, ivec2(pixel), vec4(color, 1.0));
 | 
						imageStore(voxels_specular, ivec2(pixel), vec4(color, 1.0));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user