diff --git a/resources/shaders/xray.shader b/resources/shaders/xray.shader index c375d4300c..278b5b1dd3 100644 --- a/resources/shaders/xray.shader +++ b/resources/shaders/xray.shader @@ -12,6 +12,13 @@ vertex = } fragment = + #ifdef GL_ES + #ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; + #else + precision mediump float; + #endif // GL_FRAGMENT_PRECISION_HIGH + #endif // GL_ES uniform vec4 u_color; void main() diff --git a/resources/shaders/xray_composite.shader b/resources/shaders/xray_composite.shader index f71cdbf901..648611ecc3 100644 --- a/resources/shaders/xray_composite.shader +++ b/resources/shaders/xray_composite.shader @@ -52,11 +52,11 @@ fragment = result = layer0 * layer0.a + result * (1.0 - layer0.a); - float intersection_count = texture2D(u_layer2, v_uvs).r * 51; // (1 / .02) + 1 (+1 magically fixes issues with high intersection count models) + float intersection_count = texture2D(u_layer2, v_uvs).r * 51.0; // (1 / .02) + 1 (+1 magically fixes issues with high intersection count models) float rest = mod(intersection_count + .01, 2.0); - if (rest > 1.0 && rest < 1.5 && intersection_count < 49) + if (rest > 1.0 && rest < 1.5 && intersection_count < 49.0) { - result = result * (1.0 - u_xray_error_strength) + u_xray_error_strength * texture(u_xray_error, v_uvs * u_xray_error_scale); + result = result * (1.0 - u_xray_error_strength) + u_xray_error_strength * texture2D(u_xray_error, v_uvs * u_xray_error_scale); } vec4 sum = vec4(0.0);