Use proper UV in cubemap downsampler raster

This removes bias in cubemap downsampling shader that resulted in the bottom of cubemaps being over represented

(cherry picked from commit fb77021559)
This commit is contained in:
clayjohn 2023-05-03 01:06:34 -07:00 committed by Rémi Verschelde
parent e68e2fad25
commit 2435c9426d
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -55,15 +55,14 @@ void main() {
// Converted from compute shader which uses absolute coordinates.
// Could possibly simplify this
float face_size = float(params.face_size);
if (uv_interp.x < face_size && uv_interp.y < face_size) {
float inv_face_size = 1.0 / face_size;
vec2 id = floor(uv_interp);
float u0 = (uv_interp.x * 2.0 + 1.0 - 0.75) * inv_face_size - 1.0;
float u1 = (uv_interp.x * 2.0 + 1.0 + 0.75) * inv_face_size - 1.0;
float u1 = (id.x * 2.0 + 1.0 + 0.75) * inv_face_size - 1.0;
float u0 = (id.x * 2.0 + 1.0 - 0.75) * inv_face_size - 1.0;
float v0 = (uv_interp.y * 2.0 + 1.0 - 0.75) * -inv_face_size + 1.0;
float v1 = (uv_interp.y * 2.0 + 1.0 + 0.75) * -inv_face_size + 1.0;
float v0 = (id.y * 2.0 + 1.0 - 0.75) * -inv_face_size + 1.0;
float v1 = (id.y * 2.0 + 1.0 + 0.75) * -inv_face_size + 1.0;
float weights[4];
weights[0] = calcWeight(u0, v0);
@ -159,5 +158,4 @@ void main() {
break;
}
frag_color = color;
}
}