Freestyle integration into Blender

August 28, 2011

Development updates on August 28

Filed under: Update — The dev team @ 10:19 PM

Since the last blog post, several functionality improvements were made in the Freestyle branch as reported below.

Stroke geometry modifiers

A new set of line style options for modifying stroke geometry was introduced in the Parameter Editor mode.  Stroke geometry refers to the backbone polyline of a stroke.  Now stroke geometry can be modified by a list of stroke geometry modifiers specified in the Geometry tab (previously referred to as Distort).  At the moment the following geometry modifiers are available, each with a set of animateable parameters:

  • Sampling: Changes the resolution of stroke backbone polylines.
  • Bezier Curve: Replace stroke backbone with a Bezier approximation of the stroke backbone.
  • Sinus Displacement: Add sinus displacement to stroke backbone.
  • Spatial Noise: Add spatial noise to stroke backbone.
  • Perlin Noise 1D: Add one-dimensional Perlin noise to stroke backbone.
  • Perlin Noise 2D: Add two-dimensional Perlin noise to stroke backbone.
  • Backbone Stretcher: Stretch the beginning and the end of stroke backbone.
  • Tip Remover: Remove a piece of stroke at the beginning and the end of stroke backbone.

Note to branch users: When you have a .blend file with Freestyle options specified, you need to add a Sampling modifier with the Sampling parameter value set to 5, which is the default polyline resolution previously used for line drawing in Freestyle.  Before geometry modifiers were introduced, this initial sampling was automatically done.  Now the initial sampling is a tunable parameter that can be omitted, allowing better control on polyline resolution.  If no sampling modifier is specified, your line drawing will result in coarse polylines.

Images below are a few example renders made with the following stroke geometry modifiers used: (a) no geometry modifiers, showing baseline stroke backbones; (b) Bezier Curve modifier; (c) Sinus Displacement modifier; (d) Backbone Stretcher and Spatial Noise modifiers.

 

 

Fill Range by Selection

A new push button Fill Range by Selection was added to the Distance from Camera and Distance from Object modifiers (see figures below).  This button allows you to automatically fill the Range Min and Max entries based on selected mesh objects.  For the Distance from Camera modifier, the Range Min (Max) entry is filled with the minimum (maximum) distance between the active camera and the vertices of selected mesh objects.  For the Distance from Object modifier, the distance between the target object and the mesh vertices is measured.

 

Stroke splitting at material boundary

A new toggle button for splitting strokes at material boundary was added to the Strokes tab.  This option divides strokes into pieces at material boundary.  The following renders illustrate the effect of the splitting option: (a) disabling the option results in a smooth (blurred) transition of stroke colors across material boundary; (b) enabling the option permits a flat color transition at material boundary.

 

