diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 00:27:51 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 00:28:07 +0300 |
commit | c995eb1f9f69b9f94ea0b82c4d50495cfd1b38a9 (patch) | |
tree | 0bcd5cb443a0771d901035e13e64bbbf471a17f0 /source/blender/gpu/shaders | |
parent | 9489fea07b61c83a429b61de887b692dffb6a4f4 (diff) |
Cleanup: GPUShader: Remove unused edge fancy shader
Diffstat (limited to 'source/blender/gpu/shaders')
8 files changed, 0 insertions, 389 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_edges_front_back_ortho_vert.glsl b/source/blender/gpu/shaders/gpu_shader_edges_front_back_ortho_vert.glsl deleted file mode 100644 index a71dfba575b..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_front_back_ortho_vert.glsl +++ /dev/null @@ -1,54 +0,0 @@ - -// Draw "fancy" wireframe, displaying front-facing, back-facing and -// silhouette lines differently. -// Mike Erwin, April 2015 - -uniform bool drawFront = true; -uniform bool drawBack = true; -uniform bool drawSilhouette = true; - -uniform vec4 frontColor; -uniform vec4 backColor; -uniform vec4 silhouetteColor; - -uniform vec3 eye; // direction we are looking - -uniform mat4 ModelViewProjectionMatrix; - -in vec3 pos; - -// normals of faces this edge joins (object coords) -in vec3 N1; -in vec3 N2; - -flat out vec4 finalColor; - -// TODO: in float angle; // [-pi .. +pi], + peak, 0 flat, - valley - -// to discard an entire line, set both endpoints to nowhere -// and it won't produce any fragments -const vec4 nowhere = vec4(vec3(0.0), 1.0); - -void main() -{ - bool face_1_front = dot(N1, eye) > 0.0; - bool face_2_front = dot(N2, eye) > 0.0; - - vec4 position = ModelViewProjectionMatrix * vec4(pos, 1.0); - - if (face_1_front && face_2_front) { - // front-facing edge - gl_Position = drawFront ? position : nowhere; - finalColor = frontColor; - } - else if (face_1_front || face_2_front) { - // exactly one face is front-facing, silhouette edge - gl_Position = drawSilhouette ? position : nowhere; - finalColor = silhouetteColor; - } - else { - // back-facing edge - gl_Position = drawBack ? position : nowhere; - finalColor = backColor; - } -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_geom.glsl b/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_geom.glsl deleted file mode 100644 index 3de14704781..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_geom.glsl +++ /dev/null @@ -1,60 +0,0 @@ - -// Draw "fancy" wireframe, displaying front-facing, back-facing and -// silhouette lines differently. -// Mike Erwin, April 2015 - -// After working with this shader a while, convinced we should make -// separate shaders for perpective & ortho. (Oct 2016) - -// Due to perspective, the line segment's endpoints might disagree on -// whether the adjacent faces are front facing. This geometry shader -// decides which edge type to use if endpoints disagree. - -uniform mat4 ProjectionMatrix; - -uniform bool drawFront = true; -uniform bool drawBack = true; -uniform bool drawSilhouette = true; - -uniform vec4 frontColor; -uniform vec4 backColor; -uniform vec4 silhouetteColor; - -layout(lines) in; -layout(line_strip, max_vertices = 2) out; - -in vec4 MV_pos[]; -in float edgeClass[]; - -flat out vec4 finalColor; - -void emitLine(vec4 color) -{ - gl_Position = ProjectionMatrix * MV_pos[0]; - EmitVertex(); - gl_Position = ProjectionMatrix * MV_pos[1]; - finalColor = color; - EmitVertex(); - EndPrimitive(); -} - -void main() -{ - float finalEdgeClass = max(edgeClass[0], edgeClass[1]); - - if (finalEdgeClass > 0.0f) { - // front-facing edge - if (drawFront) - emitLine(frontColor); - } - else if (finalEdgeClass < 0.0f) { - // back-facing edge - if (drawBack) - emitLine(backColor); - } - else { - // exactly one face is front-facing, silhouette edge - if (drawSilhouette) - emitLine(silhouetteColor); - } -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_legacy_vert.glsl b/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_legacy_vert.glsl deleted file mode 100644 index ffd52a0a225..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_legacy_vert.glsl +++ /dev/null @@ -1,68 +0,0 @@ - -// Draw "fancy" wireframe, displaying front-facing, back-facing and -// silhouette lines differently. -// Mike Erwin, April 2015 - -// After working with this shader a while, convinced we should make -// separate shaders for perpective & ortho. (Oct 2016) - -// This shader is an imperfect stepping stone until all platforms are -// ready for geometry shaders. - -// Due to perspective, the line segment's endpoints might disagree on -// whether the adjacent faces are front facing. Need to use a geometry -// shader or pass in an extra position attribute (the other endpoint) -// to do this properly. - -uniform bool drawFront = true; -uniform bool drawBack = true; -uniform bool drawSilhouette = true; - -uniform vec4 frontColor; -uniform vec4 backColor; -uniform vec4 silhouetteColor; - -uniform mat4 ModelViewMatrix; -uniform mat4 ModelViewProjectionMatrix; -uniform mat3 NormalMatrix; - -in vec3 pos; - -// normals of faces this edge joins (object coords) -in vec3 N1; -in vec3 N2; - -flat out vec4 finalColor; - -// TODO: in float angle; // [-pi .. +pi], + peak, 0 flat, - valley - -// to discard an entire line, set its color to invisible -// (must have GL_BLEND enabled, or discard in fragment shader) -const vec4 invisible = vec4(0.0); - -bool front(vec3 N) -{ - vec4 xformed = ModelViewMatrix * vec4(pos, 1.0); - return dot(NormalMatrix * N, normalize(-xformed.xyz)) > 0.0; -} - -void main() -{ - bool face_1_front = front(N1); - bool face_2_front = front(N2); - - gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); - - if (face_1_front && face_2_front) { - // front-facing edge - finalColor = drawFront ? frontColor : invisible; - } - else if (face_1_front || face_2_front) { - // exactly one face is front-facing, silhouette edge - finalColor = drawSilhouette ? silhouetteColor : invisible; - } - else { - // back-facing edge - finalColor = drawBack ? backColor : invisible; - } -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_vert.glsl b/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_vert.glsl deleted file mode 100644 index c8b722e1d7e..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_front_back_persp_vert.glsl +++ /dev/null @@ -1,44 +0,0 @@ - -// Draw "fancy" wireframe, displaying front-facing, back-facing and -// silhouette lines differently. -// Mike Erwin, April 2015 - -// After working with this shader a while, convinced we should make -// separate shaders for perpective & ortho. (Oct 2016) - -// Due to perspective, the line segment's endpoints might disagree on -// whether the adjacent faces are front facing. We use a geometry -// shader to resolve this properly. - -uniform mat4 ModelViewMatrix; -uniform mat3 NormalMatrix; - -in vec3 pos; -in vec3 N1, N2; // normals of faces this edge joins (object coords) - -out vec4 MV_pos; -out float edgeClass; - -// TODO: in float angle; // [-pi .. +pi], + peak, 0 flat, - valley - -bool front(vec3 N, vec3 eye) -{ - return dot(NormalMatrix * N, eye) > 0.0; -} - -void main() -{ - MV_pos = ModelViewMatrix * vec4(pos, 1.0); - - vec3 eye = normalize(-MV_pos.xyz); - - bool face_1_front = front(N1, eye); - bool face_2_front = front(N2, eye); - - if (face_1_front && face_2_front) - edgeClass = 1.0; // front-facing edge - else if (face_1_front || face_2_front) - edgeClass = 0.0; // exactly one face is front-facing, silhouette edge - else - edgeClass = -1.0; // back-facing edge -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_overlay_frag.glsl b/source/blender/gpu/shaders/gpu_shader_edges_overlay_frag.glsl deleted file mode 100644 index 7b35f67dd54..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_overlay_frag.glsl +++ /dev/null @@ -1,21 +0,0 @@ - -#define SMOOTH 1 - -const float transitionWidth = 1.0; - -uniform vec4 fillColor = vec4(0); -uniform vec4 outlineColor = vec4(0, 0, 0, 1); - -noperspective in vec3 distanceToOutline; - -out vec4 FragColor; - -void main() -{ - float edgeness = min(min(distanceToOutline.x, distanceToOutline.y), distanceToOutline.z); -#if SMOOTH - FragColor = mix(outlineColor, fillColor, smoothstep(0, transitionWidth, edgeness)); -#else - FragColor = (edgeness <= 0) ? outlineColor : fillColor; -#endif -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_overlay_geom.glsl b/source/blender/gpu/shaders/gpu_shader_edges_overlay_geom.glsl deleted file mode 100644 index 48fff1629fd..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_overlay_geom.glsl +++ /dev/null @@ -1,72 +0,0 @@ -layout(triangles) in; -layout(triangle_strip, max_vertices = 3) out; - -uniform float outlineWidth = 1.0; -uniform vec2 viewportSize; - -in vec4 pos_xformed[]; -in float widthModulator[]; - -noperspective out vec3 distanceToOutline; - -// project to screen space -vec2 proj(int axis) -{ - vec4 pos = pos_xformed[axis]; - return (0.5 * (pos.xy / pos.w) + 0.5) * viewportSize; -} - -float dist(vec2 pos[3], int v) -{ - // current vertex position - vec2 vpos = pos[v]; - // endpoints of opposite edge - vec2 e1 = pos[(v + 1) % 3]; - vec2 e2 = pos[(v + 2) % 3]; - - float abs_det = length(cross(vec3(vpos - e1, 0), vec3(vpos - e2, 0))); // could simplify - return abs_det / distance(e2, e1); -} - -vec3 distance[3]; - -void clearEdge(int v) -{ - float distant = 10 * outlineWidth; - for (int i = 0; i < 3; ++i) - distance[i][v] += distant; -} - -void modulateEdge(int v) -{ - float offset = min(widthModulator[v], 1) * outlineWidth; - for (int i = 0; i < 3; ++i) - distance[i][v] -= offset; -} - -void main() -{ - vec2 pos[3] = vec2[3](proj(0), proj(1), proj(2)); - - for (int v = 0; v < 3; ++v) - distance[v] = vec3(0); - - for (int v = 0; v < 3; ++v) { - if (widthModulator[v] > 0) { - distance[v][v] = dist(pos, v); - modulateEdge(v); - } - } - - for (int v = 0; v < 3; ++v) - if (widthModulator[v] <= 0) - clearEdge(v); - - for (int v = 0; v < 3; ++v) { - gl_Position = pos_xformed[v]; - distanceToOutline = distance[v]; - EmitVertex(); - } - - EndPrimitive(); -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_overlay_simple_geom.glsl b/source/blender/gpu/shaders/gpu_shader_edges_overlay_simple_geom.glsl deleted file mode 100644 index 12f5a2c7811..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_overlay_simple_geom.glsl +++ /dev/null @@ -1,56 +0,0 @@ -layout(triangles) in; -layout(triangle_strip, max_vertices = 3) out; - -uniform float outlineWidth = 1.0; -uniform vec2 viewportSize; - -noperspective out vec3 distanceToOutline; - -// project to screen space -vec2 proj(int axis) -{ - vec4 pos = gl_in[axis].gl_Position; - return (0.5 * (pos.xy / pos.w) + 0.5) * viewportSize; -} - -float dist(vec2 pos[3], int v) -{ - // current vertex position - vec2 vpos = pos[v]; - // endpoints of opposite edge - vec2 e1 = pos[(v + 1) % 3]; - vec2 e2 = pos[(v + 2) % 3]; - - float abs_det = length(cross(vec3(vpos - e1, 0), vec3(vpos - e2, 0))); // could simplify - return abs_det / distance(e2, e1); -} - -vec3 distance[3]; - -void modulateEdge(int v) -{ - float offset = 0.5 * outlineWidth; - for (int i = 0; i < 3; ++i) - distance[i][v] -= offset; -} - -void main() -{ - vec2 pos[3] = vec2[3](proj(0), proj(1), proj(2)); - - for (int v = 0; v < 3; ++v) - distance[v] = vec3(0); - - for (int v = 0; v < 3; ++v) { - distance[v][v] = dist(pos, v); - modulateEdge(v); - } - - for (int v = 0; v < 3; ++v) { - gl_Position = gl_in[v].gl_Position; - distanceToOutline = distance[v]; - EmitVertex(); - } - - EndPrimitive(); -} diff --git a/source/blender/gpu/shaders/gpu_shader_edges_overlay_vert.glsl b/source/blender/gpu/shaders/gpu_shader_edges_overlay_vert.glsl deleted file mode 100644 index 33615ac36e5..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_edges_overlay_vert.glsl +++ /dev/null @@ -1,14 +0,0 @@ - -uniform mat4 ModelViewProjectionMatrix; - -in vec3 pos; -in float edgeWidthModulator; - -out vec4 pos_xformed; -out float widthModulator; - -void main() -{ - pos_xformed = ModelViewProjectionMatrix * vec4(pos, 1.0); - widthModulator = edgeWidthModulator; -} |