Freestyle integration into Blender

Frequently Asked Questions (FAQ)

Contents:

A. General information on Freestyle

  1. What is Freestyle?
  2. Where can I get a pre-built installer?
  3. What are the basic steps for using Freestyle?
  4. How can I report a problem in using Freestyle?
  5. Where can I get the source code?
  6. How can I donate some money to the development team?

B. Known issues in Freestyle for Blender

  1. I got an error message like “Warning: point is out of the grid for fedge [100, 7]”. What does this mean?
  2. I got an error message “Sorry, only vlak-based shapes are supported”. What does this mean?
  3. I got an error message “Error: strokes set empty”. What does this mean?
  4. Using an orthographic camera leads to a crash.
  5. Rendering a scene with a particular mesh results in a crash and rendering the same scene without the mesh does not.
  6. The japanese_bigbrush.py style randomly draws part of strokes.
  7. Are there missing features?
  8. Edges at intersections of meshes are not rendered.
  9. How can I specify the minimum and maximum distances from a camera?

C. Resources

  1. Is there a document on Freestyle for Blender?
  2. Is there a user forum for exchanging ideas and information?

General information on Freestyle

A.1 What is Freestyle?

Freestyle is a non-photorealistic (NPR) rendering engine currently under integration into Blender. Unlike other photorealistic rendering engines such as raytracers and global illumination renderers, Freestyle has considerable strength in drawing strokes based on feature edges extracted from a 3D scene.

Freestyle was originally developed as an academic research product independently of Blender. The original Freestyle package is available at freestyle.sourceforge.net. As one of Google Summer of Code (GSoC) 2008 projects, Freestyle integration into Blender was started in April 2008 by Maxime Curioni. The initial integration plan and midterm report for GSoC 2008 are also available.

The Freestyle integration into Blender is still ongoing, and its results are expected to be included into Blender 2.5.

A.2 Where can I get a pre-built installer?

Thanks to volunteer builders, you will be able to find a pre-built installer at GraphicAll.org. Visit the site and search a build for your platform with the keywords “Freestyle” and/or “GSoC”.

A.3 What are the basic steps for using Freestyle?

Here is a brief summary of how to use Freestyle for Blender:

  1. Start Blender, go to the Scene panel (by pressing F10) and turn on the Freestyle button in the Output tab. Then the Freestyle tab will show up.
  2. Press the Add style module button. By default, a style module named contour.py is selected. You can choose other style modules by pressing the folder icon in the left of the style module file name.
  3. Press the RENDER button in the Render tab (or press F12) to start rendering. If you have selected contour.py and everything goes well, then within a few seconds you will get a render with a red outline around a cube.

A.4 How can I report a problem in using Freestyle?

Please send a problem report by email to T.K. (rd6t-kjym at asahi-net.or.jp). Both English and Japanese are acceptable.  If possible, please attach a .blend file that can reproduce the problem. Having the .blend file helps us a lot in identifying the causes of the problem.

A.5 Where can I get the source code?

The source code of Freestyle for Blender is available in the Blender Subversion (SVN) repository. You will need a Subversion client to obtain the source tree. The URL of the source tree in the SVN repository is:

https://svn.blender.org/svnroot/bf-blender/branches/soc-2008-mxcurioni/

See the SVN usage guide at Blender.org for more information.

A.6 How can I donate some money to the development team?

Please consider becoming a donor of the Blender Foundation. See the Donation & Payment page for more information.

B Known issues in Freestyle for Blender

B.1 I got an error message like “Warning: point is out of the grid for fedge [100, 7]”. What does this mean?

This warning indicates an inherent problem in the Freestyle rendering engine, and in fact the warning is a sign of a possible crash. A typical cause of the warning is to have some objects behind the active camera. Removing the objects behind the camera may resolve the issue.

When Blender is built without the -DNDEBUG compiler option, the above error is trapped by an assertion statement.  In this case, an error message like below appears and Blender abnormally terminates:

blender: source/blender/freestyle/intern/geometry/FastGrid.cpp:50: virtual Cell* FastGrid::getCell(const Geometry::Vec3u&): Assertion `p[1]<_cells_nb[1]’ failed. 

B.2 I got an error message “Sorry, only vlak-based shapes are supported”. What does this mean?

The error message indicates that your 3D scene has contained unsupported types of objects such as curves, halos, and strands.

B.3 I got an error message “Error: strokes set empty” (shown below). What does this mean?

Error executing Python script from PythonInterpreter::interpretFile:
C:\Users\Foobar\AppData\Roaming\Blender Foundation\Blender\.blender\scripts\freestyle\style_modules\contour.py (at line 0)
Error: strokes set empty
Strokes generation : 0.033
Stroke count : 0

You have specified a full path of a style path that does not exist. Please make sure you have specified an existing style.

B.4 Using an orthographic camera leads to a crash

The active camera must be perspective at the moment.

B.5 Rendering a scene with a particular mesh results in a crash and rendering the same scene without the mesh does not.

We have several problem reports on this kind of issues. The known causes of the issues were listed below. If you find other causes, please let us know.

  • A mesh containing a certain type of triangular faces: When the 3 vertices of a triangular face are almost (but not exactly) in the same place, the Freestyle rendering engine may crash.
  • A mesh with a Curve modifier.
  • A mesh with a softbody or cloth modifier.

B.6 The japanese_bigbrush.py style randomly draws part of strokes.

The japanese_bigbrush.py style is not fully functional at the moment. The problem is that the style relies on stroke density information, while the computation of this information is currently disabled due to a technical reason. For now, you may want to make the following change at the end of the style file.

From:
Operators.create(pyDensityUP1D(8,0.4, IntegrationType.MEAN), shaders_list)
To:
Operators.create(TrueUP1D(), shaders_list)

This fix will result in all strokes to be drawn even in highly dense regions with many strokes.

B.7 Are there missing features?

At the moment the following features are not available.

  • Z depth information
  • stroke density information
  • steerable view map
  • textured strokes
  • transparent stroke colors (with alpha < 1)

B.8 Edges at intersections of meshes are not rendered.

You cannot get the edges at intersections of meshes at the moment.  This is a restriction of the edge detection algorithm in the renderer.

B.9 How can I specify the minimum and maximum distances from a camera?

The clipping start/end settings of a camera are not respected at the moment.

C. Resources

C.1 Is there a document on Freestyle for Blender?

Currently there is no specific documentation of Freestyle for Blender. However, most part of the documentation for the original Freestyle applies to Freestyle for Blender as well.

C.2 Is there a user forum for exchanging ideas and information?

BlenderArtists.org has a Freestyle thread where many Freestyle users are actively working on applications of the software and sharing the results.

Create a free website or blog at WordPress.com.