Suggestive Contours & Highlight Lines for Conveying Shape

by Jon Miranda 

Project Description

I want to create a non-photorealistic rendering system to convey shape using suggestive contours and highlights. Suggestive contours are lines that will most likely be contours if viewed at a different angle.

I use a library called trimesh2 which handled calculating the curvature of my obj meshes. To calculate suggestive contours: One algorithm uses the zero crossing of the radial curvature. The second algorithm defines the suggestive contour to be the set of minima of n · v in the direction of w where n is the normal, v is the view vector, and w is the view vector projected onto the tangent plane. I found a similar Final Project from the University of Utah (Dan Maljovec) which compliment/ filled in the gaps for the math found in the papers.

Given a mesh as input, my program will be able render the shape in a minimal way using contours, suggestive contours, highlights, as well as drawing the curvature. My program allows for toggling the options between on/off.

The input meshes I will work with will be obj files. I use open sourced and freely available meshes such as the Stanford Bunny and a person obj.

A user will interact with my program by specifying a mesh file on the command line (up to 2 obj meshes, just to demo that it works on multiple meshes at the same time).

Results (Images, Videos)

Toon Shading, Suggestive Contours (Darkest Gray), Contours (Black), Highlights (Lightest Gray)

No Toon Shading

Contours (Black), Suggestive Contours (Red), Highlights (Blue)



Suggestive Contours

Suggestive Contours (Red), Highlights (Blue)

And a video!



Suggestive Contours for Conveying Shape: 

Highlight Lines for Conveying Shape: 

Dan Maljovec:

Suggestive Contours by Alyssa Daw: