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?
Rendering Terrains
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.