From 462d6334bfd6c35244264eae74fd3a8b8ac04352 Mon Sep 17 00:00:00 2001 From: KOGA Mitsuhiro Date: Sat, 18 Apr 2026 05:21:53 +0900 Subject: [PATCH] Fix GLES3 scene shader int literal type errors for WebGL --- drivers/gles3/shaders/area_lights_inc.glsl | 2 +- drivers/gles3/shaders/scene.glsl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gles3/shaders/area_lights_inc.glsl b/drivers/gles3/shaders/area_lights_inc.glsl index 15aacbb25a..c3743434e6 100644 --- a/drivers/gles3/shaders/area_lights_inc.glsl +++ b/drivers/gles3/shaders/area_lights_inc.glsl @@ -8,7 +8,7 @@ float acos_approx(float p_x) { float x = abs(p_x); float res = -0.156583f * x + (M_PI / 2.0); res *= sqrt(1.0f - x); - return (p_x >= 0) ? res : M_PI - res; + return (p_x >= 0.0) ? res : M_PI - res; } vec3 integrate_edge_hill(vec3 p0, vec3 p1) { diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index 1e379823a7..8c33048cdd 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -1797,7 +1797,7 @@ void light_process_area(uint idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 f if (dot(area_width, area_width) < EPSILON || dot(area_height, area_height) < EPSILON) { // area is 0 return; } - if (dot(area_direction, vertex - area_lights[idx].position) <= 0) { + if (dot(area_direction, vertex - area_lights[idx].position) <= 0.0) { return; // vertex is behind light } @@ -1829,7 +1829,7 @@ void light_process_area(uint idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 f float f90 = clamp(dot(f0, vec3(50.0 * 0.33)), metallic, 1.0); vec3 fresnel_color = f0 * max(ltc_fresnel.x, 0.0) + (f90 - f0) * max(ltc_fresnel.y, 0.0); - float light_length = max(0, dist); + float light_length = max(0.0, dist); float light_attenuation_raw = get_omni_spot_attenuation(light_length, area_lights[idx].inv_radius, area_lights[idx].attenuation); float light_attenuation_ltc = light_attenuation_raw * light_length * light_length; // solid angle already decreases by inverse square, so attenuation power is 2.0 by default -> subtract 2.0