Implement the Zone System for Photographic Exposure Control
Artists and photographers have developed many techniques that can be used when an image has a dynamic range that exceeds that of the medium on which the image is to be displayed. For example, Ansel Adams' Zone System is regularly used by photographers to control exposure. Assuming a very high dynamic range input image (either produced by a rendering system such as toro, or from a sequence of photographs captured with different exposures ala Debevec's paper on high dynamic range images), develop a system that provides control over the exposure. Ansel Adams' books describe in some detail many of the techniques used by photographers.
Compressing Dynamic Range while Maintaining Local Contrast
Several papers have been written on compressing the dynamic range of an image using perceptual principles. However, most of these techniques are based on providing a single tone reproduction curve that maps from input values to output values. As discussed by Cowan and implemented in Fang's thesis, it is also possible to perform local tone reproduction adaptively across the image. This can be done by setting up an optimization problem that is allowed to adjust the input values but is constrained to maintain contrast. Build a system to do this. Can you produce an image similar to Magritte's Empire of the Lights?
Imhof's classic book Cartographic Relief Presentation describes many methods for generating good maps and depictions of terrains. In particular, he describes beautiful methods for shading and hachures, and also other clever ways to portray rocks and other features of the environment. Using a digital terrain model and a segmentation of the terrain into different materials, develop a system for producing high quality drawings of the type described in his book.
Rendering from Simple Models
Despite the fact that pen-and-ink drawings appear simpler and less detailed than photorealistic renderings, they still are based on very detailed geometric models. As discussed in Strothotte and Strothotte, it is often possible to use a much simpler geometric model of the scene and still generate a good line drawing. Investigate this issue using a geometric model with different levels of detail.
Real-time Generation of Line Drawings
Markosian et al. have developed a real-time, software-based NPR system. An interesting question is whether it is possible to use OpenGL hardware to produce such pictures. For example, it is possible to use stencil planes and z-buffer tricks to generate line drawings. For this project you should write a NPR system that leverages as much OpenGL hardware as possible. In particular it should be possible to find important edges (such as silhouette, intersection, etc) using features of OpenGL wherever possible. The edges should also be rendered in a pen and ink style using OpenGL. Allow control over various pen and ink stroke properties such as nib style, stipple pattern, pen pressure, etc.
Feature Extraction & Highlighting System
One of the key advantages of illustrations is that unimportant detail may be suppressed and important features may be enhanced by carefully choosing the rendering style. For example, a mechanical part may contain fillets, holes, welds, assemblies, tolerances, etc. and the designer may want to indicate these in different ways. Implement a system that accepts a CAD model as input and is capable of labeling different features. What features can be automatically detected? What features require in designer in the loop?
Semantic Level of Detail
As discussed by Winkenbach and Salesin, one of the most difficult skills for an illustrator to acquire is indication. As they say, indication leads economy to an illustration by leaving out detail. They describe a system based on an idea from Beier and Neely's morphing algorithm; line segments are placed over the illustration to describe a field and that field is used to control detail. Consider other ways to describe important features of the model. Consider what it would take to produce a single model that depending on the type of drawing desired would be capable of adjusting the detail of different features.
High Quality Engineering Drawings
In the book The Art of the Engineer are shown many beautiful engineering drawings. In contrast to most drawings produced these days, they contain subtle shading and sophisticated layout. Examine these classic drawings, figure out what is being done, develop algorithms to produce them.
High Quality Architectural Drawings
Architectural illustration has an even richer history and more elaborate set of conventions then enginnering drawing. Research different genres of architectural illustration, and develop a system to simulate some common styles.
Canonical View Generation
It is clear that some views of objects are more informative than others. For example, most people draw canonical or protopical views of common objects such as tables, cups, and people. Also, some views of mechanical parts simply contain less information than other views because key subparts may be hidden. Given a 3D model of a single object, develop a system that evaluates the quality of different views and searches for the best views. In addition, develop criteria for generating a set of views that maximally portray the important features of an object.
Lines Drawings of Human Figures
One of the most difficult forms to draw is the human figure, and yet it is essential to include people in drawings of architectural and natural settings. It seems quite conceivable that an architectural drawing system could be built that produced outstanding line drawings from 3D architectural models. The problem remains to integrate people into these drawings. One approach might be to develop a system along the lines of the face morphing system described by T. Poggio. In this system vector fields describe morphs between canonical views and between different expressions. Could such an approach be used to produce 3D drawings of people?
Automated 2D Annotation
Given an arbitrary 2D illustration or model and a list of annotations for specific features, the system will automatically place the annotations. In the input phase the user should be able to select features and write annotations for them. The system is responsible for laying out the annotations so that they are easy to follow and read. The system should incorporate obvious layout constraints, such as minimizing intersection and overlap between annotations and the modeled objects. The system should also incorporate aesthetic and perceptual heuristics which aid the layout. Techniques such as the use of insets may also prove useful.