<?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</title>
	<atom:link href="http://www.mitsuba-renderer.org/devblog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.mitsuba-renderer.org/devblog</link>
	<description></description>
	<lastBuildDate>Sun, 13 May 2012 21:15:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Mitsuba used in SIGGRAPH 2012 technical papers</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=352</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=352#comments</comments>
		<pubDate>Sun, 13 May 2012 21:10:36 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=352</guid>
		<description><![CDATA[Mitsuba was used to render the results and illustrations in several technical papers that have just received their final acceptance to SIGGRAPH 2012. The ones that I know of are listed below (if I missed yours, please let me know!) Manifold Exploration: A Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport (by [...]]]></description>
			<content:encoded><![CDATA[<p>Mitsuba was used to render the results and illustrations in several technical papers that have just received their final acceptance to SIGGRAPH 2012. The ones that I know of are listed below (if I missed yours, please let me know!)</p>
<ul>
<li><span style="font-size:14pt" class="blacklink"><strong><a href="http://www.cs.cornell.edu/projects/manifolds-sg12/">Manifold Exploration: A Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport</a></strong> (by <a href="http://www.cs.cornell.edu/~wenzel/">Wenzel Jakob</a> and <a href="http://www.cs.cornell.edu/~srm/">Steve Marschner</a>)</span>
<p style="margin-top: 8pt">
<strong>Abstract</strong>: It is a long-standing problem in unbiased Monte Carlo methods for rendering that certain difficult types of light transport paths, particularly those involving viewing and illumination along paths containing specular or glossy surfaces, cause unusably slow convergence. In this paper we introduce Manifold Exploration, a new way of handling specular paths in rendering. It is based on the idea that sets of paths contributing to the image naturally form manifolds in path space, which can be explored locally by a simple equation-solving iteration. This paper shows how to formulate and solve the required equations using only geometric information that is already generally available in ray tracing systems, and how to use this method in in two different Markov Chain Monte Carlo frameworks to accurately compute illumination from general families of paths. The resulting rendering algorithms handle specular, near-specular, glossy, and diffuse surface interactions as well as isotropic or highly anisotropic volume scattering interactions, all using the same fundamental algorithm. An implementation is demonstrated on a range of challenging scenes and evaluated against previous methods.
</p>
<p style="margin-top: 8pt">
<b>Gallery</b>: the following images are courtesy of Wenzel Jakob and Steve Marschner. The interior scene was designed by Olesya Isaenko.
</p>
<p>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=358' title='Chandelier'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/04/teaser-luminaire-150x150.jpg" class="attachment-thumbnail" alt="A brass chandelier with 24 glass-enclosed bulbs" title="Chandelier" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=357' title='Tableware'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/04/teaser-tableware-150x150.jpg" class="attachment-thumbnail" alt="Tableware with complex specular transport, lit by the chandelier" title="Tableware" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=359' title='Glass egg'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/04/teaser-egg-150x150.jpg" class="attachment-thumbnail" alt="Exterior-lit room; the glass egg contains an anisotropic medium" title="Glass egg" /></a>

</li>
<li style="margin-top:14pt"><span style="font-size:14pt" class="blacklink"><strong><a href="http://www.cs.cornell.edu/projects/ctcloth/">Structure-aware Synthesis for Predictive Woven Fabric Appearance</a></strong> (by <a href="http://shuangz.com/">Shuang Zhao</a>, <a href="http://www.cs.cornell.edu/~wenzel/">Wenzel Jakob</a>, <a href="http://www.cs.cornell.edu/~srm/">Steve Marschner</a>, and <a href="http://www.cs.cornell.edu/~kb/">Kavita Bala</a>)</span>
<p style="margin-top: 8pt">
<strong>Abstract</strong>: Abstract: Woven fabrics have a wide range of appearance determined by their small-scale 3D structure. Accurately modeling this structural detail can produce highly realistic renderings of fabrics and is critical for predictive rendering of fabric appearance. But building these yarn-level volumetric models is challenging. Procedural techniques are manually intensive, and fail to capture the naturally arising irregularities which contribute significantly to the overall appearance of cloth. Techniques that acquire the detailed 3D structure of real fabric samples are constrained only to model the scanned samples and cannot represent different fabric designs.</p>
<p>This paper presents a new approach to creating volumetric models of woven cloth, which starts with user-specified fabric designs and produces models that correctly capture the yarn-level structural details of cloth. We create a small database of volumetric exemplars by scanning fabric samples with simple weave structures. To build an output model, our method synthesizes a new volume by copying data from the exemplars at each yarn crossing to match a weave pattern that specifies the desired output structure. Our results demonstrate that our approach generalizes well to complex designs and can produce highly realistic results at both large and small scales.
</p>
<p><b>Gallery</b>: the following images are courtesy of Shuang Zhao, Wenzel Jakob, Steve Marschner, and Kavita Bala.<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=374' title='damask0s'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/damask0s-150x150.jpg" class="attachment-thumbnail" alt="A Jacquard brocade pillow made using satin and twill weaves" title="damask0s" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=373' title='pattern5s'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/pattern5s-150x150.jpg" class="attachment-thumbnail" alt="Fabric made using a large (96x96) wavy twill weave pattern" title="pattern5s" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=372' title='teaser2_low'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/teaser2_low-150x150.jpg" class="attachment-thumbnail" alt="A range of fabrics with complex weave patterns, synthesized from a library of Micro-CT scans" title="teaser2_low" /></a>
</p>
<p style="margin-top: -14pt; margin-bottom:-10pt"><b>Video</b>:</p>
<p><center><iframe src="http://player.vimeo.com/video/41508521?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="550" height="310"></iframe></center></li>
<li style="margin-top: 24pt"><span style="font-size:14pt" class="blacklink"><strong><a href="http://www.cemyuksel.com/research/stitchmeshes/">Stitch Meshes for Modeling Knitted Clothing with Yarn-level Detail</a></strong> (by <a href="http://www.cemyuksel.com/">Cem Yuskel</a>, <a href="http://www.graphics.cornell.edu/~jmkaldor/">Jonathan Kaldor</a>, <a href="http://www.cs.cornell.edu/~djames/">Doug L. James</a>, and <a href="http://www.cs.cornell.edu/~srm/">Steve Marschner</a>)</span>
<p style="margin-top: 8pt">
<b>Abstract</b>:Recent yarn-based simulation techniques permit realistic and efficient dynamic simulation of knitted clothing, but producing the required yarn-level models remains a challenge. The lack of practical modeling techniques significantly limits the diversity and complexity of knitted garments that can be simulated. We propose a new modeling technique that builds yarn-level models of complex knitted garments for virtual characters. We start with a polygonal model that represents the large-scale surface of the knitted cloth. Using this mesh as an input, our interactive modeling tool produces a finer mesh representing the layout of stitches in the garment, which we call the stitch mesh. By manipulating this mesh and assigning stitch types to its faces, the user can replicate a variety of complicated knitting patterns. The curve model representing the yarn is generated from the stitch mesh, then the final shape is computed by a yarn-level physical simulation that locally relaxes the yarn into realistic shape while preserving global shape of the garment and avoiding &#8220;yarn pull-through,&#8221; thereby producing valid yarn geometry suitable for dynamic simulation. Using our system, we can efficiently create yarn-level models of knitted clothing with a rich variety of patterns that would be completely impractical to model using traditional techniques. We show a variety of example knitting patterns and full-scale garments produced using our system.
</p>
<p style="margin-top: 8pt">
<b>Gallery</b>: the following images are courtesy of Cem Yuksel. Some of the models are by Christer Sveen, Rune Spaans, and Alexander Tomchuk.</p>

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=392' title='teacozy'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/teacozy-150x150.jpg" class="attachment-thumbnail" alt="Knitted tea cozy with a Stockinette pattern formed by repeated knit stitches" title="teacozy" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=391' title='sheep'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/sheep-150x150.jpg" class="attachment-thumbnail" alt="A knitted sweater dress for a sheep with Ridged Feather pattern" title="sheep" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=390' title='poncho'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/poncho-150x150.jpg" class="attachment-thumbnail" alt="Knitted poncho with a Ribbing pattern, simulated on a mannequin" title="poncho" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=389' title='glove'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/glove-150x150.jpg" class="attachment-thumbnail" alt="Knitted glove with a Ribbing pattern formed by alternating knit and purl stitches" title="glove" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=388' title='dress2'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/dress2-150x150.jpg" class="attachment-thumbnail" alt="Knitted dress on a mannequin" title="dress2" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=387' title='alien-cables'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/alien-cables-150x150.jpg" class="attachment-thumbnail" alt="Alien wearing a sweater with the Braid Cables pattern" title="alien-cables" /></a>

<p style="margin-top: 8pt; margin-bottom:-10pt"><b>Video</b>:</p>
<p><center><br />
	<object width="550" height="440"><param name="movie" value="http://www.youtube.com/v/NG5C_a6rxrY?hl=en_US&#038;fs=1&#038;color1=0x555555"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent"></param>
		<embed src="http://www.youtube.com/v/NG5C_a6rxrY?hl=en_US&#038;fs=1&#038;color1=0x555555" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="440" wmode="transparent"></embed></object><br />
</center>
</li>
<li style="margin-top: 24pt"><span style="font-size:14pt" class="blacklink"><strong>Energy-based Self-Collision Culling for Arbitrary Mesh Deformations</strong> (by <a href="http://www.cs.cornell.edu/~cxzheng/">Changxi Zheng</a> and <a href="http://www.cs.cornell.edu/~djames/">Doug L. James</a>)</span>
<p style="margin-top: 8pt">
<strong>Abstract</strong>:<br />
In this paper, we accelerate self-collision detection (SCD) for a deforming triangle mesh by exploiting the idea that a mesh cannot self collide unless it deforms enough. Unlike prior work on subspace self-collision culling which is restricted to low-rank deformation subspaces, our energy-based approach supports arbitrary mesh deformations while still being fast. Given a bounding volume hierarchy (BVH) for a triangle mesh, we precompute Energy-based Self-Collision Culling (ESCC) certificates on bounding-volume-related sub-meshes which indicate the amount of deformation energy required for it to self collide. After updating energy values at runtime, many bounding-volume self-collision queries can be culled using the ESCC certificates. We propose an affine-frame Laplacian-based energy definition which sports a highly optimized certificate preprocess, and fast runtime energy evaluation. The latter is performed hierarchically to amortize Laplacian energy and affine-frame estimation computations. ESCC supports both discrete and continuous SCD, detailed and nonsmooth geometry. We demonstrate significant culling on various examples, with SCD speed-ups up to 26x.
</p>
<p><b>Gallery</b>: the following images are courtesy of Chanxi Zheng and Doug L. James.</p>
<p>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=429' title='frame0058'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/frame0058-150x150.jpg" class="attachment-thumbnail" alt="frame0058" title="frame0058" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=430' title='frame0078'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/frame0078-150x150.jpg" class="attachment-thumbnail" alt="frame0078" title="frame0078" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=428' title='frame0054'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/frame0054-150x150.jpg" class="attachment-thumbnail" alt="frame0054" title="frame0054" /></a>

</li>
<li style="margin-top: 14pt"><span style="font-size:14pt" class="blacklink"><strong><a href="http://www.cs.cornell.edu/Projects/sound/impact/">Precomputed Acceleration Noise for Improved Rigid-body Sound</a></strong> (by <a href="http://www.cs.cornell.edu/~chadwick/">Jeff Chadwick</a>, <a href="http://www.cs.cornell.edu/~cxzheng/">Changxi Zheng</a> and <a href="http://www.cs.cornell.edu/~djames/">Doug L. James</a>)</span>
<p style="margin-top: 8pt">
<strong>Abstract</strong>:<br />
We introduce an efficient method for synthesizing acceleration noise&mdash;sound produced when an object experiences abrupt rigid body acceleration due to collisions or other contact events. We approach this in two main steps. First, we estimate continuous contact force proﬁles from rigid-body impulses using a simple model based on Hertz contact theory. Next, we compute solutions to the acoustic wave equation due to short acceleration pulses in each rigid-body degree of freedom. We introduce an efficient representation for these solutions&mdash;Precomputed Acceleration Noise&mdash;which allows us to accurately estimate sound due to arbitrary rigid-body accelerations. We find that the addition of acceleration noise signiﬁcantly complements the standard modal sound algorithm, especially for small objects</p>
<p><b>Gallery</b>: the following images are courtesy of Jeff Chadwick, Chanxi Zheng and Doug L. James.</p>

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=439' title='final0070'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0070-150x150.jpg" class="attachment-thumbnail" alt="final0070" title="final0070" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=438' title='final0043'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0043-150x150.jpg" class="attachment-thumbnail" alt="final0043" title="final0043" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=437' title='final0042'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0042-150x150.jpg" class="attachment-thumbnail" alt="final0042" title="final0042" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=436' title='final0038 copy'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0038-copy-150x150.jpg" class="attachment-thumbnail" alt="final0038 copy" title="final0038 copy" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=435' title='final0037'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0037-150x150.jpg" class="attachment-thumbnail" alt="final0037" title="final0037" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=434' title='final0015'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/05/final0015-150x150.jpg" class="attachment-thumbnail" alt="final0015" title="final0015" /></a>

</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=352</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.3.1 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=316</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=316#comments</comments>
		<pubDate>Fri, 13 Apr 2012 17:40:12 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=316</guid>
		<description><![CDATA[A new release of Mitsuba is available for download. This is the last stable release before version 0.4.0, which will introduce bidirectional features and a major overhaul of the system&#8217;s internals. It is mainly a bugfix release, which was necessary since a few rather serious problems had crept into version 0.3.0. Apart from bugfixes, there were also [...]]]></description>
			<content:encoded><![CDATA[<div>A new release of Mitsuba is available for download. This is the last stable release before version 0.4.0, which will introduce bidirectional features and a major overhaul of the system&#8217;s internals. It is mainly a bugfix release, which was necessary since a few rather serious problems had crept into version 0.3.0. Apart from bugfixes, there were also a couple of new features, and some announcements are to be made:</div>
<ul>
<li><strong><strong>Reflectance models</strong>: </strong>The <tt>plastic</tt>, <tt>roughplastic</tt>, and <tt>roughcoating</tt> models have been completely overhauled. They are now reciprocal, and the rough variants support a texturable roughness.<strong><br />
</strong></li>
<li><strong>Intersection shapes</strong>: For convenience, I&#8217;ve added two new intersection primitives: <tt>rectangle</tt> and <tt>disk</tt>. These do exactly what the name implies <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
<li><strong>Documentation</strong>: The documentation has seen further improvements and clarifications. While of course still far from complete, it&#8217;s getting a bit larger every day.</li>
<li><strong>Wireframe texture</strong>: there is now a special texture that reveals the underlying mesh structure when attached to a triangle mesh.</li>
<li><strong>Linear blend material</strong>: it&#8217;s now possible to interpolate between two arbitrary BSDFs based on a texture.</li>
</ul>
<div>Two announcements:</div>
<div>
<ul>
<li><strong>Fluid solver</strong>: I&#8217;ve updated my homebrew fluid solver to generate volume data files that current versions of the renderer can handle. The download page also contains a new example scene with heterogeneous smoke generated by that program.</li>
<li><strong>Forums</strong>: I&#8217;ve added forums to the bug tracker (<a href="https://www.mitsuba-renderer.org/tracker/projects/mitsuba/boards">link</a>). You will need a valid tracker account to create forum posts.</li>
</ul>
</div>
<div>The bugs resolved in version 0.3.1 are as follows:</div>
<div>
<ul>
<li><strong>Photon mapper</strong>: The photon mapper had some <em>serious</em> <em>issues</em> in the last release, which apparently didn&#8217;t keep people from using it <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . These are now fixed, and it should run faster too.</li>
<li><strong>Performance on Linux/x86_64</strong>: On Linux, the performance of the single precision <tt>exp</tt> and <tt>log</tt> math library functions is extremely poor when compiling for the x86_64 architecture. Why that happens (and is still the case in 2011) is a long and sad story. To circumvent this problem for now, Mitsuba will revert to the double precision functions on affected systems. This causes a noticeable performance improvement when rendering homogeneous or heterogeneous participating media.</li>
<li><strong>Primitive clipping</strong>: When constructing the scene kd-tree with primitive clipping (a.k.a. &#8220;perfect splits&#8221;), some numerical issues caused holes to appear when the renderer was compiled in double precision. This likely never affected more than a handful people, since the default builds all use single precision.</li>
<li><strong>Adaptive integrator</strong>: The adaptive integrator interacted badly with certain sub-integrators—this is now fixed.</li>
<li><strong>Geometry instancing</strong>: Instanced analytic shapes (e.g. spheres, cylinders, ..) are now supported, and an error involving network rendering with instanced geometry is fixed.</li>
<li><strong>Scene corruption</strong>: Fixed a serious issue that could destroy a scene file when saving from a cloned tab!</li>
<li><strong>Multi-screen setups</strong>: On Windows, Mitsuba had occasional problems with multi-screen setups, where windows could disappear to a position that was not covered by any of the screens. The GUI is now aware of the screen configuration and tries to place windows more intelligently.</li>
<li><strong>OBJ texture coordinates</strong>: textures applied to an OBJ mesh used to be vertically flipped. This is now fixed.</li>
<li><strong>Hair intersection shape</strong>: the construction of the hair kd-tree used to take very long and has now been shortened considerably.</li>
<li><strong>Texture lookups</strong>: Sean Bell found an off-by-one error that caused texture lookups with x=0 to wrap. This has been corrected in the new release.</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=316</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Nori: an educational ray tracer</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=341</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=341#comments</comments>
		<pubDate>Thu, 08 Mar 2012 15:55:21 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=341</guid>
		<description><![CDATA[Apart from working on SIGGRAPH paper submissions, I&#8217;ve been helping my advisor Steve Marschner teach Cornell&#8217;s graduate-level graphics course CS6630 this semester. My job was to create a compact rendering framework that students can use (and understand) in a sequence of increasingly difficult assignments. PBRT and Mitsuba were not an option: they are both much too [...]]]></description>
			<content:encoded><![CDATA[<p>Apart from working on SIGGRAPH paper submissions, I&#8217;ve been helping my advisor Steve Marschner teach Cornell&#8217;s graduate-level graphics course <a href="http://www.cs.cornell.edu/Courses/cs6630/2012sp/about.stm">CS6630</a> this semester. My job was to create a compact rendering framework that students can use (and understand) in a sequence of increasingly difficult assignments.</p>
<p>PBRT and Mitsuba were not an option: they are both much too large for a one-semester course, and all fun components are already &#8220;done&#8221; (i.e. not available for assignments). So we decided to make a new framework called <a href="http://www.cs.cornell.edu/Courses/cs6630/2012sp/nori">Nori</a>.</p>
<p>It is always tempting to stop working on a piece of code as soon as it produces good-looking results (which might still be subtly incorrect). An important design goal of Nori was to really force students to end up with the right answer. Thus, each assignment comes with a battery of statistical hypothesis tests to ensure correctness.<br />
<center><br />
<a href="http://www.cs.cornell.edu/Courses/cs6630/2012sp/nori"><img class="aligncenter size-medium wp-image-343" title="logo-beveled" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2012/03/logo-beveled-300x146.jpg" alt="" width="300" height="146" /></a></center><br />
We use χ<sup>2</sup> goodness of fit-tests to validate sample generation and Student&#8217;s t-test to check if the submitted MC integrators converge to the right value.</p>
<p>Everything is licensed under the GPL and thus also available to instructors at other institutions. If you are interested, please get in touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=341</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Winter break</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=335</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=335#comments</comments>
		<pubDate>Wed, 30 Nov 2011 03:15:21 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=335</guid>
		<description><![CDATA[In anticipation of the SIGGRAPH deadline on January 17, the public Mitsuba releases are now entering their annual &#8220;winter break&#8221;. This means that there probably won&#8217;t be any new releases in that time, plus  I may be slow in responding to email or bugtracker entries. That is not to say that I&#8217;m taking a break [...]]]></description>
			<content:encoded><![CDATA[<p>In anticipation of the SIGGRAPH deadline on January 17, the public Mitsuba releases are now entering their annual &#8220;winter break&#8221;. This means that there probably won&#8217;t be any new releases in that time, plus  I may be slow in responding to email or bugtracker entries.</p>
<p>That is not to say that I&#8217;m taking a break <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Some exciting changes will be coming to this project &#8212; stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=335</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Heterogeneous volume datasets</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=328</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=328#comments</comments>
		<pubDate>Thu, 22 Sep 2011 18:23:27 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=328</guid>
		<description><![CDATA[Due to popular demand, I&#8217;m releasing two scenes that demonstrate how to render heterogeneous participating media with Mitsuba. The first one is a (relatively low-res) plume of smoke generated by my fluid solver. The second example is the blue scarf dataset from our SIGGRAPH 2010 project. It demonstrates how to render with the anisotropic volume scattering [...]]]></description>
			<content:encoded><![CDATA[<p>Due to popular demand, I&#8217;m releasing two scenes that demonstrate how to render heterogeneous participating media with Mitsuba. The first one is a (relatively low-res) plume of smoke generated by my <a href="http://www.mitsuba-renderer.org/misc.html#">fluid solver</a>.</p>
<div id="attachment_330" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/09/smoke.jpg"><img class="size-medium wp-image-330" title="Plume of smoke" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/09/smoke-300x247.jpg" alt="" width="300" height="247" /></a><p class="wp-caption-text">Plume of smoke</p></div>
<p>The second example is the blue scarf dataset from our SIGGRAPH 2010 project. It demonstrates how to render with the anisotropic volume scattering framework presented in that paper, and it uses the micro-flake scattering model implemented in Mitsuba.</p>
<div id="attachment_329" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/09/scarf-big.jpg"><img class="size-medium wp-image-329" title="Blue scarf" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/09/scarf-big-300x168.jpg" alt="" width="300" height="168" /></a><p class="wp-caption-text">SIGGRAPH 2010 Scarf scene</p></div>
<p>Enjoy! <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  You can find the scene files on the download page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=328</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.3.0 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=280</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=280#comments</comments>
		<pubDate>Fri, 02 Sep 2011 01:22:14 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Participating media]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=280</guid>
		<description><![CDATA[I&#8217;ve just released Mitsuba 0.3.0! In hindsight, my previous announcement of a release within 1-2 weeks clearly turned out to be a bit too optimistic&#8230; But I hope that it was worth the wait. In addition to all the previously mentioned features, I&#8217;ve worked on the following changes: Python integration: Mitsuba 0.3.0 comes with Python bindings. While [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released Mitsuba 0.3.0! In hindsight, my previous announcement of a release within 1-2 weeks clearly turned out to be a bit too optimistic&#8230; But I hope that it was worth the wait. In addition to all the <a href="http://www.mitsuba-renderer.org/devblog/?p=255">previously mentioned features</a>, I&#8217;ve worked on the following changes:</p>
<p><strong>Python integration:</strong> Mitsuba 0.3.0 comes with Python bindings. While the bindings don&#8217;t expose the full C++ API, they are already good enough for controlling the renderer, dynamically constructing scenes, and many other useful things. Chapter 11 of the documentation contains a basic overview and several &#8220;recipe&#8221;-type examples. My main motivation for adding bindings is to reduce the amount of work that is necessary to integrate Mitsuba into commercial modeling tools. I found that since I don&#8217;t do any modeling myself, I&#8217;m not particularly good at developing such plugins <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I hope that a solid Python API will lower the bar enough so that someone else can give it a shot and succeed.</p>
<p><strong>Integrator overhaul</strong>: Some of the integrators in Mitsuba (photon mapping variants, irradiance caching, subsurface integrators) have become somewhat broken due to the many changes that happened over the last months. These are all fixed in the current release. In addition, the photon map-based integrators are now about twice as fast, which is a consequence of switching to a more optimized generic point kd-tree implementation.</p>
<p><strong>Preetham sun/sky &amp; Hanrahan-Krueger models</strong>: As part of his thesis (<a href="http://www.voodoo-arts.net/pub/diplom.pdf">link</a>) on realistic rendering of snow, Tom Kazimiers has developed a great series of extensions to Mitsuba. I&#8217;m planning to eventually merge most of them. For now, I&#8217;ve added his implementation of the Preetham sun/sky model, as well as an implementation of the Hanrahan-Krueger BSDF (which is an analytic solution to single scattering in a layer of a homogeneous medium). <a href="http://graphics.ethz.ch/~mpapas/">Marios Papas</a> greatly extended the H-K model implementation and verified its correctness against reference simulations.</p>
<p><strong>API reference:</strong> A nightly process now creates API documentation for the most recent Mitsuba version. Take a look at <a href="http://www.mitsuba-renderer.org/api/">http://www.mitsuba-renderer.org/api</a>. The API documentation is also linked from the main Mitsuba web page.</p>
<p><strong>Better builds:</strong> I&#8217;ve grown a bit tired of making release builds and packages for various platforms, since it tends to be a tedious manual process.</p>
<p>To reduce this burden, I&#8217;ve set up seven virtual machines that automatically download the latest version of Mitsuba, compile it, and upload packages for:</p>
<ul>
<li>Windows (x86 and x86_64)</li>
<li>Mac OS 10.6+ (universal binary for x86 and x86_64)</li>
<li>Ubuntu 10.10 — maverick (x86_64)</li>
<li>Ubuntu 11.04 — natty (x86_64)</li>
<li>Debian 6.0 — squeeze (x86_64)</li>
<li>Fedora Core 15 (x86_64)</li>
<li>Arch Linux (x86_64)</li>
</ul>
<p>This set should hopefully cover almost everyone (I&#8217;m assuming that any sane Linux user has made the switch to 64-bit at this point). Most of the packages also include development header files, which makes it possible to create custom Mitsuba plugins without ever having to compile the main codebase.</p>
<p>The Windows and MacOS X builds are compiled using the Intel C++ compiler 12. This means that OpenMP now <em>finally</em> works on OSX! (Apple has been shipping a seriously broken version with their compiler for years..)</p>
<p>Since the entire build process is now automated, you can expect to see more frequent releases in the future &#8212; I might even switch to a nighly build system at some point.</p>
<p><strong>Future license change:</strong> I intend to switch Mitsuba&#8217;s license to the more liberal LGPL license (a.k.a. the &#8220;lesser GPL&#8221;, or &#8220;library GPL&#8221;) at some point in the near future. This will essentially allow users to write proprietary plugins or link Mitsuba to external applications without having to release their source code. Only changes to the renderer itself would need to be made available. I believe that this is a good compromise between making the system available to a larger group of users, while benefiting from any improvements that are made. The transition will involve getting permission from a few more people, rewriting code, and replacing certain dependencies. For that reason, it might still take a few months. Stay tuned&#8230;</p>
<p><strong>Better documentation coverage</strong>: A huge amount of work went into the documentation, which now covers many previously undocumented plugins. While still far from complete, it&#8217;s at a point where it can serve as a good starting point and reference for every-day use. Be sure to check it out if you are using or evaluating the renderer in any way.</p>
<p><center><a href="http://www.mitsuba-renderer.org/documentation.pdf"><img class="aligncenter" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/09/documentation-preview.png" alt="" width="600" height="404" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=280</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
		<item>
		<title>Random picture of the day</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=277</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=277#comments</comments>
		<pubDate>Sat, 06 Aug 2011 22:25:04 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=277</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_276" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/08/coatedcopper.jpg"><img class="size-medium wp-image-276" title="Coated copper" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/08/coatedcopper-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Rough copper coated with a transparent varnish layer. Lit by the Preetham et al. sun &amp; sky model.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=277</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Upcoming changes</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=255</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=255#comments</comments>
		<pubDate>Sun, 17 Jul 2011 01:50:29 +0000</pubDate>
		<dc:creator>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 [...]]]></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" class="wp-caption aligncenter" style="width: 235px"><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/?feed=rss2&#038;p=255</wfw:commentRss>
		<slash:comments>71</slash:comments>
		</item>
		<item>
		<title>Server crash</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=244</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=244#comments</comments>
		<pubDate>Wed, 08 Jun 2011 23:05:46 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=244</guid>
		<description><![CDATA[Due to a server crash, this webpage was unavailable for the past two days. For some reason, both the mainboard and hard disk broke down. There was a recent backup, hence nothing of serious importance was lost.]]></description>
			<content:encoded><![CDATA[<p>Due to a server crash, this webpage was unavailable for the past two days.</p>
<p>For some reason, <em>both</em> the mainboard and hard disk broke down. There was a recent backup, hence nothing of serious importance was lost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=244</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rendering with style</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=16</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=16#comments</comments>
		<pubDate>Mon, 06 Jun 2011 12:16:05 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=16</guid>
		<description><![CDATA[Every once in a while, I need to create an image that truly takes a very long time to render in Mitsuba, to the point that I am simply not willing to wait that long. In some cases, this just means that an inefficient algorithm somewhere in the code had better be replaced. But in [...]]]></description>
			<content:encoded><![CDATA[<p>Every once in a while, I need to create an image that truly takes a <em>very</em> long time to render in Mitsuba, to the point that I am simply not willing to wait that long. In some cases, this just means that an inefficient algorithm somewhere in the code had better be replaced. But in other cases, the algorithms are all fine, and it&#8217;s really the scene&#8217;s fault for being excessively complicated. Such circumstances leave me with only two choices: 1. I can adjust my expectations and simplify the scene, or 2. throw a huge amount of processing power behind Mitsuba, and <em>make</em> it go fast. In this blog entry, I will explain how to do the latter with the help of Amazon&#8217;s Elastic Compute Cloud (EC2).</p>
<h4>Amazon Elastic Compute Cloud</h4>
<p>The business model of EC2 is to rent on-demand processing power to individuals and companies. If you have a job that requires several Linux machines for a few hours, you&#8217;re in business. Probably the most common use of EC2 is to host web applications that scale dynamically. In that scenario, the web server is able to respond to heavy load situations by automatically buying additional EC2 nodes until the load reverts back to normal conditions.</p>
<p>EC2 can also be used to render images, and Amazon offers a particular kind of machine (in EC2 lingo: instance type) that is well-suited for this purpose. In particular, their <tt>c1.xlarge</tt>, or High-CPU Extra Large instances each have 8 cores and 7GB of RAM and currently cost about $0.68 per hour on the East coast. This price compares favorably to maintaining a compute cluster around the year, which only sees 100% use during a small portion of that time.</p>
<h4>Going cheap</h4>
<p>Although the normal EC2 prices are reasonable, it would be nice if there was a way to spend even less. One such approach involves buying idle capacity from Amazon based on a current &#8220;stock price&#8221; (EC2 lingo: spot price), which they assign to each kind of machine. The idea is as follows: one makes a bid for a certain amount of capacity, e.g. &#8220;I&#8217;m willing to run this job, if I can do it for less than $0.30 per hour and machine&#8221;. As soon as the spot price drops below the bid amount, the requested machines are booted up automatically. As long as they run, only the spot price is incurred (as opposed to the higher bid amount).</p>
<p>This spot price usually lies noticeably below the regular EC2 prices &#8212; for instance, as of this moment, a <tt>c1.xlarge</tt> machine on the East coast only costs ~$0.23 per hour. But here is the caveat: if at any time, the spot price exceeds the bid amount, your machines are turned off without so much as a warning (which obviously doesn&#8217;t work well for many kinds of workloads). It is worth noting that one only has to pay for every fully completed node hour in this case.</p>
<p>Since no irreparable damage occurs when a node disappears (other than having to redo the last still or animation frame), I usually prefer the cheaper spot price approach to having guaranteed availability.</p>
<h4>Running Mitsuba instances on EC2</h4>
<p>Assuming that you&#8217;re signed up with EC2, you should be able to step through the following description to get Mitsuba up and running on a few machines and run a parallel render job. It is Linux/OSX-centric, hence the actual commands may differ a bit when doing this on Windows.</p>
<p><em>Legal disclaimer:</em> Some of the following will cost actual money &#8212; while I have done thorough tests, I can make no guarantees on the correctness of the launcher script and the information provided here.</p>
<p>Before starting, make sure that you have a recent version of <a href="http://code.google.com/p/boto/">boto</a> installed on your machine. (This is a Python Library for scripting EC2 services.) On Ubuntu, this can be done by entering</p>
<pre>$ sudo apt-get install python-boto</pre>
<p>1. After logging into the AWS Management Console, click on &#8220;Your Account&#8221; and &#8220;Security credentials&#8221;. Towards the bottom of this page, you should be able to see your <em>Access Key ID</em>, as well as the <em>Secret Access Key</em>. Make note of these two values.<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=54' title='ec2_step3'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step3-150x150.png" class="attachment-thumbnail" alt="Public &amp; Secret Access Key" title="ec2_step3" /></a>
<br />
Now, click on the EC2 tab in the AWS Management Console and add an inbound TCP rule to the default security group. The rule should open port <tt>7554</tt> without source restrictions (i.e. <tt>0.0.0.0/0</tt>). Add another such rule for port <tt>22</tt> (for secure shell access).<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=66' title='ec2_step5'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step5-150x150.png" class="attachment-thumbnail" alt="Security groups" title="ec2_step5" /></a>
<br />
Next, create a new key in the control panel labeled &#8220;Key Pairs&#8221;.  The  browser will prompt to save a <tt>.pem</tt> file, which you can save into a new directory (e.g. <tt>mitsuba-ec2</tt>) with a filename matching the key pair name (for instance: <tt>mitsuba.pem</tt> when the key pair was named <tt>mitsuba</tt>).<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=20' title='ec2_step1'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step11-150x150.png" class="attachment-thumbnail" alt="Keypair setup" title="ec2_step1" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=22' title='ec2_step2'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step2-150x150.png" class="attachment-thumbnail" alt="Newly created key" title="ec2_step2" /></a>
<br />
Now, create a clean copy of <tt>data/ec2/cluster.py</tt> from the Mitsuba distribution and place it into the same directory.</p>
<p>You will need to modify a few values at the top. In particular, the access key, key pair, and region fields all need to be filled out. When building a custom version of Mitsuba, you will also need to modify the <tt>PKG_REPOSITORY</tt> attribute to point to your own repository.<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=64' title='ec2_step4'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step4-150x150.png" class="attachment-thumbnail" alt="cluster.py script" title="ec2_step4" /></a>
</p>
<p>Now, we are almost ready to go. Open a terminal and navigate to the directory containing the modified EC2 launcher script. To set the correct permissions for the private key, execute the following command (replace <tt>mitsuba</tt> by the name the key pair crated earlier)</p>
<pre>$ chmod og-rwx mitsuba.pem</pre>
<p>For an overview of all supported commands, type</p>
<pre>$ ./cluster.py</pre>
<p>The following command allocates a specified number of spot nodes from EC2 and boots them with a stateless version of Ubuntu Maverick (64 bit).</p>
<pre>$ ./cluster.py addSpotNodes [instance-type] [count] [bid] &lt;group&gt;</pre>
<p>To get an idea of what to specify as a bid, it may be useful to look at the list of previous and current spot prices on the <a href="http://cloudexchange.org/charts/us-east-1.linux.c1.xlarge.html">Cloud Exchange</a>. To get (more expensive) regular machines with guaranteed availability, use the following command instead:</p>
<pre>$ ./cluster.py addNodes [instance-type] [count] &lt;group&gt;</pre>
<p>For instance, to purchase 16 <tt>c1.xlarge</tt> spot nodes (that&#8217;s 128 cores) with a max. bid of $0.30/hr each, enter</p>
<pre>$ ./cluster.py addSpotNodes c1.xlarge 16 0.30 myGroup
Requesting 16 spot nodes of type c1.xlarge (group name = "myGroup",
  max. price=0.300)..
Done.</pre>
<p>The last parameter designates the name &#8220;myGroup&#8221; to these 16 machines. To see whether your nodes have started successfully, enter</p>
<pre>$ ./cluster.py status
Querying spot instance requests...
  sir-724e8411: status=open, price must be &lt;= 0.300$
  .... (15 more)</pre>
<p>When the bid is above the spot price and the requests have been fulfilled (this usually happens within a minute), this status will change to</p>
<pre>$ ./cluster.py status
Querying spot instance requests...
  sir-724e8411: status=active, price must be &lt;= 0.300$
  .... (15 more)

Querying instances ...
Nodes in group "myGroup"
===================
  ec2-50-17-103-151.compute-1.amazonaws.com is running (type:
    c1.xlarge, running for: 0d 0h 1m, internal IP: 10.86.31.233,
    spot request: sir-724e8411)
    .... (15 more)</pre>
<p>These are perfectly standard Ubuntu machines &#8212; to obtain shell access to any one of them, pass the host name seen seen in the previous command to the <tt>login</tt> command, e.g.</p>
<pre>$ ./cluster.py login ec2-50-17-103-151.compute-1.amazonaws.com</pre>
<p>To quickly install Mitsuba on all nodes in parallel (time is money at this point!), run</p>
<pre>$. /cluster.py install myGroup
Sending command to node ec2-50-17-103-151.compute-1.amazonaws.com
...
0/16 nodes are ready.
...
16/16 nodes are ready.</pre>
<p>This process usually takes about 30-60 seconds; a few harmless warnings may appear, which can be ignored. With Mitsuba installed on all machines, the last step is to create a rendering cluster. For this, execute</p>
<pre>$. /cluster.py start myGroup
Creating a Mitsuba cluster using the nodes of group "myGroup"
Sending command to node ec2-50-17-102-163.compute-1.amazonaws.com
....
15/15 nodes are ready.
All nodes are ready.
Creating head node ..
Done -- you can specify the head node
   "ec2-184-73-78-201.compute-1.amazonaws.com" in the Mitsuba
   network rendering dialog</pre>
<p>The host name in this last command is the <em>head node</em> of the cluster. To save network bandwidth, the head node transparently provides access to all cores in the cluster without you having to create internet connections to 16 separate machines.</p>
<div id="attachment_139" class="wp-caption aligncenter" style="width: 264px"><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2-schema.png"><img class="size-medium wp-image-139" title="Default network topology" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2-schema-254x300.png" alt="" width="254" height="300" /></a><p class="wp-caption-text">Default network topology</p></div>
<p>To use the cluster, simply add this machine in the rendering preferences of the Mitsuba GUI or provide it using the <tt>-c</tt> parameter when rendering from the command line interface.<br />

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=134' title='Connecting to the cluster'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step61-150x150.png" class="attachment-thumbnail" alt="Connecting to the cluster" title="Connecting to the cluster" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=135' title='Connection established!'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/ec2_step7-150x150.png" class="attachment-thumbnail" alt="Connection established!" title="Connection established!" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=147' title='EC2 rendering in progress'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2011/04/test-150x150.jpg" class="attachment-thumbnail" alt="EC2 rendering in progress" title="EC2 rendering in progress" /></a>
<br />
(In case you are wondering why 2 cores appear to be missing in the above images &#8212; the launcher script leaves them idle on the head node to ensure that it has enough CPU and network I/O capacity to coordinate the rendering)</p>
<p>Once you are done, don&#8217;t forget to run</p>
<pre>$ ./cluster.py terminateAll myGroup</pre>
<p>to shut down the machines and stop any charges to your account (note: Amazon will bill you for any partially used hours).</p>
<p>This guide only covered the most basic use case; more advanced features also supported. For instance, to do some serious rendering with volumetric datasets, I usually upload the (multi-gigabyte) volume data files to Amazon S3 ahead of time. After booting up a cluster, I use the <tt>syncData</tt> command to have all cluster nodes simultaneously download those files over the EC2-internal network (this does not incur any network charges). Another useful feature is that multiple users can simultaneously create Mitsuba clusters on a single account without interfering, as machines are always referred to using group names.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=16</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.2.1 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=163</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=163#comments</comments>
		<pubDate>Fri, 03 Jun 2011 23:13:57 +0000</pubDate>
		<dc:creator>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 [...]]]></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>&#8220; by Shuang Zhao, Wenzel Jakob, Steve Marschner, and Kavita Bala.</p>

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=175' title='Gabardine'><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" title="Gabardine" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=176' title='Velvet'><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" title="Velvet" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=192' title='Silk satin'><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" title="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/?attachment_id=195' title='Silk charmeuse'><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" title="Silk charmeuse" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=196' title='Cotton denim'><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" title="Cotton denim" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=197' title='Wool gabardine'><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" title="Wool gabardine" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=198' title='Polyester lining cloth'><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" title="Polyester lining cloth" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=199' title='Silk shantung'><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" title="Silk shantung" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=200' title='Cotton twill'><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" title="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/?attachment_id=219' title='Cars scene (rendered using the Beam Radiance Estimate)'><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)" title="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/?feed=rss2&#038;p=163</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>New Blog</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=171</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=171#comments</comments>
		<pubDate>Thu, 02 Jun 2011 04:45:51 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/devblog/?p=171</guid>
		<description><![CDATA[In case you are wondering why this blog suddenly looks so different: I have moved it to WordPress after continuously running into problems with the previous system. On another note: today or tomorrow, a long-overdue release of Mitsuba will be released. Stay tuned!]]></description>
			<content:encoded><![CDATA[<p>In case you are wondering why this blog suddenly looks so different: I have moved it to WordPress after continuously running into problems with the previous system.</p>
<p>On another note: today or tomorrow, a long-overdue release of Mitsuba will be released. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=171</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A few changes</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=9</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=9#comments</comments>
		<pubDate>Thu, 03 Feb 2011 08:12:08 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=9</guid>
		<description><![CDATA[I&#8217;ve just committed a batch of changes that have piled up on my machine. Most are architectural improvements plus a few bugfixes. Here is a list of changes: Switched to a cleaner build system organization (1 SConscript file per directory instead of a single huge file) Robustness improvements to the KD-tree construction code: it now [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just committed a batch of changes that have piled up on my machine. Most are architectural improvements plus a few bugfixes. Here is a list of changes:</p>
<ul>
<li>Switched to a cleaner build system organization (1 SConscript file per directory instead of a single huge file)</li>
<li> Robustness improvements to the KD-tree construction code: it now does a better job at handling degenerate triangles</li>
<li> Switched to an epsilon-free KD-tree traversal loop based on Havran&#8217;s T_{AB}^{rec} algorithm</li>
<li> Generalization of the KD-tree construction code (now supports plugging in arbitrary tree construction heuristics)</li>
<li> Addition of some utility code (a LRU cache, adaptive Gauss-Lobatto quadrature, etc.)</li>
<li> Switched to a generic dense matrix class that supports arbitrary dimensions</li>
<li> Pixel traversal within image blocks now uses a space-filling curve ordering</li>
<li> Added support for several noise functions from PBRT</li>
<li> Cleanups of various top-level interfaces (Luminaires, Phase functions, BSDFs, Participating media, etc.)</li>
<li> Robustness improvements to the participating media code (faster + now does a better job at dielectric boundaries)</li>
<li> Added a basic tonemapping utility (can be invoked via mtsutil)</li>
<ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=9</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Entering SIGGRAPH submersion mode</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=15</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=15#comments</comments>
		<pubDate>Sun, 28 Nov 2010 14:38:50 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=15</guid>
		<description><![CDATA[As SIGGRAPH submission deadline is drawing closer, I might not respond to support requests / bug reports over the next 6 weeks. Please don&#8217;t be put off &#8212; Mitsuba development will pick up at the usual pace once the deadline is over, but for now I must concentrate my efforts on the submission.]]></description>
			<content:encoded><![CDATA[<p>As SIGGRAPH submission deadline is drawing closer, I might not respond to support requests / bug reports over the next 6 weeks. Please don&#8217;t be put off &#8212; Mitsuba development will pick up at the usual pace once the deadline is over, but for now I must concentrate my efforts on the submission.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=15</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.2.0 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=8</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=8#comments</comments>
		<pubDate>Tue, 23 Nov 2010 00:20:00 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=8</guid>
		<description><![CDATA[After a long stretch of time, I&#8217;m releasing a new version of Mitsuba. Reasons for the delay were numerous architectural changes within the renderer. Most of these will not be visible when using the application, but they should result in faster rendering performance. Here is a breakdown of the high-level changes: The COLLADA importer is [...]]]></description>
			<content:encoded><![CDATA[<p>After a long stretch of time, I&#8217;m releasing a new version of Mitsuba. Reasons for the delay were numerous architectural changes within the renderer. Most of these will not be visible when using the application, but they should result in faster rendering performance. Here is a breakdown of the high-level changes:
<ul>
<li>The COLLADA importer is more robust and should handle most scenes (hm, this sounds familiar). Rather than generating hundreds of translated mesh files, the new version instead produces one single compressed file.</li>
<li>I&#8217;ve added an experimental plugin for Blender 2.5 integration, including a custom material designer. Since it depends on features which won&#8217;t be in Blender until the upcoming 2.56 release, it is currently necessary to compile Blender from SVN to use the plugin. Many thanks go to Doug Hammond for providing his excellent EF package, which the plugin uses extensively.</li>
<li>Jonas Pilo has contributed a very nice test scene, which is currently used as an interactive preview in the material designer of the Mitsuba Blender plugin (see <a href="http://www.mitsuba-renderer.org/demo1.mp4">this video</a> for an example of what this looks like)</li>
<li>The KD-tree acceleration and construction code has been completely rewritten. The new code produces noticeably better trees and does so within a fraction of the time of the old version. It also scales to very large polygonal meshes (>30M triangles), whereas the previous implementation would quickly exhaust all available memory in such cases. (see <a href="http://www.mitsuba-renderer.org/devblog/archives/10-New-acceleration-data-structures.html">this blog entry</a> for details)</li>
<li>Instancing support was added, and there is limited (rigid) animation support for shapes.</li>
<li>Edgar has kindly contributed patches to compile Mitsuba using the Intel C++ compiler. Official windows 32-/64-bit builds now use this compiler, since it produces faster-running executables (in comparison to Visual Studio).</li>
<li>The XML schema of the scene description language is now less picky. Specifically, it is possible to specify properties and objects in an arbitrary order.</li>
<li>Standard UV texture mapping controls (offset, scale) are provided</li>
<li>Luminaire importance sampling is more flexible. The previous implementation sampled a light source proportional to its power, which was often exactly the wrong thing to do. In this release, the sampling weights can be manually specified.</li>
<li>There is partial support for rendering vast amounts of hair (partial because only the intersection shape is implemented at this point &#8212; no hair-specific scattering models have been added yet)</li>
<li>A PLY file loader based on libply (courtesy of Ares Lagae) was added</li>
<li>Vertex colors are now accessible within the renderer. This is implemented using a special &#8220;texture&#8221;, which forwards the color information to scattering models</li>
<li>Severe lock contention issues in the irradiance cache were fixed (these resulted in slow performance when rendering on many cores).</li>
<li>The loading dialog now contains a console, which shows what is happening while waiting for a large scene to load</li>
<li>The builtin environment map luminaire supports importance sampling (it did uniform sampling before &#8211; jikes!)</li>
<li>A bunch of materials and textures now have GLSL implementations so that they can be used in the interactive preview</li>
<li>The preview itself should be quite a bit faster due to optimizations in how geometry is passed to the GPU</li>
</ul>
<p>As usual, a large number of bugs were also fixed. The documentation is still rather incomplete, but I&#8217;m working on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=8</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Build system changes</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=13</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=13#comments</comments>
		<pubDate>Sat, 20 Nov 2010 22:21:04 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=13</guid>
		<description><![CDATA[I&#8217;ve just committed a few build system-related changes, which should help to prevent some major headaches in the future. These changes require four (simple) steps from anyone who is currently building from source on either Windows or OSX: Update to the newest repository version (hg pull -u) Check out a copy of the &#8216;dependencies&#8217; repository [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just committed a few build system-related changes, which should help to prevent some major headaches in the future. These changes require four (simple) steps from anyone who is currently building from source on either Windows or OSX:</p>
<ol>
<li>Update to the newest repository version (hg pull -u)</li>
<li>Check out a copy of the &#8216;dependencies&#8217; repository at <a href="https://www.mitsuba-renderer.org/hg/dependencies">https://www.mitsuba-renderer.org/hg/dependencies</a> and place it into the Mitsuba directory (e.g. C:\Mitsuba\dependencies), i.e.
<p style="font-family: Courier;">
cd C:\mitsuba<br/>hg clone https://www.mitsuba-renderer.org/hg/dependencies</li>
</p>
<li>Replace your &#8216;config.py&#8217; file with a fresh copy from the &#8216;config&#8217; directory. Note that a few more options exist now &#8212; specifically on Windows, the Intel C++ compiler is now supported (thanks, Edgar!).</li>
<li>Remove the &#8216;mitsuba/tools&#8217; directory (if it still exists after the last three steps).</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=13</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New acceleration data structures</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=14</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=14#comments</comments>
		<pubDate>Thu, 14 Oct 2010 13:46:05 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=14</guid>
		<description><![CDATA[The upcoming release of Mitsuba will incorporate a few rather big changes under the hood. The most significant one is that a fairly large piece of code, the kd-tree construction and traversal logic, has been rewritten from scratch. There were a few reasons for doing so: the old code produced reasonable kd-trees, but it was [...]]]></description>
			<content:encoded><![CDATA[<p>The upcoming release of Mitsuba will incorporate a few rather big changes under the hood. The most significant one is that a fairly large piece of code, the kd-tree construction and traversal logic, has been rewritten from scratch.</p>
<p>There were a few reasons for doing so: the old code produced reasonable kd-trees, but it was quite slow, used excessive amounts of memory, and it only ran on a single processor. Of those three, the memory requirement was perhaps the most problematic: if each triangle causes a temporary overhead of about 20x of its storage cost, big scenes become a problem.. For example, my laptop would just crash when I tried to load the 28 million triangle Lucy mesh from Stanford.</p>
<p>Part of the problem lies with the commonly used algorithm for constructing kd-trees: it represents shapes using abstract &#8220;bounding box events&#8221;. Even using various optimizations, these events alone take up so much memory that one might run out of it without having generated a single kd-tree node.</p>
<p>So what has changed?</p>
<ul>
<li>The new implementation uses an approximate kd-tree building strategy (&#8220;Min-Max binning&#8221;) to generate the top of the kd-tree, which avoids creating massive amount of bounding box events. Once geometry has been partitioned into groups of less than &lt;64K elements, the more accurate traditional O(N log N) builder takes over. An extra benefit of this approach is that it leads to much more coherent memory access patterns.</li>
<li>The build process now uses a custom memory allocator, which is specifically optimized for the allocation/deallocation sequences seen during kd-tree construction.</li>
<li>The construction runs in parallel: independent subtrees are assigned to different cores as they become available. This scales quite well, since most of the cost in constructing trees is at the leaves.</li>
<li>A rather wasteful data structure for triangle classification has been packed so that it only needs two bits per entry.</li>
</ul>
<p>The best part: the resulting trees are also of much higher quality than those made by the previous implementation, which gives a 20%-30% speedup essentially for free.</p>
<p>When running the builder on standard scenes, the final SAH costs (a kd-tree quality metric) now come within 1% of those listed in the seminal paper &#8220;On building fast kd-Trees for Ray Tracing, and on doing that in O(N log N)&#8221; by ray-tracing gods Ingo Wald and Vlastimil Havran. So as far as optimization goes, I think I&#8217;ve reached the limit of what is possible using this method.</p>
<p>These changes make it possible to use Mitsuba for interactive visualizations of very large scenes, such as the UNC Powerplant (a popular benchmark scene with 13 million triangles).</p>
<div id="attachment_51" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2010/10/pplant1.png"><img class="size-medium wp-image-51" title="Power plant scene" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2010/10/pplant1-300x272.png" alt="" width="300" height="272" /></a><p class="wp-caption-text">Power plant scene</p></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=14</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Material test scenes</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=10</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=10#comments</comments>
		<pubDate>Tue, 21 Sep 2010 08:03:59 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=10</guid>
		<description><![CDATA[The next release of Mitsuba will include documentation on many of the available plugins, especially materials. For this purpose, I&#8217;m currently modeling a material test scene to demonstrate the effects of various parameters in an intuitive way. Caution: programmer art follows! &#160; As you can see, I&#8217;m rather bad at modeling and therefore open to [...]]]></description>
			<content:encoded><![CDATA[<p>The next release of Mitsuba will include documentation on many of the available plugins, especially materials. For this purpose, I&#8217;m currently modeling a material test scene to demonstrate the effects of various parameters in an intuitive way. Caution: programmer art follows!</p>

<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=48' title='mattest_roughmetal'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2010/09/mattest_roughmetal-150x150.png" class="attachment-thumbnail" alt="Rough metal" title="mattest_roughmetal" /></a>
<a href='http://www.mitsuba-renderer.org/devblog/?attachment_id=47' title='mattest_roughglass'><img width="150" height="150" src="http://www.mitsuba-renderer.org/devblog/wp-content/uploads/2010/09/mattest_roughglass-150x150.png" class="attachment-thumbnail" alt="Rough glass" title="mattest_roughglass" /></a>

<p>&nbsp;</p>
<p>As you can see, I&#8217;m rather bad at modeling and therefore open to any suggestions <img src='http://www.mitsuba-renderer.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=10</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Mitsuba 0.1.3 released</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=7</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=7#comments</comments>
		<pubDate>Wed, 08 Sep 2010 07:45:55 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=7</guid>
		<description><![CDATA[Builds for a new version of Mitsuba are now available for download. This is mainly a bugfix release to address a serious regression in the material system. Other notable changes are: Imported scenes now store relative paths OBJ importing works on Windows Realtime preview (OpenGL + RTRT) fixed for point sources The anisotropic Ward BRDF [...]]]></description>
			<content:encoded><![CDATA[<p>Builds for a new version of Mitsuba are now available for download. This is mainly a bugfix release to address a serious regression in the material system. Other notable changes are:
<ul>
<li>Imported scenes now store relative paths</li>
<li>OBJ importing works on Windows</li>
<li>Realtime preview (OpenGL + RTRT) fixed for point sources</li>
<li>The anisotropic Ward BRDF is now supported in the preview</li>
<li>Faster texture loading</ti>
<li>The renderer now has a testcase framework similar to JUnit</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=7</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bug tracker</title>
		<link>http://www.mitsuba-renderer.org/devblog/?p=6</link>
		<comments>http://www.mitsuba-renderer.org/devblog/?p=6#comments</comments>
		<pubDate>Tue, 07 Sep 2010 07:54:21 +0000</pubDate>
		<dc:creator>Wenzel Jakob</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.mitsuba-renderer.org/wordpress/?p=6</guid>
		<description><![CDATA[I&#8217;ve set up a public bug tracking system at the the following address: https://www.mitsuba-renderer.org/bugtracker Please create a report on this website whenever you find a bug in Mitsuba. It will be easiest to fix if you can also attach a scene file, which reproduces the error.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve set up a public bug tracking system at the the following address:</p>
<p><a href="https://www.mitsuba-renderer.org/bugtracker">https://www.mitsuba-renderer.org/bugtracker</a></p>
<p>Please create a report on this website whenever you find a bug in Mitsuba. It will be easiest to fix if you can also attach a scene file, which reproduces the error.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mitsuba-renderer.org/devblog/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

