Rendering a Realistic Hawk Head with Feathers

Project Proposal

Birds are fascinating creatures. They are also beautiful to look at. Part of the beauty of birds comes from feathers. The feathers of birds come in all shapes and sizes and have distinct, intricate patterns.
Rendering a hawk's head will pose a challenging enough problem for the final project since we will have to tackle the following problems in great detail:

Generation of Feather Geometry
How should we model the feather geometry? The appearance model of a feather cannot be captured by just a simple rendering model alone. Objects like fur and feathers have a unique look to them not only because of the way they react to different lighting conditions but also because of the way they are geometrically structured. We will attempt to generate feather geometry based on the Siggraph 2002 paper "Modeling and rendering of realistic feathers" by Chen, Xu, Guo and Shum.

Rendering of Feathers
How should we go about rendering the generated feathers? We will be looking at various fur or feather rendering algorithms for ideas. The Siggraph 1989 paper "Rendering fur with three dimensional textures" by Kajiya and Kay comes to mind. "Modeling and rendering of realistic feathers" by Chen, Xu, Guo and Shum also touches on the rendering aspect. They mention about rendering the feathers using a microgeometry approach. Hence we will be looking at the Siggraph 1992 paper "Predicting reflectance functions from complex surfaces" by Westin, Arvo and Torrance since they talk about the microgeometry approach for rendering complex objects.

Feather Growing Algorithm
How should we grow our generated feathers over a bird head model? In fact, do we have to generate or process the head model in a certain way in order for feather growing to actually work? This seems to be a challenging problem in itself. We will most probably have to develop our own feather growing tools(since there are none on the market) that will allow us to visualize and grow the feathers onto our bird head model.

Preliminary Implementation Ideas

New Pbrt Classes
We will most probably need to derive a new integrator class capable of feather rendering since rendering models like Kajiya-Kay behave differently from the default integrators in pbrt. We might also have to add in a new feather materials class that will allow us to render the feathers effectively.

OpenGL Tools
We will have to use visualization extensively to test our feather generation and growing framework. OpenGL visualization will cut down the amount of time needed to find bugs and aid in the generation of complicated feather geometry.