The Method--or in other words--What We DidThe first step is to have textures of the hair you want to render, so we created a simple particle system that would create the hairs which go into the textures. To the right is an example of what it produces.We create two types of textures using the hair geometry we produced: shell textures and fin textures. The shell textures are horizontal slices of the hair geometry used when looking at the fur from above and the fin textures are vertical slices of the hair geometry used for looking at the fur from the side. Since we are using 2D textures and we want the hairs to look 3D, we layer shell textures on top of each other so that the slices rebuild the original hair geometry -- a picture is worth a thousand words, so take a look at them! |
Hair Geometry |
Layered shells viewed from above
|
Layered shells viewed from the side
|
Shells don't look very nice from the side do they? Well, that's why we have the fin textures, which are meant to be viewed from the side. Take a look at it on the right.
Excellent, so now we have our textures. Next step is putting them on the model. Here's where we cheated and deviated from the paper. The paper uses lapped textures to parameterize the model so that you can slap on the textures in really cool ways. By using lapped textures you can have a hair direction and can comb the hair. The results look really cool, but alas, implementing lapped textures is the equivalent of a final project and we don't have that much free time lying around... So we cheated and got models that already have the texture coordinates baked in. This doesn't let us do the really cool things like combing hair, but it does allow us to put the textures onto the model in a logical way, so that's good enough for us. |
2D fin texture |
Bunny with all the fins drawn
|
Bunny with only silhouette fins drawn
|
Finally, when we put it all together, and add a sprinkle of modified Banks/Kajiya-Kay lighting models implemented in CG (for that special anisotropic and self shadowing touch!), we get: |
The final result |