Opened 12 years ago

Closed 11 years ago

#9 closed enhancement (fixed)

Add silhouette edge drawing

Reported by: Tom Goddard Owned by: Tom Goddard
Priority: major Milestone:
Component: Retired Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: chimera

Description

Add silhouette edge drawing.

Possible implementation: write depth buffer to texture, then draw full window black rectangle using this depth shifted backwards by the minimum depth jump for an edge to show. Use 4 shifts one pixel along x and y.

Change History (1)

comment:1 by Tom Goddard, 11 years ago

Resolution: fixed
Status: newclosed

Done.

The new silhouette command and shortcut "se" allows enabling silhouette edges:

silhouette on|off [thickness pixels] [color r,g,b|name] [depthJump j]

This edge drawing is faster than Chimera 1 because it uses a single drawing of the scene, while Chimera 1 draws the scene two times using glPolygonMode and stencil buffer operations. This makes Chimera 1 render silhouettes at half frame rate, while the new method renders just one pass plus a several texture draws on full-window quads which are very fast. For complex scenes the new code is expected to render silhouettes at approximately the same frame rate as no silhouettes.

Note: See TracTickets for help on using tickets.