<?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>Game Rendering &#187; Optimizations</title>
	<atom:link href="http://www.gamerendering.com/tag/optimizations/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gamerendering.com</link>
	<description></description>
	<lastBuildDate>Thu, 21 Jan 2010 01:32:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Basic Culling Techniques</title>
		<link>http://www.gamerendering.com/2008/11/02/basic-culling-techniques/</link>
		<comments>http://www.gamerendering.com/2008/11/02/basic-culling-techniques/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 00:46:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Culling]]></category>
		<category><![CDATA[Back Face Culling]]></category>
		<category><![CDATA[Bounding Volume]]></category>
		<category><![CDATA[BSP]]></category>
		<category><![CDATA[Occlusion Culling]]></category>
		<category><![CDATA[Octree]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Optimizations]]></category>
		<category><![CDATA[Portal Culling]]></category>
		<category><![CDATA[Spatial Structure]]></category>
		<category><![CDATA[View Frustum Culling]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=447</guid>
		<description><![CDATA[The best optimization when rendering is to not render anything unnecessary. And that is what culling is about, to find out what can be skipped when rendering because it cannot be visible anyway.  Below are the basic culling techniques which most renderers&#8217; implements. The image is from a course slide.

Back Face Culling
Faces that faces away from the camera can [...]]]></description>
			<content:encoded><![CDATA[<p>The best optimization when rendering is to not render anything unnecessary. And that is what culling is about, to find out what can be skipped when rendering because it cannot be visible anyway.  Below are the basic culling techniques which most renderers&#8217; implements. The image is from a course slide.</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/culling.jpg"><img class="size-medium wp-image-448" title="Culling Techniques" src="http://www.gamerendering.com/wp-content/uploads/culling-400x233.jpg" alt="Culling Techniques" width="400" height="233" /></a></div>
<p><strong>Back Face Culling</strong></p>
<p>Faces that faces away from the camera can not be visible on the screen so they don&#8217;t need to be drawn. This is so often used that it&#8217;s implemented by the hardware. It roughly cuts the amount of faces drawn in half. Just remember to turn it on!</p>
<p><strong>View frustum Culling</strong></p>
<p>The faces that is outside the view frustum can not be visible on the screen (we don&#8217;t bother about reflections now) so they can be culled. This check is done by checking if the geometries bounding volume is outside the view frustum volume or not. So the check will not be done on every face, as that would cost to much. Sometimes, the view frustum culling can cost more than what is gain ( for example when doing instancing). One way to speed up view frustum culling is to use a suitable spatial structure for the scene (octree, BSP or so).</p>
<p>All kind of bounding volume test that you can imagine can be found on this page:<br />
<a href="http://www.realtimerendering.com/intersections.html">http://www.realtimerendering.com/intersections.html</a></p>
<p>Info about frustum culling:<br />
<a href="http://www.flipcode.com/archives/Frustum_Culling.shtml">http://www.flipcode.com/archives/Frustum_Culling.shtml</a></p>
<p><strong>Portal Culling</strong></p>
<p>A technique that divides the scene into cells with portals between. When rendering, the camera will be in one of the rooms and that room will be rendered normally. But for each portal that is visible in the room a view frustum is set up for the size of the portal and then the room behind it is rendered. This will work recursively. The result will be that a lot of geometry can be culled by view frustum culling when rendering the other rooms. A very useful technique for indoor scenes.</p>
<p><strong>Detail Culling</strong></p>
<p>When a geometry is so far away that it&#8217;s not visible then there is no need to draw it at all so it can safely be culled. A more advanced scheme of detail culling that decreases the amount of details with the distance is LOD (level of detail).</p>
<p><strong>Occlusion Culling</strong></p>
<p>The hardest culling technique to implement. Geometry that is occluded by other geometry does not need to be rendered. One solution is to use the Z-buffer and sort the geometry in a front to back order. But this does not always work and all pixels needs to be checked against the Z-buffer so it will be costly for big scenes. Better occlusion culling techniques culls the geometry before it&#8217;s even sent to the GPU.</p>
<p>A good link to a couple of occlusion culling techniques<br />
<a href="http://www.gamasutra.com/features/19991109/moller_haines_01.htm">http://www.gamasutra.com/features/19991109/moller_haines_01.htm</a></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Please share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="print" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques%26amp%3Bbodytext%3DThe%2520best%2520optimization%2520when%2520rendering%2520is%2520to%2520not%2520render%2520anything%2520unnecessary.%2520And%2520that%2520is%2520what%2520culling%2520is%2520about%252C%2520to%2520find%2520out%2520what%25C2%25A0can%2520be%2520skipped%2520when%2520rendering%2520because%2520it%2520cannot%2520be%2520visible%2520anyway.%25C2%25A0%25C2%25A0Below%2520are%2520the%2520basic%2520culling%2520techniques%2520which%2520most%2520r';" title="Digg"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="sphinn" href="javascript:window.location='http%3A%2F%2Fsphinn.com%2Findex.php%3Fc%3Dpost%26m%3Dsubmit%26link%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F';" title="Sphinn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques%26amp%3Bnotes%3DThe%2520best%2520optimization%2520when%2520rendering%2520is%2520to%2520not%2520render%2520anything%2520unnecessary.%2520And%2520that%2520is%2520what%2520culling%2520is%2520about%252C%2520to%2520find%2520out%2520what%25C2%25A0can%2520be%2520skipped%2520when%2520rendering%2520because%2520it%2520cannot%2520be%2520visible%2520anyway.%25C2%25A0%25C2%25A0Below%2520are%2520the%2520basic%2520culling%2520techniques%2520which%2520most%2520r';" title="del.icio.us"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook" href="javascript:window.location='http%3A%2F%2Fwww.facebook.com%2Fshare.php%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Bt%3DBasic%2520Culling%2520Techniques';" title="Facebook"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="mixx" href="javascript:window.location='http%3A%2F%2Fwww.mixx.com%2Fsubmit%3Fpage_url%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques';" title="Mixx"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques%26amp%3Bannotation%3DThe%2520best%2520optimization%2520when%2520rendering%2520is%2520to%2520not%2520render%2520anything%2520unnecessary.%2520And%2520that%2520is%2520what%2520culling%2520is%2520about%252C%2520to%2520find%2520out%2520what%25C2%25A0can%2520be%2520skipped%2520when%2520rendering%2520because%2520it%2520cannot%2520be%2520visible%2520anyway.%25C2%25A0%25C2%25A0Below%2520are%2520the%2520basic%2520culling%2520techniques%2520which%2520most%2520r';" title="Google Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="current" href="javascript:window.location='http%3A%2F%2Fcurrent.com%2Fclipper.htm%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques';" title="Current"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/current.png" title="Current" alt="Current" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="linkedin" href="javascript:window.location='http%3A%2F%2Fwww.linkedin.com%2FshareArticle%3Fmini%3Dtrue%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DThe%2520best%2520optimization%2520when%2520rendering%2520is%2520to%2520not%2520render%2520anything%2520unnecessary.%2520And%2520that%2520is%2520what%2520culling%2520is%2520about%252C%2520to%2520find%2520out%2520what%25C2%25A0can%2520be%2520skipped%2520when%2520rendering%2520because%2520it%2520cannot%2520be%2520visible%2520anyway.%25C2%25A0%25C2%25A0Below%2520are%2520the%2520basic%2520culling%2520techniques%2520which%2520most%2520r';" title="LinkedIn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="live" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques';" title="Live"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="myspace" href="javascript:window.location='http%3A%2F%2Fwww.myspace.com%2FModules%2FPostTo%2FPages%2F%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Bt%3DBasic%2520Culling%2520Techniques';" title="MySpace"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="netvibes" href="javascript:window.location='http%3A%2F%2Fwww.netvibes.com%2Fshare%3Ftitle%3DBasic%2520Culling%2520Techniques%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F';" title="Netvibes"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="stumbleupon" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques';" title="StumbleUpon"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="twitter" href="javascript:window.location='http%3A%2F%2Ftwitter.com%2Fhome%3Fstatus%3DBasic%2520Culling%2520Techniques%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F';" title="Twitter"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="reddit" href="javascript:window.location='http%3A%2F%2Freddit.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Btitle%3DBasic%2520Culling%2520Techniques';" title="Reddit"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="technorati" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F';" title="Technorati"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="yahoo! bookmarks" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F02%252Fbasic-culling-techniques%252F%26amp%3Bt%3DBasic%2520Culling%2520Techniques%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DThe%2520best%2520optimization%2520when%2520rendering%2520is%2520to%2520not%2520render%2520anything%2520unnecessary.%2520And%2520that%2520is%2520what%2520culling%2520is%2520about%252C%2520to%2520find%2520out%2520what%25C2%25A0can%2520be%2520skipped%2520when%2520rendering%2520because%2520it%2520cannot%2520be%2520visible%2520anyway.%25C2%25A0%25C2%25A0Below%2520are%2520the%2520basic%2520culling%2520techniques%2520which%2520most%2520r';" title="Yahoo! Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamerendering.com/2008/11/02/basic-culling-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instancing</title>
		<link>http://www.gamerendering.com/2008/10/21/instancing/</link>
		<comments>http://www.gamerendering.com/2008/10/21/instancing/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 21:37:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Optimizations]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[HLSL]]></category>
		<category><![CDATA[Instancing]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=399</guid>
		<description><![CDATA[Instancing is a new way to offload the CPU from some work when rendering many copies of the same geometry.  It does it by reducing the overhead of drawing multiple copies of the same vertex buffer.
In OpenGL it&#8217;s only fast to use instancing when the instanced mesh consists of very few triangles.
Nvidias instancing demo, here with 136499 meshes [...]]]></description>
			<content:encoded><![CDATA[<p>Instancing is a new way to offload the CPU from some work when rendering many copies of the same geometry.  It does it by reducing the overhead of drawing multiple copies of the same vertex buffer.</p>
<p>In OpenGL it&#8217;s only fast to use instancing when the instanced mesh consists of very few triangles.</p>
<p>Nvidias instancing demo, here with 136499 meshes rendered at once with 24 triangles per mesh. It runs at 20 fps stable on a GeForce 8800 GTS. (left image is all objects viewed from far away, right is zoomed in)</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/nvinst.jpg"><img class="size-medium wp-image-401" title="Instancing" src="http://www.gamerendering.com/wp-content/uploads/nvinst-400x184.jpg" alt="Instancing" width="400" height="184" /></a></div>
<p>A image from Microsofts DirectX10 instancing demo</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/mdinst.jpg"><img class="size-medium wp-image-400" title="Instancing" src="http://www.gamerendering.com/wp-content/uploads/mdinst-400x266.jpg" alt="Instancing" width="400" height="266" /></a></div>
<p>Some test made that shows when to use instancing and when not<br />
<a href="http://www.ozone3d.net/blogs/lab/?p=87">http://www.ozone3d.net/blogs/lab/?p=87</a></p>
<p>HLSL instancing (therefore DirectX)<br />
<a href="http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/Direct3D9/src/HLSL_Instancing/docs/HLSL_Instancing.pdf">http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/Direct3D9/<br />src/HLSL_Instancing/docs/HLSL_Instancing.pdf</a></p>
<p>Nvidias DirectX10 implementation of instancing<br />
<a href="http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/InstancingTests/doc/InstancingTests.pdf">http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/InstancingTests/<br />doc/InstancingTests.pdf</a></p>
<p>Microsofts DirectX9 instancing sample<br />
<a href="http://msdn.microsoft.com/en-us/library/bb174602(VS.85).aspx">http://msdn.microsoft.com/en-us/library/bb174602(VS.85).aspx</a></p>
<p>Microsofts DirectX10 instancing sample<br />
<a href="http://msdn.microsoft.com/en-us/library/bb205317(VS.85).aspx">http://msdn.microsoft.com/en-us/library/bb205317(VS.85).aspx</a></p>
<p>An OpenGL implementation of a pseduo-instancing (recommended for old hardware).<br />
<a href="http://http.download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/OpenGL/src/glsl_pseudo_instancing/docs/glsl_pseudo_instancing.pdf">http://http.download.nvidia.com/developer/SDK/Individual_Samples/<br />DEMOS/OpenGL/src/glsl_pseudo_instancing/docs/glsl_pseudo_instancing.pdf</a></p>
<p>OpenGL instancing:<br />
<a href="http://www.opengl.org/registry/specs/EXT/draw_instanced.txt">http://www.opengl.org/registry/specs/EXT/draw_instanced.txt</a></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Please share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="print" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing%26amp%3Bbodytext%3DInstancing%2520is%2520a%2520new%2520way%2520to%2520offload%2520the%25C2%25A0CPU%2520from%2520some%2520work%25C2%25A0when%2520rendering%25C2%25A0many%2520copies%2520of%2520the%2520same%2520geometry.%2520%25C2%25A0It%2520does%2520it%2520by%2520reducing%2520the%2520overhead%2520of%2520drawing%2520multiple%2520copies%2520of%2520the%2520same%2520vertex%2520buffer.%250D%250A%250D%250AIn%2520OpenGL%2520it%2527s%2520only%2520fast%2520to%2520use%2520instancing%2520wh';" title="Digg"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="sphinn" href="javascript:window.location='http%3A%2F%2Fsphinn.com%2Findex.php%3Fc%3Dpost%26m%3Dsubmit%26link%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F';" title="Sphinn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing%26amp%3Bnotes%3DInstancing%2520is%2520a%2520new%2520way%2520to%2520offload%2520the%25C2%25A0CPU%2520from%2520some%2520work%25C2%25A0when%2520rendering%25C2%25A0many%2520copies%2520of%2520the%2520same%2520geometry.%2520%25C2%25A0It%2520does%2520it%2520by%2520reducing%2520the%2520overhead%2520of%2520drawing%2520multiple%2520copies%2520of%2520the%2520same%2520vertex%2520buffer.%250D%250A%250D%250AIn%2520OpenGL%2520it%2527s%2520only%2520fast%2520to%2520use%2520instancing%2520wh';" title="del.icio.us"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook" href="javascript:window.location='http%3A%2F%2Fwww.facebook.com%2Fshare.php%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Bt%3DInstancing';" title="Facebook"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="mixx" href="javascript:window.location='http%3A%2F%2Fwww.mixx.com%2Fsubmit%3Fpage_url%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing';" title="Mixx"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing%26amp%3Bannotation%3DInstancing%2520is%2520a%2520new%2520way%2520to%2520offload%2520the%25C2%25A0CPU%2520from%2520some%2520work%25C2%25A0when%2520rendering%25C2%25A0many%2520copies%2520of%2520the%2520same%2520geometry.%2520%25C2%25A0It%2520does%2520it%2520by%2520reducing%2520the%2520overhead%2520of%2520drawing%2520multiple%2520copies%2520of%2520the%2520same%2520vertex%2520buffer.%250D%250A%250D%250AIn%2520OpenGL%2520it%2527s%2520only%2520fast%2520to%2520use%2520instancing%2520wh';" title="Google Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="current" href="javascript:window.location='http%3A%2F%2Fcurrent.com%2Fclipper.htm%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing';" title="Current"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/current.png" title="Current" alt="Current" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="linkedin" href="javascript:window.location='http%3A%2F%2Fwww.linkedin.com%2FshareArticle%3Fmini%3Dtrue%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DInstancing%2520is%2520a%2520new%2520way%2520to%2520offload%2520the%25C2%25A0CPU%2520from%2520some%2520work%25C2%25A0when%2520rendering%25C2%25A0many%2520copies%2520of%2520the%2520same%2520geometry.%2520%25C2%25A0It%2520does%2520it%2520by%2520reducing%2520the%2520overhead%2520of%2520drawing%2520multiple%2520copies%2520of%2520the%2520same%2520vertex%2520buffer.%250D%250A%250D%250AIn%2520OpenGL%2520it%2527s%2520only%2520fast%2520to%2520use%2520instancing%2520wh';" title="LinkedIn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="live" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing';" title="Live"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="myspace" href="javascript:window.location='http%3A%2F%2Fwww.myspace.com%2FModules%2FPostTo%2FPages%2F%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Bt%3DInstancing';" title="MySpace"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="netvibes" href="javascript:window.location='http%3A%2F%2Fwww.netvibes.com%2Fshare%3Ftitle%3DInstancing%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F';" title="Netvibes"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="stumbleupon" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing';" title="StumbleUpon"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="twitter" href="javascript:window.location='http%3A%2F%2Ftwitter.com%2Fhome%3Fstatus%3DInstancing%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F';" title="Twitter"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="reddit" href="javascript:window.location='http%3A%2F%2Freddit.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Btitle%3DInstancing';" title="Reddit"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="technorati" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F';" title="Technorati"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="yahoo! bookmarks" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F21%252Finstancing%252F%26amp%3Bt%3DInstancing%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DInstancing%2520is%2520a%2520new%2520way%2520to%2520offload%2520the%25C2%25A0CPU%2520from%2520some%2520work%25C2%25A0when%2520rendering%25C2%25A0many%2520copies%2520of%2520the%2520same%2520geometry.%2520%25C2%25A0It%2520does%2520it%2520by%2520reducing%2520the%2520overhead%2520of%2520drawing%2520multiple%2520copies%2520of%2520the%2520same%2520vertex%2520buffer.%250D%250A%250D%250AIn%2520OpenGL%2520it%2527s%2520only%2520fast%2520to%2520use%2520instancing%2520wh';" title="Yahoo! Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamerendering.com/2008/10/21/instancing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Octree</title>
		<link>http://www.gamerendering.com/2008/10/14/octree/</link>
		<comments>http://www.gamerendering.com/2008/10/14/octree/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 12:28:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Spatial Data Structure]]></category>
		<category><![CDATA[Collision]]></category>
		<category><![CDATA[Cuboid]]></category>
		<category><![CDATA[Culling]]></category>
		<category><![CDATA[Octree]]></category>
		<category><![CDATA[Optimizations]]></category>
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=339</guid>
		<description><![CDATA[Octrees are one of many ways to divide the space into smaller volumes structured in a tree. This is useful for culling objects while rendering or for finding collisions between objects. First cover the entire space that is of important into one big cuboid. Then the dividing algorithm for the tree goes as follows:
- First select the maximum number of [...]]]></description>
			<content:encoded><![CDATA[<p>Octrees are one of many ways to divide the space into smaller volumes structured in a tree. This is useful for culling objects while rendering or for finding collisions between objects. First cover the entire space that is of important into one big cuboid. Then the dividing algorithm for the tree goes as follows:</p>
<p>- First select the maximum number of objects in each cuboid. This determines how deep the tree will go.</p>
<p>- For each cuboid that contains more objects than the maximum allowed, split it into eight (oct = eight) new cuboids with the same volume and dimensions. Repeat this step until all cuboids fulfill the requirement.</p>
<p>The procedure looks like the following:</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/octree.jpg"><img class="size-medium wp-image-340" title="Octree creation process" src="http://www.gamerendering.com/wp-content/uploads/octree-124x400.jpg" alt="Octree creation process" width="124" height="400" /></a></div>
<p>More information about octrees.<br />
<a href="http://www.gamasutra.com/features/19970801/octree.htm">http://www.gamasutra.com/features/19970801/octree.htm</a></p>
<p>Source of the image:<br />
<a href="http://en.wikipedia.org/wiki/Octree">http://en.wikipedia.org/wiki/Octree</a></p>
<p>A little description of octrees.<br />
<a href="http://www.flipcode.com/archives/Introduction_To_Octrees.shtml">http://www.flipcode.com/archives/Introduction_To_Octrees.shtml</a></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Please share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="print" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree%26amp%3Bbodytext%3DOctrees%2520are%2520one%2520of%2520many%2520ways%2520to%2520divide%2520the%2520space%2520into%2520smaller%2520volumes%2520structured%25C2%25A0in%2520a%25C2%25A0tree.%2520This%2520is%2520useful%2520for%2520culling%2520objects%25C2%25A0while%2520rendering%2520or%2520for%2520finding%2520collisions%2520between%2520objects.%2520First%2520cover%2520the%2520entire%2520space%2520that%2520is%2520of%2520important%2520into%2520one%2520bi';" title="Digg"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="sphinn" href="javascript:window.location='http%3A%2F%2Fsphinn.com%2Findex.php%3Fc%3Dpost%26m%3Dsubmit%26link%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F';" title="Sphinn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree%26amp%3Bnotes%3DOctrees%2520are%2520one%2520of%2520many%2520ways%2520to%2520divide%2520the%2520space%2520into%2520smaller%2520volumes%2520structured%25C2%25A0in%2520a%25C2%25A0tree.%2520This%2520is%2520useful%2520for%2520culling%2520objects%25C2%25A0while%2520rendering%2520or%2520for%2520finding%2520collisions%2520between%2520objects.%2520First%2520cover%2520the%2520entire%2520space%2520that%2520is%2520of%2520important%2520into%2520one%2520bi';" title="del.icio.us"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook" href="javascript:window.location='http%3A%2F%2Fwww.facebook.com%2Fshare.php%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Bt%3DOctree';" title="Facebook"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="mixx" href="javascript:window.location='http%3A%2F%2Fwww.mixx.com%2Fsubmit%3Fpage_url%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree';" title="Mixx"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree%26amp%3Bannotation%3DOctrees%2520are%2520one%2520of%2520many%2520ways%2520to%2520divide%2520the%2520space%2520into%2520smaller%2520volumes%2520structured%25C2%25A0in%2520a%25C2%25A0tree.%2520This%2520is%2520useful%2520for%2520culling%2520objects%25C2%25A0while%2520rendering%2520or%2520for%2520finding%2520collisions%2520between%2520objects.%2520First%2520cover%2520the%2520entire%2520space%2520that%2520is%2520of%2520important%2520into%2520one%2520bi';" title="Google Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="current" href="javascript:window.location='http%3A%2F%2Fcurrent.com%2Fclipper.htm%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree';" title="Current"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/current.png" title="Current" alt="Current" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="linkedin" href="javascript:window.location='http%3A%2F%2Fwww.linkedin.com%2FshareArticle%3Fmini%3Dtrue%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DOctrees%2520are%2520one%2520of%2520many%2520ways%2520to%2520divide%2520the%2520space%2520into%2520smaller%2520volumes%2520structured%25C2%25A0in%2520a%25C2%25A0tree.%2520This%2520is%2520useful%2520for%2520culling%2520objects%25C2%25A0while%2520rendering%2520or%2520for%2520finding%2520collisions%2520between%2520objects.%2520First%2520cover%2520the%2520entire%2520space%2520that%2520is%2520of%2520important%2520into%2520one%2520bi';" title="LinkedIn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="live" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree';" title="Live"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="myspace" href="javascript:window.location='http%3A%2F%2Fwww.myspace.com%2FModules%2FPostTo%2FPages%2F%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Bt%3DOctree';" title="MySpace"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="netvibes" href="javascript:window.location='http%3A%2F%2Fwww.netvibes.com%2Fshare%3Ftitle%3DOctree%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F';" title="Netvibes"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="stumbleupon" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree';" title="StumbleUpon"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="twitter" href="javascript:window.location='http%3A%2F%2Ftwitter.com%2Fhome%3Fstatus%3DOctree%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F';" title="Twitter"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="reddit" href="javascript:window.location='http%3A%2F%2Freddit.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Btitle%3DOctree';" title="Reddit"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="technorati" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F';" title="Technorati"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="yahoo! bookmarks" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F10%252F14%252Foctree%252F%26amp%3Bt%3DOctree%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DOctrees%2520are%2520one%2520of%2520many%2520ways%2520to%2520divide%2520the%2520space%2520into%2520smaller%2520volumes%2520structured%25C2%25A0in%2520a%25C2%25A0tree.%2520This%2520is%2520useful%2520for%2520culling%2520objects%25C2%25A0while%2520rendering%2520or%2520for%2520finding%2520collisions%2520between%2520objects.%2520First%2520cover%2520the%2520entire%2520space%2520that%2520is%2520of%2520important%2520into%2520one%2520bi';" title="Yahoo! Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamerendering.com/2008/10/14/octree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alpha Testing</title>
		<link>http://www.gamerendering.com/2008/09/30/alpha-testing/</link>
		<comments>http://www.gamerendering.com/2008/09/30/alpha-testing/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 14:08:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Optimizations]]></category>
		<category><![CDATA[Rendering Methods]]></category>
		<category><![CDATA[Alpha Killing]]></category>
		<category><![CDATA[Alpha Testing]]></category>
		<category><![CDATA[Blending]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Shadow Volumes]]></category>
		<category><![CDATA[Sorting]]></category>
		<category><![CDATA[Transparency]]></category>
		<category><![CDATA[Vegetation]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=149</guid>
		<description><![CDATA[When drawing for example lots of vegetation (with textures containing an alpha channel) you need to minimize overdraw and cost for each draw call. If you use blending for archiving the desired transparent effect on the leaves then you will need to sort all the triangles (back-to-front-order) to draw, (and sometimes this needs splitting of [...]]]></description>
			<content:encoded><![CDATA[<p>When drawing for example lots of vegetation (with textures containing an alpha channel) you need to minimize overdraw and cost for each draw call. If you use blending for archiving the desired transparent effect on the leaves then you will need to sort all the triangles (back-to-front-order) to draw, (and sometimes this needs splitting of triangles) to get the correct look. Also when blending you might render the same pixel multiple times because you want the result to blend together. All this drawing and sorting takes a lot of time and a better way is to do alpha testing. In alpha testing (or alpha killing) you select an alpha threshold and all pixels with an alpha above (if you use <tt>GREATER</tt> as test function) this threshold will be drawn. Because no blending occurs, you don&#8217;t need to sort the triangles anymore (but preferably you will sort them front-to-back-order for optimization) . The drawback with alpha killing is that you will get sharp edges around the pixels drawn.<br />
Alpha killing does not work with shadow volumes.</p>
<p>Alpha testing in OpenGL<br />
<a href="http://opengl.org/documentation/specs/version1.1/glspec1.1/node96.html">http://opengl.org/documentation/specs/version1.1/glspec1.1/node96.html</a></p>
<p>Alpha testing in DirectX9 (in DirectX10 you must do your own implementation in a shader)<br />
<a href="http://msdn.microsoft.com/en-us/library/bb172254.aspx">http://msdn.microsoft.com/en-us/library/bb172254.aspx</a></p>
<p style="margin-bottom: 0cm;"> </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Please share:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="print" href="javascript:window.location='http%3A%2F%2Fwww.printfriendly.com%2Fprint%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Bpartner%3Dsociable';" title="Print this article!"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg" href="javascript:window.location='http%3A%2F%2Fdigg.com%2Fsubmit%3Fphase%3D2%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing%26amp%3Bbodytext%3DWhen%2520drawing%2520for%2520example%2520lots%2520of%2520vegetation%2520%2528with%2520textures%2520containing%2520an%2520alpha%2520channel%2529%2520you%2520need%2520to%2520minimize%2520overdraw%2520and%2520cost%2520for%2520each%2520draw%2520call.%2520If%2520you%2520use%2520blending%2520for%2520archiving%2520the%2520desired%2520transparent%2520effect%2520on%2520the%2520leaves%2520then%2520you%2520will%2520need%2520to%2520so';" title="Digg"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="sphinn" href="javascript:window.location='http%3A%2F%2Fsphinn.com%2Findex.php%3Fc%3Dpost%26m%3Dsubmit%26link%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F';" title="Sphinn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us" href="javascript:window.location='http%3A%2F%2Fdelicious.com%2Fpost%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing%26amp%3Bnotes%3DWhen%2520drawing%2520for%2520example%2520lots%2520of%2520vegetation%2520%2528with%2520textures%2520containing%2520an%2520alpha%2520channel%2529%2520you%2520need%2520to%2520minimize%2520overdraw%2520and%2520cost%2520for%2520each%2520draw%2520call.%2520If%2520you%2520use%2520blending%2520for%2520archiving%2520the%2520desired%2520transparent%2520effect%2520on%2520the%2520leaves%2520then%2520you%2520will%2520need%2520to%2520so';" title="del.icio.us"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook" href="javascript:window.location='http%3A%2F%2Fwww.facebook.com%2Fshare.php%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Bt%3DAlpha%2520Testing';" title="Facebook"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="mixx" href="javascript:window.location='http%3A%2F%2Fwww.mixx.com%2Fsubmit%3Fpage_url%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing';" title="Mixx"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google" href="javascript:window.location='http%3A%2F%2Fwww.google.com%2Fbookmarks%2Fmark%3Fop%3Dedit%26amp%3Bbkmk%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing%26amp%3Bannotation%3DWhen%2520drawing%2520for%2520example%2520lots%2520of%2520vegetation%2520%2528with%2520textures%2520containing%2520an%2520alpha%2520channel%2529%2520you%2520need%2520to%2520minimize%2520overdraw%2520and%2520cost%2520for%2520each%2520draw%2520call.%2520If%2520you%2520use%2520blending%2520for%2520archiving%2520the%2520desired%2520transparent%2520effect%2520on%2520the%2520leaves%2520then%2520you%2520will%2520need%2520to%2520so';" title="Google Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="current" href="javascript:window.location='http%3A%2F%2Fcurrent.com%2Fclipper.htm%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing';" title="Current"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/current.png" title="Current" alt="Current" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="linkedin" href="javascript:window.location='http%3A%2F%2Fwww.linkedin.com%2FshareArticle%3Fmini%3Dtrue%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DWhen%2520drawing%2520for%2520example%2520lots%2520of%2520vegetation%2520%2528with%2520textures%2520containing%2520an%2520alpha%2520channel%2529%2520you%2520need%2520to%2520minimize%2520overdraw%2520and%2520cost%2520for%2520each%2520draw%2520call.%2520If%2520you%2520use%2520blending%2520for%2520archiving%2520the%2520desired%2520transparent%2520effect%2520on%2520the%2520leaves%2520then%2520you%2520will%2520need%2520to%2520so';" title="LinkedIn"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="live" href="javascript:window.location='https%3A%2F%2Ffavorites.live.com%2Fquickadd.aspx%3Fmarklet%3D1%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing';" title="Live"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="myspace" href="javascript:window.location='http%3A%2F%2Fwww.myspace.com%2FModules%2FPostTo%2FPages%2F%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Bt%3DAlpha%2520Testing';" title="MySpace"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="netvibes" href="javascript:window.location='http%3A%2F%2Fwww.netvibes.com%2Fshare%3Ftitle%3DAlpha%2520Testing%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F';" title="Netvibes"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="stumbleupon" href="javascript:window.location='http%3A%2F%2Fwww.stumbleupon.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing';" title="StumbleUpon"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="twitter" href="javascript:window.location='http%3A%2F%2Ftwitter.com%2Fhome%3Fstatus%3DAlpha%2520Testing%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F';" title="Twitter"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="reddit" href="javascript:window.location='http%3A%2F%2Freddit.com%2Fsubmit%3Furl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Btitle%3DAlpha%2520Testing';" title="Reddit"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="technorati" href="javascript:window.location='http%3A%2F%2Ftechnorati.com%2Ffaves%3Fadd%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F';" title="Technorati"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="yahoo! bookmarks" href="javascript:window.location='http%3A%2F%2Fbookmarks.yahoo.com%2Ftoolbar%2Fsavebm%3Fu%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F09%252F30%252Falpha-testing%252F%26amp%3Bt%3DAlpha%2520Testing%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DWhen%2520drawing%2520for%2520example%2520lots%2520of%2520vegetation%2520%2528with%2520textures%2520containing%2520an%2520alpha%2520channel%2529%2520you%2520need%2520to%2520minimize%2520overdraw%2520and%2520cost%2520for%2520each%2520draw%2520call.%2520If%2520you%2520use%2520blending%2520for%2520archiving%2520the%2520desired%2520transparent%2520effect%2520on%2520the%2520leaves%2520then%2520you%2520will%2520need%2520to%2520so';" title="Yahoo! Bookmarks"><img src="http://www.gamerendering.com/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.gamerendering.com/2008/09/30/alpha-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
