Final Project:  Non Photorealistic Rendering

Diao, Sonny


Aren’t you tired of all those realistic images?  How many billions of polygons can you fit in a 17 inch monitor???  So how many hours did you spend rendering that picture HUH?  If I want photorealism I’ll go take a picture!! And what the hell is BRDF?  I’m Being Really DumbFounded is more like it!!!  How about something even a 3 year old can appreciate?  No, not photo mapping with volumetric rendering of procedural clouds created with some turbulence function.  Nope, not that.  Here’s a list of what I did not do.


-photon maps

-global illumination

-subsurface scattering

-participating media




-monte carlo ray tracing

-path tracing

-soft shadows

-depth of field

-motion blur











Get ready for the final image; it’s going to blow your pants off.


At the top left corner, you can see the light source and the photons that it is emitting.  This provides the global illumination needed to light up the scene.




Okay okay, I slacked off the last 3 weeks and did this in window’s paint last night.  I really wanted to do photon mapping with subsurface scattering of some jade material.  I even bought Professor Jensen’s book, “Realistic Image Synthesis Using Photon Mapping”.   It’s here at Amazon for 39 bucks!  {brownie_pts+=1000; }  I’m surprised he didn’t make his book a requirement for the class! 



Okay here’s what I really did.  Graftals!

What are they?  They’re like textures I guess. 

What are they good for? They’re good for complex details like fur, hair, grass.

Here is a bunny using a long thin triangle as a graftal.

The orientation of the triangle is determined by the normal on the surface and the

cross product of the normal and the view direction.  The size is scaled to the size

of the longest length of the triangle for that point on the surface. 







Instead of using triangles, we can use bsplines for our graftals. 

Here are a couple of them.  A puffy one and shark fin like one.

The codes for bsplines come from my last quarter’s math 155b class.

It interpolates a set of points with a bspline curve. 








Lets try adding the puffy graftal to the bunny to make a puffy bunny. 


Okay, so the puffy bunny looked more bumpy than puffy.  Let’s just make him furry instead. 



I guess a hairball is okay.  Too hairy?  One of the problems is density.  How many graftals do you want to put in one area?  I used the cheap way of doing it and that is just to make it random.  Decreasing the probability will make it sparse.  We want a higher density near the silhouette.  A better way of doing this is using the difference image algorithm.  A graftal will take up some screen space.  The difference image algorithm will look for areas in the screen space that can fit more graftals. 



Here is final image before the graftals.  There are 3 objects. The sphere contains 2 types of graftals.  One is the sun rays.  They’re just straight lines at the normal at some distance and  length.  The other is just a non circular curve that gives it the bumpy edge.  The bunny is inside that big blue grid.  The last thing is the big triangle that you don’t see.  It has the grass graftals.