Freestyle integration into Blender

March 2, 2010

Weekly update February 22-March 1

Filed under: Update — The dev team @ 12:22 AM

Since the last blog post, the dev team was digging into Blender’s render pipeline with the aim of addressing an instability issue regarding animation rendering.  The issue was that animation rendering was very instable when Freestyle was enabled.

After lots of code reading and a number of attempts for resolving the problem, the cause of instability was finally identified as follows.  In the  Blender code base, RE_BlenderFrame() and RE_BlenderAnim() are internal top-level rendering API functions for a single frame and a series of frames, respectively.  These functions employ some global variables to keep render pipeline states.  Freestyle’s stroke rendering was relying on RE_BlenderFrame() to render a temporary scene of stroke meshes.  This means that two calls of the top-level rendering API functions were nested, which caused broken render pipeline states and eventually led to a crash.

An attempt to fix the instability issue has been made in revision 27213 of the Freestyle branch, by introducing new rendering API function RE_RenderFreestyleStrokes() specifically geared to stroke rendering in Freestyle.  The new function does not do anything with regard to the global variables in the rendering API implementation, so that the render pipeline states are kept clean.  As far as we have tested, animation rendering with Freestyle appears much more stable than it was in the past.  User-side testing and problem reports are highly appreciated.

The renders of the week are offered by mato.  In the BlenderArtists Freestyle thread, he presented impressive line drawings of chrysanthemum shown below, together with a custom SVGWriter style module for drawing strokes with depth-dependent variable line thickness.  Thank you mato for sharing the cool results!

 

5 Comments »

  1. goody! Hopefully my anims will render in FreeStyle with less crashing :-) Thanks FreeSstyle Dev team for all your hard work. Wonder where I can find that cool module Mato used in those spiffy renders?

    Comment by Blenderificus — March 2, 2010 @ 3:07 AM

  2. Freestyle is a wonderful tool…every time I see there is a freestyle news report…I settle in and enjoy the read.

    Such wonderful work is made with this tool…very expressive and unique.

    It like rotoscoping for 3D or filters for 3D

    Thank you to the artist that share their work and the developer.

    very nice.

    Comment by Smartdog — March 2, 2010 @ 4:20 AM

  3. Verygood!

    this is a great news! Stability is one of most importat request from the users :D

    so, I really want to see freestyle in blender 2.5 o 2.6 ;)

    thankyou!

    Comment by Max Puliero — March 2, 2010 @ 6:42 AM

  4. Freestyle Dev team:
    Thank you for posting my picture.
    And I am very glad to hear the news that you have fixed animation problem.
    I tested my animation data which I couldn’t render more than 2 frame recently, and latest build can render to final frame(100).
    I think you have done a significant improvement.

    Blenderificus:
    Thank you for having interest to that style module.
    I think you have already find it on the freestyle thread of Blenderartist.olg (post #865 or #896).
    It was made by mixing 2 style module created by T.K.
    So I think you can make another style module by similar way.
    Thanks.

    Comment by mato — March 2, 2010 @ 1:47 PM

  5. T.K. Well done to you and the Blender development team. This seems to be a more stable build for animation aspects. I was able to render a test 72 frame set, without problem, where it used to “blow up” at some odd interval of frames. Congratulations. I haven’t yet gotten the svg_writer working. Are you going to update the modules.

    Comment by Paul Hartsuyker — March 3, 2010 @ 5:45 AM


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: