From Mark Harris:
1) The "Blur Buffer". This is an idea Russ had and shared with me
because of my experience with programming GeForce 3 hardware. A document that we
passed back and forth describing it in a bit of (rough) detail is attached. The
basic idea is to render blur parameters to a texture, and to use those to do
non-uniform convolution of another image in programmable graphics hardware,
resulting in various types of blurs, including depth of field and motion blur.
2) Real-Time Sky color computation and rendering. This is a pet project of
mine that I actually played with in my spare time at NVIDIA this summer.Lot's of
papers have been published on rendering the sky under different conditions. Most
of them have clever approximations. Some use flat earth approximations; some try
to render the earth's atmosphere from outer space and so use different
approximations. I think that it is now possible to get realistic sky color in
real time on programmable graphics hardware. My dream is to have a system that
would allow you to interactively fly up from the surface through the atmosphere
and out into space, then look back, and all the while the color of the
atmosphere would be computed to look real. This would could probably be done by
using different approximations at different points, and smoothly blending
between them at the transitions. I would love to have even a low-altitude system
that I could plug into my cloud demos. I have lots of references and ideas on
this to give.
3) Realistic real-time facial rendering. ATI and NVIDIA people have both
created demos to show off how realistic they can make peoples' faces look. They
combine BRDFs (maybe with scattering), environmental lighting, etc. But I've
noticed some features that stand out as still very CG. One is the eyes -- they
are too shiny. It would be interesting to get eyes that look real in real-time.
Other features are troublesome too -- like lips and
tongues, etc. I haven't thought a whole lot about it, but it might be interesting
4) Varifocal mirror 3D display. I'd like to revive it as a demonstration system. There are several parts to this. There is a challenging systems problem with what kind of CRT to use and how to drive it from a computer. Then there are some interesting opportunities to display various kinds of data on it (clouds of points, lines, text).
5) A ray-tracer capable of handling lenses and mirrors with a simple file format for describing them.
6) Your project does not have to be a PROGRAMMING project. A nice web page explaining a subject thoroughly could make an acceptable project.
7) A nice framework for 2D and 3D scientific graphs with capabilities similar to Matlab could make a cool project.