diff options
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_object_outline_lib.glsl')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_object_outline_lib.glsl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_object_outline_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_object_outline_lib.glsl new file mode 100644 index 00000000000..3e925ba023f --- /dev/null +++ b/source/blender/draw/engines/workbench/shaders/workbench_object_outline_lib.glsl @@ -0,0 +1,12 @@ +#define OBJECT_OUTLINE_OFFSET 1 + +float calculate_object_outline(usampler2D objectId, ivec2 texel, uint object_id) +{ + uvec4 oid_offset = uvec4( + texelFetchOffset(objectId, texel, 0, ivec2(0, OBJECT_OUTLINE_OFFSET)).r, + texelFetchOffset(objectId, texel, 0, ivec2(0, -OBJECT_OUTLINE_OFFSET)).r, + texelFetchOffset(objectId, texel, 0, ivec2(-OBJECT_OUTLINE_OFFSET, 0)).r, + texelFetchOffset(objectId, texel, 0, ivec2( OBJECT_OUTLINE_OFFSET, 0)).r); + + return dot(vec4(equal(uvec4(object_id), oid_offset)), vec4(0.25)); +} |