<?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/"
		>
<channel>
	<title>Comments on: Screenspace vs. mip-mapping</title>
	<atom:link href="http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/feed/" rel="self" type="application/rss+xml" />
	<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/</link>
	<description>Random thoughts of a triangle pusher</description>
	<lastBuildDate>Sat, 19 May 2012 10:53:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Real-Time Rendering &#183; 7 Things for February 10</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-26999</link>
		<dc:creator>Real-Time Rendering &#183; 7 Things for February 10</dc:creator>
		<pubDate>Wed, 10 Feb 2010 13:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-26999</guid>
		<description>[...] Pranckevičius has a worthwhile post on deferred rendering and mipmap bugs, along with some good follow-up [...]</description>
		<content:encoded><![CDATA[<p>[...] Pranckevičius has a worthwhile post on deferred rendering and mipmap bugs, along with some good follow-up [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pixelmager</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-25016</link>
		<dc:creator>pixelmager</dc:creator>
		<pubDate>Tue, 12 Jan 2010 11:03:44 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-25016</guid>
		<description>Slide 32 of the following presentation mentions the same problem, using tex2dlod to manually set the mip-level using the screen-space size of the projected light.

http://cmpmedia.vo.llnwd.net/o1/vault/gdceurope09/slides/TKlajnscek_Programming_BattletestedDeferredRendering.ppt</description>
		<content:encoded><![CDATA[<p>Slide 32 of the following presentation mentions the same problem, using tex2dlod to manually set the mip-level using the screen-space size of the projected light.</p>
<p><a href="http://cmpmedia.vo.llnwd.net/o1/vault/gdceurope09/slides/TKlajnscek_Programming_BattletestedDeferredRendering.ppt" rel="nofollow">http://cmpmedia.vo.llnwd.net/o1/vault/gdceurope09/slides/TKlajnscek_Programming_BattletestedDeferredRendering.ppt</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-25011</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Tue, 12 Jan 2010 09:09:13 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-25011</guid>
		<description>Then in the distance your light will illuminate all pixels it touches. Which can be ok if you render light as tight bounding shape in screen space, but not that ok if you render it as 2D bounding quad.</description>
		<content:encoded><![CDATA[<p>Then in the distance your light will illuminate all pixels it touches. Which can be ok if you render light as tight bounding shape in screen space, but not that ok if you render it as 2D bounding quad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sergei M</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-25009</link>
		<dc:creator>Sergei M</dc:creator>
		<pubDate>Tue, 12 Jan 2010 08:48:11 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-25009</guid>
		<description>What if you just blur the low mip maps, so the lowest ones would be complete solid color white?</description>
		<content:encoded><![CDATA[<p>What if you just blur the low mip maps, so the lowest ones would be complete solid color white?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-24854</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Fri, 08 Jan 2010 07:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-24854</guid>
		<description>@sean: right, I got the near/far texture coordinate stuff backwards. Updated the post, thanks for the correction!</description>
		<content:encoded><![CDATA[<p>@sean: right, I got the near/far texture coordinate stuff backwards. Updated the post, thanks for the correction!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-24850</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Fri, 08 Jan 2010 04:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-24850</guid>
		<description>Thanks a lot for sharing this, I&#039;m sure it will save me some time in the future =)

If the incorrect mip selection only happens when there&#039;s a large depth difference, it might be possible to render the light in depth layers, controlled by depth bounds test.  That would require rendering the light geometry multiple times but pixel shader work will be unaffected.</description>
		<content:encoded><![CDATA[<p>Thanks a lot for sharing this, I&#8217;m sure it will save me some time in the future =)</p>
<p>If the incorrect mip selection only happens when there&#8217;s a large depth difference, it might be possible to render the light in depth layers, controlled by depth bounds test.  That would require rendering the light geometry multiple times but pixel shader work will be unaffected.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sean barrett</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-24843</link>
		<dc:creator>sean barrett</dc:creator>
		<pubDate>Thu, 07 Jan 2010 23:15:20 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-24843</guid>
		<description>The problem actually occurs not when the texture coordinates are near each other, but when the texture coordinates are far from each other, right? (A simple way to imagine it is to draw a bounding box around adjacent samples and then consider which mipmap texel best approximates that box. If the samples are near each other, it will try to magnify, not minify.) Naturally it&#039;s *very common* for the texture coordinates on unrelated objects to be very far from each other.

I actually first saw a related scenario happen with mipmapped light maps on terrain in 2001 or so... you have a triangle that ought to be in shadow, but it&#039;s at an extreme edge-on angle that forces the mipmap sample to sample from very far outside the triangle, and it suddenly pops bright.

But discontinuous pixel shading is definitely a much more common way to get this effect; it happens with the naive implementation of trilinear virtual texturing pretty much everywhere on page boundaries.</description>
		<content:encoded><![CDATA[<p>The problem actually occurs not when the texture coordinates are near each other, but when the texture coordinates are far from each other, right? (A simple way to imagine it is to draw a bounding box around adjacent samples and then consider which mipmap texel best approximates that box. If the samples are near each other, it will try to magnify, not minify.) Naturally it&#8217;s *very common* for the texture coordinates on unrelated objects to be very far from each other.</p>
<p>I actually first saw a related scenario happen with mipmapped light maps on terrain in 2001 or so&#8230; you have a triangle that ought to be in shadow, but it&#8217;s at an extreme edge-on angle that forces the mipmap sample to sample from very far outside the triangle, and it suddenly pops bright.</p>
<p>But discontinuous pixel shading is definitely a much more common way to get this effect; it happens with the naive implementation of trilinear virtual texturing pretty much everywhere on page boundaries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Nilsson</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-24838</link>
		<dc:creator>William Nilsson</dc:creator>
		<pubDate>Thu, 07 Jan 2010 19:49:33 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-24838</guid>
		<description>Haha, cool!
I had the exact same issue 6 months ago! What I found worked resonably well is to cut off a few of the lowest mip levels. The penalty wasn&#039;t that bad and it (mostly) fixed the issue. It depends what your texture looks like though, in your example you should get away with removing 1 or 2 levels to get the same result as you have in the top picture.

Say hi to Mircea :)</description>
		<content:encoded><![CDATA[<p>Haha, cool!<br />
I had the exact same issue 6 months ago! What I found worked resonably well is to cut off a few of the lowest mip levels. The penalty wasn&#8217;t that bad and it (mostly) fixed the issue. It depends what your texture looks like though, in your example you should get away with removing 1 or 2 levels to get the same result as you have in the top picture.</p>
<p>Say hi to Mircea :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pixelmager</title>
		<link>http://aras-p.info/blog/2010/01/07/screenspace-vs-mip-mapping/#comment-24833</link>
		<dc:creator>pixelmager</dc:creator>
		<pubDate>Thu, 07 Jan 2010 15:34:13 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=485#comment-24833</guid>
		<description>Getting dx/dy for uv/w, clamping them and feeding them into the tex2D/tex2Dgrad will limit the issue, but is, as you say, not necessarily supported on older hardware. Forcing lod0 always is though :p</description>
		<content:encoded><![CDATA[<p>Getting dx/dy for uv/w, clamping them and feeding them into the tex2D/tex2Dgrad will limit the issue, but is, as you say, not necessarily supported on older hardware. Forcing lod0 always is though :p</p>
]]></content:encoded>
	</item>
</channel>
</rss>

