<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>RenderWonk</title>
	<link>http://renderwonk.com/blog</link>
	<description>Graphics musings by Naty Hoffman</description>
	<pubDate>Sun, 13 Jul 2008 21:15:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Real-Time Rendering - New Website</title>
		<link>http://renderwonk.com/blog/index.php/archive/real-time-rendering-new-website/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/real-time-rendering-new-website/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 21:13:38 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[RTR3]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/real-time-rendering-new-website/</guid>
		<description><![CDATA[The new Real-Time Rendering website is now live. Besides an updated version of the resources that the previous website had, there is also a blog where I, Eric and Tomas will be posting various updates on the field. Check it out!
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://realtimerendering.com/index.html">new Real-Time Rendering website</a> is now live. Besides an updated version of the resources that the previous website had, there is also <a href="http://www.realtimerendering.com/blog/">a blog</a> where I, Eric and Tomas will be posting various updates on the field. Check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/real-time-rendering-new-website/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NVIDIA&#8217;s GeForce GTX 200: The Details</title>
		<link>http://renderwonk.com/blog/index.php/archive/nvidias-geforce-gtx-200-the-details/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/nvidias-geforce-gtx-200-the-details/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 03:20:23 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Graphics Hardware]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/nvidias-geforce-gtx-200-the-details/</guid>
		<description><![CDATA[Now that NVIDIA&#8217;s has announced its newest GPU architecture (the GeForce GTX 200 series), interesting architectural details are popping up on the web. The best writeup I&#8217;ve found is by AnandTech. In the past, such detailed writeups would have required a lot of reverse-engineering and guessing. Nowadays, a lot of the detailed low-level information is [...]]]></description>
			<content:encoded><![CDATA[<p>Now that NVIDIA&#8217;s has announced its newest GPU architecture (the GeForce GTX 200 series), interesting architectural details are popping up on the web. The <a href="http://anandtech.com/video/showdoc.aspx?i=3334">best writeup I&#8217;ve found</a> is by <a href="http://anandtech.com">AnandTech</a>. In the past, such detailed writeups would have required a lot of reverse-engineering and guessing. Nowadays, a lot of the detailed low-level information is forthcoming directly from NVIDIA itself. This is probably due to the desire to promote <a href="http://www.gpgpu.org/">GPGPU</a> programming models such as <a href="http://www.nvidia.com/object/cuda_home.html">CUDA</a>, which require low-level hardware knowledge to write efficient code. The architecture details make for some interesting reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/nvidias-geforce-gtx-200-the-details/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Distribution-based BRDFs</title>
		<link>http://renderwonk.com/blog/index.php/archive/distribution-based-brdfs/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/distribution-based-brdfs/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 16:32:34 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/distribution-based-brdfs/</guid>
		<description><![CDATA[This important BRDF paper is finally available online. I&#8217;ve been waiting for it to become available since I read an earlier draft two years ago. It presents a cheap, yet realistic BRDF model and can be easily fit to data from real-world materials. Anyone interested in material rendering should check it out.
]]></description>
			<content:encoded><![CDATA[<p>This important BRDF paper is finally <a href="http://www.cs.utah.edu/~premoze/dbrdf/">available online</a>. I&#8217;ve been waiting for it to become available since I read an earlier draft two years ago. It presents a cheap, yet realistic BRDF model and can be easily fit to data from real-world materials. Anyone interested in material rendering should check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/distribution-based-brdfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>While I Was Away&#8230;</title>
		<link>http://renderwonk.com/blog/index.php/archive/while-i-was-away/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/while-i-was-away/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 20:06:19 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[RTR3]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/while-i-was-away/</guid>
		<description><![CDATA[Postings have been pretty sparse of late, with no postings at all since September 2007. The reason I haven&#8217;t been keeping the blog up to date is that I&#8217;ve been busy with this:

The second edition of &#8220;Real-Time Rendering&#8221; is one of my favorite technical books, so when I heard Tomas and Eric were looking for [...]]]></description>
			<content:encoded><![CDATA[<p>Postings have been pretty sparse of late, with no postings at all since September 2007. The reason I haven&#8217;t been keeping the blog up to date is that I&#8217;ve been busy with this:</p>
<p><a href="http://www.amazon.com/gp/product/1568814240/"><img src="http://renderwonk.com/blog/wp-content/uploads/2008/06/rtrcover.JPG" alt="RTR Cover" /></a></p>
<p>The second edition of &#8220;Real-Time Rendering&#8221; is one of my favorite technical books, so when I heard Tomas and Eric were looking for someone to help out with the third edition I wasted no time in offering my services. Luckily, they accepted, and some very hard (but fun) work ensued. Given everything that has happened in the field since 2002 (when the second edition was published), bringing the book up to date while keeping to the high standards set by previous editions was definitely a challenge. I think we did a pretty good job. The cover image links to the Amazon listing, where thanks to their nifty &#8220;Look inside the book&#8221; feature you can form your own opinion. If you have a chance to attend SIGGRAPH this year (always a good idea), we plan to do a signing at the A K Peters booth.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/while-i-was-away/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gold Mine of Spectral Reflectance Data</title>
		<link>http://renderwonk.com/blog/index.php/archive/gold-mine-of-spectral-reflectance-data/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/gold-mine-of-spectral-reflectance-data/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 22:28:03 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/gold-mine-of-spectral-reflectance-data/</guid>
		<description><![CDATA[I&#8217;ve owned a (signed!) copy of Andrew Glassner&#8217;s Principles of Digital Image Synthesis for a short while. It&#8217;s an amazingly in-depth book on the fundamentals of computer graphics, and I warmly recommend it. Anyway, I recently happened to glance at the appendices and noticed Appendix G. This appendix has tons of interesting spectral data in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve owned a (signed!) copy of Andrew Glassner&#8217;s <a href="http://www.amazon.com/Principles-Synthesis-Kaufmann-Computer-Graphics/dp/1558602763">Principles of Digital Image Synthesis</a> for a short while. It&#8217;s an amazingly in-depth book on the fundamentals of computer graphics, and I warmly recommend it. Anyway, I recently happened to glance at the appendices and noticed Appendix G. This appendix has tons of interesting spectral data in table and graph form: indices of refraction and extinction for various materials, CIE observer and human cone response curves, and spectra of various light sources. The appendix claims that the data is also available via ftp, but unfortunately the directory it gives doesn&#8217;t exist anymore. However, the appendix also mentions that the spectral reflectance data given for real objects is a subset of a larger set that is also available on ftp, and that one appears to still exist, albeit at <a href="ftp://ftp.eos.ncsu.edu/pub/eos/pub/spectra/">a slightly different address</a> (if your browser has problems with ftp, use a standalone client to open an anonymous ftp connection to ftp.eos.ncsu.edu and go to pub/eos/pub/spectra). This site has reflectance spectra for various color chips including the 64 Munsell colors, as well as 170 objects such as various types of wood, human skin and hair, leaves, rocks, many types of fabric, etc.</p>
<p>A good source for spectral data is handy even if you are not doing spectral rendering; you can convert them into RGB values and use them as reference reflectance values (I did that recently when I needed a good reference RGB reflectance for copper).</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/gold-mine-of-spectral-reflectance-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SIGGRAPH 2007 Fast-Forward session now on Encore</title>
		<link>http://renderwonk.com/blog/index.php/archive/siggraph-2007-fast-forward-session-now-on-encore/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/siggraph-2007-fast-forward-session-now-on-encore/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 22:52:54 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/siggraph-2007-fast-forward-session-now-on-encore/</guid>
		<description><![CDATA[They have the video for this for $10 or included if you got the full conference.
For anyone who isn&#8217;t familiar with the SIGGRAPH Papers Fast-Forward session, this is a fairly recent tradition (since 2002), where all the papers are presented in very short (50 second) presentations. This gives you a chance to get a quick [...]]]></description>
			<content:encoded><![CDATA[<p>They have the video for this for $10 or included if you got the full conference.</p>
<p>For anyone who isn&#8217;t familiar with the SIGGRAPH Papers Fast-Forward session, this is a fairly recent tradition (since 2002), where all the papers are presented in very short (50 second) presentations. This gives you a chance to get a quick overview of the year&#8217;s SIGGRAPH papers so you can figure out which ones are worthy of further attention.</p>
<p>For some reason, many of the presenters in 2002 did (or at least tried to do) humorous presentations rather than playing it straight (most notable was Ken Perlin&#8217;s rap presentation of his Improved Noise paper). This has since become part of the tradition.</p>
<p>Unlike other sessions, the Encore video doesn&#8217;t give the <strong>full</strong> impact of being there since you don&#8217;t see the presenters dressed in drag / multicolored clown afro wigs / Borat costumes / etc. It is still well worth seeing however.</p>
<p>The same seven papers that were cut from the Encore papers sessions were cut from this as well (see <a href="http://renderwonk.com/blog/index.php/archive/siggraph-encore/">my earlier post</a> for details).</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/siggraph-2007-fast-forward-session-now-on-encore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SIGGRAPH Encore</title>
		<link>http://renderwonk.com/blog/index.php/archive/siggraph-encore/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/siggraph-encore/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 21:51:12 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/siggraph-encore/</guid>
		<description><![CDATA[This year the &#8216;SIGGRAPH Encore&#8217; access to full video of presentations was pretty slick, with most courses, papers and sketches available (for a fee) within 24 hours at the conference itself.
These are great even for people who attended the conference (due to all the overlapping sessions it&#8217;s impossible to see everything you&#8217;re interested in), but [...]]]></description>
			<content:encoded><![CDATA[<p>This year the &#8216;SIGGRAPH Encore&#8217; access to full video of presentations was pretty slick, with most courses, papers and sketches available (for a fee) within 24 hours at the conference itself.</p>
<p>These are great even for people who attended the conference (due to all the overlapping sessions it&#8217;s impossible to see <strong>everything </strong>you&#8217;re interested in), but for people who couldn&#8217;t attend at all these are a godsend. You get whatever was on the presenter&#8217;s screen (slides, demos, etc.) with audio, so this is almost as good as being in the room.</p>
<p>These are also available as pay downloads at the <a href="https://encore.siggraph.org/">SIGGRAPH Encore website</a> . Probably the best deal is the entire conference: courses, papers &amp; sketches for $200. Note however, that some presentations are missing, mostly Hollywood stuff (undoubtedly for copyright reasons).</p>
<p>Note also that if you are an ACM or SIGGRAPH member, 2003, 2004 and 2005 video is available for free (streaming only) at <a href="http://www.siggraph.org/soma/dvd-osa/dvd2005/osa-demos.html">a different site</a>. If you have an ACM digital library subscription, the 2006 videos are available <a href="http://portal.acm.org/dl.cfm">there</a> as well as the older ones. Perhaps the 2007 video will eventually become available to members or subscribers as well.</p>
<p>After the jump, I list what&#8217;s <strong>not </strong>there for people who are trying to decide whether to order this:</p>
<p> <a href="http://renderwonk.com/blog/index.php/archive/siggraph-encore/#more-36" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/siggraph-encore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interesting Color Book Forthcoming from A K Peters</title>
		<link>http://renderwonk.com/blog/index.php/archive/interesting-color-book-forthcoming-from-a-k-peters/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/interesting-color-book-forthcoming-from-a-k-peters/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 08:57:20 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/interesting-color-book-forthcoming-from-a-k-peters/</guid>
		<description><![CDATA[I was just browsing the A K Peters website recently (they have a great catalog of graphics books, like Real-Time Rendering, Advanced Global Illumination, and many others; they also publish the Journal of Graphics Tools) and I noticed an interesting book that they have forthcoming this October: &#8220;Color Imaging: Fundamentals and Applications&#8221; by Erik Reinhard [...]]]></description>
			<content:encoded><![CDATA[<p>I was just browsing the <a href="http://www.akpeters.com/">A K Peters website</a> recently (they have a great catalog of graphics books, like <a href="http://www.akpeters.com/product.asp?ProdCode=1829">Real-Time Rendering</a>, <a href="http://www.akpeters.com/product.asp?ProdCode=3074">Advanced Global Illumination</a>, and many others; they also publish the <a href="http://jgt.akpeters.com/">Journal of Graphics Tools</a>) and I noticed an interesting book that they have forthcoming this October: &#8220;<a href="http://www.akpeters.com/product.asp?ProdCode=3448">Color Imaging: Fundamentals and Applications</a>&#8221; by <a href="http://www.cs.bris.ac.uk/~reinhard/">Erik Reinhard</a> and others. Erik Reinhard is the inventor of one of the <a href="http://www.cs.ucf.edu/~reinhard/cdrom/">most commonly-used tone mapping operators</a>, and the primary author of the book <a href="http://books.elsevier.com/companions/0125852630/hdri/html/hdri.html">High Dynamic Range Imaging</a>.</p>
<p>Given my tendency to want to get down to the very fundamentals of rendering, I&#8217;ve been interested in color theory for a while (I am currently slowly slogging my way through <a href="http://www.amazon.com/Color-Science-Concepts-Quantitative-Formulae/dp/0471399183">Color Science by Wyszecki &amp; Styles</a>) and the description of this book is intriguing: &#8220;This book provides the reader with an understanding of what color is, where color comes from, and how color can be used correctly in many different applications. The authors first treat the physics of light and its interaction with matter at the atomic level, so that the origins of color can be appreciated. The intimate relationship between energy levels, orbital states, and electromagnetic waves helps to explain why diamonds shimmer, rubies are red, and the feathers of the Blue Jay are blue. Then, color theory is explained from its origin to the current state of the art, including image capture and display as well as the practical use of color in disciplines such as computer graphics, computer vision, photography, and film.&#8221;</p>
<p>I think I&#8217;ll pick this one up when it comes out&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/interesting-color-book-forthcoming-from-a-k-peters/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SIGGRAPH 2007 Roundup</title>
		<link>http://renderwonk.com/blog/index.php/archive/siggraph-2007-roundup/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/siggraph-2007-roundup/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 09:57:16 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/siggraph-2007-roundup/</guid>
		<description><![CDATA[Whew! I&#8217;m back from SIGGRAPH, which was exciting and exhausting (as it usually is). I got a few days behind in  the rush; I&#8217;ll finish up the remaining items of note in this post (in the order I saw them, not necessarily in order of importance).

Wave Particles: this is a technique for simulating 2D [...]]]></description>
			<content:encoded><![CDATA[<p>Whew! I&#8217;m back from SIGGRAPH, which was exciting and exhausting (as it usually is). I got a few days behind in  the rush; I&#8217;ll finish up the remaining items of note in this post (in the order I saw them, not necessarily in order of importance).</p>
<ul>
<li><a href="http://www.cemyuksel.com/research/waveparticles/">Wave Particles</a>: this is a technique for simulating 2D waves which has some limitations (fixed wave speed, limited boundary shapes) but is very fast, low on memory and GPU-friendly. Basically wave fronts are represented as a series of stateless deterministic particles. Wave-object interactions are supported.</li>
<li>Shrek Lighting: most film CG lighting used to be done via placement of lots of small direct lights rather than via global illumination (GI), but many film houses are making the transition to GI-based lighting. PDI is one notable example - in the transition from Shrek to Shrek 2 they moved to (single-bounce) global illumination for their lighting and never looked back. In two different presentations at SIGGRAPH they mentioned this transition as a good thing for them. Some games still do their prelighting with a multitude of direct lights, and it does afford the lighting artists a lot of control, but I think this approach will become rarer as time goes on.</li>
<li>Stencil Routed A-Buffer: This sketch presented a way to get order independent transparency faster than depth peeling; in effect abusing the MSAA samples as A-buffer fragments. The method is clever but has some drawbacks (not the least of which is the loss of MSAA when using it).</li>
<li>Advanced Real-Time Rendering in 3D Graphics and Games: This full-day course was excellent, featuring many great tips from premier game developers like Valve and Crytek. Unfortunately the course notes are not up yet, but hopefully they wil be up soon at the <a href="http://developer.amd.com/conf_presos.jsp">AMD conference presentation webpage</a> (or perhaps at the <a href="http://ati.amd.com/developer/techpapers.html">old ATI one</a>). Of particular note were Valve&#8217;s improvements to their famous but unfortunately named &#8216;Radiosity Normal Maps&#8217;, and Crytek&#8217;s &#8216;Screen-Space Ambient Occlusion&#8217; method.</li>
<li>LucasArts &amp; ILM: A Course in Film and Game Convergence: this tutorial outlines LucasArt&#8217;s and ILM&#8217;s attempt at greater collaboration between the two companies. I&#8217;m intrigued by the relationship between film and game rendering, so this tutorial was of particular interest to me. It seems that overall the experience was positive (LucasArts sure got some great tools out of the deal!) and it will be interesting to see how it develops in future.</li>
<li><a href="http://groups.csail.mit.edu/graphics/bilagrid/">Real-Time Edge-Aware Image Processing with the Bilateral Grid</a>: This paper presented a clever data structure for doing bilateral filtering and various other edge-aware processing several orders of magnitude faster than previous methods (though some of that speedup was due to the GPU implementation and not the algorithm itself). These types of filters are usually very slow because they are large and not separable. The numbers they quoted (9ms for a good-sized bilateral filter on a 720p image with a fast GeForce 8000-series card) is <strong>almost </strong>fast enough for game post-processing effects (the time budget for a post-processing pass is closer to 1-2ms), so it might be worth looking at the description of the implementation in the paper to see if there are any obvious optimization possibilities.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/siggraph-2007-roundup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Curl Noise</title>
		<link>http://renderwonk.com/blog/index.php/archive/curl-noise/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/curl-noise/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 06:21:42 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/curl-noise/</guid>
		<description><![CDATA[I saw the presentation of the paper &#8220;Curl Noise for Procedural Fluid Flow&#8221;  on Tuesday. I&#8217;ve wanted to use velocity fields to advect particles in  games for quite a while now, including procedural noise fields. Naively I  thought I would want to use Perlin noise, however, it turns out that  Perlin [...]]]></description>
			<content:encoded><![CDATA[<p>I saw the presentation of the paper &#8220;Curl Noise for Procedural Fluid Flow&#8221;  on Tuesday. I&#8217;ve wanted to use velocity fields to advect particles in  games for quite a while now, including procedural noise fields. Naively I  thought I would want to use Perlin noise, however, it turns out that  Perlin noise velocity fields aren&#8217;t the best choice since they have  &#8217;sinks&#8217; where all of the particles will eventually languish. The &#8216;Curl  Noise&#8217; paper cleverly presents a noise which is divergence-free by  construction (since it is defined as the curl of a potential field). More  importantly, it looks very fluid-like and convincing; either laminar or  turbulent flow are possible with a fine degree of control. The authors  also present methods to have the flow go around objects (even moving  objects). This looks very relevant for games - I will read the paper more  carefully when I get home for the implementation details (the paper,  animations and example code are available <a href="http://www.cs.ubc.ca/~rbridson/">here</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/curl-noise/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lighting Papers</title>
		<link>http://renderwonk.com/blog/index.php/archive/lighting-papers/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/lighting-papers/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 02:46:56 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/lighting-papers/</guid>
		<description><![CDATA[I attended the Lighting Papers session on Tuesday. Of particular note were  the following two papers:
 The Lightspeed Automatic Interactive Preview Lighting System
This paper describes a lighting preview system from ILM. Similarly to  other relighting systems (like Pixar&#8217;s LPICS) it does deferred rendering  to enable fast iteration on the lighting (which happens [...]]]></description>
			<content:encoded><![CDATA[<p>I attended the Lighting Papers session on Tuesday. Of particular note were  the following two papers:</p>
<p><strong> The Lightspeed Automatic Interactive Preview Lighting System</strong><br />
This paper describes a lighting preview system from ILM. Similarly to  other relighting systems (like Pixar&#8217;s LPICS) it does deferred rendering  to enable fast iteration on the lighting (which happens after everything  else, including camera, has been locked down). The interesting thing  is that they found a way to do deferred rendering on scenes with  transparency, antialiasing and motion-blur. They have a separate buffer  with all their fragments and their &#8220;deep-frame-buffer&#8221; properties  (this buffer has no specific 2D layout though, it&#8217;s just a bucket of  fragments). Then they also have a frame buffer with AA, transparency and  motion blur already resolved so that every pixel has pointers to the list  of fragments and their blending weights (since AA, transparency and motion  blur are ultimately just blending fragment colors). Then they do deferred  shading on the &#8216;bucket of fragments&#8217; and blend the results to see the  final frame. This is kind of like a &#8220;deep A-buffer&#8221; for deferred  rendering. This is interesting since many games have been using some kind  of deferred shading lately. The paper is available <a href="http://people.csail.mit.edu/jrk/lightspeed/">here</a>.</p>
<p><strong> Frequency Domain Normal Map Filtering</strong><br />
This paper proposes a nice solution to the surface minification  problem, which has been bothering me for a while.<br />
When shaders were simple like color A (lighting) * color B  (albedo), then standard MIP mapping on the textures worked great.  However, when you start doing high-frequency nonlinear stuff like bumpy  specular, MIP mapping looks bad (aliasing) and just wrong. This is because  when an object is far away, you have a lot of texels (describing various  surface properties) covering a single screen pixel. What you WANT is to  shade all those pixels, and then average the result to get your screen  pixel. What you GET with MIP-mapping is to average your shader inputs and  shade once. Not the same thing at all. The most obvious problem is  sparkly aliasing, but even if you use one of the common hacks to remove  them (like fading out specular with distance) the surface still doesn&#8217;t  look like it should. The SIGGRAPH 2005 sketch &#8220;SpecVar maps&#8221; explains the  problem.<br />
My take on this is that you want to filter your BRDF and normals  as one unit. Most BRDFs implicitly contain a normal distribution function  (NDF), even common ones like Blinn-Phong, which describe the fact that  specular highlights are the result of millions of microscopic facets with  normals pointing in (semi) random directions. In fact, the shape of  the highlight is the same as the shape of the distribution function of  these microfacet normals. This aggregation of tiny normals into a BRDF is  plainly the same thing that happens with MIP mapping, but at a different  scale. You can think of the normal map as just orienting the distribution  of microfacet normals so that the distribution peak points in a different  direction.<br />
So if you have a normal map as well as a map describing the NDF (like  a specular power map), all you need to do is to rotate the NDFs of the  averaged texels in the direction of the normals from the normal map, and  then find a single NDF (subject to the restrictions of your model, so if  you are using Blinn-Phong you are fitting a cosine power lobe) which is  the closest fit to the averaged NDFs. This will determine your MIPped  normal and specular power. You can also throw other BRDF arguments which  are stored in textures into this, like specular gain maps. You do this in  the tools, so you don&#8217;t have to touch your shaders and there is no runtime  cost whatsoever.<br />
The &#8220;Frequency Domain Normal Map Filtering&#8221; paper doesn&#8217;t look at the  problem exactly this way, but is very close. It is based on Ravi  Ramamoorthi&#8217;s frequency-space philosophy of shading, and is very  rigorous. The authors propose various representations for the BRDF  (Spherical Harmonics for low-frequency ones, and multiple lobes of  something called a von Mises-Fisher distribution for high-frequency  ones). The paper as written only works on spatially invariant BRDFs, but  I asked the author who was presenting the paper and confirmed that you  can fold your BRDF into the NDFs used at the top-level, and thus  represent things like per-pixel specular powers. The paper, video and some shader code are available <a href="http://www.cs.columbia.edu/cg/normalmap/">here</a>.<br />
The way I would apply this paper is to convert the Blinn-Phong specular  map (or whatever you are using) and normal map into a single  von Mises-Fisher lobe per pixel at the top level, run their algorithm,  convert the result back to normal and specular power values for  the closest-fitting Phong lobe (from rendering with a vMF, they look  visually very similar to a Phong lobe, so hopefully this would not be too  hard), and Bob&#8217;s your uncle. No speckly artifacts in the distance, your  surface looks right from afar, etc.<br />
It could be that using their method is overkill with a single lobe, and  maybe the fitting can be done as quickly directly on Phong lobes - I don&#8217;t  know, my knowledge of fitting methods is a bit shaky (which is why I went  to the Least-Squares course a few days back). I welcome any comments from  people who know more about this stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/lighting-papers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More Courses</title>
		<link>http://renderwonk.com/blog/index.php/archive/more-courses/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/more-courses/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 06:28:44 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/more-courses/</guid>
		<description><![CDATA[I went to the &#8220;Practical Global Illumination With Irradiance Caching&#8221;  course. I&#8217;m interested in irradiance and radiance caching techniques  because they are closely related to baked lighting techniques used in  games - one could argue that baked lighting is nothing more than  irradiance caching computed offline and applied to interactive renders. [...]]]></description>
			<content:encoded><![CDATA[<p>I went to the <a href="http://moon.felk.cvut.cz/~xkrivanj/papers/2007-caching_course/index.htm">&#8220;Practical Global Illumination With Irradiance Caching&#8221;</a>  course. I&#8217;m interested in irradiance and radiance caching techniques  because they are closely related to baked lighting techniques used in  games - one could argue that baked lighting is nothing more than  irradiance caching computed offline and applied to interactive renders. An  example of a previous paper on this topic with interesting applications  for baked lighting is <a href="http://www.tabellion.org/et/paper/index.html">&#8220;An Approximate Global Illumination System for  Computer Generated Films&#8221;</a> by Tabellion and Lamorlette (SIGGRAPH 2004).<br />
Anyway, the course included a presentation on <a href="http://radsite.lbl.gov/radiance/papers/sg88/paper.html">the original radiance  caching paper</a> (it was called something else back then) from 1988 by Greg  Ward (who also received a well-deserved Computer Graphics Achievement  Award today), as well as presentations on more recent developments by  Jaroslav Krivanek, Henrik Wann Jensen, Pascal Gautron and Okan Arikan.  Krivanek&#8217;s radiance caching work for glossy surfaces sounded potentially  interesting for baked lighting but used too many SH coefficients to be  practical for games. Greg Ward did mention a method of applying rotation  gradients of irradiance to bump maps which sounded worth investigating  further.<br />
I skipped out on Okan Arikan&#8217;s section at the end to see the real-time  synthesis section of the &#8220;Example-Based Texture Synthesis&#8221; course (course notes are available <a href="http://www.cs.unc.edu/~kwatra/SIG07_TextureSynthesis/">here</a>). The  tile-based methods are something I have been keeping an eye on for a while  for possible game applications so I was happy to hear more about the  latest work on those. There were also some pixel-based synthesis  techniques which appeared too slow for real time but perhaps just right  for doing at level loading time.<br />
This afternoon I went to Hanan Samet&#8217;s spatial data structures course. The  course was so full that they had to open up an overflow room, which almost  filled up as well! Hanan presented a bunch of interesting data structures  (I never knew there were so many different kinds of quadtrees) and  algorithms. I now really want to read his new book (<a href="http://www.amazon.com/Foundations-Multidimensional-Structures-Kaufmann-Computer/dp/0123694469">&#8220;Foundations of  Multidimensional and Metric Data Structures&#8221;</a>) which I bought last year  but haven&#8217;t gotten around to reading yet (I feel bad about that,  especially since Hanan was kind enough to sign my copy).</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/more-courses/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gamma chapter in GPU Gems 3</title>
		<link>http://renderwonk.com/blog/index.php/archive/gamma-chapter-in-gpu-gems-3/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/gamma-chapter-in-gpu-gems-3/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 08:22:09 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/gamma-chapter-in-gpu-gems-3/</guid>
		<description><![CDATA[I leafed through GPU Gems 3 today, and noticed that chapter 24 has an  interesting discussion of gamma-correctness issues. It looks pretty good  (as does the book as a whole), and should be worthwhile reading for anyone  interested in my recent post on gamma-correctness. NVIDIA has a page for the book here.
]]></description>
			<content:encoded><![CDATA[<p>I leafed through <a href="http://www.amazon.com/GPU-Gems-3-Hubert-Nguyen/dp/0321515269">GPU Gems 3</a> today, and noticed that chapter 24 has an  interesting discussion of gamma-correctness issues. It looks pretty good  (as does the book as a whole), and should be worthwhile reading for anyone  interested in my recent post on gamma-correctness. NVIDIA has a page for the book <a href="http://developer.nvidia.com/object/gpu-gems-3.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/gamma-chapter-in-gpu-gems-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Least-Squares Course</title>
		<link>http://renderwonk.com/blog/index.php/archive/least-squares-course/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/least-squares-course/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 08:19:21 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/least-squares-course/</guid>
		<description><![CDATA[In the afternoon I attended the course &#8220;Practical Least-Squares for  Computer Graphics&#8221;. Least-squares minimisation is a crucial CG tool, and  this course had a great presentation of the subject. I highly recommend  reading the course notes, which are available here.
]]></description>
			<content:encoded><![CDATA[<p>In the afternoon I attended the course &#8220;Practical Least-Squares for  Computer Graphics&#8221;. Least-squares minimisation is a crucial CG tool, and  this course had a great presentation of the subject. I highly recommend  reading the course notes, which are available <a href="http://graphics.stanford.edu/~jplewis/lscourse/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/least-squares-course/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live from SIGGRAPH 2007</title>
		<link>http://renderwonk.com/blog/index.php/archive/live-from-siggraph-2007/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/live-from-siggraph-2007/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 08:07:32 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[SIGGRAPH 2007]]></category>

		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/live-from-siggraph-2007/</guid>
		<description><![CDATA[Finished an exhausting first day at the conference today - it seemed that  I couldn&#8217;t step into the hallway for a minute without falling into  a long and interesting conversation with a colleague I hadn&#8217;t seen since  last SIGGRAPH.
I spent the morning at Pixar&#8217;s course &#8220;Anyone Can Cook - Inside Ratatouille&#8217;s Kitchen&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Finished an exhausting first day at the conference today - it seemed that  I couldn&#8217;t step into the hallway for a minute without falling into  a long and interesting conversation with a colleague I hadn&#8217;t seen since  last SIGGRAPH.<br />
I spent the morning at Pixar&#8217;s course &#8220;Anyone Can Cook - Inside Ratatouille&#8217;s Kitchen&#8221; (the course notes, and a whole bunch of other neat Pixar papers, are available <a href="http://graphics.pixar.com/">here</a>).  I love going to film production courses and sketches at SIGGRAPH - film  rendering is surprisingly similar to game rendering in that it is highly  performance-sensitive (albeit at a very different time scale), very  art-driven and focused on visual results rather than theoretical  correctness. There are always some fresh insights relevant to my work.  Being presented by Pixar, this course was no exception.<br />
I was especially looking forward to this course since &#8220;Ratatouille&#8221; had  some of the best CG I&#8217;d ever seen, from both a technical and creative  standpoint. The movie was great fun too!<br />
The production team had a very strong emphasis on subsurface scattering -  previously they had only used it for skin, here it was used for food  items and other objects. Of the two methods used, the &#8220;Gummi Light&#8221;  seemed cheap enough to warrant further investigation - I&#8217;ll need to read  the course notes for further details.<br />
They carefully tweaked the exposure and lighting levels to really bring  out the vibrant colors - made sure the interesting details were in the  mid-range so the colors didn&#8217;t get clipped or crushed and left room for  highlights.<br />
Pixar made heavy use of reflection maps as opposed to specular lobe  highlights - they found that reflection maps resulted in a much richer  and more realistic look.<br />
To speed up their renderings, they used light sources to fake light bounce  and caustics.<br />
They also discussed more artist-oriented issues like placement of objects  in the scene to convey mood, and many others. Overall a fun and  interesting course.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/live-from-siggraph-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Neat stuff on Stephen Westin&#8217;s website</title>
		<link>http://renderwonk.com/blog/index.php/archive/neat-stuff-on-stephen-westins-website/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/neat-stuff-on-stephen-westins-website/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 06:07:56 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/neat-stuff-on-stephen-westins-website/</guid>
		<description><![CDATA[I just bumped into this gamma link on Stephen Westin&#8217;s website, and that reminded me of other interesting graphics stuff on his site which seemed worth sharing:

A mini-article on Fresnel reflectance
A pdf scan of the original Torrance-Sparrow paper
The &#8220;multimedia&#8221; (HTML + Java) version of the He BRDF paper
An English translation of the Kubelka-Munk paper (pdf)

Of [...]]]></description>
			<content:encoded><![CDATA[<p>I just bumped into <a href="http://www.graphics.cornell.edu/%7Ewestin/gamma/gamma.html">this gamma link</a> on Stephen Westin&#8217;s <a href="http://www.graphics.cornell.edu/%7Ewestin/">website</a>, and that reminded me of other interesting graphics stuff on his site which seemed worth sharing:</p>
<ul>
<li><a href="http://www.graphics.cornell.edu/%7Ewestin/misc/fresnel.html">A mini-article on Fresnel reflectance</a></li>
<li><a href="http://www.graphics.cornell.edu/%7Ewestin/pubs/TorranceSparrowJOSA1967.pdf">A pdf scan of the original Torrance-Sparrow paper</a></li>
<li><a href="http://www.graphics.cornell.edu/~westin/multimedia-paper/index.html">The &#8220;multimedia&#8221; (HTML + Java) version of the He BRDF paper</a></li>
<li><a href="http://www.graphics.cornell.edu/%7Ewestin/pubs/kubelka.pdf">An English translation of the Kubelka-Munk paper (pdf)</a></li>
</ul>
<p>Of course, there are also pdfs of his papers, many of which are worth a read.</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/neat-stuff-on-stephen-westins-website/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adventures with Gamma-Correct Rendering</title>
		<link>http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/#comments</comments>
		<pubDate>Sat, 04 Aug 2007 03:31:54 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/</guid>
		<description><![CDATA[I&#8217;ve been spending a fair amount of time recently making our game&#8217;s rendering pipeline gamma-correct, which turned out to involve quite a bit more than I first suspected. I&#8217;ll give some background and then outline the issues I encountered - hopefully others trying to &#8220;gamma-correct&#8221; their renderers will find this useful.
In a renderer implemented with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending a fair amount of time recently making our game&#8217;s rendering pipeline gamma-correct, which turned out to involve quite a bit more than I first suspected. I&#8217;ll give some background and then outline the issues I encountered - hopefully others trying to &#8220;gamma-correct&#8221; their renderers will find this useful.</p>
<p>In a renderer implemented with no special attention to gamma-correctness, the entire pipeline is in the same color space as the final display surface - usually the <em>sRGB</em> color space (<a href="http://www.colour.org/tc8-05/Docs/colorspace/61966-2-1.pdf">pdf</a>). This is nice and consistent; colors (in textures, material editor color pickers, etc.) appear the same in-game as in the authoring app. Most game artists are very used to and comfortable with working in this space. The sRGB color space has the further advantage of being (approximately) <em>perceptually uniform</em>. This means that constant increments in this space correspond to constant increases in perceived brightness. This maximally utilizes the available bit-depth of textures and frame buffers.</p>
<p>However, sRGB is not <em>physically uniform</em>; constant increments do not correspond to constant increases in physical intensity. This means that computing lighting and shading in this space is incorrect. Such computations should be performed in the physically uniform <em>linear </em>color space. Computing shading in sRGB space is like doing math in a world where 1+1=3.</p>
<p>The rest of this post is a bit lengthy; more details after the jump.</p>
<p> <a href="http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/#more-11" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Welcome!</title>
		<link>http://renderwonk.com/blog/index.php/archive/welcome/</link>
		<comments>http://renderwonk.com/blog/index.php/archive/welcome/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 01:58:31 +0000</pubDate>
		<dc:creator>Naty</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://renderwonk.com/blog/index.php/archive/welcome/</guid>
		<description><![CDATA[Welcome to the RenderWonk blog! I&#8217;ll be posting my various and sundry thoughts on computer graphics here, with a bit of a slant towards things which are both real-time and physically principled. Hopefully people will be leaving some interesting comments as well&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Welcome to the RenderWonk blog! I&#8217;ll be posting my various and sundry thoughts on computer graphics here, with a bit of a slant towards things which are both real-time and physically principled. Hopefully people will be leaving some interesting comments as well&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://renderwonk.com/blog/index.php/archive/welcome/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

