I'm trying to implement a post-processing pass to detect silhouette-edges from depth data. (by silhouette-edge of a triangles mesh I mean the triangle edges shared by a front and a back-facing triangle relative to the view direction, see image below). enter image description here

From the little research I've done, most of the methods used in games and 3d applications are based on finding the gradient of the eye Z coordinate in image space and then processing the values trying to isolate the silhouette-edges.

Since I'm working for a CAD project, silhouettes need to be as precise as possible, while it looks to me that, with the methods mentioned above, the more accurate/sensitive your filter, the more artifacts are introduced (i.e. entire surfaces detected as edges when you look edge-on on something that extends far along the Z).

Besides, one should carefully choose weights and tolerances for those algorithms.

What are some good examples of silhouette detection in post-processing in commercial products/game?

Specifically, I'd like to find something to compare my experiments against, and also to see the limitations of post-processing edge detection in a state-of-the-art application.

Are there other algorithms for post-processing edge detection as alternatives to Sobel/Roberts cross/...?

  • $\begingroup$ I happened across this shader toy the other day. shadertoy.com/view/DslXz2 $\endgroup$
    – pmw1234
    Commented Dec 1, 2022 at 13:04
  • 1
    $\begingroup$ Hi, Leone! While this is a very interesting topic, asking for examples/resources is specifically off-topic (no "right answer"). Is it possible for you to edit the question to be something with an objective answer? Like a specific flaw in your results or a question about a specific algorithm? I'm not sure what to do here, but in it's current form this question probably needs to be closed. $\endgroup$
    – luser droog
    Commented Dec 3, 2022 at 2:09
  • $\begingroup$ Thanks @luserdroog for pointing that out. I'll open a new question, after some more testing. $\endgroup$ Commented Dec 5, 2022 at 7:49


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.