<?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/"
	>

<channel>
	<title>Mitsuba Development Blog &#187; Scattering models</title>
	<atom:link href="http://www.mitsuba-renderer.org/devblog/category/scattering-models/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mitsuba-renderer.org/devblog</link>
	<description></description>
	<lastBuildDate>Sat, 26 Jul 2014 10:26:22 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=169</generator>
	<item>
		<title>Upcoming changes</title>
		<link>http://www.mitsuba-renderer.org/devblog/2011/07/upcoming-changes/</link>
		<comments>http://www.mitsuba-renderer.org/devblog/2011/07/upcoming-changes/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 01:50:29 +0000</pubDate>
		<dc:creator><![CDATA[Wenzel Jakob]]></dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Scattering models]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=255</guid>
		<description><![CDATA[For the last week, I have been hacking on a new release of Mitsuba (0.3.0), which will be publicly released in another week or two. Its main new feature is a complete redesign of the material system, specifically the surface scattering models (a.k.a. BSDFs). I&#8217;ve become increasingly unhappy with the state of this very important part of the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>For the last week, I have been hacking on a new release of Mitsuba (0.3.0), which will be publicly released in another week or two. Its main new feature is a <em>complete</em> redesign of the material system, specifically the surface scattering models (a.k.a. BSDFs). I&#8217;ve become increasingly unhappy with the state of this very important part of the renderer and finally decided to redesign it from scratch.</p>
<p>I have just merged most of these developments into the main branch. Since other researches using Mitsuba might be concerned about the many changes, this post is meant to quickly summarize what is going on.</p>
<ul>
<li><strong>Spectral rendering</strong>: most of the code pertaining to spectral rendering has seen a significant overhaul. It is now faster and in certain cases more accurate.</li>
<li><strong>Flexible material classes</strong>: the changes introduce a robust and very general suite of eight physically-based smooth and rough (microfacet-based) material classes. The smooth plugins are called <tt>diffuse</tt>, <tt>dielectric</tt>, <tt>conductor</tt>, and <tt>plastic.</tt> The equivalent rough microfacet models are called <tt>roughdiffuse</tt>, <tt>roughdielectric</tt>, <tt>roughconductor</tt>, and <tt>roughplastic</tt>. Please see the documentation link below for an overview of what these do.</li>
<li><strong>Material modifiers</strong>: I have added a two new &#8220;modifier&#8221; BSDFs, which change the behavior of a nested scattering model
<ul>
<li><tt>bump</tt>: applies a bump map specified as a grayscale displacement texture.</li>
<li><tt>coating</tt>: coats an arbitrary material with a smooth and optionally absorbing dielectric layer in the style of <a href="http://www.cg.tuwien.ac.at/research/publications/2007/weidlich_2007_almfs/weidlich_2007_almfs-paper.pdf">[Weidlich and Wilkie 07]</a>.</li>
</ul>
</li>
<li><strong>Material verification</strong>: the sampling methods of all material models in Mitsuba are now automatically verified with the help of statistical hypothesis tests (using χ²-tests).</li>
<li><strong>Generated documentation</strong>: there is now a javadoc-like system, which extracts documentation directly from the plugin source code and stitches it into a LaTeX reference document.</li>
<li><strong>lookAt</strong>: Mitsuba inherited a bug from PBRT, where the <tt>&lt;lookAt&gt;</tt> tag changed the handedness of the coordinate system. This is now fixed—also, the syntax of this tag has changed to make it easier to read.</li>
<li><strong>Scene portability</strong>: the above changes clearly introduce severe incompatibilities in the file format. Even the old <tt>lambertian</tt> plugin now has a different name (it was renamed to <tt>diffuse</tt> to better fit into the new scheme), so one would ordinarily expect that no old scene will directly work with this release. To adress this problem, Mitsuba 0.3.0 introduces a <tt>version</tt> attribute to the scene. In other words, a scene XML file now looks something like the following:
<p><tt>&lt;scene version="0.3.0"&gt;...&lt;/scene&gt;</tt></p>
<p>When it is detected that there are incompatibilities between the file version and the current release, Mitsuba will apply a set of included <a href="http://en.wikipedia.org/wiki/XSLT">XSLT</a>transformations, which upgrade the file to the most current file format.</p>
<p><center><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/07/upgrade1.jpg"><img class="aligncenter size-medium wp-image-270" title="upgrade" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/07/upgrade1-300x112.jpg" alt="" width="300" height="112" /></a></center>That way, scenes will <em>always</em> work no matter how old they are, while at the same time allowing large-scale changes to be made without the need for an (ugly) deprecation mechanism.</li>
</ul>
<p>To upgrade to this release, simply pull from the main repository as usual (<tt>hg pull -u</tt>).</p>
<p><strong>Note:</strong> you will need to update your <tt>config.py</tt> file with an appropriate file from the <tt>build</tt> directory, since there were some changes to the compilation flags.</p>
<p>For a peek at the upcoming documentation, take a look at the following PDF file:</p>
<div id="attachment_256" style="width: 235px" class="wp-caption aligncenter"><a href="http://www.mitsuba-renderer.org/documentation-beta.pdf"><img class="size-medium wp-image-256 " title="Documentation snapshot" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/07/shot-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Mitsuba 0.3.0 Beta Documentation</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/2011/07/upcoming-changes/feed/</wfw:commentRss>
		<slash:comments>71</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.2.1 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/</link>
		<comments>http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 23:13:57 +0000</pubDate>
		<dc:creator><![CDATA[Wenzel Jakob]]></dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Participating media]]></category>
		<category><![CDATA[Scattering models]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=163</guid>
		<description><![CDATA[After a long development cycle, I have just released a new version of Mitsuba. Please read on for a list of changes (these are in addition the ones mentioned in this Blog entry). Participating Media: the most significant feature of this release is a complete redesign of the participating medium layer in Mitsuba. This change was [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>After a long development cycle, I have just released a new version of Mitsuba. Please read on for a list of changes (these are in addition the ones mentioned in <a href="http://www.mitsuba-renderer.org/devblog/?p=9">this Blog entry</a>).</p>
<ul>
<li>
<p><strong><strong>Participating Media</strong>: </strong>the most significant feature of this release is a complete redesign of the participating medium layer in Mitsuba. This change was necessary to remove limitations inherent in the previous architecture, which was overly complicated and could only support a single medium per scene. The new Mitsuba version handles an arbitrary amount of media, which can be &#8220;attached&#8221; to various surfaces in the scene. For instance, rendering a bottle made of  absorbing colored glass now involves instantiating an absorbing medium and specifying that it lies on the <em>interior</em> of the bottle&#8217;s glass surface.</p>
<p>Apart from these changes, the new implementations are also significantly more robust, particularly when heterogeneous media are involved. In a future blog post, I will provide more detail on the rewritten participating media layer.</p>
</li>
<li>
<p><strong>Micro-flake model:</strong> Mitsuba was used to create the high-resolution volumetric cloth renderings in the paper &#8220;<a href="http://www.cs.cornell.edu/projects/ctcloth-sg11/">Building Volumetric Appearance Models of Fabric using Micro CT Imaging</a>&#8221; by Shuang Zhao, Wenzel Jakob, Steve Marschner, and Kavita Bala.</p>

<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/rr_gabardine_shell/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/rr_gabardine_shell-150x150.jpg" class="attachment-thumbnail" alt="Gabardine" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/teaser_p3/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/teaser_p3-150x150.jpg" class="attachment-thumbnail" alt="Velvet" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/frame_046/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/frame_046-150x150.png" class="attachment-thumbnail" alt="Silk satin" /></a>

<p>
This project was a *big* challenge for the micro-flake rendering code and led to many useful changes. For instance, the code previously made heavy use of spherical harmonics expansions to compute transmittance values, and to importance sample the model. For very shiny materials (such as the cloth models we rendered), this can become a severe problem due to ringing in the spherical harmonics representation. The rewritten model has fast and exact importance sampling code that works without spherical harmonics, and it uses a high-quality numerical approximation for the transmittance function.</p>
</li>
<li>
<p><strong>Irawan &amp; Marschner woven cloth BRDF</strong>: This release adds a new material model for woven cloth, which was developed by Piti Irawan and Steve Marschner. The code in Mitsuba is a modified port of a previous Java implementation. A few measured patterns shown below are already included as example scenes (many thanks go to Piti for allowing the use of his code and data!)</p>

<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-charmeuse-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-charmeuse-150x150.jpg" class="attachment-thumbnail" alt="Silk charmeuse" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-denim-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-denim-150x150.jpg" class="attachment-thumbnail" alt="Cotton denim" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-gabardine-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-gabardine-150x150.jpg" class="attachment-thumbnail" alt="Wool gabardine" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-polyester-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-polyester-150x150.jpg" class="attachment-thumbnail" alt="Polyester lining cloth" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-shantung-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-shantung-150x150.jpg" class="attachment-thumbnail" alt="Silk shantung" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/piti-twill-2/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/piti-twill-150x150.jpg" class="attachment-thumbnail" alt="Cotton twill" /></a>

<p>This model relies on a detailed description of the material&#8217;s weave pattern, which is described with the help of a simple description language. For instance, the description of polyester lining cloth looks something like the following:
</p>
<p>
<pre style="font-size: 70%">weave {
  name ="Polyester lining cloth",

  /* Weave pattern description */
  pattern {
    3, 2,
    1, 4
  },

  /* Listing of all yarns used in the pattern (numbered 1 to 4) */
  yarn {
    type = warp,
    /* Fiber twist angle */
    psi = 0,
    /* Maximum inclination angle */
    umax = 22,
    /* Spine curvature */
    kappa = -0.7,
    /* Width and length of the segment rectangle */
    width = 1,
    length = 1,
    /* Yarn segment center in tile space */
    centerU = 0.25,
    centerV = 0.25
  },
  ....
}</pre>
<p>For more details on this model, please refer to Piti Irawan&#8217;s <a href="http://ecommons.library.cornell.edu/handle/1813/8331">PhD thesis</a>.</p>
<p>Due to its performance and expressiveness, I believe that this model is of genuine utility to a larger audience and hope that including it in Mitsuba will increase its adoption. </p>
<p>
A cool feature that I might add in the future is an interactive editor to design new pattern descriptions with a live preview. </p>
</li>
<li>
<p><strong>Amazon EC2</strong>: This release adds a launcher script to create virtual render farms on the Amazon Elastic Compute Cloud (EC2). This is very useful when rendering time is critical, since EC2 can give you essentially infinite parallelism. I will write more on how this works in a separate post.</p>
</li>
<li>
<p><strong>Blender Plugin</strong>: Due to its experimental nature, Blender 2.5x has been a bit of a moving target, making it difficult to develop stable plugins. Recently, a large batch of changes broke many plugins, particularly custom rendering backends. Since then, I have been working on restoring compatibility with Blender 2.56, which is mostly complete at this point. Some work remains to be done, hence I will release the final Blender plugin in a few days.</p>
</li>
<li>
<p><strong>Build system</strong>: The build system has undergone several cleanups:
<ol>
<li>Binaries are now placed in a separate directory instead of being co-located with the source code. (<tt>build/release</tt> or <tt>build/debug</tt> depending on the type of build)</li>
<li>The distribution now supplies project files for Visual Studio 2008 and Visual Studio 2010 with support for code-completion, debugging, etc.</li>
<li>Builds with Visual Studio 2010 now work correctly (they used to be prone to crashes), and the release adds support for the Intel C++ compiler 12 on Windows.</li>
<li>The compilation flags for the Intel C++ compiler have been adjusted so that the binaries also run on some older AMD hardware that doesn&#8217;t support SSE3.</li>
<li>The <tt>config</tt> directory was removed.</li>
</ol>
<p>To upgrade to this version without making a mess of your repository, I recommend to <em>clean</em> <em>before</em> updating, i.e.</p>
<pre>
$ scons -c
$ hg pull -u
</pre>
<p>If you forgot that step, old <tt>.obj</tt>/<tt>.os</tt> files and other build products will probably litter your source tree. In that case, it might be easiest to check out a clean copy.
</p>
<p>
If you are on Windows or OSX, note that you <em>must</em> also update the <tt>dependencies</tt> repository.
</p>
</li>
<li>
<p><strong>Beam Radiance Estimate</strong>: Mitsuba now contains an implementation of the Beam Radiance Estimate to accelerate Volumetric Photon Mapping within homogeneous participating media (scene courtesy of Wojciech Jarosz).<br />

<a href='http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/cars-bre-final/'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/06/cars-bre-final-150x150.jpg" class="attachment-thumbnail" alt="Cars scene (rendered using the Beam Radiance Estimate)" /></a>
</p>
</li>
<li>
<p><strong>COLLADA</strong>: Previously, the import of very large scenes using COLLADA failed when the associated XML document contained text nodes that were larger than 10 megabytes. I submitted a patch to fix this in the COLLADA-DOM library, which was recently accepted. Mitsuba now ships with this version of the library.</p>
</li>
<li>
<p><strong>Rotation Controller</strong>: several people commented that the interactive preview navigation was rather unintuitive. I have now added a rotation controller that will be more familiar to people using Maya or Blender. Dragging the mouse while pressing the left button rotates around a fixed point. The right mouse button &#038; mouse wheel move along the viewing direction, and the middle mouse button pans. Press &#8216;F&#8217; to zoom to the currently selected object and &#8216;A&#8217; to focus on the whole scene. Note that the previous behavior can still be re-activated through the program preferences.</p>
</li>
<li>
<p><strong>Miscellaneous</strong>: this release adds code to perform  adaptive n-dimensional integration (based on the <a href="http://ab-initio.mit.edu/wiki/index.php/Cubature">cubature</a> project), as well as a chi-square test for verifying sampling methods. In the future, these will be used to implement an automatic self-test of all scattering models within Mitsuba. </p>
<p>As always, the release also contains a plethora bugfixes, which won&#8217;t be listed in detail.</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/2011/06/mitsuba-0-2-1-released/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
