1
0

Compare commits

..

3 Commits

Author SHA1 Message Date
71cca0589e cleanup 2025-09-23 05:46:58 +02:00
67b60b0e69 cleanup 2025-09-23 05:46:38 +02:00
79b66d47ee black border color 2025-09-23 05:46:21 +02:00
2 changed files with 23 additions and 22 deletions

View File

@ -68,7 +68,7 @@ vec3 sample_texture(const in vec2 coord) {
vec2 y_coord = texture_center + rectilinear * sensor_to_texture;
#ifdef debug_borders
if (y_coord.x < 0.0 || y_coord.y < 0.0 || y_coord.x > myResolution.x || y_coord.y > myResolution.y) {
return vec3(1.0);
return vec3(16.0 / 255.0, 0.5, 0.5);
}
#endif
vec2 uv_coord = y_coord * 0.5;
@ -99,15 +99,15 @@ vec3 decode_pixel(const in vec3 pixel) {
return vec3(l, color.yz);
}
vec3 encode_pixel(const in vec3 color) {
vec3 encode_color(const in vec3 color) {
float y = (color.x < 0.018) ? (color.x * 4.5) : (pow(color.x, 0.45) * 1.099 - 0.099);
return (vec3(y, color.yz) + yuv_center) * yuv_range + yuv_min;
}
#else
#define decode_pixel(_color) _color
#define encode_pixel(_color) _color
#define decode_pixel(_pixel) _pixel
#define encode_color(_color) _color
#endif // non_linear_decoding
@ -121,5 +121,5 @@ void main() {
color += decode_pixel(sample_texture(coord + offset));
}
}
gl_FragColor = vec4(encode_pixel(color * subsampling_scale), 1.0);
gl_FragColor = vec4(encode_color(color * subsampling_scale), 1.0);
}

View File

@ -57,7 +57,7 @@ print("gopro fov : horizontal = %7.3f, vertical = %7.3f, diagonal = %7.3f (deg
gopro_fov_vertical,
gopro_fov_diagonal))
print("\n--- rectilinear re-projection, preserving vertical fov ---\n")
print("\n--- rectilinear re-projection ---\n")
rectilinear_focal_length = lambda radius: radius * math.tan(math.radians(90.0 - equidistant_angle(radius)))
@ -73,14 +73,14 @@ print("linear focal: horizontal = %7.3f, vertical = %7.3f, diagonal = %7.3f (mm)
rectilinear_radius = lambda angle, focal_length: focal_length * math.tan(math.radians(angle))
rectilinear_angle = lambda radius, focal_length: math.degrees(math.atan(radius / focal_length))
preserved_fov_horizontal = 2.0 * rectilinear_angle(gopro_radius_horizontal, rectilinear_focal_length_vertical)
preserved_fov_vertical = 2.0 * rectilinear_angle(gopro_radius_vertical, rectilinear_focal_length_vertical)
preserved_fov_diagonal = 2.0 * rectilinear_angle(gopro_radius_diagonal, rectilinear_focal_length_vertical)
rectilinear_fov_horizontal = 2.0 * rectilinear_angle(gopro_radius_horizontal, rectilinear_focal_length_vertical)
rectilinear_fov_vertical = 2.0 * rectilinear_angle(gopro_radius_vertical, rectilinear_focal_length_vertical)
rectilinear_fov_diagonal = 2.0 * rectilinear_angle(gopro_radius_diagonal, rectilinear_focal_length_vertical)
print("linear fov : horizontal = %7.3f, vertical = %7.3f, diagonal = %7.3f (deg)" % (
preserved_fov_horizontal,
preserved_fov_vertical,
preserved_fov_diagonal))
rectilinear_fov_horizontal,
rectilinear_fov_vertical,
rectilinear_fov_diagonal))
print("\n--- shader parameters ---\n")
@ -93,13 +93,14 @@ const float rectilinear_focal_length = %.6f;""" % (
rectilinear_focal_length_vertical)
)
print("\n--- filter parameters 4K ---\n")
width_scale = rectilinear_focal_length_vertical / rectilinear_focal_length_horizontal
output_height = 2160
output_width = int(round((output_height / 7.0) * 8.0 * width_scale))
print("resize: width = %d, height = %d" % (
output_width,
output_height))
# print("\n--- filter parameters 4K ---\n")
#
# width_scale = rectilinear_focal_length_vertical / rectilinear_focal_length_horizontal
#
# output_height = 2160
# output_width = int(round((output_height / gopro_array_vertical) * gopro_array_horizontal * width_scale))
#
# print("resize: width = %d, height = %d, ratio = %f" % (
# output_width,
# output_height,
# output_width / output_height))