Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Morgan McGuire, posted on February 21, 2005

Image Description, by Morgan McGuire

Several objects rendered using the method from Hardware Determined Edge Features by Morgan McGuire and John F. Hughes, presented at NPAR 2004.

Using a new data structure, we can find edge features-- silhouettes, contour edges, creases, ridges, and boundaries-- entirely on the GPU, and then draw them with brush stroke textures. The textures are reasonably coherent even under animation, creating the appearance of continuous strokes. The method can be extended to shadows, suggestive contours, and matrix-skinned models so that all rendering tasks are offloaded from the CPU.

The large NPR charcoal teapot and smaller figures were all rendered using variations on the same shader and zero CPU cycles. For the teapot, the shader finds the silhouette edges and strokes them in a charcoal style with thick lines. Creases and other features are detected and stroked with thin lines. The small mechanical part (left) has hidden contours detected and rendered as dashed lines. The realistic furry bunny (2nd from left) is rendered with Lengyel's Shell & Fin method. Fins are placed at contour edges by the shader and shells are also extruded on the GPU. For the torus knot, the shadow volume contours are detected on the GPU and extruded. The cartoon bunny has internal ridges rendered with one style and external contours rendered with another. As in other cases, all edge features are detected on the GPU.

Morgan McGuire

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
Rui Martins

February 22, 2005, 08:19 AM

I specially like the Mechanical drawing!
How fast is it for large objects with many hidden surfaces?
Does it have any downside, as number of passes, fill rate or something else ?

I have to read that paper, soon.


March 01, 2005, 04:53 PM

The primary downside is that on pre-SM3 cards it requires storing a second mesh that is about 8x bigger than the original mesh. I was able to use integer vertex types to squeeze this down a lot, however, and on SM3 cards you don't need to store all of the duplicate data.

It is ideal for algorithms (e.g., shadows, fur) that are already fill-rate bound because that hides the cost of the vertex program.

Complex models with hidden surfaces aren't a problem; rendering the depth map is cheap (depth only rendering is very fast), and the render time for the hidden lines is roughly linear in the number of feature edges.



March 01, 2005, 05:05 PM

What kind of hardware are you running this on?

This thread contains 3 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.