<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Freestyle integration into Blender</title>
	<atom:link href="http://freestyleintegration.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://freestyleintegration.wordpress.com</link>
	<description>»Log of the integration process, its challenges and (hopefully…) its solutions</description>
	<lastBuildDate>Mon, 23 Jan 2012 18:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='freestyleintegration.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Freestyle integration into Blender</title>
		<link>http://freestyleintegration.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://freestyleintegration.wordpress.com/osd.xml" title="Freestyle integration into Blender" />
	<atom:link rel='hub' href='http://freestyleintegration.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Development updates on December 18</title>
		<link>http://freestyleintegration.wordpress.com/2011/12/19/development-updates-on-december-18/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/12/19/development-updates-on-december-18/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 01:02:33 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1540</guid>
		<description><![CDATA[Since the last blog update, the development in the Blender Freestyle branch mainly focused on stability improvements, as well as on an extended capability of the Parameter Editor mode, which is intended to be an artist-friendly GUI for interactive manipulation of line style parameters.  Major additions and changes are highlighted as follows. Updates in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1540&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since the last blog update, the development in the Blender Freestyle branch mainly focused on stability improvements, as well as on an extended capability of the Parameter Editor mode, which is intended to be an artist-friendly GUI for interactive manipulation of line style parameters.  Major additions and changes are highlighted as follows.</p>
<h2>Updates in the Parameter Editor mode</h2>
<p>The function of the &#8216;+&#8217; button to the right of a line style name in the Freestyle: Line Style tab has been changed so as to make a copy of the active line style instead of creating a new line style with default settings.  This is meant to be consistent with the creation of new data blocks in other parts of Blender (for instance, creating a new material will result in a copy of the active material).  Also a button to make a single-user copy of a line style (i.e., the button that indicates the number of users) has been implemented.</p>
<p style="text-align:center;"><img class="alignnone size-full wp-image-1580" title="linestyle_new" src="http://freestyleintegration.files.wordpress.com/2011/12/linestyle_new1.png" alt="" width="373" height="581" /></p>
<p>Copy and paste operations for line sets have been added to make it easy to duplicate the settings of a line set.</p>
<p><img class="size-full wp-image-1541 aligncenter" title="lineset_copy_paste" src="http://freestyleintegration.files.wordpress.com/2011/12/lineset_copy_paste.png" alt="" width="317" height="607" /></p>
<p>It is recalled that line sets have a reference to a line style.  When the settings of a line set A having a reference to a line style X is pasted into a line set B, the latter line set will have a reference to X.  That is, the paste operation changes the line style references, but does not modify the settings of line styles.  If you also want a copy of the referenced line style after the paste operation, you have to make it using the copy operation for line styles as described above.</p>
<p>An extended set of conditions for feature edge selection by edge types has been introduced.  Each edge type check button in the Selection by Edge Types has now an associated toggle button to exclude the edge type from the feature edge selection.  This allows you to select, for instance, those edges that are silhouette lines but not external contours by enabling the two edge types and also the toggle button for external contours, as shown in the screen shot below.</p>
<p><img class="size-full wp-image-1543 aligncenter" title="edge_types_toggle_buttons" src="http://freestyleintegration.files.wordpress.com/2011/12/edge_types_toggle_buttons.png" alt="" width="373" height="488" /></p>
<p>A new option for disabling the chaining of feature edges has been added to the ‘Stroke’ panel of the Freestyle: Line Style tab.  This option is useful for examining the initial set of feature edges in the view map.</p>
<p>New options for splitting chains of feature edges by a minimum and maximum 2D angle and by a 2D length limit have been added to the ‘Stroke’ panel of the Freestyle: Line Style tab.  These options are useful for splitting long strokes into small pieces.  See the example renders of the Guiding Lines geometry modifier below for an example use of splitting by 2D length.</p>
<p>Three new stroke geometry modifiers have been implemented.</p>
<ul>
<li>Polygonization</li>
<li>Guiding Lines</li>
<li>Blueprint</li>
</ul>
<p>The Polygonization geometry modifier transforms smooth strokes into jagged polylines.  The &#8220;error&#8221; parameter specifies how much deviation is allowed from the original stroke geometry (the larger the error parameter is, the more jagged the resulting polylines are).  The following test renders illustrate the effect of the Polygonization modifier: (a) without applying the modifier, strokes along arcs are smooth; (b) with the polygonization modifier applied with the error parameter set to 5, the strokes are transformed into jagged polylines; and (c) the error parameter set to 20 gives more jagged polylines.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_1.png"><img class="alignnone size-full wp-image-1559" title="polygonization_1_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_1_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_2.png"><img class="alignnone size-full wp-image-1561" title="polygonization_2_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_2_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_3.png"><img class="alignnone size-full wp-image-1563" title="polygonization_3_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_3_tn.jpg" alt="" width="240" height="180" /></a></p>
<p>The Guiding Lines geometry modifier replaces a stroke with a straight line connecting both ends of the stroke.  This modifier will produce reasonable results when strokes are short enough, because shorter strokes are more likely to be well approximated by straight lines.  Therefore, it is recommended to use this modifier together with the splitting options (by 2D angle or by 2D length) mentioned above.  The following images show how splitting and geometry modifiers can be combined: (a) smooth strokes along arcs are split into small pieces by the 2D Length option; (b) the Guiding Lines gemoetry modifier is then applied to approximate the split stroke segments by straight lines; and (c) the Backbone Stretch geometry modifier is further applied to extend both ends of each straight stroke.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_1.png"><img class="alignnone size-full wp-image-1553" title="guiding_lines_1_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_1_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_2.png"><img class="alignnone size-full wp-image-1555" title="guiding_lines_2_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_2_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_3.png"><img class="alignnone size-full wp-image-1557" title="guiding_lines_3_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_3_tn.jpg" alt="" width="240" height="180" /></a></p>
<p>The render below is a combination of the Guiding Lines and Spatial Noise geometry modifiers.  Both modifiers were applied to two identical line sets to duplicate the guiding lines.  The line sets contain only external contours.  The Spatial Noise modifier was applied before the Guiding Lines modifier, so that two sets of guiding lines display some variability.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/12/toycar_guiding_lines.png"><img class="alignnone size-full wp-image-1565" title="toycar_guiding_lines_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/toycar_guiding_lines_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>The Blueprint geometry modifier produces a blueprint using circular, elliptic, and square contour strokes.  A blueprint here refers to those lines drawn in the beginning of free-hand drawing to capture the silhouette of objects with a simple shape such as circles, ellipses and squares, as illustrated below.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_circles.png"><img class="alignnone size-full wp-image-1547" title="blueprint_circles_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_circles_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_ellipses.png"><img class="alignnone size-full wp-image-1549" title="blueprint_ellipses_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_ellipses_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_squares.png"><img class="alignnone size-full wp-image-1551" title="blueprint_squares_tn" src="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_squares_tn.jpg" alt="" width="240" height="180" /></a></p>
<p>The Perlin Noise 1D geometry modifier had an issue that noise frequency was relative to the stroke length (i.e., the number of noise displacement values was the same for strokes of different lengths).  This resulted in very noisy short strokes and much less noisy long strokes.  Now the noise frequency is relative to the distance from the starting point of a stroke.  That is, two strokes of the same length will be distorted by the same number of noise displacement values, whereas longer strokes will have more noise displacement values along stroke.</p>
<h2>Stability improvements</h2>
<ul>
<li>A fix was made to address duplicated feature edges due to a numerical instability of line clipping by near/far Z planes.</li>
<li>View map construction was not properly taking face marks into account.  This caused incorrect (and unpredictable) feature edge selection results when face marks were used.</li>
<li>A crash caused by temporary scenes for stroke rendering was fixed.  Freestyle generates a temporary scene containing a number of stroke meshes to achieve stroke rendering using the Blender internal renderer.  This temporary scene may appear in the outliner and undergo user interaction when the stroke rendering takes a long time.  The crash was due to the deletion of the scene without taking care of references to the scene from screens, one of which was the outliner.</li>
<li>The interaction between Blender and Freestyle was revised to address a crash when two scenes in the compositor have different render resolution (i.e., image width and height, scaled by a percent parameter).</li>
<li>Stroke rendering instability with stroke geometry shaders was addressed.  Stroke::Resample(int nPoints) was not properly working when a wrong value was returned from Stroke::getLength2D(), resulting in repeated warning messages &#8220;Warning: incorrect points number&#8221; during stroke rendering.  The main cause was that stroke geometry shaders did not update the two-dimensional (2D) length (also referred to as curvilinear abscissa) after they modified the 2D points of stroke vertices.  Now all stroke geometry shaders make explicit calls for Stroke::UpdateLength() that has been introduced for recomputing the 2D length.</li>
<li>A bug in Operators.recursiveSplit() that splitting could not take place within the last segment of a chain was fixed.</li>
</ul>
<h2>Remarks on the merge into the trunk</h2>
<p>The dev team has been receiving an increasing number of questions from branch users concerning the merge into the trunk (i.e., official release of Blender).  It is remarked that the merge has already been agreed with the core Blender developers of the trunk, and the only major question is when the merge is done.</p>
<p>In June 2010, the dev team defined <a href="http://freestyleintegration.wordpress.com/2010/06/07/weekly-update-may-24-june-6/">a list of unfinished components</a> that need to be done before the merge is finally asked.  The list includes three major components: (a) GUI for the Parameter Editor mode; (b) feature edge detection at the intersection of two faces; and (c) Freestyle Python API improvements.  Subjective achievement rates of the three components are 90%, 0%, and 80%, respectively.  In other words, the Freestyle branch needs more development before it gets ready for code review that is required for the merge to happen.</p>
<p>At the moment <a href="http://lists.blender.org/pipermail/bf-committers/2011-December/034792.html">the official release of Blender 2.62 is planned in February 2012</a>, but it is unlikely that Freestyle is included into this release because of the short deadline for code review in January.</p>
<p>Considering an admittedly limited amount of time resources, it is still difficult to predict when all the unfinished components are done and the code review for the merge can be asked.  We appreciate the understanding and patience of branch users.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1540/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1540/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1540/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1540&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/12/19/development-updates-on-december-18/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/linestyle_new1.png" medium="image">
			<media:title type="html">linestyle_new</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/lineset_copy_paste.png" medium="image">
			<media:title type="html">lineset_copy_paste</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/edge_types_toggle_buttons.png" medium="image">
			<media:title type="html">edge_types_toggle_buttons</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_1_tn.jpg" medium="image">
			<media:title type="html">polygonization_1_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_2_tn.jpg" medium="image">
			<media:title type="html">polygonization_2_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/polygonization_3_tn.jpg" medium="image">
			<media:title type="html">polygonization_3_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_1_tn.jpg" medium="image">
			<media:title type="html">guiding_lines_1_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_2_tn.jpg" medium="image">
			<media:title type="html">guiding_lines_2_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/guiding_lines_3_tn.jpg" medium="image">
			<media:title type="html">guiding_lines_3_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/toycar_guiding_lines_tn.jpg" medium="image">
			<media:title type="html">toycar_guiding_lines_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_circles_tn.jpg" medium="image">
			<media:title type="html">blueprint_circles_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_ellipses_tn.jpg" medium="image">
			<media:title type="html">blueprint_ellipses_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/12/blueprint_squares_tn.jpg" medium="image">
			<media:title type="html">blueprint_squares_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on October 25</title>
		<link>http://freestyleintegration.wordpress.com/2011/10/25/development-updates-on-october-25/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/10/25/development-updates-on-october-25/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 00:47:56 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1494</guid>
		<description><![CDATA[Since the last blog post, branch development mainly focused on stability improvements of the Freestyle renderer and new functionality for fine control of feature edge selection. Stability improvements with the face smoothness option Several branch users kindly reported that Freestyle failed when the Face Smoothness option was enabled and object materials were used to determine [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1494&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since the last blog post, branch development mainly focused on stability improvements of the Freestyle renderer and new functionality for fine control of feature edge selection.</p>
<h2>Stability improvements with the face smoothness option</h2>
<p>Several branch users kindly reported that Freestyle failed when the Face Smoothness option was enabled and object materials were used to determine line colors.  When the Face Smoothness option is enabled, the view map computed from a given 3D scene is populated by not only sharp FEdges (i.e., edges in the original meshes) but also smooth FEdges (i.e., newly constructed edges across faces).  This situation often resulted in a failure of the getFEdge() method (defined in the Interface0D class and its subclasses) used to obtain the FEdge between two given 0D elements (such as SVertices and CurvePoints).  The instability of getFEdge() caused many related issues because the method is widely used in other predicates and functions that rely on it.  The most prominent example of related user-visible problems is a failure of the built-in MaterialF0D class that retrieves object materials of given 0D elements, as seen in the problem reports from branch users.</p>
<p>The persistent failure of getFEdge() was resulting from several bugs in the view map construction algorithm.  These bugs were fixed through careful code revisions and intensive testing.  Also, the built-in MaterialF0D turned out to be incapable of handling Curve objects (such as chains and strokes), so that a new CurveMaterialF0D class has been introduced to address the material retrieval in the case of Curve objects.</p>
<p>These changes have improved the stability of the renderer with the Face Smoothness enabled.  The dev team is very grateful to those branch users who provided the bug reports together with .blend files to reproduce the issues.  The .blend files were indeed indispensable test cases during the bug hunting.</p>
<h2>Fine control of feature edge selection with mesh face and edge marks</h2>
<p>With the aim of allowing for fine control of feature edge selection, new &#8220;face marks&#8221; and &#8220;edge marks&#8221; have been introduced in mesh data blocks.  In the edit mode of a mesh object, face marks can be put to selected faces by choosing Mesh &gt; Faces &gt; Mark Freestyle Face from the menu of a 3D View window or Ctrl-F &gt; Mark Freestyle Face from the context menu.  Similarly, edge marks can be put to selected edges by Mesh &gt; Edges &gt; Mark Freestyle Edge or Ctrl-E &gt; Mark Freestyle Edge.  These marks should work fine with the Subdivision Surface and Mirror modifiers.</p>
<p>Moreover, two new conditions for feature edge selection have been added to the Parameter Editor mode, as described below:</p>
<ol>
<li>The Selection by Edge Types option now includes the new Edge Mark type, which can be used to (de)select feature edges having edge marks.  This option can be used to add to (or remove from) the view map arbitrary edges of mesh objects.</li>
<li>Selection by Face Marks option has been newly introduced, in which face marks are used for feature edge selection in two ways.  One option is called &#8220;One Face&#8221; which is to (de)select feature edges if one of faces on the left and right of each feature edge has a face mark.  The other option is &#8220;Both Faces&#8221; to (de)select feature edges if both faces on the left and right have a face mark.  Those feature edges that meet the conditions are selected if the Inclusive option is enabled; they are deselected if the Exclusive option is turned on.</li>
</ol>
<p>The following screenshot shows the new GUI controls (highlighted in red) based on face and edge marks.</p>
<p><img class="alignnone size-full wp-image-1515 aligncenter" title="gui_edge_face_marks" src="http://freestyleintegration.files.wordpress.com/2011/10/gui_edge_face_marks.png" alt="" width="321" height="464" /></p>
<p>Edge marks are useful when you want to draw lines along particular mesh edges.  The following example images demonstrate the use of edge marks.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_view3d.png"><img class="alignnone size-full wp-image-1500" title="edge_marks_test_view3d_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_view3d_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_disabled.png"><img class="alignnone size-full wp-image-1496" title="edge_marks_test_marks_disabled_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_disabled_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>The image on the left shows a sphere mesh with edge marks (in the edit mode).  In a 3D View window, edge marks are displayed in light green.  The image on the right is a render without the Edge Mark type enabled in the Selection by Edge Types option (the black line shows the silhouette of the sphere).  The image below is a rendering result with the Edge Mark type enabled.  The blue lines indicate those resulting from mesh edges with edge marks.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_enabled.png"><img class="alignnone size-full wp-image-1498" title="edge_marks_test_marks_enabled_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_enabled_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>Face marks are useful for removing lines from certain portions of mesh surfaces.  Suppose that two faces of the default cube have face marks as shown in the image on the left below.  Marked faces are displayed in light green.  The image on the right is a rendering result without using the Selection by Face Marks option.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_view3d.png"><img class="alignnone size-full wp-image-1512" title="face_marks_test_view3d_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_view3d_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_no_sel.png"><img class="alignnone size-full wp-image-1510" title="face_marks_test_no_sel_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_no_sel_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>The following images show how rendering results vary with four combinations of the Inclusive/Exclusive and One Face/Both Faces toggle options.  Notice that only the edge between the two marked faces is (de)selected when the Both Faces option is used, while all the edges touching the marked faces are (de)selected when the One Face option is enabled.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_one.png"><img class="alignnone size-full wp-image-1508" title="face_marks_test_inclusive_one_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_one_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_both.png"><img class="alignnone size-full wp-image-1506" title="face_marks_test_inclusive_both_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_both_tn.jpg" alt="" width="320" height="240" /></a></p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_one.png"><img class="alignnone size-full wp-image-1504" title="face_marks_test_exclusive_one_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_one_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_both.png"><img class="alignnone size-full wp-image-1502" title="face_marks_test_exclusive_both_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_both_tn.jpg" alt="" width="320" height="240" /></a></p>
<h2>Renders from branch users</h2>
<p>In the meantime, branch users have been sharing their renders made with Blender and Freestyle.  Here are some selected rendering results.</p>
<p><a href="http://www.blendswap.com/3D-models/characters/freestyle-sintel-lite/">Toon rendering of Sintel</a> by jikz (the model is base on <a href="http://www.blendswap.com/3D-models/characters/sintel-lite-2-57b/">Sintel Lite 2.57b</a> by BenDansie):</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_1.png"><img class="alignnone size-full wp-image-1517" title="jikz_sintel_1_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_1_tn.jpg" alt="" width="213" height="320" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_2.png"><img class="alignnone size-full wp-image-1519" title="jikz_sintel_2_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_2_tn.jpg" alt="" width="213" height="320" /></a></p>
<p><a href="http://blenderartists.org/forum/showthread.php?234203-de-Waag">Architectural line drawing</a> by flokkievids:</p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/10/flokkievids_de_waag.png"><img class="alignnone size-full wp-image-1514 aligncenter" title="flokkievids_de_waag_tn" src="http://freestyleintegration.files.wordpress.com/2011/10/flokkievids_de_waag_tn.jpg" alt="" width="400" height="225" /></a></p>
<p>Many thanks to jikz and flokkievids for the excellent contributions!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1494/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1494/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1494/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1494&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/10/25/development-updates-on-october-25/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/gui_edge_face_marks.png" medium="image">
			<media:title type="html">gui_edge_face_marks</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_view3d_tn.jpg" medium="image">
			<media:title type="html">edge_marks_test_view3d_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_disabled_tn.jpg" medium="image">
			<media:title type="html">edge_marks_test_marks_disabled_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/edge_marks_test_marks_enabled_tn.jpg" medium="image">
			<media:title type="html">edge_marks_test_marks_enabled_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_view3d_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_view3d_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_no_sel_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_no_sel_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_one_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_inclusive_one_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_inclusive_both_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_inclusive_both_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_one_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_exclusive_one_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/face_marks_test_exclusive_both_tn.jpg" medium="image">
			<media:title type="html">face_marks_test_exclusive_both_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_1_tn.jpg" medium="image">
			<media:title type="html">jikz_sintel_1_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/jikz_sintel_2_tn.jpg" medium="image">
			<media:title type="html">jikz_sintel_2_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/10/flokkievids_de_waag_tn.jpg" medium="image">
			<media:title type="html">flokkievids_de_waag_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on September 25</title>
		<link>http://freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 16:39:45 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1470</guid>
		<description><![CDATA[The work on the Freestyle integration into Blender is still ongoing.  Since the last updates, a number of new functionalities and stability improvements has been implemented as summarized below. Enhancement of the Parameter Editor mode New line style controls have been added to the Parameter Editor mode that is intended to be an artist-friendly GUI for manipulating [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1470&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The work on the Freestyle integration into Blender is still ongoing.  Since the last updates, a number of new functionalities and stability improvements has been implemented as summarized below.</p>
<h2>Enhancement of the Parameter Editor mode</h2>
<p>New line style controls have been added to the Parameter Editor mode that is intended to be an artist-friendly GUI for manipulating line styles without any user efforts on Python scripting.  Recent major additions and changes are described as follows.</p>
<ul>
<li>A new line style option for sketchy chaining of feature edges has been added.  The conventional default chaining method is now called Plain, while the new chaining option is called Sketchy.  The latter option allows for generating chains of feature edges with sketchy multiple strokes.  Both Plain and Sketchy chaining options have the Same Object toggle button in common, whereas the Sketchy option has an additional option called Rounds.  With the Same Object option enabled, only feature edges of the same object are chained.  The Rounds option specifies the number of rounds in sketchy strokes.  The following render shows a visual effect of sketchy chaining (3 rounds, with the Spatial Noise geometry modifier specified to enhance the sketchy appearance of strokes).</li>
</ul>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/09/sketchy_chaining.png"><img class="alignnone size-full wp-image-1488" title="sketchy_chaining_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/sketchy_chaining_tn.jpg" alt="" width="320" height="240" /></a></p>
<ul>
<li>A calligraphic thickness modifier has been implemented.  This modifier gives strokes variable thickness that looks as if they are drawn with a broad and flat pen for calligraphy.  The following test render illustrates a typical effect of calligraphic thickness.</li>
</ul>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/09/geometry_calligraphy.png"><img class="alignnone size-full wp-image-1474" title="geometry_calligraphy_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/geometry_calligraphy_tn.jpg" alt="" width="320" height="240" /></a></p>
<ul>
<li>A new parameter called Angle has been added to the Perlin Noise 1D and 2D geometry modifiers to specify a displacement direction in degrees (zero degree indicates the positive X direction).  The following images demonstrate how the Angle parameter makes a difference in rendering results (left: the Angle parameter set to 45 degrees; right: 135 degrees).</li>
</ul>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_45.png"><img class="alignnone size-full wp-image-1480" title="perlin_angle_45_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_45_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_135.png"><img class="alignnone size-full wp-image-1482" title="perlin_angle_135_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_135_tn.jpg" alt="" width="320" height="240" /></a></p>
<ul>
<li>The behavior of the Perlin Noise 1D geometry modifier has been changed so that it works differently from the Perlin Noise 2D geometry modifier.  Now the Perlin Noise 1D modifier distorts strokes using the curvilinear abscissa of stroke vertices as the input of the Perlin noise generator.  It is remarked that curvilinear abscissa is a scalar value between 0 and 1.  The first and last vertices of a stroke have the values 0 and 1, respectively, and the values for other stroke vertices are linearly interpolated over the stroke.  Therefore, the Perlin Noise 1D modifier gives identical noise displacements to strokes if the strokes have the same length and sampling interval (the latter is specified by the Sampling geometry modifier).  In contrast, the Perlin Noise 2D modifier generates noisy displacements using 2D coordinates of stroke vertices as the input of the noise generator.  Therefore, strokes in different positions in a render will be distorted with different displacements by the Perlin 2D noise generator even if the strokes have the same length and sampling interval.  The differences between the Perlin Noise 1D and 2D modifiers are illustrated in the following test renders.  The image on the left shows a set of vertical lines and another set of star-shaped strokes, both distorted by the Perlin Noise 1D modifier.  Strokes in each set of lines have identical noisy displacements, because of the same stroke length and sampling interval.  The image on the right shows a render of the same scene with the Perlin Noise 2D modifier, which gives different displacements to each of the strokes because of their 2D positions in the image that are different from each other.</li>
</ul>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_1d.png"><img class="alignnone size-full wp-image-1484" title="perlin_noise_test_1d_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_1d_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_2d.png"><img class="alignnone size-full wp-image-1486" title="perlin_noise_test_2d_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_2d_tn.jpg" alt="" width="320" height="240" /></a></p>
<ul>
<li>New line style options for selecting chains by min/max 2D lengths have been added.  Using these options you can select strokes that are longer and/or shorter than specified stroke lengths.</li>
</ul>
<h2>Link and Append</h2>
<p>A proper support for the Link and Append commands has been implemented.  Now you can link/append line styles as well as scenes with line styles from within other .blend files.</p>
<h2>Stability improvements and bug fixes</h2>
<p>An attempt to fix the long-standing issue of occasional infinite straight lines has been made.  The fix is still not the best solution, but seems to yield much better results as illustrated in the following test renders (left: examples of unwanted infinite lines due to the bug; right: infinite lines no longer appear after the bug fix).</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_bug.png"><img class="alignnone size-full wp-image-1476" title="infinite_lines_bug_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_bug_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_fixed.png"><img class="alignnone size-full wp-image-1478" title="infinite_lines_fixed_tn" src="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_fixed_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>Since the solution looks quite effective, a temporary workaround (implemented by means of a custom chaining rule) for infinite straight lines was removed.  This change has resulted in much cleaner strokes.  If you have suffered from a lot of segmented strokes that are supposed to be a single straightforward stroke, then using the latest Freestyle branch would be a solution for the issue.</p>
<p>In addition, several other bug fixes have been made to improve the general stability of the Freestyle renderer.  Most of the bugs were reported by branch users, some with example .blend files for reproducing the problems.  These reports were really invaluable, and we appreciate the feedback from the branch users.</p>
<h2>Concluding remarks</h2>
<p>That is all for now.  More additions to the Parameter Editor mode as well as further development work on other priority tasks (i.e., <a href="http://freestyleintegration.wordpress.com/2010/06/07/weekly-update-may-24-june-6/">unfinished components</a> that must be completed before the merge into the trunk is asked) are anticipated in the next weeks.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1470&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/sketchy_chaining_tn.jpg" medium="image">
			<media:title type="html">sketchy_chaining_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/geometry_calligraphy_tn.jpg" medium="image">
			<media:title type="html">geometry_calligraphy_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_45_tn.jpg" medium="image">
			<media:title type="html">perlin_angle_45_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/perlin_angle_135_tn.jpg" medium="image">
			<media:title type="html">perlin_angle_135_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_1d_tn.jpg" medium="image">
			<media:title type="html">perlin_noise_test_1d_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/perlin_noise_test_2d_tn.jpg" medium="image">
			<media:title type="html">perlin_noise_test_2d_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_bug_tn.jpg" medium="image">
			<media:title type="html">infinite_lines_bug_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/09/infinite_lines_fixed_tn.jpg" medium="image">
			<media:title type="html">infinite_lines_fixed_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on August 28</title>
		<link>http://freestyleintegration.wordpress.com/2011/08/28/development-updates-on-august-28/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/08/28/development-updates-on-august-28/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 22:19:41 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1441</guid>
		<description><![CDATA[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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1441&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since the last blog post, several functionality improvements were made in the Freestyle branch as reported below.</p>
<h2>Stroke geometry modifiers</h2>
<p>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:</p>
<ul>
<li>Sampling: Changes the resolution of stroke backbone polylines.</li>
<li>Bezier Curve: Replace stroke backbone with a Bezier approximation of the stroke backbone.</li>
<li>Sinus Displacement: Add sinus displacement to stroke backbone.</li>
<li>Spatial Noise: Add spatial noise to stroke backbone.</li>
<li>Perlin Noise 1D: Add one-dimensional Perlin noise to stroke backbone.</li>
<li>Perlin Noise 2D: Add two-dimensional Perlin noise to stroke backbone.</li>
<li>Backbone Stretcher: Stretch the beginning and the end of stroke backbone.</li>
<li>Tip Remover: Remove a piece of stroke at the beginning and the end of stroke backbone.</li>
</ul>
<p><strong>Note to branch users:</strong> 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.</p>
<p>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.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/08/geometry_plain.png"><img class="alignnone size-full wp-image-1445" title="geometry_plain_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/geometry_plain_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/08/geometry_bezier.png"><img class="alignnone size-full wp-image-1443" title="geometry_bezier_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/geometry_bezier_tn.jpg" alt="" width="320" height="240" /></a></p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/08/geometry_sinus_displacement.png"><img class="alignnone size-full wp-image-1447" title="geometry_sinus_displacement_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/geometry_sinus_displacement_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/08/geometry_spatial_noise.png"><img class="alignnone size-full wp-image-1449" title="geometry_spatial_noise_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/geometry_spatial_noise_tn.jpg" alt="" width="320" height="240" /></a></p>
<h2>Fill Range by Selection</h2>
<p>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.</p>
<p style="text-align:center;"><img class="alignnone size-full wp-image-1450" title="fill_range_distance_from_camera" src="http://freestyleintegration.files.wordpress.com/2011/08/fill_range_distance_from_camera.png" alt="" width="430" height="429" />  <img class="alignnone size-full wp-image-1451" title="fill_range_distance_from_object" src="http://freestyleintegration.files.wordpress.com/2011/08/fill_range_distance_from_object.png" alt="" width="430" height="460" /></p>
<h2>Stroke splitting at material boundary</h2>
<p>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.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test1.png"><img class="alignnone size-full wp-image-1454" title="material_color_test1_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test1_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test2.png"><img class="alignnone size-full wp-image-1455" title="material_color_test2_tn" src="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test2_tn.jpg" alt="" width="320" height="240" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1441/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1441&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/08/28/development-updates-on-august-28/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/geometry_plain_tn.jpg" medium="image">
			<media:title type="html">geometry_plain_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/geometry_bezier_tn.jpg" medium="image">
			<media:title type="html">geometry_bezier_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/geometry_sinus_displacement_tn.jpg" medium="image">
			<media:title type="html">geometry_sinus_displacement_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/geometry_spatial_noise_tn.jpg" medium="image">
			<media:title type="html">geometry_spatial_noise_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/fill_range_distance_from_camera.png" medium="image">
			<media:title type="html">fill_range_distance_from_camera</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/fill_range_distance_from_object.png" medium="image">
			<media:title type="html">fill_range_distance_from_object</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test1_tn.jpg" medium="image">
			<media:title type="html">material_color_test1_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/08/material_color_test2_tn.jpg" medium="image">
			<media:title type="html">material_color_test2_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on July 31</title>
		<link>http://freestyleintegration.wordpress.com/2011/08/01/development-updates-on-july-31/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/08/01/development-updates-on-july-31/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 01:07:16 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1414</guid>
		<description><![CDATA[It has been a while since the last development updates.  This absence of branch activities was mainly because of time constraints the main dev (T.K.) had during the last few months.  Due to restricted time resources, commits to the branch were mostly limited to merges of changes from the trunk and bug fixes based on problem reports from branch [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1414&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has been a while since the last development updates.  This absence of branch activities was mainly because of time constraints the main dev (T.K.) had during the last few months.  Due to restricted time resources, commits to the branch were mostly limited to merges of changes from the trunk and bug fixes based on problem reports from branch users.  The issues addressed include: (1) a wrong use of matrix inversion in the Distance from Object modifier; (2) composite node parameter animation not working with Freestyle; (3) a memory leak in silhouette edge detection; (4) linker errors for building blenderplayer; and (5) a bug in line caps due to zero-length strokes.  The dev team appreciate the feedback from the branch users who kindly reported these issues, some with .blend files to help us reproduce the problems.</p>
<p>In addition, the Parameter Editor mode of the Freestyle graphical user interface was enhanced with new Material modifiers that allow you to change the line color, alpha transparency, and line thickness of strokes by object materials.  The screenshot below shows the GUI controls of the Material color modifier.</p>
<p><img class="alignnone size-full wp-image-1429 aligncenter" title="material_color_modifier" src="http://freestyleintegration.files.wordpress.com/2011/07/material_color_modifier.png" alt="" width="308" height="287" /></p>
<p>The following set of rendering results demonstrates a typical use the Material color modifier: (a) the stroke color is constant (i.e., the base color is black); (b) the Material color modifier is applied and the base color is replaced by the the diffuse color of object materials (i.e., blend = Mix, influence = 1.0); (c) same as (b) but the diffuse color of object materials is blended into the base color (blend = Add and influence = 0.4).</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test1.png"><img class="alignnone size-full wp-image-1421" title="material_color_test1_tn" src="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test1_tn.jpg" alt="" width="240" height="180" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test2.png"><img class="alignnone size-full wp-image-1423" title="material_color_test2_tn" src="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test2_tn.jpg" alt="" width="240" height="180" /> </a> <a href="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test3.png"><img class="alignnone size-full wp-image-1425" title="material_color_test3_tn" src="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test3_tn.jpg" alt="" width="240" height="180" /></a></p>
<h2>Artwork with Freestyle for Blender</h2>
<p>In the meantime, several branch users released excellent animation shorts and movie clips made partly with Freestyle.  First, Chris Burton and his colleagues released a finished animation short &#8220;<a href="http://www.iceboxstudios.co.uk/light-end">The Light at the End</a>&#8220;.  This is one of the most impressive pieces of artwork that give you a real sense of how line drawing with Freestyle looks like.</p>
<p><img class="alignnone size-full wp-image-1428 aligncenter" title="the_light_at_the_end" src="http://freestyleintegration.files.wordpress.com/2011/07/the_light_at_the_end.png" alt="" width="733" height="416" /></p>
<p>Dolf Veenvliet (macouno) has been using Freestyle for his <a href="http://www.entoforms.com/">Entoforms</a> project.  Entoforms are little creatures generated by a program that &#8220;grows&#8221; them through a kind of DNA strings.  The use of Freestyle is meant to give a &#8220;drawn&#8221; look to 3D renders according to <a href="http://www.entoforms.com/2011/04/13/tandem-educta/">one of project blog posts</a>.</p>
<p><a href="http://www.youtube.com/watch?v=Yx5dx00CPgU"><img class="size-full wp-image-1427 aligncenter" title="entoforms" src="http://freestyleintegration.files.wordpress.com/2011/07/entoforms.png" alt="" width="702" height="446" /></a></p>
<p>And last but not least, Ike AhLoe released a finished animation short &#8220;<a href="http://vimeo.com/23832392">Clocked In</a>&#8220;.  During the production of this artwork, he contributed to the Freestyle integration project through a number of bug reports and development updates.</p>
<p><img class="size-full wp-image-1426 aligncenter" title="clocked_in" src="http://freestyleintegration.files.wordpress.com/2011/07/clocked_in.png" alt="" width="734" height="413" /></p>
<p>We are very grateful for the authors of these art products, since the early adoption of the Freestyle renderer should have been tough and time-consuming due to bugs and limitations.  We hope these frontier examples encourage further use of Freestyle in future 3D art projects.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1414/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1414&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/08/01/development-updates-on-july-31/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/material_color_modifier.png" medium="image">
			<media:title type="html">material_color_modifier</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test1_tn.jpg" medium="image">
			<media:title type="html">material_color_test1_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test2_tn.jpg" medium="image">
			<media:title type="html">material_color_test2_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/material_color_test3_tn.jpg" medium="image">
			<media:title type="html">material_color_test3_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/the_light_at_the_end.png" medium="image">
			<media:title type="html">the_light_at_the_end</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/entoforms.png" medium="image">
			<media:title type="html">entoforms</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/07/clocked_in.png" medium="image">
			<media:title type="html">clocked_in</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on March 17</title>
		<link>http://freestyleintegration.wordpress.com/2011/03/18/development-updates-on-march-17/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/03/18/development-updates-on-march-17/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 02:48:44 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1393</guid>
		<description><![CDATA[View map construction is the most time-consuming part of the Freestyle rendering process.  In fact, the view map construction was impossibly slow when it came to large scenes.  This was a known issue that was meant to be addressed after all to-do items were finished and the long-awaited merge into the trunk was done, mainly because of the lack [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1393&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>View map construction is the most time-consuming part of the Freestyle rendering process.  In fact, the view map construction was impossibly slow when it came to large scenes.  This was a known issue that was meant to be addressed after all to-do items were finished and the long-awaited merge into the trunk was done, mainly because of the lack of development resources.  In last December, however, the Freestyle integration project received a big code contribution from Alexander Beels.  His focus was exactly on optimizing the view map construction code.  He made this possible by identifying the performance bottlenecks and carefully redesigning the internal data processing.  Starting from the initial version in December, Alex&#8217;s optimization patch underwent several rounds of code review and testing in collaboration with the dev team.  He made substantial efforts on examining different optimization strategies and implementations.  After more than three months of dedicated research and development, his work resulted in a highly efficient view map construction code that is now available in revision 35525 of the Freestyle branch.  As illustrated with several test scenes below, the optimized view map code offers surprising performance gains.  Many thanks to Alex for the excellent achievement!</p>
<h2>Technical overview of the optimization</h2>
<p>Now let us describe Alex&#8217;s optimization work from a technical perspective.  The performance improvements have been mainly done in two major components of the view map construction: silhouette edge detection, and edge visibility calculation.</p>
<p>Silhouette edge detection is to find feature edges of interest that constitute a basis of line drawing in Freestyle.  To optimize this data processing for speed, Alex made careful changes to the code base so as to exploit compilers&#8217; optimization capability.  This modification leads to a shorter rendering time independently of the spatial structure of a given scene.</p>
<p>The detected feature edges then undergo the edge visibility calculation where an integer value expressing quantitative visibility is assigned to each feature edge.  The edge visibility is determined by a raycasting algorithm with the help of a spatial grid structure that allows efficient traversal of faces in the 3D space (i.e., tris and quads) from the view point of a camera.  As a matter of fact, the non-optimized old view map code relied on a grid data structure that was implemented with the assumption that the faces were evenly distributed within the 3D bounding box.  In addition, the old code was internally creating a list of occluders by copying polygons again and again, which slowed down the view map construction.  Alex devised new grid data structures (SphericalGrid for perspective cameras and BoxGrid for orthographic cameras; automatically switched based on the camera types) that do not assume the ideal even distribution of polygons, as well as a heuristic grid density calculation algorithm that enables an adaptive population of the grid structures with polygons.  Moreover, an iterator is employed for obtaining the occluders on demand instead of making a local copy of them.</p>
<p>Based on these internal improvements, two optimized edge visibility calculation algorithms have been added: a &#8220;traditional&#8221; algorithm for emulating old visibility algorithms, and a &#8220;cumulative&#8221; algorithm for improved, more consistent line visibility.  Both algorithms exploit the new spatial grid data structures for fast raycasting.  Each optimized algorithm comes with two variations: culled and unculled.  The culled visibility algorithms exclude most of the feature edges outside the image boundary.  This will result in much faster visibility calculation at the cost of possible alterations to the results of edge chaining.  The unculled algorithms take all feature edges into account.  The latter is useful when off-image edges matter for chaining.</p>
<h2>﻿New rendering options</h2>
<p>A new option &#8220;Raycasting Algorithm&#8221; has been added to the Freestyle tab to allow users to choose a raycasting algorithm.  Available choices are:</p>
<ul>
<li>Normal Ray Casting</li>
<li>Fast Ray Casting</li>
<li>Very Fast Ray Casting</li>
<li>Culled Traditional Visibility Detection</li>
<li>Unculled Traditional Visibility Detection</li>
<li>Culled Cumulative Visibility Detection</li>
<li>Unculled Cumulative Visibility Detection</li>
</ul>
<p>The first three algorithms are those available in the original Freestyle (the &#8220;normal&#8221; raycasting was used unconditionally, though).  The &#8220;fast&#8221; and &#8220;very fast&#8221; raycasting algorithms achieve a faster calculation at the cost of less visibility accuracy.  The other four are newly introduced optimized options.  The visibility accuracy of the &#8220;traditional&#8221; algorithms are the same with the &#8220;normal&#8221; algorithm, while that of the &#8220;cumulative&#8221; algorithms is supposed to be the same with or better than the &#8220;normal&#8221; case.  Performance improvements over the old algorithms depend on the scenes to be rendered.  The recommended options for branch users are the culled/unculled cumulative visibility algorithms.  These two options are intended to replace the other algorithms in the future.</p>
<h2>Performance results</h2>
<p>To conclude this brief introduction of Alex&#8217;s wonderful optimization work, some performance results are shown below using four test scenes.  In all cases, the non-optimized &#8221;normal&#8221; visibility algorithm in revision 35506 was compared with the culled cumulative visibility algorithm.</p>
<p><span style="text-decoration:underline;">Ichiotsu (orthographic)</span></p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_ortho.png"><img class="alignnone size-full wp-image-1402" title="ichiotsu_ortho_tn" src="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_ortho_tn.jpg" alt="" width="213" height="320" /></a></p>
<p>73448 vertices, 72260 faces, orthographic camera.</p>
<table border="1" cellpadding="5">
<col span="1"></col>
<col span="3"></col>
<tbody>
<tr>
<td rowspan="2">　</td>
<td style="text-align:center;">Normal</td>
<td style="text-align:center;" colspan="2">Culled cumulative</td>
</tr>
<tr>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Speedup</td>
</tr>
<tr>
<td>Silhouette edge detection</td>
<td style="text-align:center;">5.062</td>
<td style="text-align:center;">3.993</td>
<td style="text-align:center;">1.268</td>
</tr>
<tr>
<td>View map building</td>
<td style="text-align:center;">14.27</td>
<td style="text-align:center;">1.126</td>
<td style="text-align:center;">12.67</td>
</tr>
<tr>
<td>Sum</td>
<td style="text-align:center;">19.33</td>
<td style="text-align:center;">5.119</td>
<td style="text-align:center;"><strong>3.777</strong></td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;">Ichiotsu (perspective)</span></p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_persp.png"><img class="alignnone size-full wp-image-1404" title="ichiotsu_persp_tn" src="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_persp_tn.jpg" alt="" width="213" height="320" /></a></p>
<p>73448 vertices, 72260 faces, perspective camera.</p>
<table border="1" cellpadding="5">
<col span="1"></col>
<col span="3"></col>
<tbody>
<tr>
<td rowspan="2">　</td>
<td style="text-align:center;">Normal</td>
<td style="text-align:center;" colspan="2">Culled cumulative</td>
</tr>
<tr>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Speedup</td>
</tr>
<tr>
<td>Silhouette edge detection</td>
<td style="text-align:center;">5.084</td>
<td style="text-align:center;">4.182</td>
<td style="text-align:center;">1.216</td>
</tr>
<tr>
<td>View map building</td>
<td style="text-align:center;">15.98</td>
<td style="text-align:center;">1.301</td>
<td style="text-align:center;">12.28</td>
</tr>
<tr>
<td>Sum</td>
<td style="text-align:center;">21.06</td>
<td style="text-align:center;">5.483</td>
<td style="text-align:center;"><strong>3.841</strong></td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;">Lily</span></p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/03/lily.png"><img class="alignnone size-full wp-image-1406" title="lily_tn" src="http://freestyleintegration.files.wordpress.com/2011/03/lily_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>64011 vertices, 60346 faces, perspective camera.</p>
<table border="1" cellpadding="5">
<col span="1"></col>
<col span="3"></col>
<tbody>
<tr>
<td rowspan="2">　</td>
<td style="text-align:center;">Normal</td>
<td style="text-align:center;" colspan="2">Culled cumulative</td>
</tr>
<tr>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Speedup</td>
</tr>
<tr>
<td>Silhouette edge detection</td>
<td style="text-align:center;">17.66</td>
<td style="text-align:center;">0.4280</td>
<td style="text-align:center;">41.27</td>
</tr>
<tr>
<td>View map building</td>
<td style="text-align:center;">13.07</td>
<td style="text-align:center;">2.422</td>
<td style="text-align:center;">5.397</td>
</tr>
<tr>
<td>Sum</td>
<td style="text-align:center;">30.74</td>
<td style="text-align:center;">2.850</td>
<td style="text-align:center;"><strong>10.78</strong></td>
</tr>
</tbody>
</table>
<p><span style="text-decoration:underline;">A scene by Greg Sandor (from <a href="http://www.3drender.com/challenges/">Lighting Challenge #15: Film Noir</a>)</span></p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/03/film_noir.png"><img class="alignnone size-full wp-image-1400" title="film_noir_tn" src="http://freestyleintegration.files.wordpress.com/2011/03/film_noir_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>109180 vertices, 189191 faces, perspective camera.</p>
<table border="1" cellpadding="5">
<col span="1"></col>
<col span="3"></col>
<tbody>
<tr>
<td rowspan="2">　</td>
<td style="text-align:center;">Normal</td>
<td style="text-align:center;" colspan="2">Culled cumulative</td>
</tr>
<tr>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Time [sec]</td>
<td style="text-align:center;">Speedup</td>
</tr>
<tr>
<td>Silhouette edge detection</td>
<td style="text-align:center;">0.5670</td>
<td style="text-align:center;">0.3080</td>
<td style="text-align:center;">1.841</td>
</tr>
<tr>
<td>View map building</td>
<td style="text-align:center;">2045.0</td>
<td style="text-align:center;">10.74</td>
<td style="text-align:center;">190.5</td>
</tr>
<tr>
<td>Sum</td>
<td style="text-align:center;">2045.5</td>
<td style="text-align:center;">11.04</td>
<td style="text-align:center;"><strong>185.2</strong></td>
</tr>
</tbody>
</table>
<p>The first two examples indicate that the new grid data structures for perspective and orthographic cameras have comparable performance.  The third test showed a huge performance gain in silhouette edge detection.  The last big scene resulted in an incredible speedup rate in the view map building phase.  Remarkably, these amazing performance results are solely by means of Alex&#8217;s optimization work.  Again, thank you Alex!  This is really great!</p>
<p>Branch users are encouraged to test the new raycasting algorithms from both performance and artistic perspectives.  Performance reports and rendering results are highly welcome, possibly through <a href="http://blenderartists.org/forum/showthread.php?89986-Freestyle-for-Blender">the Freestyle thread in BlenderArtists.org</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1393/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1393&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/03/18/development-updates-on-march-17/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_ortho_tn.jpg" medium="image">
			<media:title type="html">ichiotsu_ortho_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/03/ichiotsu_persp_tn.jpg" medium="image">
			<media:title type="html">ichiotsu_persp_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/03/lily_tn.jpg" medium="image">
			<media:title type="html">lily_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/03/film_noir_tn.jpg" medium="image">
			<media:title type="html">film_noir_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Development updates on February 26</title>
		<link>http://freestyleintegration.wordpress.com/2011/02/27/development-updates-february-26/</link>
		<comments>http://freestyleintegration.wordpress.com/2011/02/27/development-updates-february-26/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 00:39:37 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1384</guid>
		<description><![CDATA[During the last two months both this blog and the integration work were quiet mainly due to very limited time resources.  However, all the changes in the trunk have been merged into the Freestyle branch on a weekly basis.  In addition, a few problems that affected many branch users have been addressed as summarized below. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1384&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>During the last two months both this blog and the integration work were quiet mainly due to very limited time resources.  However, all the changes in the trunk have been merged into the Freestyle branch on a weekly basis.  In addition, a few problems that affected many branch users have been addressed as summarized below.</p>
<p><strong>1. Fixes for unexpected long straight lines</strong></p>
<p>First, the issue of occasional unexpected long straight lines has been partially addressed.  Branch users may encounter this issue when a number of frames for animation is rendered.  A typical situation is that a few frames (e.g., one or two out of a hundred frames) suffer from weird long straight lines that are not in the scene data.  An example of such a long straight line is shown in the image below.  This problem is mostly due to a known bug in stroke mesh generation.  The bug is that quick U-turns in stroke topology are not handled properly.  A fix for this bug is planned as part of a comprehensive improvement of stroke mesh generation described in <a href="http://freestyleintegration.wordpress.com/2010/09/23/weekly-update-september-1-21/">a blog post in last September</a>.  As a quick remedy for now, the Parameter Editor mode has been extended so as to prevent strokes from doing quick U-turns.</p>
<p><a href="http://freestyleintegration.files.wordpress.com/2011/02/long_line_bug.png"><img class="size-full wp-image-1386 aligncenter" title="long_line_bug_tn" src="http://freestyleintegration.files.wordpress.com/2011/02/long_line_bug_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>Branch users writing custom style modules may be interested in the way how the fix is implemented.  Take a look at AngleLargerThanBP1D() in scripts/freestyle/style_modules/parameter_editor.py.  This predicate is used with ChainPredicateIterator() to allow two consecutive edges to be chained only when the angle of the two edges is larger than a given threshold.</p>
<p>In the meantime, another issue was identified as a source of unexpected long straight lines.  This issue arose when stroke thickness was specified by a curve mapping of a thickness modifier in the Parameter Editor mode.  In some occasions the curve mapping resulted in extrapolation, which gave an extremely large thickness value.  Now the extrapolation option is unconditionally disabled to prevent this issue, even when users turn on the option through the GUI.</p>
<p><strong>2. Consolidation of stroke drawing</strong></p>
<p>Second, consolidation of stroke drawing has been made through several related bug fixes.  After <a href="http://freestyleintegration.wordpress.com/2010/11/28/weekly-update-november-15-28/">the introduction of face smoothness in last November</a>, branch users may have seen a warning message shown below in the middle of stroke drawing:</p>
<blockquote><p>Warning: you should not be there&#8230;</p></blockquote>
<p>This warning turned out to be due to those edges in the view map that have a two-dimensional length almost or exactly equal to zero.  When such a zero-length edge was in a chain of edges on which a stroke was drawn, a number of style module API functions such as MaterialF0D() failed.  In addition, MaterialF0D() had another bug that an error condition was ignored due to a wrong return value.  In the end, these bugs jointly caused stroke color to be left undefined.</p>
<p>This stroke drawing instability has been addressed by automatically removing the zero-length edges (and chains of them) before stroke drawing begins and after stroke splitting is performed (e.g., using Operators.sequentialSplit()).  The bug in MaterialF0D was also fixed.</p>
<p>Moreover, possible memory leaks due to errors in user-defined style modules have been fixed.  Since scripting errors during style module coding are inevitable, these fixes improve the stability of the program regardless of having temporary programming errors in user-defined predicates, chaining iterators, and shaders.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1384/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1384/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1384/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1384&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2011/02/27/development-updates-february-26/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2011/02/long_line_bug_tn.jpg" medium="image">
			<media:title type="html">long_line_bug_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Weekly updates December 6-26</title>
		<link>http://freestyleintegration.wordpress.com/2010/12/29/weekly-updates-december-6-26/</link>
		<comments>http://freestyleintegration.wordpress.com/2010/12/29/weekly-updates-december-6-26/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 01:50:00 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1377</guid>
		<description><![CDATA[The last three weeks were mainly spent for bug fixes and consolidation of the Freestyle renderer. A bug in stroke rendering with round/square caps was fixed.  A freeze of the program was caused by a stroke having two vertices that reside (exactly or almost) at  the same position in the 3D space. The Parameter Editor mode was improved [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1377&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The last three weeks were mainly spent for bug fixes and consolidation of the Freestyle renderer.</p>
<ul>
<li>A bug in stroke rendering with round/square caps was fixed.  A freeze of the program was caused by a stroke having two vertices that reside (exactly or almost) at  the same position in the 3D space.</li>
<li>The Parameter Editor mode was improved so that it accepts quote symbols within the names of scene render layers and linesets.</li>
<li>Incorrect vertex normals in the case of smooth surfaces were fixed.  Many thanks to Stéphane for his careful code review and bug report!</li>
<li>Compilation errors with CMake on Linux were fixed by a patch from Écrivain through the BA Freestyle thread.  Thanks!</li>
</ul>
<p>In addition, the Freestyle Python API has been slightly extended by wrappers of the following Operators class methods in the C++ layer:</p>
<ul>
<li>getViewEdgeFromIndex(index): Returns a ViewEdge object in the current set of ViewEdges (0 &lt;= index &lt; Operators.getViewEdgesSize()).</li>
<li>getChainFromIndex(index): Returns a Chain object in the current set of Chains (0 &lt;= index &lt; Operators.getChainsSize()).</li>
<li>getStrokeFromIndex(index): Returns a Stroke object in the current set of Strokes (0 &lt;= index &lt; Operators.getStrokesSize()).</li>
</ul>
<p>When you want to iterate over all objects in the current set of ViewEdges, Chains, or Strokes (for instance, in order to find the minimum and maximum Z depths, or sum up the lengths of all strokes), these API functions give a procedural programming way of accessing the objects, instead of relying on implicit side-effects of declarative rules (such as predicates and shaders).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1377/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1377&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2010/12/29/weekly-updates-december-6-26/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>
	</item>
		<item>
		<title>Weekly update November 29-December 5</title>
		<link>http://freestyleintegration.wordpress.com/2010/12/05/weekly-update-november-29-december-5/</link>
		<comments>http://freestyleintegration.wordpress.com/2010/12/05/weekly-update-november-29-december-5/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 23:26:06 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1354</guid>
		<description><![CDATA[Since the last blog update, the dev team was working on bug fixes, addition of new features, and consolidation of existing functionalities. A compilation issue with MinGW32 was fixed thanks to a report from Dazzle, and a bug in Distance from Object modifiers due to a recent change in the trunk about matrix-vector multiplication was fixed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1354&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;"><a href="http://freestyleintegration.files.wordpress.com/2010/12/blender_mem_arc_sphere_3_tn.jpg"></a>Since the last blog update, the dev team was working on bug fixes, addition of new features, and consolidation of existing functionalities.</p>
<p>A compilation issue with MinGW32 was fixed thanks to a report from Dazzle, and a bug in <a href="http://freestyleintegration.wordpress.com/2010/08/11/weekly-update-july-12-august-11/">Distance from Object modifiers</a> due to a recent change in the trunk about matrix-vector multiplication was fixed based on a .blend file provided by Jonathan Hudson.  We really appreciate the user feedback, which helps the dev team to improve the software.</p>
<p>In the meantime, the Parameter Editor mode was extended with two new feature edge selection options.  One is the &#8220;Selection by Group&#8221; option and the other is the &#8220;Selection by Image Border&#8221; option, both in part of linesets in the Parameter Editor mode, as shown in the screenshot below.</p>
<p><a href="http://freestyleintegration.files.wordpress.com/2010/12/new_edge_selection_criteria.png"><img class="size-full wp-image-1356 aligncenter" title="new_edge_selection_criteria_tn" src="http://freestyleintegration.files.wordpress.com/2010/12/new_edge_selection_criteria_tn.jpg" alt="" width="102" height="300" /></a></p>
<p>The Selection by Group option allows you to select feature edges based on a group of objects (defined through the Groups tab in the Object buttons).  For each lineset, you can specify one group of objects.  The group-based feature edge selection is either inclusive or exclusive.  If inclusive, feature edges are selected when they belong to some object in the group; otherwise, those feature edges not belonging to any object in the group are selected.  When no group is specified, feature edges are selected from all objects in object layers enabled in a render layer.  In the past, render layers were the only way to apply different line styles to different objects in the same scene.  This required the use of the compositor and thus a more and less complicated workflow.  The group-based feature edge selection is intended to address this difficulty, making object-specific line stylization much easier.  The image below is a result using this new feature.  A group of objects comprising a lily in the middle was defined, based on which white lines were drawn.  A different line style was applied to lines of two lilies in the left and right using a separate object group.</p>
<p><a href="http://freestyleintegration.files.wordpress.com/2010/12/lily_group_test.png"><img class="alignnone size-full wp-image-1358 aligncenter" title="Lily_group_test_tn" src="http://freestyleintegration.files.wordpress.com/2010/12/lily_group_test_tn.jpg" alt="" width="400" height="300" /></a></p>
<p>The Selection by Image Border option is used to select feature edges within the border of the image being rendered.  The border is defined either by the frame size or a border region (specified by the Shift-B key in a 3D View window).  When you work on a big scene with a lot of objects outside the viewing frustum, enabling this option leads to less memory consumption and possibly shorter rendering time.</p>
<p>Finally, the data flow within the Freestyle renderer was revised with the aim of reducing the amount of memory consumption.  Rendering of a 3D scene in Freestyle involves several data structures holding different representations of the scene and strokes generated from the scene.  The data processing in Freestyle is summarized as follows:</p>
<ol>
<li>First of all, mesh data are imported from the 3D scene and stored in a tree-based data structure.</li>
<li>The mesh data are transformed into a data structure called winged edges and stored in a 3D grid structure for efficient spatial search.</li>
<li>The winged edges are used for view map calculation, and a separate view map data structure is constructed.</li>
<li>The view map is fed to stroke generation by means of style modules (it is noted that the Parameter Editor mode is implemented as a built-in style module).</li>
<li>Generated strokes are converted into Blender mesh data for stroke rendering.</li>
</ol>
<p>Previously, all the data structures were kept until the end of the entire rendering process.  This makes sense in the original, stand-alone Freestyle program, in which the view map, for instance, can be reused for applying different style modules one after another.  This is not the case in Freestyle for Blender, where the view map is recalculated for each render.  Therefore, the memory resources allocated for the data structures should be released soon after they become unnecessary even in the middle of the rendering process.  For this reason, memory usage improvements were made with regard to the aforementioned data structures.  The improvements were verified by a test scene (generated using a modified version of &#8220;Arc Sphere.es&#8221; in <a href="http://structuresynth.sourceforge.net/">Structure Synth</a>) consisting of 34968 vertices and 52452 faces.  The left image below is a rendering result.  Using a 64-bit Windows machine, memory consumption in the latest revision 33485 was compared with that in revision 33434 without the memory-related updates.  The right image below shows the amount of allocated memory (in the vertical axis) throughout the rendering time (in the horizontal axis).  The maximum amount of allocated memory in the older revision was about 2.138 GB, which reduced to 1.439 GB through the memory usage optimization as well as the Selection by Image Border option.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2010/12/structure_synth_test_scene.png"><img class="size-full wp-image-1362" title="structure_synth_test_scene_tn" src="http://freestyleintegration.files.wordpress.com/2010/12/structure_synth_test_scene_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2010/12/blender_mem_arc_sphere_3.png"><img title="blender_mem_Arc_Sphere_3_tn" src="http://freestyleintegration.files.wordpress.com/2010/12/blender_mem_arc_sphere_3_tn.jpg?w=320&#038;h=240" alt="" width="320" height="240" /></a></p>
<p>Experiments with several other test scenes showed that the extent of memory usage reduction depends on scenes.  We hope the reported updates will allow branch users to render big scenes without an out-of-memory crash.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1354&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2010/12/05/weekly-update-november-29-december-5/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/12/new_edge_selection_criteria_tn.jpg" medium="image">
			<media:title type="html">new_edge_selection_criteria_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/12/lily_group_test_tn.jpg" medium="image">
			<media:title type="html">Lily_group_test_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/12/structure_synth_test_scene_tn.jpg" medium="image">
			<media:title type="html">structure_synth_test_scene_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/12/blender_mem_arc_sphere_3_tn.jpg" medium="image">
			<media:title type="html">blender_mem_Arc_Sphere_3_tn</media:title>
		</media:content>
	</item>
		<item>
		<title>Weekly update November 15-28</title>
		<link>http://freestyleintegration.wordpress.com/2010/11/28/weekly-update-november-15-28/</link>
		<comments>http://freestyleintegration.wordpress.com/2010/11/28/weekly-update-november-15-28/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 01:15:57 +0000</pubDate>
		<dc:creator>The dev team</dc:creator>
				<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://freestyleintegration.wordpress.com/?p=1340</guid>
		<description><![CDATA[The dev team was working on a bug fix during the last two weeks in close collaboration with Stéphane, the main developer of the original Freestyle program.  The problem was that the view map calculation did not take mesh face smoothness into account. So far, mesh geometry data was treated as if all faces were flat (i.e., face [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1340&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The dev team was working on a bug fix during the last two weeks in close collaboration with Stéphane, the main developer of <a href="http://freestyle.sourceforge.net/">the original Freestyle program</a>.  The problem was that the view map calculation did not take mesh face smoothness into account.</p>
<p>So far, mesh geometry data was treated as if all faces were flat (i.e., face smoothness was just ignored), which implied that the view map was composed of jagged feature edges as illustrated in the example below.  The left image is a rendering result of a torus mesh, where strokes are drawn along visible and hidden silhouette lines of the torus.  The right image shows the feature edges (highlighted) from a three-dimensional non-camera viewpoint.  These jagged polylines are what constitute the strokes that appear in the render.  As you see, the feature edges exactly lie on edges in the mesh geometry data.  This causes somehow jaggy strokes in the rendering result (especially in the part of the render where strokes make a quick turn).</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2010/11/output_jagged.png"><img class="alignnone size-full wp-image-1344" title="output_jagged_tn" src="http://freestyleintegration.files.wordpress.com/2010/11/output_jagged_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2010/11/jagged_silhouettes.png"><img class="alignnone size-full wp-image-1342" title="jagged_silhouettes_tn" src="http://freestyleintegration.files.wordpress.com/2010/11/jagged_silhouettes_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>When the face smoothness is taken into account in the view map calculation, the resulting feature edges totally differ from the outcome shown above.  As seen in the example below,  the three-dimensional feature edges representing the silhouette lines are much smoother.  The left image is a render of the same torus mesh, whereas the right image shows the smooth feature edges resulting from the view map calculated by accounting for the smoothness property of mesh faces.  Note that the smooth feature edges are no longer constrained by the original mesh topology.</p>
<p style="text-align:center;"><a href="http://freestyleintegration.files.wordpress.com/2010/11/output_smooth.png"><img class="alignnone size-full wp-image-1346" title="output_smooth_tn" src="http://freestyleintegration.files.wordpress.com/2010/11/output_smooth_tn.jpg" alt="" width="320" height="240" /></a>  <a href="http://freestyleintegration.files.wordpress.com/2010/11/smooth_silhouettes.png"><img class="alignnone size-full wp-image-1348" title="smooth_silhouettes_tn" src="http://freestyleintegration.files.wordpress.com/2010/11/smooth_silhouettes_tn.jpg" alt="" width="320" height="240" /></a></p>
<p>As far as the dev team has experimented with several test scenes, taking account of mesh face smoothness results in a cleaner stroke topology.  The downside is that the visibility of smooth silhouette lines is mathematically not well-defined.  This means that rendering results may suffer from some artifact due to incorrect line visibility.  To our knowledge, the visibility of smooth silhouettes is still an open problem in computer graphics research.  Therefore, we decided to introduce an option for enabling/disabling mesh face smoothness in the view map calculation.  In the Freestyle branch revision 33350 and later, you have the new option &#8220;Face Smoothness&#8221; in both the Parameter Editor mode and Python Scripting mode.  When the option is enabled, the view map calculation accounts for face smoothness.  This option is intended to allow users to try the two ways of view map calculation with and without face smoothness and find which one would fit individual application needs.  For now the option is disabled by default in order to avoid the aforementioned visibility issue.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freestyleintegration.wordpress.com/1340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freestyleintegration.wordpress.com/1340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freestyleintegration.wordpress.com/1340/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freestyleintegration.wordpress.com&amp;blog=10837344&amp;post=1340&amp;subd=freestyleintegration&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://freestyleintegration.wordpress.com/2010/11/28/weekly-update-november-15-28/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5724a636de65ba35c736696f0aeb7566?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">The dev team</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/11/output_jagged_tn.jpg" medium="image">
			<media:title type="html">output_jagged_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/11/jagged_silhouettes_tn.jpg" medium="image">
			<media:title type="html">jagged_silhouettes_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/11/output_smooth_tn.jpg" medium="image">
			<media:title type="html">output_smooth_tn</media:title>
		</media:content>

		<media:content url="http://freestyleintegration.files.wordpress.com/2010/11/smooth_silhouettes_tn.jpg" medium="image">
			<media:title type="html">smooth_silhouettes_tn</media:title>
		</media:content>
	</item>
	</channel>
</rss>
