Freestyle integration into Blender


Remaining Freestyle bugs

– Some triangle strips (resulting from the stroke tesselation) are incorrect and show a flip at one or more points

– Crashes. Potentially multiple origins, including, if I remember correctly, a problem with the acceleration grid (some points are found outside the grid although they should be inside). Also, it appears that sometimes a TVertex links to NULL ViewEdges, which shouldn’t happen.

– Visibility problems. Some of these problems are due to the fact that Y-junctions are missing in the current ViewMap (at some point, I refactored the ViewMap and I left the Y-junctions on the side and never got to add them back), for instance that would cause wrong visibility on the silhouette of cylinder’s caps. Some other visibility problems can appear if the mesh is too coarse or has a weird mix of “smooth” and “non-smooth” vertices (vertices that share or don’t share their normals across adjacent faces). In that case, the incompatibility between the model and the smooth silhouettes can make it harder to compute a robust visibility.



  1. I did not want to “clog up” the site with this error message. It looks like it compiles all the way until the install sequence related to the TIFF definitions, which I have included below. This is on a Linux64, UbuntuStudio computer. I will try it next on the Win32 side. The SVN is 28968. Again, thank you for you continued efforts. It has come along way. The hope that the challenges with SWIG are solved without too much wasted energy.

    Install file: “release/scripts/ui/” as “/home/paulhart/blender-freestyle/install/linux2/.blender/scripts/ui/”
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_savetiff’:
    tiff.c:(.text+0x8a): undefined reference to `TIFFOpen’
    tiff.c:(.text+0xc3): undefined reference to `_TIFFmalloc’
    tiff.c:(.text+0x105): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x119): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x342): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x357): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x36c): undefined reference to `TIFFSetField’
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o):tiff.c:(.text+0x382): more undefined references to `TIFFSetField’ follow
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_savetiff’:
    tiff.c:(.text+0x440): undefined reference to `TIFFWriteEncodedStrip’
    tiff.c:(.text+0x453): undefined reference to `TIFFClose’
    tiff.c:(.text+0x465): undefined reference to `_TIFFfree’
    tiff.c:(.text+0x477): undefined reference to `_TIFFfree’
    tiff.c:(.text+0x5ae): undefined reference to `_TIFFmalloc’
    tiff.c:(.text+0x608): undefined reference to `TIFFClose’
    tiff.c:(.text+0x637): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x64d): undefined reference to `TIFFSetField’
    tiff.c:(.text+0x679): undefined reference to `TIFFClose’
    tiff.c:(.text+0x696): undefined reference to `TIFFSetField’
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_loadtiletiff’:
    tiff.c:(.text+0x8f2): undefined reference to `TIFFClientOpen’
    tiff.c:(.text+0x90d): undefined reference to `TIFFSetDirectory’
    tiff.c:(.text+0x932): undefined reference to `TIFFClose’
    tiff.c:(.text+0x968): undefined reference to `TIFFGetField’
    tiff.c:(.text+0x97c): undefined reference to `TIFFGetField’
    tiff.c:(.text+0x9f3): undefined reference to `TIFFReadRGBATile’
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_loadtiff’:
    tiff.c:(.text+0xc51): undefined reference to `TIFFClientOpen’
    tiff.c:(.text+0xc74): undefined reference to `TIFFGetField’
    tiff.c:(.text+0xc8b): undefined reference to `TIFFGetField’
    tiff.c:(.text+0xca2): undefined reference to `TIFFGetField’
    tiff.c:(.text+0xd1a): undefined reference to `TIFFGetField’
    tiff.c:(.text+0xd31): undefined reference to `TIFFGetField’
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o):tiff.c:(.text+0xd48): more undefined references to `TIFFGetField’ follow
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_loadtiff’:
    tiff.c:(.text+0xd50): undefined reference to `TIFFScanlineSize’
    tiff.c:(.text+0xd99): undefined reference to `TIFFReadRGBAImage’
    tiff.c:(.text+0xdf9): undefined reference to `TIFFClose’
    tiff.c:(.text+0xe0c): undefined reference to `TIFFClose’
    tiff.c:(.text+0xf57): undefined reference to `TIFFGetField’
    tiff.c:(.text+0xf84): undefined reference to `TIFFIsTiled’
    tiff.c:(.text+0xf94): undefined reference to `TIFFNumberOfDirectories’
    tiff.c:(.text+0x106a): undefined reference to `TIFFGetField’
    tiff.c:(.text+0x1086): undefined reference to `TIFFGetField’
    tiff.c:(.text+0x10f8): undefined reference to `TIFFSetDirectory’
    tiff.c:(.text+0x11c8): undefined reference to `TIFFReadScanline’
    tiff.c:(.text+0x128f): undefined reference to `TIFFReadScanline’
    tiff.c:(.text+0x139f): undefined reference to `TIFFReadScanline’
    tiff.c:(.text+0x14f7): undefined reference to `TIFFReadScanline’
    tiff.c:(.text+0x158b): undefined reference to `TIFFReadScanline’
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o):tiff.c:(.text+0x162e): more undefined references to `TIFFReadScanline’ follow
    /home/paulhart/blender-freestyle/build/linux2/lib/libbf_imbuf.a(tiff.o): In function `imb_loadtiff’:
    tiff.c:(.text+0x16d6): undefined reference to `_TIFFmalloc’
    tiff.c:(.text+0x170e): undefined reference to `_TIFFfree’
    tiff.c:(.text+0x1720): undefined reference to `_TIFFmalloc’
    tiff.c:(.text+0x1758): undefined reference to `_TIFFfree’
    tiff.c:(.text+0x1793): undefined reference to `_TIFFfree’
    tiff.c:(.text+0x17a8): undefined reference to `_TIFFmalloc’
    tiff.c:(.text+0x1803): undefined reference to `TIFFClose’
    collect2: ld returned 1 exit status
    scons: *** [/home/paulhart/blender-freestyle/build/linux2/bin/blender] Error 1
    Install file: “release/plugins/Makefile” as “/home/paulhart/blender-freestyle/install/linux2/plugins/Makefile”
    scons: building terminated because of errors.

    Comment by Paul Hartsuyker — May 24, 2010 @ 10:14 PM

  2. Hi,
    if an object that is particle instanced is only active in render layers, and not in scene layers, it doesn’t render any freestyle strokes, but solids are ok, as they should.

    Thx a lot.

    Sorry for double post, didn’t see the bugs page at first.

    Comment by delic — January 18, 2011 @ 11:48 AM


    render OK –> disable layer 3 NOK

    Comment by delic — January 18, 2011 @ 12:22 PM

  4. Backbone-stretch doesn’t seem to have any effect on the drawn lines. I have followed the suggested procedure in the post of december 19th (where it says “…how splitting and geometry modifiers can be combined…” and I get the expected results up to (b), but when I apply backbone stretch nothing happens, even when I set the value to +/- 5000. The model I use is suzanne with one level of subdivision applied, so I think it’s not that. The guiding lines appear just fine.

    Comment by Forrest Gimp — January 18, 2012 @ 11:54 AM

    • Thank you for reporting the issue. I just noticed that there was a hard-coded limit that the backbone stretching effect was only applied to those strokes with 2D length longer than 50. In revision 43568 this limitation was removed. I hope this solves the reported problem on your side.


      Comment by The dev team — January 20, 2012 @ 6:07 PM

      • Thanks a lot ! Man, you’re fast….
        But: I have found another issue. Now my stroke-style looks as I wanted it, I tried to render an animation. However, blender always quits at “Freestyle: viewmap creation” of frame two. Frame one renders and saves correctly, but then blender crashes. I can provide a .blend-file if required.

        Comment by Forrest Gimp — January 23, 2012 @ 4:19 PM

      • Thanks for another problem report. I would appreciate it if you could provide a .blend file to reproduce the issue. If you prefer e-mail, I am reachable at rd6t-kjym at


        Comment by The dev team — January 23, 2012 @ 6:02 PM

  5. I have a problem rendering subdivisions properly. Even a simple subdivided cube renders all sorts of line artifacts where they’re not supposed to be. Here is a sample blend file, created with r43. The Cube on the left has been subdivided with Subdivide. The cube in the middle is subdivided with subdivide and has some triangles. The cube on the right has been subdivided using ctrl-R, and the one above that is not subdivided at all. Notice the artifacts on the cube faces. Not sure where to submit this other than here.

    Comment by A saurus1 — January 30, 2012 @ 3:12 PM

    • This only happens when Select By Edge Types is un-checked. If I check it, but leave everything at their default settings, the problem vanishes. Suggestive contours, ridges, and valleys seem to re-introduce the problem.

      Comment by A saurus1 — January 30, 2012 @ 3:39 PM

    • Thanks for your interest on the Blender Freestyle branch. I looked into the .blend file you kindly provided. My conclusion is that the reported issue is not a bug and won’t be fixed (at least in short term), although I see the point that you think this is a problem.

      Just for clarification, when the selection by edge types is unused, all possible feature edges are detected. They include suggestive contours, ridges and valleys. In fact, the line artifacts you observed are of these edge types.

      As a general note, real numbers in computers are approximated values and cannot be exact in many cases. For example, 0.1 and 0.01 cannot be exact real numbers in comptuers (more precisely, in the case of single precision floating-point numbers such as cooridnates of mesh vertices in Blender). When you subdivide flat meshes into several quads and tris, individual coordinates of mesh vertices can be non-exact real numbers with some differences from the exact numbers.

      As far as I can see, suggestive contours, ridges and valleys are very sensitive to this kind of minor differences in real numbers, resulting in line artifacts even on supposedly flat faces. This may be contra-intuitive as you have found, but for now addressing this issue is out of scope in the present Freestyle integration project.

      Hope this helps.


      Comment by The dev team — February 2, 2012 @ 1:27 AM

  6. Hi,
    I’m having some random crashes which I can’t understand or explain – sometimes a scene will render, and if I close Blender, and start up again with the same scene, it will crash. Using Windows 7 Pro and I think I’m using r43863 (x86/32 bit) with Intel cpu and ATI Firepro v4800 gpu.
    When it does render, there are inexplainable lines/edges missing. I’m at a different computer right now, so can’t fully explain. But just wondering if these are known bugs, or just my settings which are bad (crash either way is still a bug).

    Comment by Dwayne Schnell — February 7, 2012 @ 6:25 PM

    • Thank you for the problem report. I am not aware of issues that may lead to the reported random instability. If you can provide me with a specific .blend file that exhibit the documented problem, I will look into it. If you prefer email, my email address is rd6t-kjym at

      Comment by The dev team — February 15, 2012 @ 10:36 PM

  7. I get this error upon launch of r47919. I found this when I noted that the same file will open in the Official 4.69a version, but immediately crashes the Freestyle compiled version. Not sure if this is related. I left a note with the developer for
    Thank you for your continued work.
    Cursor monitor: launched
    Traceback (most recent call last):
    File “C:\Program Files\Blender Foundation\Blender_2.63.11F\2.63\scripts\addons_contrib\”, line 136, in draw
    if settings[“original_file”] == “” and ((context.active_object.dupli_group and context.active_object.dupli_group.library is not None) or context.active_object.library is not None):AttributeError: ‘NoneType’ object has no attribute ‘dupli_group’

    Comment by Paul Hartsuyker — June 14, 2012 @ 10:45 PM

    • Thank you for the problem report. As far as I tested, the trunk also has the same issue. I believe the problem is specific to the addon and not related to Freestyle. I saw you have filed a bug report into the addon bug tracker. I hope the addon author can look into the issue.

      Comment by The dev team — June 19, 2012 @ 9:45 PM

  8. Hi there, the r48011 is crashed when i try to link a character rig group.

    Comment by johantri — June 18, 2012 @ 10:42 PM

    • Could you please test the trunk at the same revision and see if the crash happens as well? Thank you.

      Comment by The dev team — June 19, 2012 @ 9:46 PM

  9. Hi!
    For some reason the following file – – renders upside-down for me.
    I’m using freestyle build svn r50923. Tested with r51113 – same result.
    Blender 2.64 (r51026, without freestyle) – works fine.
    I’m on Fedora 17 x86_64.
    Thank you.

    Comment by Konstantin Dmitriev — October 14, 2012 @ 5:25 PM

    • Ooops. Sorry, I’ve managed to figure out that the problem comes from incompatibility with different versions of OpenEXR libs. Solved now.
      (I’ve used to build in chroot with old OpenEXR lib and running on normal system with newer lib causes such error).

      Comment by Konstantin Dmitriev — October 17, 2012 @ 7:51 AM

      • Thank you for reporting the problem.
        This would be useful for other users that encounter similar situations.

        Comment by The dev team — October 20, 2012 @ 1:39 PM

  10. First off, thanks for all the great work on Freestyle. I love this (after understanding it from tutorials at BlenderNPR).

    I use a lot of “Mean Crease” values on Edges for my Subsurfed Models (especially those with angular, anime looks). For some reason, when also employing “Mark Freestyle Edge”, very often the Mean Crease values on Edges just disappear! This can be EXTREMELY problematic because those Mean Creases are absolutely crucial to my model designs. Crucial. I’ve tried to discover the precise steps which lead to these Mean Crease values just vanishing, but I cannot quite pinpoint them. I will continue to try and find out when and exactly when and why this is occurring. But I wanted to make you (the Freestyle experts) aware of this, and hope that maybe you experts can investigate and solve this.

    Comment by DavidBrennan — February 6, 2013 @ 8:42 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: Logo

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s

Blog at

%d bloggers like this: