If you want a soft outline on a hard edged shape, then JFA is perfectly capable of this. The JFA is giving you a distance from the closest edge which you can divide by the outline radius to get a softer outline. Something more like Photoshop’s “precise” outer glow. Though that might not be soft enough for your needs.
The Gaussian blur approach doesn’t do anything but blur the silhouette. There’s no “edge detection” or other outline that runs prior. The steps are:
- Render silhouette.
- Blur (using 2 pass separable Gaussian)
- Render back to scene with some arbitrary contrast adjustment.
The inner edges in my own example are not blurred because, like the JFA approach and the brute force approach, I’m using a stencil to exclude the interior. You could also sample the original silhouette texture and use that, though the edge won’t be as clean if you’re using MSAA.
However you’re trying to add a soft outline on an already soft edge, brute force is pretty much the only option.