Fix blur taps alignment issue

This commit is contained in:
Karol Suprynowicz 2025-05-24 11:06:28 +02:00
parent 507718e08b
commit 6584f3d4fd
3 changed files with 7 additions and 3 deletions

View file

@ -91,8 +91,12 @@ void BlurParams::setFilterGaussianTaps(int numHalfTaps, float sigma) {
weight = (float)exp(-offset*offset * inverseTwoSigmaSquared);
params.filterTaps[i + 1].x = offset;
params.filterTaps[i + 1].y = weight;
params.filterTaps[i + 1].z = 0.0f;
params.filterTaps[i + 1].w = 0.0f;
params.filterTaps[i + 1 + numHalfTaps].x = -offset;
params.filterTaps[i + 1 + numHalfTaps].y = weight;
params.filterTaps[i + 1 + numHalfTaps].z = 0.0f;
params.filterTaps[i + 1 + numHalfTaps].w = 0.0f;
totalWeight += 2 * weight;
}

View file

@ -60,7 +60,7 @@ public:
glm::vec4 linearDepthInfo{ 0.0f };
// Taps (offset, weight)
glm::vec2 filterTaps[BLUR_MAX_NUM_TAPS];
glm::vec4 filterTaps[BLUR_MAX_NUM_TAPS];
Params() {}
};

View file

@ -18,7 +18,7 @@ struct BlurParameters {
vec4 depthInfo;
vec4 stereoInfo;
vec4 linearDepthInfo;
vec2 taps[BLUR_MAX_NUM_TAPS];
vec4 taps[BLUR_MAX_NUM_TAPS];
};
LAYOUT(binding=0) uniform blurParamsBuffer {
@ -46,7 +46,7 @@ float getOutputAlpha() {
}
vec2 getFilterTap(int index) {
return parameters.taps[index];
return parameters.taps[index].xy;
}
float getFilterTapOffset(vec2 tap) {