From 4a8385e3e8b91e0a6443b104b4d6a6320648314f Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 22 Oct 2019 11:27:30 +0200 Subject: [PATCH] make xray counting color hardcoded value Somewhere between the xray.shader and the xray_composite.shader the colors are stored as unsigned int. Since we want to count the integer number of faces behind a pixel in the red channel, we simply use a color with an r value of 1/255. --- plugins/SolidView/SolidView.py | 1 - plugins/SolidView/xray_composite.shader | 4 ++-- plugins/XRayView/xray_composite.shader | 4 ++-- resources/shaders/xray.shader | 5 ++--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index 565a704b0a..bf8eb67782 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -120,7 +120,6 @@ class SolidView(View): if not self._xray_shader: self._xray_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "xray.shader")) - self._xray_shader.setUniformValue("u_color", Color(*Application.getInstance().getTheme().getColor("xray").getRgb())) if not self._xray_composite_shader: self._xray_composite_shader = OpenGL.getInstance().createShaderProgram(os.path.join(PluginRegistry.getInstance().getPluginPath("SolidView"), "xray_composite.shader")) diff --git a/plugins/SolidView/xray_composite.shader b/plugins/SolidView/xray_composite.shader index 9e8d1545a4..db661d5540 100644 --- a/plugins/SolidView/xray_composite.shader +++ b/plugins/SolidView/xray_composite.shader @@ -58,7 +58,7 @@ fragment = result = layer0 * layer0.a + result * (1.0 - layer0.a); - float intersection_count = (texture2D(u_layer2, v_uvs).r * 255.0) / 5.0; + float intersection_count = texture2D(u_layer2, v_uvs).r * 255.0; if(mod(intersection_count, 2.0) >= 1.0) { if (hash12(v_uvs) > 0.5) @@ -146,7 +146,7 @@ fragment41core = result = layer0 * layer0.a + result * (1.0 - layer0.a); - float intersection_count = (texture(u_layer2, v_uvs).r * 255.0) / 5.0; + float intersection_count = texture(u_layer2, v_uvs).r * 255.0; if(mod(intersection_count, 2.0) >= 1.0) { if (hash12(v_uvs) > 0.5) diff --git a/plugins/XRayView/xray_composite.shader b/plugins/XRayView/xray_composite.shader index 8bb0f83e9b..8e21bf00c8 100644 --- a/plugins/XRayView/xray_composite.shader +++ b/plugins/XRayView/xray_composite.shader @@ -50,7 +50,7 @@ fragment = result = layer0 * layer0.a + result * (1.0 - layer0.a); - float intersection_count = (texture2D(u_layer2, v_uvs).r * 255.0) / 5.0; + float intersection_count = texture2D(u_layer2, v_uvs).r * 255.0; if(mod(intersection_count, 2.0) >= 1.0) { result = u_error_color; @@ -121,7 +121,7 @@ fragment41core = result = layer0 * layer0.a + result * (1.0 - layer0.a); - float intersection_count = (texture(u_layer2, v_uvs).r * 255.0) / 5.0; + float intersection_count = texture(u_layer2, v_uvs).r * 255.0; if(mod(intersection_count, 2.0) >= 1.0) { result = u_error_color; diff --git a/resources/shaders/xray.shader b/resources/shaders/xray.shader index 45cb16c44c..2f36a6fc0e 100644 --- a/resources/shaders/xray.shader +++ b/resources/shaders/xray.shader @@ -12,7 +12,7 @@ vertex = } fragment = - uniform lowp vec4 u_color; + const lowp vec4 u_color = vec4(1.0 / 255.0, 0.0, 0.0, 1.0); void main() { @@ -34,7 +34,7 @@ vertex41core = fragment41core = #version 410 - uniform lowp vec4 u_color; + const lowp vec4 u_color = vec4(1.0 / 255.0, 0.0, 0.0, 1.0); out vec4 frag_color; @@ -44,7 +44,6 @@ fragment41core = } [defaults] -u_color = [0.02, 0.02, 0.02, 1.0] [bindings] u_modelMatrix = model_matrix