mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2024-11-14 14:33:57 +01:00
A clampy merge
- Remove dead code leftover from merge - Add back clamping in late cull
This commit is contained in:
parent
be7676eeb4
commit
5862f3746c
@ -34,7 +34,6 @@ public class IndirectPrograms extends AtomicReferenceCounted {
|
||||
private static final ResourceLocation ZERO_MODELS_SHADER_MAIN = Flywheel.rl("internal/indirect/zero_models.glsl");
|
||||
private static final ResourceLocation DOWNSAMPLE_FIRST = Flywheel.rl("internal/indirect/downsample_first.glsl");
|
||||
private static final ResourceLocation DOWNSAMPLE_SECOND = Flywheel.rl("internal/indirect/downsample_second.glsl");
|
||||
public static final List<ResourceLocation> UTIL_SHADERS = List.of(APPLY_SHADER_MAIN, SCATTER_SHADER_MAIN, READ_VISIBILITY_SHADER_MAIN, ZERO_MODELS_SHADER_MAIN, DOWNSAMPLE_FIRST, DOWNSAMPLE_SECOND);
|
||||
|
||||
private static final Compile<InstanceType<?>> CULL = new Compile<>();
|
||||
private static final Compile<ResourceLocation> UTIL = new Compile<>();
|
||||
|
@ -1,31 +0,0 @@
|
||||
layout(local_size_x = 16, local_size_y = 16) in;
|
||||
|
||||
layout(binding = 0, r32f) uniform writeonly image2D outImage;
|
||||
layout(binding = 1) uniform sampler2D inImage;
|
||||
|
||||
uniform vec2 oneOverImageSize;
|
||||
uniform int lod;
|
||||
|
||||
uniform int useMin = 0;
|
||||
|
||||
void main() {
|
||||
uvec2 pos = gl_GlobalInvocationID.xy;
|
||||
|
||||
// Map the output texel to an input texel. Properly do the division because generating mip0 maps from the actual
|
||||
// full resolution depth buffer and the aspect ratio may be different from our Po2 pyramid.
|
||||
ivec2 samplePos = ivec2(floor(vec2(pos) * vec2(textureSize(inImage, lod)) * oneOverImageSize));
|
||||
|
||||
float depth01 = texelFetchOffset(inImage, samplePos, lod, ivec2(0, 1)).r;
|
||||
float depth11 = texelFetchOffset(inImage, samplePos, lod, ivec2(1, 1)).r;
|
||||
float depth10 = texelFetchOffset(inImage, samplePos, lod, ivec2(1, 0)).r;
|
||||
float depth00 = texelFetchOffset(inImage, samplePos, lod, ivec2(0, 0)).r;
|
||||
|
||||
float depth;
|
||||
if (useMin == 0) {
|
||||
depth = max(max(depth00, depth01), max(depth10, depth11));
|
||||
} else {
|
||||
depth = min(min(depth00, depth01), min(depth10, depth11));
|
||||
}
|
||||
|
||||
imageStore(outImage, ivec2(pos), vec4(depth));
|
||||
}
|
@ -89,6 +89,10 @@ bool _flw_hizTest(vec3 center, float radius) {
|
||||
|
||||
ivec4 bounds = ivec4(aabb * vec4(levelSizePair));
|
||||
|
||||
// Clamp to the texture bounds.
|
||||
// Since we're not going through a sampler out of bounds texel fetches will return 0.
|
||||
bounds = clamp(bounds, ivec4(0), levelSizePair);
|
||||
|
||||
float depth01 = texelFetch(_flw_depthPyramid, bounds.xw, level).r;
|
||||
float depth11 = texelFetch(_flw_depthPyramid, bounds.zw, level).r;
|
||||
float depth10 = texelFetch(_flw_depthPyramid, bounds.zy, level).r;
|
||||
|
Loading…
Reference in New Issue
Block a user