<?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: Graphics Tech: Shadow Maps (part 2): Save 25% texture memory, and possibly much more.	</title>
	<atom:link href="https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/feed/" rel="self" type="application/rss+xml" />
	<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/</link>
	<description>Explore an abandoned island.</description>
	<lastBuildDate>Sat, 15 Oct 2011 20:05:40 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9</generator>
	<item>
		<title>
		By: Don Williamson		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-6165</link>

		<dc:creator><![CDATA[Don Williamson]]></dc:creator>
		<pubDate>Sat, 15 Oct 2011 20:05:40 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-6165</guid>

					<description><![CDATA[Hi guys, just been involved in a discussion on this topic offline and your posts were pointed out to me.

Transparencies are not too much of a problem with deferred shadowing as you can always render transparent surfaces on their own as part of another pass and add their shadow contributions as another channel in the deferred shadow buffer.

With Fable 3 we had an RGBA buffer that stored shadow amounts for opaque from the sun, transparency from the sun, opaque from spot lights, transparency from spot lights (shadow casting spotlights were not allowed to overlap in world-space, as a result).

In the case of a window, it was possible to get shadows on the window itself and the geometry behind it. In the general case we found that was all that you needed, and two overlapping layers of transparency was rare enough to not justify depth peeling any further. YMMV.

Cheers,
- Don]]></description>
			<content:encoded><![CDATA[<p>Hi guys, just been involved in a discussion on this topic offline and your posts were pointed out to me.</p>
<p>Transparencies are not too much of a problem with deferred shadowing as you can always render transparent surfaces on their own as part of another pass and add their shadow contributions as another channel in the deferred shadow buffer.</p>
<p>With Fable 3 we had an RGBA buffer that stored shadow amounts for opaque from the sun, transparency from the sun, opaque from spot lights, transparency from spot lights (shadow casting spotlights were not allowed to overlap in world-space, as a result).</p>
<p>In the case of a window, it was possible to get shadows on the window itself and the geometry behind it. In the general case we found that was all that you needed, and two overlapping layers of transparency was rare enough to not justify depth peeling any further. YMMV.</p>
<p>Cheers,<br />
&#8211; Don</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sean Barrett		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-471</link>

		<dc:creator><![CDATA[Sean Barrett]]></dc:creator>
		<pubDate>Tue, 08 Jun 2010 01:15:54 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-471</guid>

					<description><![CDATA[&quot;(which tend to use less RAM if they are less concerned with quality).&quot;

Ah, ok, yeah, that&#039;s a good point. I never ever considered anything other than the stable ones in my head, since I&#039;m a firm believer in the &quot;no artifacts when you rotate the camera without moving&quot; school of rendering design, but yeah, it makes sense that if this is a major drawback of stable CSM that it&#039;s worth improving it to help improve its viability compared to non-stable.]]></description>
			<content:encoded><![CDATA[<p>&#8220;(which tend to use less RAM if they are less concerned with quality).&#8221;</p>
<p>Ah, ok, yeah, that&#8217;s a good point. I never ever considered anything other than the stable ones in my head, since I&#8217;m a firm believer in the &#8220;no artifacts when you rotate the camera without moving&#8221; school of rendering design, but yeah, it makes sense that if this is a major drawback of stable CSM that it&#8217;s worth improving it to help improve its viability compared to non-stable.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-470</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 07 Jun 2010 23:53:51 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-470</guid>

					<description><![CDATA[Right now our shadow maps are 1400x1400, so at 32-bit it would be closer to 8MB.

Still, no, I am not sure that it matters, unless shadow resolutions are even higher.  Really I see this as two things... (a) a stepping stone toward a potential solution that could cut the memory in half, (b) a way of bringing this form of stable shadow maps closer into line with other CSM-related techniques (which tend to use less RAM if they are less concerned with quality).

But this isn&#039;t the kind of thing that I would rush out and recommend everyone do, especially for a PC game.  Maybe if they are shipping a 360 game.]]></description>
			<content:encoded><![CDATA[<p>Right now our shadow maps are 1400&#215;1400, so at 32-bit it would be closer to 8MB.</p>
<p>Still, no, I am not sure that it matters, unless shadow resolutions are even higher.  Really I see this as two things&#8230; (a) a stepping stone toward a potential solution that could cut the memory in half, (b) a way of bringing this form of stable shadow maps closer into line with other CSM-related techniques (which tend to use less RAM if they are less concerned with quality).</p>
<p>But this isn&#8217;t the kind of thing that I would rush out and recommend everyone do, especially for a PC game.  Maybe if they are shipping a 360 game.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sean Barrett		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-469</link>

		<dc:creator><![CDATA[Sean Barrett]]></dc:creator>
		<pubDate>Mon, 07 Jun 2010 22:44:32 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-469</guid>

					<description><![CDATA[Er, for some reason I wrote that as if Z was 16 bit. I guess it&#039;s 32 bit, so you&#039;d be saving 4MB. Point still stands.]]></description>
			<content:encoded><![CDATA[<p>Er, for some reason I wrote that as if Z was 16 bit. I guess it&#8217;s 32 bit, so you&#8217;d be saving 4MB. Point still stands.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sean Barrett		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-468</link>

		<dc:creator><![CDATA[Sean Barrett]]></dc:creator>
		<pubDate>Mon, 07 Jun 2010 22:43:56 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-468</guid>

					<description><![CDATA[Very belated, but is saving 25% of your shadowmap texture memory really worth the week or three of effort? 4 x 1K x 1K is 8MB, so you&#039;re talking about saving 2MB of texture, out of, say, 256 MB on a lower-end graphics card?]]></description>
			<content:encoded><![CDATA[<p>Very belated, but is saving 25% of your shadowmap texture memory really worth the week or three of effort? 4 x 1K x 1K is 8MB, so you&#8217;re talking about saving 2MB of texture, out of, say, 256 MB on a lower-end graphics card?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: memon		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-299</link>

		<dc:creator><![CDATA[memon]]></dc:creator>
		<pubDate>Fri, 30 Apr 2010 15:23:18 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-299</guid>

					<description><![CDATA[Potentially related paper:

Packing Square Tiles into One Texture
http://www.antisphere.com/Research/Tiles.php]]></description>
			<content:encoded><![CDATA[<p>Potentially related paper:</p>
<p>Packing Square Tiles into One Texture<br />
<a href="http://www.antisphere.com/Research/Tiles.php" rel="nofollow ugc">http://www.antisphere.com/Research/Tiles.php</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-275</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 07:54:25 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-275</guid>

					<description><![CDATA[Update 2: I have thought further about the wrapped-texture-packing system that I outlined at the end of this posting, and it seems to be not as simple as I thought.  That is to say, the worst case for that system seems not to be the same as the worst case for the current system, so I can&#039;t use the current worst case to estimate memory savings, as I did above.  This is something I will look further at in the near future.]]></description>
			<content:encoded><![CDATA[<p>Update 2: I have thought further about the wrapped-texture-packing system that I outlined at the end of this posting, and it seems to be not as simple as I thought.  That is to say, the worst case for that system seems not to be the same as the worst case for the current system, so I can&#8217;t use the current worst case to estimate memory savings, as I did above.  This is something I will look further at in the near future.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-274</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 07:53:06 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-274</guid>

					<description><![CDATA[An update: It turns out that the &quot;worst case&quot; I had been talking about in the article, which forced us to turn the savings down below 25% until it was dealt with, was just due to an error in the bounding rectangle computation I was making.  (I had been choosing the rectangle with the smallest area, which is really not what you want, and caused instabilities; I have changed it to the rectangle with the shortest side, and the algorithm behaves much better).  

I implemented this, and also Zac&#039;s point about tucking in the first rectangle, and everything is running at 25% savings with no viewport-related problems.  We could probably go a little past 25% at this point, but I am leaving it there just to be safe and see how things go.]]></description>
			<content:encoded><![CDATA[<p>An update: It turns out that the &#8220;worst case&#8221; I had been talking about in the article, which forced us to turn the savings down below 25% until it was dealt with, was just due to an error in the bounding rectangle computation I was making.  (I had been choosing the rectangle with the smallest area, which is really not what you want, and caused instabilities; I have changed it to the rectangle with the shortest side, and the algorithm behaves much better).  </p>
<p>I implemented this, and also Zac&#8217;s point about tucking in the first rectangle, and everything is running at 25% savings with no viewport-related problems.  We could probably go a little past 25% at this point, but I am leaving it there just to be safe and see how things go.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-272</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 03:32:33 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-272</guid>

					<description><![CDATA[(But it&#039;s likely that if I go back to this, I will try the very-closely-packed wrapping version discussed at the end of the article.)]]></description>
			<content:encoded><![CDATA[<p>(But it&#8217;s likely that if I go back to this, I will try the very-closely-packed wrapping version discussed at the end of the article.)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-271</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 03:26:46 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-271</guid>

					<description><![CDATA[Umm, yeah.  For some reason I didn&#039;t think of that.

These slides don&#039;t help a huge amount, because it only matters what they do in the worst case and they aren&#039;t huge in the worst case.  But they help a little.]]></description>
			<content:encoded><![CDATA[<p>Umm, yeah.  For some reason I didn&#8217;t think of that.</p>
<p>These slides don&#8217;t help a huge amount, because it only matters what they do in the worst case and they aren&#8217;t huge in the worst case.  But they help a little.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zac Thompson		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-270</link>

		<dc:creator><![CDATA[Zac Thompson]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 02:58:13 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-270</guid>

					<description><![CDATA[I&#039;m completely ignorant about this stuff which is why I read this blog ... but shouldn&#039;t you also shift the leftmost rectangle up or down (in the opposite direction as the rightmost)?  So as to chop that rectangle to its minimum necessary shape?  By only shifting left it seems like you&#039;re only doing half the job for that slice.  

I grok that you can&#039;t do anything interesting with the middle slices.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m completely ignorant about this stuff which is why I read this blog &#8230; but shouldn&#8217;t you also shift the leftmost rectangle up or down (in the opposite direction as the rightmost)?  So as to chop that rectangle to its minimum necessary shape?  By only shifting left it seems like you&#8217;re only doing half the job for that slice.  </p>
<p>I grok that you can&#8217;t do anything interesting with the middle slices.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-268</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Mon, 26 Apr 2010 18:30:59 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-268</guid>

					<description><![CDATA[Sebastian: How exactly do you set things up so that there is no perceptual difference between levels?  For the type of game we are doing (long view distance) there is always a substantial visual difference.  (We are doing 4 frustum slices, 1400x1400 shadow map per slice currently).  Differences are most prominent on vertical surfaces (doors and walls) since they tend to pop between layers simultaneously.]]></description>
			<content:encoded><![CDATA[<p>Sebastian: How exactly do you set things up so that there is no perceptual difference between levels?  For the type of game we are doing (long view distance) there is always a substantial visual difference.  (We are doing 4 frustum slices, 1400&#215;1400 shadow map per slice currently).  Differences are most prominent on vertical surfaces (doors and walls) since they tend to pop between layers simultaneously.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Reginald		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-266</link>

		<dc:creator><![CDATA[Reginald]]></dc:creator>
		<pubDate>Mon, 26 Apr 2010 06:24:48 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-266</guid>

					<description><![CDATA[I really hope other API designers are watching this blog, there&#039;s some great ideas on display. Its interesting to me that a lot of the techniques  and tricks of UV wrapping that you&#039;re talking about, are actually things that texture artists have been doing for over a decade, to squeeze as much as possible into a power of two texture.]]></description>
			<content:encoded><![CDATA[<p>I really hope other API designers are watching this blog, there&#8217;s some great ideas on display. Its interesting to me that a lot of the techniques  and tricks of UV wrapping that you&#8217;re talking about, are actually things that texture artists have been doing for over a decade, to squeeze as much as possible into a power of two texture.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-264</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 21:13:41 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-264</guid>

					<description><![CDATA[Just a futher note: We don&#039;t even do *any* blending between splitting levels, we just tweak the bounding sphere radii so that you can&#039;t perceive the border, and having good texture utilization really helps with that.]]></description>
			<content:encoded><![CDATA[<p>Just a futher note: We don&#8217;t even do *any* blending between splitting levels, we just tweak the bounding sphere radii so that you can&#8217;t perceive the border, and having good texture utilization really helps with that.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-263</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 21:08:38 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-263</guid>

					<description><![CDATA[Well, it doesn&#039;t really *increase* the amount of change with camera motion, it just changes the *shape* of the border region, but it does so in a way which pushes the border region substantially away from the camera (even at its closest point, if you apply my little tweak) so it becomes *less* visible. The shape varies w.r.t. the camera orientation, but then so does your entire level so it&#039;s not clear why locking the border region to the level (or rather, the light direction) rather than the camera would be worse. Either way you get something &quot;sliding over&quot; something else, doesn&#039;t really matter if it follows the camera or the level to me...

The main point is losing the splitting plane, though, because it just completely screws up the position of the bounding sphere. Instead of euclidean distance I&#039;d go with just using the bounding sphere instead, that will keep the border region rounded which may be a more pleasing shape. You&#039;d still get the benefit of being able to push the bounding sphere out as far as possible, rather than being forced to waste a bunch of texels behind the camera. Once you get to that point, the extra resolution for the first splitting plane means (at least does for us) that the transition to the next splitting plane is subtle enough that you don&#039;t need to worry about its shape.]]></description>
			<content:encoded><![CDATA[<p>Well, it doesn&#8217;t really *increase* the amount of change with camera motion, it just changes the *shape* of the border region, but it does so in a way which pushes the border region substantially away from the camera (even at its closest point, if you apply my little tweak) so it becomes *less* visible. The shape varies w.r.t. the camera orientation, but then so does your entire level so it&#8217;s not clear why locking the border region to the level (or rather, the light direction) rather than the camera would be worse. Either way you get something &#8220;sliding over&#8221; something else, doesn&#8217;t really matter if it follows the camera or the level to me&#8230;</p>
<p>The main point is losing the splitting plane, though, because it just completely screws up the position of the bounding sphere. Instead of euclidean distance I&#8217;d go with just using the bounding sphere instead, that will keep the border region rounded which may be a more pleasing shape. You&#8217;d still get the benefit of being able to push the bounding sphere out as far as possible, rather than being forced to waste a bunch of texels behind the camera. Once you get to that point, the extra resolution for the first splitting plane means (at least does for us) that the transition to the next splitting plane is subtle enough that you don&#8217;t need to worry about its shape.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-258</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 07:40:37 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-258</guid>

					<description><![CDATA[Sebastian: One of the early implementations of shadows in The Witness worked like you describe (using the entirety of the visible parts of higher-res textures before moving on to lower-res textures).  Rather  than testing against the frustum slices, I would just compute the uv extents for the first texture map and proceed outward if they were not in [0, 1], recursively.

But there are drawbacks.  The increased amount of change with camera motion, I find to be objectionable, and to my mind works counter to the basic idea of Valient&#039;s algorithm.  Maybe the noticeability can be mitigated, though, with enough smoothing between transition bands.  (Even in the core Valient algorithm, because the choice is based on Z distance, there is some variation as the camera rotates, but it is relatively subtle (and we will probably look into eliminating even that, by testing Euclidean distance instead of Z, and my conjecture is that this will also make the worst case for our memory savings a lot better).  Having weird corners poke further into the distance and then recede just really bugs me.

So whereas using the back side of the texture map indisputably provides higher image fidelity in a per-pixel PSNR kind of way, I find that the experience for a moving camera in a game world becomes worse,  for the kind of game I am trying to do (where there is a lot of  slow motion and subtlety).  There may be games for which it is appropriate, but I haven&#039;t found it to be so for this one.

I&#039;m not at all trying to say that what we are doing right now is the Right Way to do it, either; just that there are reasons behind the decisions we have made so far.]]></description>
			<content:encoded><![CDATA[<p>Sebastian: One of the early implementations of shadows in The Witness worked like you describe (using the entirety of the visible parts of higher-res textures before moving on to lower-res textures).  Rather  than testing against the frustum slices, I would just compute the uv extents for the first texture map and proceed outward if they were not in [0, 1], recursively.</p>
<p>But there are drawbacks.  The increased amount of change with camera motion, I find to be objectionable, and to my mind works counter to the basic idea of Valient&#8217;s algorithm.  Maybe the noticeability can be mitigated, though, with enough smoothing between transition bands.  (Even in the core Valient algorithm, because the choice is based on Z distance, there is some variation as the camera rotates, but it is relatively subtle (and we will probably look into eliminating even that, by testing Euclidean distance instead of Z, and my conjecture is that this will also make the worst case for our memory savings a lot better).  Having weird corners poke further into the distance and then recede just really bugs me.</p>
<p>So whereas using the back side of the texture map indisputably provides higher image fidelity in a per-pixel PSNR kind of way, I find that the experience for a moving camera in a game world becomes worse,  for the kind of game I am trying to do (where there is a lot of  slow motion and subtlety).  There may be games for which it is appropriate, but I haven&#8217;t found it to be so for this one.</p>
<p>I&#8217;m not at all trying to say that what we are doing right now is the Right Way to do it, either; just that there are reasons behind the decisions we have made so far.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-257</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 07:28:13 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-257</guid>

					<description><![CDATA[Arseny: Yeah, I clearly didn&#039;t think enough about deferred shadows before posting.  So it would make sense in terms of memory reduction.  I do think that the shadow transitions could be smoothed in exactly the same way that we do it now (based on a 3D noise texture indexed by worldspace position).  However, the lack of handling translucent objects is a serious drag.]]></description>
			<content:encoded><![CDATA[<p>Arseny: Yeah, I clearly didn&#8217;t think enough about deferred shadows before posting.  So it would make sense in terms of memory reduction.  I do think that the shadow transitions could be smoothed in exactly the same way that we do it now (based on a 3D noise texture indexed by worldspace position).  However, the lack of handling translucent objects is a serious drag.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-256</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 07:24:44 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-256</guid>

					<description><![CDATA[Dave: The basic point of doing shadows this way in the first place is image stability.  To maintain stability, you can&#039;t rotate or scale the frustum, and you have to translate it only by integer-texel amounts.]]></description>
			<content:encoded><![CDATA[<p>Dave: The basic point of doing shadows this way in the first place is image stability.  To maintain stability, you can&#8217;t rotate or scale the frustum, and you have to translate it only by integer-texel amounts.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ignacio		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-255</link>

		<dc:creator><![CDATA[Ignacio]]></dc:creator>
		<pubDate>Sun, 25 Apr 2010 01:30:43 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-255</guid>

					<description><![CDATA[The main problem of deferred shadows is that as far as I know there&#039;s no way to smooth the transitions cascades, or is there a way to achieve that? 

BTW, you have a good point in your article. One problem that I can think of with your proposed approach is that you can probably notice the resolution change as you rotate the camera, but maybe that&#039;s not such a big deal.]]></description>
			<content:encoded><![CDATA[<p>The main problem of deferred shadows is that as far as I know there&#8217;s no way to smooth the transitions cascades, or is there a way to achieve that? </p>
<p>BTW, you have a good point in your article. One problem that I can think of with your proposed approach is that you can probably notice the resolution change as you rotate the camera, but maybe that&#8217;s not such a big deal.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-254</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Sat, 24 Apr 2010 19:59:42 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-254</guid>

					<description><![CDATA[Actually this post inspired me to write up my own little variation of cascaded shadow maps. You can find it here if you&#039;re interested: http://sebastiansylvan.spaces.live.com/blog/cns!4469F26E93033B8C!210.entry]]></description>
			<content:encoded><![CDATA[<p>Actually this post inspired me to write up my own little variation of cascaded shadow maps. You can find it here if you&#8217;re interested: <a href="http://sebastiansylvan.spaces.live.com/blog/cns!4469F26E93033B8C!210.entry" rel="nofollow ugc">http://sebastiansylvan.spaces.live.com/blog/cns!4469F26E93033B8C!210.entry</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-252</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Sat, 24 Apr 2010 17:11:22 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-252</guid>

					<description><![CDATA[Bah can&#039;t edit, that&#039;s supposed to be a loop, where you render each slice separateley, then use that slice, and then you don&#039;t need it anymore so you can reuse the memory for the next slice.]]></description>
			<content:encoded><![CDATA[<p>Bah can&#8217;t edit, that&#8217;s supposed to be a loop, where you render each slice separateley, then use that slice, and then you don&#8217;t need it anymore so you can reuse the memory for the next slice.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sebastian Sylvan		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-251</link>

		<dc:creator><![CDATA[Sebastian Sylvan]]></dc:creator>
		<pubDate>Sat, 24 Apr 2010 17:10:22 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-251</guid>

					<description><![CDATA[Deferred shadows save a ton of memory though, which seems to be the main focus of your effort, so if you&#039;re getting excited about 25% savings, you must really like 75% savings! 

You only need to store a single slice of the frustum at a time since you go from:

* Render N slices
* Light the scene using N slices 

To:

* For 1..N
   * Render first slice
   * Compute shadowing for anything in the first slice using the slice

Transparencies remain a problem.]]></description>
			<content:encoded><![CDATA[<p>Deferred shadows save a ton of memory though, which seems to be the main focus of your effort, so if you&#8217;re getting excited about 25% savings, you must really like 75% savings! </p>
<p>You only need to store a single slice of the frustum at a time since you go from:</p>
<p>* Render N slices<br />
* Light the scene using N slices </p>
<p>To:</p>
<p>* For 1..N<br />
   * Render first slice<br />
   * Compute shadowing for anything in the first slice using the slice</p>
<p>Transparencies remain a problem.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Arseny Kapoulkine		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-250</link>

		<dc:creator><![CDATA[Arseny Kapoulkine]]></dc:creator>
		<pubDate>Sat, 24 Apr 2010 11:39:24 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-250</guid>

					<description><![CDATA[Deferred shadows allow you to save 75% of shadow map memory without these tricks. Of course there are a lot of caveats (performance will be worse in case there&#039;s no overdraw in the forward rendered case, you&#039;ll have to get the depth buffer somehow, etc.).

Also, I doubt viewports are going anywhere in future APIs. At least DX10/11 have the same support as in DX9.]]></description>
			<content:encoded><![CDATA[<p>Deferred shadows allow you to save 75% of shadow map memory without these tricks. Of course there are a lot of caveats (performance will be worse in case there&#8217;s no overdraw in the forward rendered case, you&#8217;ll have to get the depth buffer somehow, etc.).</p>
<p>Also, I doubt viewports are going anywhere in future APIs. At least DX10/11 have the same support as in DX9.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Dave		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-249</link>

		<dc:creator><![CDATA[Dave]]></dc:creator>
		<pubDate>Fri, 23 Apr 2010 23:17:19 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-249</guid>

					<description><![CDATA[In the first set of pictures where you show the yellow bounding box around the frustum, why do you not continue rotating the frustum and shadow map so they are facing towards the right allowing you to slide them together even closer?

thanks!]]></description>
			<content:encoded><![CDATA[<p>In the first set of pictures where you show the yellow bounding box around the frustum, why do you not continue rotating the frustum and shadow map so they are facing towards the right allowing you to slide them together even closer?</p>
<p>thanks!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan Blow		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-248</link>

		<dc:creator><![CDATA[Jonathan Blow]]></dc:creator>
		<pubDate>Fri, 23 Apr 2010 21:24:14 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-248</guid>

					<description><![CDATA[Well, there are lots of ways to factor one&#039;s rendering.  The thing is that if I understand what is generally meant by &quot;deferred shadows&quot; it doesn&#039;t really save any work.  Then you have the extra complexities of dealing with translucent objects.  In order to justify that, there has to be a really good benefit?

I guess you could soften the shadows in screen-space, which might look somewhat nice...  but that cannot really be done without introducing motion artifacts.]]></description>
			<content:encoded><![CDATA[<p>Well, there are lots of ways to factor one&#8217;s rendering.  The thing is that if I understand what is generally meant by &#8220;deferred shadows&#8221; it doesn&#8217;t really save any work.  Then you have the extra complexities of dealing with translucent objects.  In order to justify that, there has to be a really good benefit?</p>
<p>I guess you could soften the shadows in screen-space, which might look somewhat nice&#8230;  but that cannot really be done without introducing motion artifacts.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: fatkas		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-244</link>

		<dc:creator><![CDATA[fatkas]]></dc:creator>
		<pubDate>Fri, 23 Apr 2010 07:46:28 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-244</guid>

					<description><![CDATA[did you consider using so-called deferred shadows?]]></description>
			<content:encoded><![CDATA[<p>did you consider using so-called deferred shadows?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Duncan Keller		</title>
		<link>https://the-witness.net/news/2010/04/graphics-tech-shadow-maps-part-2-save-25-texture-memory-and-possibly-much-more/comment-page-1/#comment-240</link>

		<dc:creator><![CDATA[Duncan Keller]]></dc:creator>
		<pubDate>Thu, 22 Apr 2010 14:31:27 +0000</pubDate>
		<guid isPermaLink="false">https://the-witness.net/news/?p=113#comment-240</guid>

					<description><![CDATA[Very Interesting. I don&#039;t know much about rendering in 3D, because I&#039;m just now wrapping up my first 2D project. One thing that I find very intriguing is number of ways that you can save memory, which is no doubt something I&#039;ll need to read up on before my project is done. Thanks for the post.]]></description>
			<content:encoded><![CDATA[<p>Very Interesting. I don&#8217;t know much about rendering in 3D, because I&#8217;m just now wrapping up my first 2D project. One thing that I find very intriguing is number of ways that you can save memory, which is no doubt something I&#8217;ll need to read up on before my project is done. Thanks for the post.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
