Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-12-02 16:35:43 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-12-02 16:35:49 +0300
commit014eb69cf858036816d12a4b92ffe6681978b683 (patch)
tree05fc4a16f57c6855d5ad209a009a09aa1f8b55d1 /source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
parent3e241af3aec2bf03b0b558ca419ceb08d394a239 (diff)
Overlay Engine: Make thickwires (linesize > 1.0) using the Wire AA pass
This fixes the limitation of OSX not allowing glLineWidth with size > 1.0. This however only fix the viewport wire drawing.
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl')
-rw-r--r--source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl19
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl b/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
index 98f69abe89f..46a2afc42fd 100644
--- a/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
+++ b/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl
@@ -2,6 +2,7 @@
uniform sampler2D colorTex;
uniform sampler2D depthTex;
uniform sampler2D lineTex;
+uniform bool doSmoothLines;
in vec2 uvs;
@@ -26,11 +27,23 @@ out vec4 fragColor;
*/
float line_coverage(float distance_to_line, float line_kernel_size)
{
- return smoothstep(LINE_SMOOTH_END, LINE_SMOOTH_START, abs(distance_to_line) - line_kernel_size);
+ if (doSmoothLines) {
+ return smoothstep(
+ LINE_SMOOTH_END, LINE_SMOOTH_START, abs(distance_to_line) - line_kernel_size);
+ }
+ else {
+ return step(-0.5, line_kernel_size - abs(distance_to_line));
+ }
}
vec4 line_coverage(vec4 distance_to_line, float line_kernel_size)
{
- return smoothstep(LINE_SMOOTH_END, LINE_SMOOTH_START, abs(distance_to_line) - line_kernel_size);
+ if (doSmoothLines) {
+ return smoothstep(
+ LINE_SMOOTH_END, LINE_SMOOTH_START, abs(distance_to_line) - line_kernel_size);
+ }
+ else {
+ return step(-0.5, line_kernel_size - abs(distance_to_line));
+ }
}
vec2 decode_line_dir(vec2 dir)
@@ -79,7 +92,7 @@ void neighbor_blend(
void main()
{
ivec2 center_texel = ivec2(gl_FragCoord.xy);
- const float line_kernel = 0.0;
+ float line_kernel = sizePixel * 0.5 - 0.5;
fragColor = texelFetch(colorTex, center_texel, 0);