From 413435268893f9954c041b73deb1bde35aef999f Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 21 May 2025 02:10:21 +0000 Subject: [PATCH] Update leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl --- .../voxel_resolve_specular.comp.glsl | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl b/leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl index 6fd662d..30c07f2 100644 --- a/leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl +++ b/leenkx/Shaders/voxel_resolve_specular/voxel_resolve_specular.comp.glsl @@ -29,18 +29,17 @@ layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; #include "std/gbuffer.glsl" #include "std/imageatomic.glsl" #include "std/conetrace.glsl" +#include "std/brdf.glsl" uniform sampler2D gbufferD; uniform sampler2D gbuffer0; uniform sampler3D voxels; uniform sampler3D voxelsSDF; -uniform layout(rgba16) image2D voxels_specular; +uniform layout(rgba8) image2D voxels_specular; uniform float clipmaps[voxelgiClipmapCount * 10]; uniform mat4 InvVP; -uniform vec2 cameraProj; uniform vec3 eye; -uniform vec3 eyeLook; uniform vec2 postprocess_resolution; uniform sampler2D sveloc; @@ -56,12 +55,10 @@ void main() { float x = uv.x * 2 - 1; float y = uv.y * 2 - 1; - vec4 v = vec4(x, y, 1.0, 1.0); - v = vec4(InvVP * v); - v.xyz /= v.w; + vec4 clipPos = vec4(x, y, depth, 1.0); + vec4 worldPos = InvVP * clipPos; + 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); vec3 n; @@ -71,7 +68,7 @@ void main() { 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)); }