Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Parashar Krishnamachari, posted on August 26, 2000

Image Description, by Parashar Krishnamachari

This is a screenshot of the latest version of UIUC-SIGGraph's 3d Painterly Rendering Engine. I sent in an earlier one to IOTD - March 9, 2000. It simply takes a 3d scene and creates the effect of painting it on the screen. The result is full mobility in a fully painted scenery. This is the 2nd version and shows some significant new changes...
  • Far faster
  • Better overall coverage of screen
  • More brush variety, including (sort of)curved brushstrokes
  • Direct3d (old one was Glide)
  • Lighting engine (old one was not using it)
  • Lesser interframe coherency (this is actually a bad thing)
  • Semi-quasi faked multi-layer painting
  • This version is also the one that was shown at SIGGraph 2000 conference. Although, we got the research award for version 1. There is more info at

    and more Version 2 screenshots at

    As far as we've seen, this is still the only truly 3d Painterly Rendering Engine in existence that runs in realtime. A PIII-600 w/ a GeForce (not GeForce2) was running this particular scene at 30 fps.

    - Parashar Krishnamachari

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

    August 26, 2000, 02:11 PM

    Looks nice and different :)

    Too many applications look too much alike -- its cool when people use the 3D hardware for something that doesnt look like the standard texture mapped triangle.


    August 26, 2000, 04:21 PM

    can you put up some pics of the images as they would appear if rendered normally so we can see the difference?

    I like it so far, as an artist that kind of thing appeals to me.
    some other ideas might be to try different kinds of bluring and/or transparency of overlayed strokes (like watercolor and airbrush)
    and also things like cross-hatching for the colored pencil
    (for all I know you already have that stuff implemented)

    Phil Carlisle

    August 26, 2000, 06:38 PM

    Love this kind of stuff. Much less boring than 1001 heightfield or bsp renderers (guilty of both), it also looks pretty cool when its moving realtime (saw a mpeg of something similar). Not really for games (we looked at cel shading for our stuff) but nice nonetheless.

    Might be useful for a vibribbon type of game (wireframe sound tap timing game, by the guy that made parappa).



    August 27, 2000, 12:24 AM

    Looks great!

    How do you use triangle-drawing hardware to accelerate rendering of odd-shaped brushstrokes? Are the brush strokes textures?


    Parashar Krishnamachari

    August 27, 2000, 02:39 AM

    Yeah, the Brushstrokes are texturemaps. The main thing about the textures is that they are alpha channel only. This leaves us free to assign arbitrary colors to each stroke. The color jittering is one key that keeps things like that background from looking like one solid color.

    The polys have their dimensions adjusted every frame based on the existing data of length of stroke... angle of stroke. This one also applies some curvature to the strokes, as well.
    In the old version, we had to change every frame as well because we introduced a dynamics system that would have the strokes of certain objects would change shape based on sound input.

    Out of other strokes, there are Marker strokes, charcoal, pencil, smiley-face (which looks surprisingly good), points, a few brush arcs, fan brush, and probably more they added that I didn't even hear about.
    Lack of coherency is the only real problem now.

    - Parashar Krishnamachari

    "Being mortal is what makes us capable of doing the impossible!" -- Akira Toriyama


    August 27, 2000, 09:22 AM

    another thing: do you change the size of the stroke and brush based on distance from the camera? It didn't look like it in the images I saw

    also can you use multiple brushes in a scene (for example the fan brush for tree leaves, watercolor for sky)


    August 27, 2000, 12:39 PM

    Looks very interesting. It would be a great way to simulate a hangover or a drug overdose in a FPS. Good work.

    Parashar Krishnamachari

    August 27, 2000, 01:48 PM

    No we don't scale based on distance in this version. In the old version, the brushstroke polys were part of the mesh. Each polygon in the models had x number of points within it and were tesselated (preprocess) to the right number of points. So when it's part of the mesh, the strokes get scaled anyway.
    The cause of incoherency is that it is done in 2d in this case. Speed reasons. When v1 was translated verbatim to D3D, it was quite a bit slower -- although it's funny how much difference release version compiles in Visual Studio make.

    - Parashar Krishnamachari

    "Being mortal is what makes us capable of doing the impossible!" -- Akira Toriyama

    Parashar Krishnamachari

    August 27, 2000, 01:58 PM

    Oh... missed your other question, almost... Yes, we can use any number of brushes in a scene. Just opted not to in some cases. Every point (yes, point) can be assigned its own brush if you want. That was the whole idea of the hierarchal setup of the classes.
    The brushes are in their own libraries. There is a separate file from the models for paint info... which just has the names of brush libraries used in a scene, and assigns numbers to every brush used in the scene. The model files contain those numbers for each stroke.

    - Parashar Krishnamachari

    "Being mortal is what makes us capable of doing the impossible!" -- Akira Toriyama

    This thread contains 9 messages.
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.