18 Comments »

  1. Excuse me, I would like to know if its possible to do a simple quick reference video, on how to install the freestyle, in all the systems, mac, os, 32 etc…
    specially the windows xp part , or windows 7
    Honestly i have tried doing it like its says on the info. but nothing hapens.. can you help us out….

    This is something simple but is very good to know for all the people who are interested in the proyect :D

    Comment by tsaori — August 30, 2011 @ 12:04 AM

  2. Hi tsaori. Please note that there is a difference between freestyle the standalone system and the integration of that system into blender. This blog is about the latter and so installing this version of freestyle is basically installing a version of blender. You can find versions of blender with freestyle in it at http://graphicall.org/?keywords=freestyle.

    Comment by yoff — August 30, 2011 @ 12:06 PM

  3. Thank you very much for your answer, this was the information i was looking for, yet a bit more specific, also u could use this as a headline, for future persons,
    And about the version, theyre are 3 of them….
    13, 14 and 16 mb and many other whit similiar names, thank god i downloaded all to see which one worked, but i would have loved more help on that, and then again thanx for this and your awesome job, it raelly is a spectacular work you are doing :D

    Comment by tsaori — August 30, 2011 @ 3:58 PM

  4. Hi,
    and congratulations for your great work !

    I’m curious : Do you plan for inclusion in official Blender (main branch) now that 2.6x versions are starting ?

    Please take a look here :
    http://www.blendernation.com/2011/08/22/blender-developers-meeting-notes-august-21-2011/
    and here :
    http://wiki.blender.org/index.php/Dev:2.6/Source/Development/Merge_And_Integration_Plan

    My best regards

    Comment by yagraph — August 31, 2011 @ 7:25 AM

  5. yagraph,
    Yes, the inclusion of Freestyle into the official Blender is planned. Both the dev team and key Blender personnel have already agreed with the merge in the future. It is a matter of asking core Blender developers for code review and sorting out possible issues related to the merge.

    Comment by The dev team — September 1, 2011 @ 8:20 PM

  6. wow, really nice!

    Seeing all these features gradually shape up is just exciting.
    Congrat~

    Comment by Joster — September 4, 2011 @ 9:43 AM

  7. Hello! Freestyle is getting better and better, but it misses one very important thing – freestyle is not available in render passes. Is this feature planned in future? It would be a LOT more flexible.
    Good work guys!

    Comment by kok — September 6, 2011 @ 6:47 AM

    • You can easily obtain a Combined pass that contains only Freestyle strokes by creating a render layer and disable all Include toggles except Freestyle. It is noted that Freestyle is much similar with the good old Edge option in the sense that both are post-processing options for line drawing, and you can obtain an Edge-only Combined pass in the same manner by enabling only the Include Edge option.

      Comment by The dev team — September 6, 2011 @ 8:30 PM

  8. thanks so much guys. really great people and really great project.

    Comment by isaac ahloe — September 6, 2011 @ 2:49 PM

  9. I’m loving this freestyle build! I hope it becomes an official part of blender.

    I have a question – see this image – http://www.flickr.com/photos/jesterartsillustrations/6137778520/sizes/l/in/photostream/

    In some of the strokes there are unnecessary breaks making jaggies and some overlapping transparent areas which show as dark blotches. How can I make the strokes more continuous without breaks?

    Basically I have to achieve the clean-ness as if they were vector lines. Any advice (from anyone) would be great!

    Comment by Seven Soda — September 11, 2011 @ 8:42 PM

    • I see dark blotches in the strokes along the pile of bars in the left bottom of the image as well as in the strokes along the left sphere.
      For the bars, the problem seems resulting from an issue in chaining. By chaining, I mean a rule you have used to specify how feature edges are joined to form a stroke. If you use a custom Python style module, try to change chaining iterators and their parameters. If you use the Parameter Editor mode, try to enable the Same Object option.
      For the sphere, the problem seems due to jaggy feature edges as described in the following blog article:

      Weekly update November 15-28


      By enabling the Face Smoothness option, you have much smooth feature edges as illustrated in the article above. This option however tends to cause line visibility issues, so that this is not always the best solution. Just try it and see if the result is satisfactory for you.
      Another idea is to use the compositor. The undesired blotches appear only in transparent strokes. They disappear if strokes are opaque. You can obtain transparent strokes while avoiding the blotches by rendering only strokes and compositing the strokes and raytracing results with an appropriate transparency factor. If you want to make some strokes transparent and the other opaque, you render the two groups of strokes separately using multiple render layers.

      Comment by The dev team — September 12, 2011 @ 8:10 PM

      • Thanks! I appreciate the time you took to let me in on how that works. I have a series of about 40 pics to do, so that was a pretty big issue. I’ll look into that and see if it works out.

        Comment by Seven Soda — September 14, 2011 @ 10:26 PM

  10. Can you please post the blend of the above vehicle for learning.
    That 4 images of above vehicle are great.
    Or please take my Blend file and modify with new Freestyle and show it.
    http://www.blendswap.com/3D-models/misc-objects/nice-3d-model-created-in-blender/

    Comment by Patricia — September 14, 2011 @ 4:37 PM

  11. Hello, trying out freestyle and I really like it.

    Is it possible to add a geometry modifier for minimum stroke length?

    I’m planning on rendering some images of a machine for a manual and need clean and uncluttered images. The problem I get is that every small screw and hole shows up.
    If it was possible to remove short strokes they would vanish. I tried Tip Remover and had some success but it breaks up to many of the other strokes to be really useful.

    This could be really useful as a cleanup filter.

    Comment by Melrax — September 17, 2011 @ 8:49 PM

    • In the Freestyle branch revision 40335, new options for selecting chains of feature edges by min/max 2D lengths were added.

      Comment by The dev team — September 22, 2011 @ 8:25 PM

      • Great!
        Tried the new revision and it works perfectly.

        Thank you for the fast implementation!

        Comment by Melrax — September 26, 2011 @ 10:25 AM

    • Check out the difference with short strokes removed.

      Got a few gaps instead but that’s not a big deal.

      Comment by Melrax — September 26, 2011 @ 9:06 PM

      • The results look very good. Thank you for the feedback!

        Comment by The dev team — September 26, 2011 @ 11:51 PM


RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.