<?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>Lost in the Triangles &#187; papers</title>
	<atom:link href="http://aras-p.info/blog/tags/papers/feed/" rel="self" type="application/rss+xml" />
	<link>http://aras-p.info/blog</link>
	<description>Random thoughts of a triangle pusher</description>
	<lastBuildDate>Fri, 16 Jul 2010 07:04:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Strided blur and other tips for SSAO</title>
		<link>http://aras-p.info/blog/2009/09/17/strided-blur-and-other-tips-for-ssao/</link>
		<comments>http://aras-p.info/blog/2009/09/17/strided-blur-and-other-tips-for-ssao/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 07:59:01 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[gpu]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=409</guid>
		<description><![CDATA[If you&#8217;re new to SSAO, here are good overview blog posts: meshula.net and levelofdetail. Some tips and an idea on strided blur below. Bits and pieces I found useful SSAO can be generated at a smaller resolution than screen, with depth+normals aware upsample/blur step. If random offset vector points away from surface normal, flip it. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re new to SSAO, here are good overview blog posts: <a href="http://meshula.net/wordpress/?p=145">meshula.net</a> and <a href="http://levelofdetail.wordpress.com/2008/02/10/2007-the-year-ssao-broke/">levelofdetail</a>. Some tips and an idea on strided blur below.</p>
<p><span id="more-409"></span><strong>Bits and pieces I found useful</strong></p>
<ul>
<li>SSAO can be generated at a smaller resolution than screen, with depth+normals aware upsample/blur step.</li>
<li>If random offset vector points away from surface normal, flip it. This makes random vectors be in the upper hemisphere, which reduces false occlusion on flat surfaces. Of course this requires having surface normals.</li>
<li>When generating random vectors for your AO kernel:
<ul>
<li>Generate vectors <i>inside</i> unit sphere (not <i>on</i> unit sphere).</li>
<li>Use energy minimization to distribute your samples better, especially at low sample counts. See <a href="http://www.malmer.nu/index.php/2008-04-11_energy-minimization-is-your-friend">malmer.ru</a> blog post.</li>
</ul>
</li>
<li>In your AO blurring/upsampling step: no need to sample each pixel for blur. Just skip some of them, i.e. make kernel offsets larger. See below.</li>
</ul>
<p><strong>Strided blur for AO</strong></p>
<p>Normally you&#8217;d blur AO term using some sort of standard blur, for example separable Gaussian: horizontal blur, followed by vertical blur. How one can imagine horizontal blur kernel:<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/blur1.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/blur1.png" alt="Horizontal Blur Kernel" title="Horizontal Blur Kernel" width="291" height="51" class="alignnone size-full wp-image-420" /></a></p>
<p>Here&#8217;s how <a href="http://runevision.com/">Rune</a> taught me how to blur better:</p>
<blockquote>
<dl>
<dt>Rune:</dt>
<dd>The other thing is the blur. I tried to make the blur 4 times stronger, and it looks much better IMO without any artifacts I could see. I could even use 4x downsampling with that blur amount and still get acceptable results.</dd>
<dt>Aras:</dt>
<dd>how did you make it 4x stronger? <i>(I was going to say that blur step is already quite expensive, and I don&#8217;t want to add more samples to make it even more expensive, yadda yadda)</i></dd>
<dt>Rune:</dt>
<dd>m_SSAOMaterial.SetVector (&#8220;_TexelOffsetScale&#8221;, m_IsOpenGL ?<br />
	&nbsp;&nbsp;new Vector4 (<b>4</b>,0,1.0f/m_Downsampling,0) :<br />
	&nbsp;&nbsp;new Vector4 (<b>4.0f</b>/source.width,0,0,0));<br />
	And similar for vertical.</dd>
<dt>Aras:</dt>
<dd>hmm. that&#8217;s strange :)</dd>
<dt>Rune:</dt>
<dd>I have no idea what I&#8217;m doing of course but it looks good.</dd>
<dt>Aras:</dt>
<dd>so this way it does not do Gaussian on 9&#215;9 pixels, but instead only takes each 4th pixel. Wider area, but&#8230; it should not work! :)</dd>
<dt>Rune:</dt>
<dd>It creates a very fine pattern at pixel level but it&#8217;s way more subtle than the noise you get otherwise.</dd>
<dt>Aras:</dt>
<dd>ok <i>(hides in the corner and weeps)</i></dd>
</dl>
</blockquote>
<p>So yeah. The blur kernel can be &#8220;spread&#8221; to skip some pixels, effectively resulting in a larger blur radius for the same sample count:<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/blur2.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/blur2.png" alt="Blur with 2 pixel stride" title="Blur with 2 pixel stride" width="291" height="51" class="alignnone size-full wp-image-421" /></a></p>
<p>Or even this:<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/blur3.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/blur3.png" alt="Blur with 3 pixel stride" title="Blur with 3 pixel stride" width="291" height="51" class="alignnone size-full wp-image-422" /></a></p>
<p>Yes, it&#8217;s not correct blur. <strong>But that&#8217;s okay</strong>, we&#8217;re not building nuclear reactors that depend on SSAO blur being accurate. <em>If you are, SSAO is probably a wrong approach anyway, I&#8217;ve heard it&#8217;s not that useful for nuclear stuff</em>.</p>
<p>I&#8217;m not sure how this blur should be called. Strided blur? Interleaved blur? Interlaced blur? Or maybe everyone is doing that already and it has a well established name? Let me know.</p>
<p>Some images of blur in action. Raw AO term (very low &#8211; 8 &#8211; sample count and increased contrast on purpose):<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO1raw.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO1raw-500x270.png" alt="Raw AO at low sample count" title="Raw AO at low sample count" width="500" height="270" class="alignnone size-medium wp-image-412" /></a></p>
<p>Regular 9&#215;9 blur (does not blur over depth+normals discontinuities):<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO2blur.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO2blur-500x270.png" alt="Blurred AO" title="Blurred AO" width="500" height="270" class="alignnone size-medium wp-image-413" /></a></p>
<p>Blur that goes in 2 pixel stride (effectively 17&#215;17):<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO3blur2.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO3blur2-500x271.png" alt="Blurred AO with stride 2" title="Blurred AO with stride 2" width="500" height="271" class="alignnone size-medium wp-image-414" /></a><br />
It does create a fine interleaved pattern because it skips pixels. But you get wider blur!<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO3blur2mag.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO3blur2mag.png" alt="Blurred AO with stride 2, magnified" title="Blurred AO with stride 2, magnified" width="256" height="244" class="alignnone size-full wp-image-415" /></a></p>
<p>Blur that goes in 3 pixel stride (effectively 25&#215;25):<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO4blur3.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO4blur3-500x269.png" alt="Blurred AO with stride 3" title="Blurred AO with stride 3" width="500" height="269" class="alignnone size-medium wp-image-416" /></a><br />
At 3 pixel stride the artifacts are becoming apparent. But hey, this is very<br />
low AO sample count, increased contrast and no textures in the scene.<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO4blur3mag.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO4blur3mag.png" alt="Blured AO with stride 3, magnified" title="Blured AO with stride 3, magnified" width="256" height="244" class="alignnone size-full wp-image-417" /></a></p>
<p>For sake of completeness, the same raw AO term, but computed at 2&#215;2 smaller resolution (still using low sample count etc.):<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO5down2.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO5down2-500x270.png" alt="AO computed at lower resolution" title="AO computed at lower resolution" width="500" height="270" class="alignnone size-medium wp-image-418" /></a></p>
<p>Now, 2&#215;2 smaller AO, blurred with 3 pixels stride:<br />
<a href="http://aras-p.info/blog/wp-content/uploads/2009/09/AO6down2blur3.png"><img src="http://aras-p.info/blog/wp-content/uploads/2009/09/AO6down2blur3-499x272.png" alt="AO at lower resolution, blurred with 3 pixel stride" title="AO at lower resolution, blurred with 3 pixel stride" width="499" height="272" class="alignnone size-medium wp-image-419" /></a></p>
<p>Happy blurring!</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2009/09/17/strided-blur-and-other-tips-for-ssao/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Oblique near plane with orthographic camera</title>
		<link>http://aras-p.info/blog/2007/11/12/oblique-near-plane-with-orthographic-camera/</link>
		<comments>http://aras-p.info/blog/2007/11/12/oblique-near-plane-with-orthographic-camera/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 07:58:38 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/2007/11/12/oblique-near-plane-with-orthographic-camera/</guid>
		<description><![CDATA[Could not find any info how to do oblique near clipping plane for orthographic projections, so had to figure it out myself. It even wasn&#8217;t hard! Here it is.]]></description>
			<content:encoded><![CDATA[<p>Could not find any info how to do oblique near clipping plane for orthographic projections, so had to figure it out myself. It even wasn&#8217;t hard!</p>
<p><a href="http://aras-p.info/texts/obliqueortho.html">Here it is</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2007/11/12/oblique-near-plane-with-orthographic-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electronic Arts STL</title>
		<link>http://aras-p.info/blog/2007/07/16/electronic-arts-stl/</link>
		<comments>http://aras-p.info/blog/2007/07/16/electronic-arts-stl/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 12:57:48 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/2007/07/16/electronic-arts-stl/</guid>
		<description><![CDATA[A paper on Electronic Arts&#8217; implementation of Standard Template Library. Is it insane or the only sane thing to do? It&#8217;s insane amount of work, but it looks like they know what they&#8217;re doing. STL is broken in many ways, especially on memory limited systems&#8230; Now they could release it as open source with a [...]]]></description>
			<content:encoded><![CDATA[<p>A paper on <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html">Electronic Arts&#8217; implementation</a> of Standard Template Library.</p>
<p>Is it insane or the only sane thing to do? It&#8217;s insane amount of work, but it looks like they know what they&#8217;re doing. STL is broken in many ways, especially on memory limited systems&#8230; Now they could release it as open source with a decent license!</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2007/07/16/electronic-arts-stl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Small article on matrices</title>
		<link>http://aras-p.info/blog/2007/04/06/small-article-on-matrices/</link>
		<comments>http://aras-p.info/blog/2007/04/06/small-article-on-matrices/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 15:09:25 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/2007/04/06/small-article-on-matrices/</guid>
		<description><![CDATA[I have added a small article on transformation matrices &#8211; what the values in the matrix really mean. The values are coordinate system axes of course, so if you know that already, just skip it.]]></description>
			<content:encoded><![CDATA[<p>I have added a small article on <a href="http://aras-p.info/texts/matrices.html">transformation matrices</a> &#8211; what the values in the matrix really mean. The values are coordinate system axes of course, so if you know that already, just skip it.</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2007/04/06/small-article-on-matrices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An article on efficient D3DX Effects state management</title>
		<link>http://aras-p.info/blog/2005/10/03/an-article-on-efficient-d3dx-effects-state-management/</link>
		<comments>http://aras-p.info/blog/2005/10/03/an-article-on-efficient-d3dx-effects-state-management/#comments</comments>
		<pubDate>Mon, 03 Oct 2005 09:38:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[d3d]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=71</guid>
		<description><![CDATA[I wrote an article on the subject I was talking about recently &#8211; an auto-magical system that manages device states in the effects. The article and links to implementation are on my homepage here: aras-p.info/texts/d3dx_fx_states.html]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">I wrote an article on the subject I was <a href="http://aras-p.info/blog/2005/09/24/state-management-in-d3dx-effects">talking</a> <a href="http://aras-p.info/blog/2005/09/27/state-management-in-d3dx-effects-2">about</a> recently &#8211; an auto-magical system that manages device states in the effects. The article and links to implementation are on my homepage here: <a href="http://aras-p.info/texts/d3dx_fx_states.html">aras-p.info/texts/d3dx_fx_states.html</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/10/03/an-article-on-efficient-d3dx-effects-state-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State management in D3DX Effects #2</title>
		<link>http://aras-p.info/blog/2005/09/27/state-management-in-d3dx-effects-2/</link>
		<comments>http://aras-p.info/blog/2005/09/27/state-management-in-d3dx-effects-2/#comments</comments>
		<pubDate>Tue, 27 Sep 2005 15:46:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[d3d]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=70</guid>
		<description><![CDATA[I&#8217;ve written down the basic idea here. Done some tests and it really seems to work! That required tiny 700 lines of hacky C++ code in the engine; but in exchange there&#8217;s no longer a need to write state restoring passes by hand. Maybe such effect usage scheme would even be useable in RealWorld! Too [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">I&#8217;ve written down the <a href="http://aras-p.info/blog/2005/09/24/state-management-in-d3dx-effects">basic idea here</a>. Done some tests and it <span style="font-style: italic;">really seems to work</span>!</p>
<p>That required tiny 700 lines of hacky C++ code in the engine; but in exchange there&#8217;s no longer a need to write state restoring passes by hand. Maybe such effect usage scheme would even be useable in RealWorld!</p>
<p>Too bad I didn&#8217;t think it up a couple of months ago. My ShaderX4 article about this subject would have been much better&#8230;</p>
<p><span style="font-style: italic;">Ok, still got to test this stuff on real world data (i.e. trying it on our demos)</span></div>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/09/27/state-management-in-d3dx-effects-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State management in D3DX Effects</title>
		<link>http://aras-p.info/blog/2005/09/24/state-management-in-d3dx-effects/</link>
		<comments>http://aras-p.info/blog/2005/09/24/state-management-in-d3dx-effects/#comments</comments>
		<pubDate>Sat, 24 Sep 2005 15:45:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[d3d]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=68</guid>
		<description><![CDATA[In my projects I&#8217;ve been using D3DX Effects with no device state saving/restoring. Instead, each effect contained a dummy &#8220;last pass&#8221; that restores &#8220;needed&#8221; state (see here; more lengthy article coming in ShaderX4). I always wrote this &#8220;state restore&#8221; by hand. This is obviously very error-prone; it&#8217;s ok if I&#8217;m the only one writing effects [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">In my projects I&#8217;ve been using D3DX Effects with no device state saving/restoring. Instead, each effect contained a dummy &#8220;last pass&#8221; that restores &#8220;needed&#8221; state (see <a href="http://dingus.berlios.de/index.php?n=Main.D3DXEffects">here</a>; more lengthy article coming in <a href="http://www.shaderx4.com/TOC.html">ShaderX4</a>).</p>
<p>I always wrote this &#8220;state restore&#8221; by hand. This is obviously <span style="font-style: italic;">very </span>error-prone; it&#8217;s ok if I&#8217;m the only one writing effects but would be unusable in any real world scenario.</p>
<p>I think I could automatically generate the &#8220;state restore&#8221; pass. Somehow the engine knows which states need to be restored; which must be set in every effect etc. (this could be read from some file). It first loads each effect file and examines what states it touches. This can be done by supplying a custom ID3DXEffectStateManager and &#8220;executing&#8221; the effect &#8211; the state manager then would remember all states (left-hand sides of state assignments) touched by the effect.</p>
<p>Then the engine generates the &#8220;state restore&#8221; pass and loads the effect again. I&#8217;d image it would do it like this: each effect has to contain a macro <span style="font-style: italic;">RESTORE_PASS</span>:</p>
<blockquote><pre>technique Foo {
 pass P1 { ... }
 pass P2 { ... }
 RESTORE_PASS
}</pre>
</blockquote>
<p> Which would be empty during first load and which would expand to the generated restore pass on the second load (you can supply generated macro definitions when loading the effect). The engine can check whether the generated pass exists after second load (if it doesn&#8217;t then RESTORE_PASS is missing from the effect &#8211; an error).</p>
<p>The downside of this scheme is that each effect file has to be loaded twice &#8211; first time for examining its state assignments and second time for actually loading it with the generated restore pass. It&#8217;s not a problem for me, I guess, because effect loading doesn&#8217;t take much time anyway&#8230; And if it would become really slow, all this stuff can be done as a preprocess (e.g. during a build).</p>
<p>There are many upsides of this scheme, I think: the whole system is robust and error-proof again (no longer depends on the effect writer to remember all the details about states). And as far as I can see, no performance would be lost at all (performance was the main point why I&#8217;m using this &#8220;restore pass&#8221;).</p>
<p>Gotta go and implement all this!
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/09/24/state-management-in-d3dx-effects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back!</title>
		<link>http://aras-p.info/blog/2005/07/26/back/</link>
		<comments>http://aras-p.info/blog/2005/07/26/back/#comments</comments>
		<pubDate>Tue, 26 Jul 2005 19:27:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[demos]]></category>
		<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=57</guid>
		<description><![CDATA[I&#8217;m back from Turkey. That&#8217;s me somewhere in the Mediterranean sea, practically showing that refraction really works &#8211; note the double hand and the mermaid-like legs :) Right now &#8211; finishing my ShaderX4 article and preparing for Japan. One totally insane 64 kilobyte intro: 195/95/256 by rgba. Of course, first you have to see the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify"><img class="alignright" src="http://aras-p.info/img/blog/050726.jpg" />I&#8217;m back from Turkey. That&#8217;s me somewhere in the Mediterranean sea, practically showing that refraction really works &#8211; note the double hand and the mermaid-like legs :)</p>
<p>Right now &#8211; finishing my <a href="http://www.shaderx4.com/">ShaderX4</a> article and preparing for Japan.</p>
<p>One totally insane 64 kilobyte intro: <a href="http://www.pouet.net/prod.php?which=18252">195/95/256 by rgba</a>. Of course, first you have to see the original <a href="http://www.plastic-demo.org">195/95 demo</a> by Plastic. The 64k intro copies the (party version) of the demo almost perfectly, while squeezing everything in less than 64 kilobytes. Ok, the music sucks, the loading time is nearly infinite and it has lots of bugs/glitches, but I must say that rgba guys are insane anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/07/26/back/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Some new books</title>
		<link>http://aras-p.info/blog/2005/07/07/some-new-books/</link>
		<comments>http://aras-p.info/blog/2005/07/07/some-new-books/#comments</comments>
		<pubDate>Thu, 07 Jul 2005 11:49:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=53</guid>
		<description><![CDATA[Received GPU Gems 2 and A Theory of Fun from amazon today. The first one I bought because hey, I need it; and the second one because it&#8217;s (relatively) cheap and seemed like a good read. Indeed it is &#8211; it&#8217;s a great thing to read!]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">Received <a href="http://developer.nvidia.com/object/gpu_gems_2_home.html">GPU Gems 2</a> and <a href="http://www.theoryoffun.com">A Theory of Fun</a> from amazon today. The first one I bought because hey, I need it; and the second one because it&#8217;s (relatively) cheap and seemed like a good read. Indeed it is &#8211; it&#8217;s a <span style="font-style: italic;">great</span> thing to read!
</div>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/07/07/some-new-books/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Reading Siggraph 2005 papers&#8230;</title>
		<link>http://aras-p.info/blog/2005/07/04/reading-siggraph-2005-papers/</link>
		<comments>http://aras-p.info/blog/2005/07/04/reading-siggraph-2005-papers/#comments</comments>
		<pubDate>Mon, 04 Jul 2005 08:28:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=52</guid>
		<description><![CDATA[I&#8217;m reading Siggraph 2005 preprint papers that are nicely gathered here. Some of them are really amazing! What I&#8217;m impressed with so far: Texture Montage: looks cool. Just made me realize how primitive the &#8220;usual&#8221; texturing tools are&#8230; It makes me want to create some texturing tool&#8230; LDPRT and Local PRT are steps in the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m reading Siggraph 2005 preprint papers that are nicely gathered <a href="http://www.cs.brown.edu/%7Etor/sig2005.html">here</a>. Some of them are really amazing! What I&#8217;m impressed with so far:</p>
<p><a href="http://research.microsoft.com/users/kunzhou/">Texture Montage</a>: looks cool. Just made me realize how primitive the &#8220;usual&#8221; texturing tools are&#8230; It makes me want to create some texturing tool&#8230;</p>
<p><a href="http://research.microsoft.com/%7Eppsloan/">LDPRT</a> and <a href="http://graphics.ucsd.edu/papers/plrt/">Local PRT</a> are steps in the needed direction for precomputed radiance transfer. Though <a href="http://castano.ludicon.com/">Ignacio</a> says that CPCA compression of SH is patented my M$&#8230; Bah!</p>
<p><a href="http://www.cs.jhu.edu/%7Ecohen/publications.html">Relational Debugging for the Graphics Pipeline</a> is like NVPerfHud on steroids!</p>
<p>Reading on&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/07/04/reading-siggraph-2005-papers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ShaderX3</title>
		<link>http://aras-p.info/blog/2005/02/07/shaderx3/</link>
		<comments>http://aras-p.info/blog/2005/02/07/shaderx3/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 16:47:00 +0000</pubDate>
		<dc:creator>Aras Pranckevičius</dc:creator>
				<category><![CDATA[papers]]></category>

		<guid isPermaLink="false">http://aras-p.info/blog/?p=7</guid>
		<description><![CDATA[Today received my &#8216;contributor copy&#8217; of ShaderX3. Pretty sad that the authors themselves receive the book only now, when it has been released in November. Well, maybe that&#8217;s because for some reason my shipping address contained city &#8216;Kannas&#8217; instead of &#8216;Kaunas&#8217;, and an obsolete postal index (we&#8217;ve got &#8216;refactoring&#8217; of postal indices recently here :)). [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">Today received my &#8216;contributor copy&#8217; of <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1584503572/103-4684942-9963858">ShaderX<sup>3</sup></a>. Pretty sad that the authors themselves receive the book only now, when it has been released in November. Well, maybe that&#8217;s because for some reason my shipping address contained city &#8216;Kannas&#8217; instead of &#8216;Kaunas&#8217;, and an obsolete postal index (we&#8217;ve got &#8216;refactoring&#8217; of postal indices recently here :)). Anyway.</p>
<p>Like with most similar books, half of this one is old, well known or pretty basic stuff. At a first glance, <span style="font-style: italic;">Generating Shaders from HLSL Fragments </span>by Shawn Hargreaves<span style="font-style: italic;"> </span>is really good; Dean Calver&#8217;s<span style="font-style: italic;"> </span>stuff (<span style="font-style: italic;">Accessing and Modifying Topology on the GPU</span> and <span style="font-style: italic;">Deferred Lighting on PS3.0 with HDR</span>) also looks very cool. Probably these alone are worth the book; much like Kozlov&#8217;s article on PSMs in <span style="font-style: italic;">GPU Gems </span>was. My own articles &#8211; oh well; one (<span style="font-style: italic;">Shaderey</span>&#8230;) is really useless; the other (<span style="font-style: italic;">Fake Soft Shadows&#8230;</span>) is <span style="font-style: italic;">maybe</span> &#8216;interesting&#8217;, but of unknown practical purpose :)</p>
<p>Ok, back to reading&#8230;</p></div>
]]></content:encoded>
			<wfw:commentRss>http://aras-p.info/blog/2005/02/07/shaderx3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
