<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Another day, another HDR rendering trick and some hope for the future.</title>
	<atom:link href="http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/feed/" rel="self" type="application/rss+xml" />
	<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/</link>
	<description></description>
	<lastBuildDate>Mon, 12 Oct 2009 22:17:15 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: chris green</title>
		<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/#comment-144</link>
		<dc:creator>chris green</dc:creator>
		<pubDate>Sat, 12 Jul 2008 22:08:59 +0000</pubDate>
		<guid isPermaLink="false">http://pixelstoomany.wordpress.com/?p=19#comment-144</guid>
		<description>.. and yet another thing we tried in lost coast was using two eight bit render targets as MRT&#039;s. All shaders would write both (r,g,b) and (1/16)*(r,g,b) into the two render targets. A final shader would combine the two frame buffers at a target exposure value, including hdr blooming. 

This would work on hardware which supported mrts but didn&#039;t fully support high-bit render targets (ATI at the time). Of course, MSAA was also the drawback with this approach.</description>
		<content:encoded><![CDATA[<p>.. and yet another thing we tried in lost coast was using two eight bit render targets as MRT&#8217;s. All shaders would write both (r,g,b) and (1/16)*(r,g,b) into the two render targets. A final shader would combine the two frame buffers at a target exposure value, including hdr blooming. </p>
<p>This would work on hardware which supported mrts but didn&#8217;t fully support high-bit render targets (ATI at the time). Of course, MSAA was also the drawback with this approach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco Salvi</title>
		<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/#comment-143</link>
		<dc:creator>Marco Salvi</dc:creator>
		<pubDate>Wed, 09 Jul 2008 14:20:08 +0000</pubDate>
		<guid isPermaLink="false">http://pixelstoomany.wordpress.com/?p=19#comment-143</guid>
		<description>Hi Gary,
Thanks for your post!

Ultimately we had the same concerns for Heavenly Sword, it wasn&#039;t possible to adopt the idea I came up with because it was clashing with other &#039;creative&#039; uses of various render targets and obscure hardware features. It&#039;s a kind of route one has to take in early development stages.

I found myself in this situation so many times, it&#039;s definitely  a recurring pattern according my personal experience. That&#039;s why I&#039;m looking forward to the second (or the third?) coming of software renderers that should allows us to develop more creative and exotic solutions that are also more robust and less hacky..</description>
		<content:encoded><![CDATA[<p>Hi Gary,<br />
Thanks for your post!</p>
<p>Ultimately we had the same concerns for Heavenly Sword, it wasn&#8217;t possible to adopt the idea I came up with because it was clashing with other &#8216;creative&#8217; uses of various render targets and obscure hardware features. It&#8217;s a kind of route one has to take in early development stages.</p>
<p>I found myself in this situation so many times, it&#8217;s definitely  a recurring pattern according my personal experience. That&#8217;s why I&#8217;m looking forward to the second (or the third?) coming of software renderers that should allows us to develop more creative and exotic solutions that are also more robust and less hacky..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gary McTaggart</title>
		<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/#comment-142</link>
		<dc:creator>Gary McTaggart</dc:creator>
		<pubDate>Tue, 08 Jul 2008 06:47:38 +0000</pubDate>
		<guid isPermaLink="false">http://pixelstoomany.wordpress.com/?p=19#comment-142</guid>
		<description>One of the things that we tried before settling on what we have for Lost Coast is to store another range in another render target via MRT.  Worked well, except for killing MSAA.   We couldn&#039;t afford to render again to get the other range, which is what I beieve Halo 3 ended up doing.

We also tried storing various flavors of luminance in dest alpha, but aborted on that due to problems with alpha-blending.  If the blend units were a bit more general with respect to what happens with alpha, it would have been a nice solution.  It also didn&#039;t help that we were already using dest alpha for refraction factors for water, etc.

I wish we had been able to end up with HDR data for blooming when using LDR render targets, but we thought what we ended up with wa a reasonable compromise.</description>
		<content:encoded><![CDATA[<p>One of the things that we tried before settling on what we have for Lost Coast is to store another range in another render target via MRT.  Worked well, except for killing MSAA.   We couldn&#8217;t afford to render again to get the other range, which is what I beieve Halo 3 ended up doing.</p>
<p>We also tried storing various flavors of luminance in dest alpha, but aborted on that due to problems with alpha-blending.  If the blend units were a bit more general with respect to what happens with alpha, it would have been a nice solution.  It also didn&#8217;t help that we were already using dest alpha for refraction factors for water, etc.</p>
<p>I wish we had been able to end up with HDR data for blooming when using LDR render targets, but we thought what we ended up with wa a reasonable compromise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marco Salvi</title>
		<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/#comment-141</link>
		<dc:creator>Marco Salvi</dc:creator>
		<pubDate>Sun, 06 Jul 2008 16:44:03 +0000</pubDate>
		<guid isPermaLink="false">http://pixelstoomany.wordpress.com/?p=19#comment-141</guid>
		<description>Thanks Vincent!
I also tried to use this approach in the late Heavenly Sword development stages and well, it was simply too late to make it work properly with the rest of our pipeline, I battled with a few days and then I had to abandon it (though it was only 2-3% faster than my logluv framebuffer encoding technique, it had the advantage of resolving our 4x MSAA HDR frame buffer in the proper order giving to the image an outstanding quality in high contrast areas)
My other major problem with Valve&#039;s HDR technique is that if your renderer is gamma aware (and if it&#039;s not it&#039;s better go back to the drawing board!) and it performs shading in a linear RGB space you also need to apply gamma correction before writing out your tone mapped pixels. This is not a big problem per se (and some next gen console out there does it for free) but it might be a problem if you need to composite your opaque pixels with other layers or special effects.
In theory your single pass material should also perform tone mapping, colour correction, DOF, motion blur, lens flares, gamma writes and all sort of stuff. DOF and motion blur can&#039;t be obviously done at that stage so you have to sacrifice again some correctness. Trying to add some full screen passes for special effects and to move gamma correction at the end of the  rendering pipeline won&#039;t work as you already tone mapped your fragments out to a 4 bytes per pixel render target which doesn&#039;t have enough dynamic range to avoid awful banding introduced by gamma correction (well, that&#039;s the reason why some clever clog invented gamma encoding in the first place!).</description>
		<content:encoded><![CDATA[<p>Thanks Vincent!<br />
I also tried to use this approach in the late Heavenly Sword development stages and well, it was simply too late to make it work properly with the rest of our pipeline, I battled with a few days and then I had to abandon it (though it was only 2-3% faster than my logluv framebuffer encoding technique, it had the advantage of resolving our 4x MSAA HDR frame buffer in the proper order giving to the image an outstanding quality in high contrast areas)<br />
My other major problem with Valve&#8217;s HDR technique is that if your renderer is gamma aware (and if it&#8217;s not it&#8217;s better go back to the drawing board!) and it performs shading in a linear RGB space you also need to apply gamma correction before writing out your tone mapped pixels. This is not a big problem per se (and some next gen console out there does it for free) but it might be a problem if you need to composite your opaque pixels with other layers or special effects.<br />
In theory your single pass material should also perform tone mapping, colour correction, DOF, motion blur, lens flares, gamma writes and all sort of stuff. DOF and motion blur can&#8217;t be obviously done at that stage so you have to sacrifice again some correctness. Trying to add some full screen passes for special effects and to move gamma correction at the end of the  rendering pipeline won&#8217;t work as you already tone mapped your fragments out to a 4 bytes per pixel render target which doesn&#8217;t have enough dynamic range to avoid awful banding introduced by gamma correction (well, that&#8217;s the reason why some clever clog invented gamma encoding in the first place!).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vincent Scheib</title>
		<link>http://pixelstoomany.wordpress.com/2008/07/05/another-day-another-hdr-rendering-trick-and-some-hope-for-the-future/#comment-140</link>
		<dc:creator>Vincent Scheib</dc:creator>
		<pubDate>Sun, 06 Jul 2008 13:38:56 +0000</pubDate>
		<guid isPermaLink="false">http://pixelstoomany.wordpress.com/?p=19#comment-140</guid>
		<description>Marco, this is a great idea. I&#039;ve been considering giving the Valve technique a try and was lamenting the more involved process of exposure measuring. I&#039;d like to experiement with this approach.</description>
		<content:encoded><![CDATA[<p>Marco, this is a great idea. I&#8217;ve been considering giving the Valve technique a try and was lamenting the more involved process of exposure measuring. I&#8217;d like to experiement with this approach.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
