What is it?



Artists are able to capture the essence of complex geometry using relatively few strokes. To evoke similar complexity using traditional 3D animation techniques, animators must painstakingly construct intricate geometric models. Futher, achieving the look of artistic strokes is difficult in a computer animation environment geared towards photorealistic rendering. Our project, based on work by Kowalski, et al, generates non-photorealistic images in the style of Dr. Seuss in real time. Our system allows animators to apply a fur-like, puffy, other otherwise complex "geometric texture" to simply primitives to create complex, artistic images in real time.

What we did.

Following the Kowalski paper, we extended the exisiting Animator program to utilize the "Difference Image Algorithm". This algorithm facilitates the placement of virtual pen strokes based on screenspace density. In this case, we place geometric objects (graftals) into the scene as our strokes. To accomplish this we render three images. The first image is a "desire" image representing the areas of the image where stroke desirability is high. The second images is an ID image that allows us to quickly determine which scene object a placed graftal should be attached to. (This allows for hierarchical modelling.) The third image is the result of attaching all the graftals to the scene objects and rendering.



Our main innovation was that our implementation allows for hierarchical modeling where it is not clear the kowalski paper does. We did this by using the ID image to actually add each graftal to the the object occupying the location in space where the graftal desires to be placed.

Another inovation in our project was to render our preliminary desire image in a way other than moving the light source to the camera and making a rendering pass, as Kowalski did. We achieve the same effect by computing a dot product of the surface normal to the eye vector, however, do it this way allows for greater flexibility and opens up the possibility for other shading options, such as using the dot product to index into a texture map, for instance.

Additionally, we tried to precompute stadard size gaussian dots for the graftals to use when registering their desire on the desire image. The rationale behind this was that we could store the precomputed gaussians on the graphics card as textures so that all pixel calculations could be performed on the , however, we deterimed that this caused undesireable aliasing artifacts. Instead we used a fast gaussian approximation using the outer product of a row of pascals triangle taken as a vector.

Results

The results of this endeavour are shown in the video below. Note the "stickyness" of individual graftals to the objects on which they are placed. We tried various methods of attaching these graftals as temporal coherence seems to be the most challenging aspect of graftal placement. Notice in the video, that though many graftals "pop", many do not. In fact, in appears that some of this popping is due to z-buffer percision artifacts when graftals have nearly the same depth. Further note that most of the popping occurs when the camera is changing its azimuth, when the dot product of surface normals and the eye vector are changing most radically.

In terms of tweakability, this system is limited only by imagination. The shape and variety of graftals to be added to a scene is limited only by the immagination and skill of the designer. In this can we implemented only two simple graftals. One could immagine placing dots on the object based on desire to simulate stippleing, or lines for hatching. Additionally, one could make a "smudge" graftal to simulate smudged paint. Further, since this algorithm relies on screen space calculations, there is a lot of room for optimizations. perhaps a object-space algorim could be based on graftals having volumes corresponding to desire and collision detection could be used to eliminat competeing graftals. Also, in our system graftals are either placed or they are invisible, so "popping" cannot be completely eliminated. What is needed is some sore of continous transformation from visibility to invisibility.





Lincoln Ritter
Lucas Kreger-Stickles