I am looking to create a glsl shader program that will give me a variable width outline around an arbitrary 2d texture as shown in the picture. Is this a reasonable job for the GPU? I've looked at edge-detection approaches but those would only reasonably provide a few pixels border. I want arbitrary width. Is this doable?
Variable Width Outline Effect Around a Texture in 2D
741 Views Asked by Bret At
1
There are 1 best solutions below
Related Questions in OPENGL
- How to fix "Access violation executing location" when using GLFW and GLAD
- getting Access violation writing location when calling glDrawElements caused by shader
- Experimenting with GLFW library: window boundary problem and normalized coordinates
- OpenGL Framebuffer/FBO RTT subpixel movement discrepancy
- Why isn't my glfw window showing anything?
- How can glPushMatrix affect the rotation of an object around a rotating object?
- g++ / vscode apparently cannot see my src folder? "cc1plus.exe: fatal error: src/glad.c No such file or directory"
- Does addition-assignment cause dependency chain in GLSL?
- Compiling C++ program with Opengl and Glut in windows
- Using Silk.NET in WinForms
- What happens when rendering an OpenGL buffer that has been padded with NULL (or another value)?
- How can I make a sphere follow an eight-like path in Python using OpenGL?
- OpenGL only rendering second triangle, first triangle not visible
- OpenGL shows black texture on quad
- My Visual Studio 2022 consistently gives me errors saying that the GLchar variable type is undefined
Related Questions in GLSL
- GLSL clamps indices on array access
- Issue with Loading Images in Flutter FragmentShader and GLSL Code
- How to use bitwise operators in GLSL
- Why isn't my glfw window showing anything?
- Three.js how to determine if backfacing in a RawShaderMaterial that's double sided and transparent?
- Does addition-assignment cause dependency chain in GLSL?
- Why is the value of `gl_FragCoord.z` is always 0.5?
- How to draw a WebGLTexture into another Canvas?
- How to display GLSL shaders on a png
- Single WebGL 2.0 shader for multiple texture precisions
- Problem when rendering a red triangle using modernGL and Pygame
- GLSL fragment shader: How do I prevent seams when sampling half of texture to repeat? (with mipmapping or linear filtering on)
- How can I send large arrays of objects to a fragment shader using WebGL2?
- WebGL 2.0 unsigned integer input variable
- GLSL issue with smoothstep function where edge0 is bigger than edge1
Related Questions in SHADER
- How to use bitwise operators in GLSL
- Three.js how to determine if backfacing in a RawShaderMaterial that's double sided and transparent?
- UNITY_VERTEX_INPUT_INSTANCE_ID use in custom shader
- How to draw a WebGLTexture into another Canvas?
- How can I improve my brush on mobile with Unity slow touch interpretation problem?
- FrameBuffer texture reading black for each pixel WebGL
- Single WebGL 2.0 shader for multiple texture precisions
- How you can make a 3D mask in the UI so that it is displayed correctly. Unity
- Could I use multiple materials in Skybox?
- C++ DirectX compress 3D texture into 2D texture
- Enabling transparency on objects rendered to render texture makes them disappear completely on iOS - React Three Fiber
- i have a glslf file how do i convert that to rgb (primitive lua knowledge)
- Why unity do not include my shader to build but log them?
- Compiling vertex shader from vulkan tutorial with glslc gives error: linking multiple files in not supported yet
- Three.js using EffectComposer renderTarget texture is causing flickering / strobing
Related Questions in PIXEL-SHADER
- Is the render target view the only way to output data from pixel shader in DirectX?
- D3D Texture convert Format
- Why does this HLSL pixel shader not compile?
- Variable Width Outline Effect Around a Texture in 2D
- Use of "ScreenTC" and "TC_Window" in fragment shaders
- Red colored point light not projecting correctly [D3D11]
- problem with Creating textures in DirectX 12
- Discarding pixels in ps_2_0?
- Textures do not get accessed properly in pixel shader (DirectX11)
- Normal map overrides smooth edges in DirectX 11
- Converting pixelshader asm to HLSL
- Mix asm vertex shader with HLSL pixel shader in effect
- How to correct this HLSL pixel shader to round corners of a quad?
- How do pixel values behave in DirectX 11 HLSL shaders?
- Having trouble converting a d3d9 pixelshader to d3d11
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?

One approach would be to render the object to a texture with a bit larger scale and color it all the way your outline color should be. Then you render it to another texture as it should be displayed. In a third render pass you could then combine the 2 textures by choosing the outline texture, when the color-texture is empty and else the color texture. This could be an expensive process, but it obviously depends on the scope of your project if that impacts performance too much.