1
0

fix unlikely division by zero

This commit is contained in:
2025-09-27 05:26:34 +02:00
parent b5d9b30ee9
commit 8c60a46945

View File

@ -20,7 +20,7 @@
#define color_conversion
#define texture_filtering
//#define rotate_180
#define rotate_180
//#define debug_borders
#undef highp // defined by Qt-OpenGl
@ -67,7 +67,7 @@ vec2 equidistant_to_rectilinear(const in vec2 equidistant) {
float rectilinear_radius = length(equidistant);
float rectilinear_angle = atan(rectilinear_radius / rectilinear_focal_length);
float equidistant_radius = rectilinear_angle * equidistant_focal_length;
return equidistant * (equidistant_radius / rectilinear_radius);
return equidistant * (equidistant_radius / (rectilinear_radius > 0.0 ? rectilinear_radius : 1.0));
}
// color space (https://en.wikipedia.org/wiki/Rec._709)
@ -136,7 +136,6 @@ vec2 bilinear_params(const in vec2 coord, out vec2 a, out vec2 b, out vec2 c, ou
vec3 texture_filter(const in vec2 y_coord) {
vec2 a, b, c, d, f = bilinear_params(y_coord, a, b, c, d);
float luminance = mix(
mix(
decode_luminance(texture2DRect(myTextureY, a).x),
@ -147,9 +146,7 @@ vec3 texture_filter(const in vec2 y_coord) {
decode_luminance(texture2DRect(myTextureY, d).x),
f.x),
f.y);
f = bilinear_params(y_coord * 0.5, a, b, c, d);
vec2 chroma = mix(
mix(
decode_chroma(vec2(texture2DRect(myTextureU, a).x, texture2DRect(myTextureV, a).x)),
@ -160,7 +157,6 @@ vec3 texture_filter(const in vec2 y_coord) {
decode_chroma(vec2(texture2DRect(myTextureU, d).x, texture2DRect(myTextureV, d).x)),
f.x),
f.y);
return vec3(luminance, chroma);
}