Assignment 2: Non-Photorealistic Rendering

CMSC 635, Spring 2009

Due March 26, 2009


Using any language, platform and API of your choosing, create an interactive stroke-based NPR rendering of a scene consisting of at least a ground plane and a couple of simple objects.


First, decide what style — pen and ink, painterly, ...? Interior strokes, silhouettes, suggestive contours, ...?

Second, decide on algorithms — directly from an existing paper, or something you're adapting to be interactive? Strokes drawn with application-level geometry, geometry shaders, fragment shaders, textures, ...?

Finally, make the platform decisions — OpenGL, DirectX or XNA? WIndows, Linux or Mac? C, C# or C++? If using shaders, GLSL, HLSL or Cg? Note that some of these decisions are coupled.

What to submit

Submit all source files necessary for me to build your project, including headers, C++ files, and Makefiles and/or solution files. Do not submit any generated files, including executables, object files, or Windows build files other than the solution file. This time, you should submit a couple of image frames from your application, as well as a short (<30 second) caputured video file. To keep it small, yet high enough quality to see, the video should be 640x480, 30 fps, 1 Mbps. ALSO submit one readme file informally describing your project. It should include what platform you used, what sources and methods you used, notes on how to build your project, and a summary of your own assessment of how well it turned out.

Where to submit

Sumbit to your class SVN repository under assn2.

How to submit

Just check in your files the assn2 trunk by 11:59pm on the day of the deadline.

Show and tell

On March 31st, I'll present the images and video from each of you in class. I'll ask each of you to say a few words about how you approached this assignment. No advance preparation should be necessary.