diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-04-18 12:28:32 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-04-18 12:34:53 +0300 |
commit | 3054a9698104741a0d658992eb2db2873eb06c01 (patch) | |
tree | b3484468500728395a3ce2e5be0550ad4c1f9f0f | |
parent | 7cdc0b76aa976d7e6f7abd97ceb75529cf9a785b (diff) |
Object Mode: Outlines: Fix sample coordinates.
-rw-r--r-- | source/blender/draw/modes/shaders/object_outline_detect_frag.glsl | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl b/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl index dc457100d1c..1a46e207a37 100644 --- a/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl +++ b/source/blender/draw/modes/shaders/object_outline_detect_frag.glsl @@ -40,8 +40,8 @@ void main() #ifdef GL_ARB_texture_gather vec2 texel_size = 1.0 / vec2(textureSize(outlineId, 0).xy); - vec2 uv1 = floor(gl_FragCoord.xy) * texel_size - texel_size; - vec2 uv2 = floor(gl_FragCoord.xy) * texel_size; + vec2 uv1 = ceil(gl_FragCoord.xy) * texel_size - texel_size; + vec2 uv2 = ceil(gl_FragCoord.xy) * texel_size; /* Samples order is CW starting from top left. */ uvec4 tmp1 = textureGather(outlineId, uv1); @@ -52,10 +52,10 @@ void main() #else uvec4 id; uint ref_id = texelFetch(outlineId, texel, 0).r; - id.x = texelFetchOffset(outlineId, texel, 0, ivec2( 1, 0)).r; - id.y = texelFetchOffset(outlineId, texel, 0, ivec2( 0, 1)).r; - id.z = texelFetchOffset(outlineId, texel, 0, ivec2(-1, 0)).r; - id.w = texelFetchOffset(outlineId, texel, 0, ivec2( 0, -1)).r; + id.x = texelFetchOffset(outlineId, texel, 0, ivec2(-1, 0)).r; + id.y = texelFetchOffset(outlineId, texel, 0, ivec2( 0, -1)).r; + id.z = texelFetchOffset(outlineId, texel, 0, ivec2( 0, 1)).r; + id.w = texelFetchOffset(outlineId, texel, 0, ivec2( 1, 0)).r; #endif float ref_depth = texelFetch(outlineDepth, texel, 0).r; |