algorithm - Need a geometric edge/crease detection method -


i experimenting primitive rendering style (solid colors highlighted edges/creases) open-source game contribute to. world geometry simplistic, , comprised of blocks, pyramids, , there may other simple volumes cylinders, cones, other kinds of prisms, etc. rendering done opengl es 2.

i have been experimenting edge detection methods edges/creases. seemed doing shader-based edge detection (i tried sobel filter , several other algorithms) on depth value , face normals easiest, unable result, due precision limits of depth buffer , complexity of far-away geometry, inability antialiasing on edges.

i decided needed render lines geometrically make them thick , smooth out edges, etc. generate lines programmatically geometry definition prior rendering improve runtime performance. can of effect want drawing main geometry, set depth offset, draw lines on geometry. however, technique has shortcomings, seen below:

overlapping geometry

there may several pieces of geometry overlapping or adjoining form more complex structures. several pieces have overlapping/coplanar faces, want draw outline around them not around each individual piece can see each separate part.

current result on top; desired result on bottom:

overlap

creases

this issue visible in image above, image below shows goals are. want draw lines there creases in overlapping geometry make them stand out lot more.

current result on top; desired result on bottom:

creases


from can tell far, overlapping faces problem, think need intersection tests between lines , nearby intersecting faces, somehow break lines , rid of segments cross other faces. create lines in creases between geometry, think need kind of intersection tests between 2 faces form crease. however, i'm having hard time wrapping head around step-by-step procedure doing that. again, set these lines programmatically in pre-rendering step if possible. guidance appreciated.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -