<?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; Rendering Methods</title>
	<atom:link href="http://www.gamerendering.com/category/rendering-methods/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>VPOS</title>
		<link>http://www.gamerendering.com/2009/12/07/vpos/</link>
		<comments>http://www.gamerendering.com/2009/12/07/vpos/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:35:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Shaders]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Pixel Shader]]></category>
		<category><![CDATA[Render-to-Texture]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[SM3]]></category>
		<category><![CDATA[VPOS]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=735</guid>
		<description><![CDATA[Starting with DirectX Pixel Shader Model 3.0 there exist an input type called VPOS. It&#8217;s the current pixels position on the screen and it&#8217;s automatically generated. This can be useful when sampling from a previously rendered texture when rendering an arbitrarily shaped mesh to the screen. To do this, we need uv-coords that represents where [...]]]></description>
			<content:encoded><![CDATA[<p>Starting with DirectX Pixel Shader Model 3.0 there exist an input type called VPOS. It&#8217;s the current pixels position on the screen and it&#8217;s automatically generated. This can be useful when sampling from a previously rendered texture when rendering an arbitrarily shaped mesh to the screen. To do this, we need uv-coords that represents where to sample on the texture. These coordinates can be gained by simply dividing VPOS with the screen dimensions.<br />
When working with older hardware, that doesn&#8217;t support shader model 3.0, there is a need to manually create the VPOS in the vertex shader and pass it to the fragment shader as a TEXCOORD. This is the way to do so ( including the scaling to uv-range which manually has to be done for VPOS if you&#8217;re using it).</p>
<p><strong>Vertex Shader:</strong></p>

<div class="wp_codebox"><table width="100%" ><tr id="p7355"><td class="code" id="p735code5"><pre class="c" style="font-family:monospace;">float4x4 matWorldViewProjection<span style="color: #339933;">;</span>
float2 fInverseViewportDimensions<span style="color: #339933;">;</span>
<span style="color: #993333;">struct</span> VS_INPUT
<span style="color: #009900;">&#123;</span>
   float4 Position <span style="color: #339933;">:</span> POSITION0<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">struct</span> VS_OUTPUT
<span style="color: #009900;">&#123;</span>
   float4 Position <span style="color: #339933;">:</span> POSITION0<span style="color: #339933;">;</span>
   float4 calculatedVPos <span style="color: #339933;">:</span> TEXCOORD0<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
float4 ConvertToVPos<span style="color: #009900;">&#40;</span> float4 p <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> float4<span style="color: #009900;">&#40;</span> <span style="color:#800080;">0.5</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span> float2<span style="color: #009900;">&#40;</span>p.<span style="color: #202020;">x</span> <span style="color: #339933;">+</span> p.<span style="color: #202020;">w</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">w</span> <span style="color: #339933;">-</span> p.<span style="color: #202020;">y</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> p.<span style="color: #202020;">w</span><span style="color: #339933;">*</span>fInverseViewportDimensions.<span style="color: #202020;">xy</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> p.<span style="color: #202020;">zw</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
VS_OUTPUT vs_main<span style="color: #009900;">&#40;</span> VS_INPUT Input <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   VS_OUTPUT Output<span style="color: #339933;">;</span>
   Output.<span style="color: #202020;">Position</span> <span style="color: #339933;">=</span> mul<span style="color: #009900;">&#40;</span> Input.<span style="color: #202020;">Position</span><span style="color: #339933;">,</span> matWorldViewProjection <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   Output.<span style="color: #202020;">calculatedVPos</span> <span style="color: #339933;">=</span> ConvertToVPos<span style="color: #009900;">&#40;</span>Output.<span style="color: #202020;">Position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span> Output <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>Pixel Shader:<br />
</strong></p>

<div class="wp_codebox"><table width="100%" ><tr id="p7356"><td class="code" id="p735code6"><pre class="c" style="font-family:monospace;">float4 ps_main<span style="color: #009900;">&#40;</span>VS_OUTPUT Input<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> COLOR0
<span style="color: #009900;">&#123;</span>
   Input.<span style="color: #202020;">calculatedVPos</span> <span style="color: #339933;">/=</span> Input.<span style="color: #202020;">calculatedVPos</span>.<span style="color: #202020;">w</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">return</span> float4<span style="color: #009900;">&#40;</span>Input.<span style="color: #202020;">calculatedVPos</span>.<span style="color: #202020;">xy</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// test render it to the screen</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The image below shows an elephant model rendered with the shader above. As can be seen, the color (red and green channels) correctly represents the uv-coords for a fullscreen quad. Since 0,0,0 = black, 1,0,0 = red, 0,1,0 = green, 1, 1,0 = yellow.</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/vPosElephant.JPG"><img class="size-full wp-image-736" title="VPOS Elephant" src="http://www.gamerendering.com/wp-content/uploads/vPosElephant.JPG" alt="VPOS Elephant" width="177" height="162" /></a></div>
<div class="mceTemp">This is how the pixel shader would have looked like if VPOS were used instead (note: no special vertex shader needed in this case).</div>

<div class="wp_codebox"><table width="100%" ><tr id="p7357"><td class="code" id="p735code7"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">struct</span> PS_INPUT
<span style="color: #009900;">&#123;</span>
   float2 vPos <span style="color: #339933;">:</span> VPOS<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>


<div class="wp_codebox"><table width="100%" ><tr id="p7358"><td class="code" id="p735code8"><pre class="c" style="font-family:monospace;">float4 ps_main<span style="color: #009900;">&#40;</span>PS_INPUT Input<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> COLOR0
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> float4<span style="color: #009900;">&#40;</span>Input.<span style="color: #202020;">vPos</span><span style="color: #339933;">*</span>fInverseViewportDimensions <span style="color: #339933;">+</span> fInverseViewportDimensions<span style="color: #339933;">*</span><span style="color:#800080;">0.5</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// test render it to the screen</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The original code, more info and proof can be found here:<br />
<a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=506573">http://www.gamedev.net/community/forums/topic.asp?topic_id=506573</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%252F2009%252F12%252F07%252Fvpos%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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS%26amp%3Bbodytext%3DStarting%2520with%2520DirectX%2520Pixel%2520Shader%2520Model%25203.0%2520there%2520exist%2520an%2520input%2520type%2520called%2520VPOS.%2520It%2527s%2520the%2520current%2520pixels%2520position%2520on%2520the%2520screen%2520and%2520it%2527s%2520automatically%2520generated.%2520This%2520can%2520be%2520useful%2520when%2520sampling%2520from%2520a%2520previously%2520rendered%2520texture%2520when%2520rendering%2520an';" 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%252F2009%252F12%252F07%252Fvpos%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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS%26amp%3Bnotes%3DStarting%2520with%2520DirectX%2520Pixel%2520Shader%2520Model%25203.0%2520there%2520exist%2520an%2520input%2520type%2520called%2520VPOS.%2520It%2527s%2520the%2520current%2520pixels%2520position%2520on%2520the%2520screen%2520and%2520it%2527s%2520automatically%2520generated.%2520This%2520can%2520be%2520useful%2520when%2520sampling%2520from%2520a%2520previously%2520rendered%2520texture%2520when%2520rendering%2520an';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Bt%3DVPOS';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS%26amp%3Bannotation%3DStarting%2520with%2520DirectX%2520Pixel%2520Shader%2520Model%25203.0%2520there%2520exist%2520an%2520input%2520type%2520called%2520VPOS.%2520It%2527s%2520the%2520current%2520pixels%2520position%2520on%2520the%2520screen%2520and%2520it%2527s%2520automatically%2520generated.%2520This%2520can%2520be%2520useful%2520when%2520sampling%2520from%2520a%2520previously%2520rendered%2520texture%2520when%2520rendering%2520an';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DStarting%2520with%2520DirectX%2520Pixel%2520Shader%2520Model%25203.0%2520there%2520exist%2520an%2520input%2520type%2520called%2520VPOS.%2520It%2527s%2520the%2520current%2520pixels%2520position%2520on%2520the%2520screen%2520and%2520it%2527s%2520automatically%2520generated.%2520This%2520can%2520be%2520useful%2520when%2520sampling%2520from%2520a%2520previously%2520rendered%2520texture%2520when%2520rendering%2520an';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS';" 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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Bt%3DVPOS';" 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%3DVPOS%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2009%252F12%252F07%252Fvpos%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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS';" 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%3DVPOS%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2009%252F12%252F07%252Fvpos%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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Btitle%3DVPOS';" 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%252F2009%252F12%252F07%252Fvpos%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%252F2009%252F12%252F07%252Fvpos%252F%26amp%3Bt%3DVPOS%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DStarting%2520with%2520DirectX%2520Pixel%2520Shader%2520Model%25203.0%2520there%2520exist%2520an%2520input%2520type%2520called%2520VPOS.%2520It%2527s%2520the%2520current%2520pixels%2520position%2520on%2520the%2520screen%2520and%2520it%2527s%2520automatically%2520generated.%2520This%2520can%2520be%2520useful%2520when%2520sampling%2520from%2520a%2520previously%2520rendered%2520texture%2520when%2520rendering%2520an';" 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/2009/12/07/vpos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Render Thickness</title>
		<link>http://www.gamerendering.com/2009/09/25/render-thickness/</link>
		<comments>http://www.gamerendering.com/2009/09/25/render-thickness/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 14:24:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rendering Methods]]></category>
		<category><![CDATA[Billboards]]></category>
		<category><![CDATA[Clouds]]></category>
		<category><![CDATA[Hebe]]></category>
		<category><![CDATA[Render-to-Texture]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[Thickness]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=710</guid>
		<description><![CDATA[In [1] they describe a clever way of rendering the thickness of an object in a single pass. The method only correctly works for convex objects but this limitation isn&#8217;t that bad, the method can often be used to get the approximated thickness of concave objects as well. For example, [1] uses it to fake [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm;">In [1] they describe a clever way of rendering the thickness of an object in a single pass. The method only correctly works for convex objects but this limitation isn&#8217;t that bad, the method can often be used to get the approximated thickness of concave objects as well. For example, [1] uses it to fake the light scattering in clouds rendered as billboards. The methods works like this:</p>
<p style="margin-bottom: 0cm;">The object is rendered and the distance from the near plane is saved in a color channel R. Also, the distance to the far plane is saved in channel G. By rendering with the blend color mode MIN, one will get the minimum distance from the near plane in R, and the minimum distance to the far plane in G. By using these two distances, one can easily calculate the thickness of the rendered object with the following formula (1-G) – R (if distance is scaled so one is the the distance between the clip planes). Alpha can be saved as well in the same render pass, by outputting it to the A channel. And selecting blend alpha mode ADD (color and alpha can have different modes). This will add up the alpha.</p>
<p style="margin-bottom: 0cm;">All this is done in only one pass. Just remember to clear to white before rendering.</p>
<p>The image below shows the thickness of the popular Hebe mesh rendered with this method. This model is not convex, and the problem areas are for example the arm holding the bowl. As one can see, the algorithm believes that the bowl and the shoulder are connected, and therefore believes that part of the object is the thickest.</p>
<p><a href="http://www.gamerendering.com/wp-content/uploads/Hebe.JPG"><img class="size-full wp-image-711" title="Hebe" src="http://www.gamerendering.com/wp-content/uploads/Hebe.JPG" alt="Hebe" width="328" height="493" /></a></p>
<p>[1] The Art and Technology of Whiteout<br />
<a href="http://ati.amd.com/developer/gdc/2007/ArtAndTechnologyOfWhiteout(Siggraph07).pdf">http://ati.amd.com/developer/gdc/2007/ArtAndTechnologyOfWhiteout(Siggraph07).pdf</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%252F2009%252F09%252F25%252Frender-thickness%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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness%26amp%3Bbodytext%3DIn%2520%255B1%255D%2520they%2520describe%2520a%2520clever%2520way%2520of%2520rendering%2520the%2520thickness%2520of%2520an%2520object%2520in%2520a%2520single%2520pass.%2520The%2520method%2520only%2520correctly%2520works%2520for%2520convex%2520objects%2520but%2520this%2520limitation%2520isn%2527t%2520that%2520bad%252C%2520the%2520method%2520can%2520often%2520be%2520used%2520to%2520get%2520the%2520approximated%2520thickness%2520of%2520conca';" 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%252F2009%252F09%252F25%252Frender-thickness%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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness%26amp%3Bnotes%3DIn%2520%255B1%255D%2520they%2520describe%2520a%2520clever%2520way%2520of%2520rendering%2520the%2520thickness%2520of%2520an%2520object%2520in%2520a%2520single%2520pass.%2520The%2520method%2520only%2520correctly%2520works%2520for%2520convex%2520objects%2520but%2520this%2520limitation%2520isn%2527t%2520that%2520bad%252C%2520the%2520method%2520can%2520often%2520be%2520used%2520to%2520get%2520the%2520approximated%2520thickness%2520of%2520conca';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Bt%3DRender%2520Thickness';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness%26amp%3Bannotation%3DIn%2520%255B1%255D%2520they%2520describe%2520a%2520clever%2520way%2520of%2520rendering%2520the%2520thickness%2520of%2520an%2520object%2520in%2520a%2520single%2520pass.%2520The%2520method%2520only%2520correctly%2520works%2520for%2520convex%2520objects%2520but%2520this%2520limitation%2520isn%2527t%2520that%2520bad%252C%2520the%2520method%2520can%2520often%2520be%2520used%2520to%2520get%2520the%2520approximated%2520thickness%2520of%2520conca';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DIn%2520%255B1%255D%2520they%2520describe%2520a%2520clever%2520way%2520of%2520rendering%2520the%2520thickness%2520of%2520an%2520object%2520in%2520a%2520single%2520pass.%2520The%2520method%2520only%2520correctly%2520works%2520for%2520convex%2520objects%2520but%2520this%2520limitation%2520isn%2527t%2520that%2520bad%252C%2520the%2520method%2520can%2520often%2520be%2520used%2520to%2520get%2520the%2520approximated%2520thickness%2520of%2520conca';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness';" 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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Bt%3DRender%2520Thickness';" 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%3DRender%2520Thickness%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2009%252F09%252F25%252Frender-thickness%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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness';" 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%3DRender%2520Thickness%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2009%252F09%252F25%252Frender-thickness%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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Btitle%3DRender%2520Thickness';" 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%252F2009%252F09%252F25%252Frender-thickness%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%252F2009%252F09%252F25%252Frender-thickness%252F%26amp%3Bt%3DRender%2520Thickness%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DIn%2520%255B1%255D%2520they%2520describe%2520a%2520clever%2520way%2520of%2520rendering%2520the%2520thickness%2520of%2520an%2520object%2520in%2520a%2520single%2520pass.%2520The%2520method%2520only%2520correctly%2520works%2520for%2520convex%2520objects%2520but%2520this%2520limitation%2520isn%2527t%2520that%2520bad%252C%2520the%2520method%2520can%2520often%2520be%2520used%2520to%2520get%2520the%2520approximated%2520thickness%2520of%2520conca';" 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/2009/09/25/render-thickness/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Basic Triangle</title>
		<link>http://www.gamerendering.com/2009/06/02/basic-triangle/</link>
		<comments>http://www.gamerendering.com/2009/06/02/basic-triangle/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 17:30:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rendering Methods]]></category>
		<category><![CDATA[Binormal]]></category>
		<category><![CDATA[Face]]></category>
		<category><![CDATA[Normal]]></category>
		<category><![CDATA[Per-pixel lighting]]></category>
		<category><![CDATA[Tangent]]></category>
		<category><![CDATA[Texture Coordinates]]></category>
		<category><![CDATA[Triangle]]></category>
		<category><![CDATA[UV]]></category>
		<category><![CDATA[uvw]]></category>
		<category><![CDATA[Vertex]]></category>
		<category><![CDATA[Vertices]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=516</guid>
		<description><![CDATA[ 
  
The triangle is the basic geometry that is used when rendering. All other shapes of geometry you want to draw must be divided into triangles.

The triangle parts:

Face, the triangle itself, the area is what is gonna be rasterized (with normal fill mode at least).
Face normal, the normal to the plane which the triangle [...]]]></description>
			<content:encoded><![CDATA[<p> 
<div id="triangleWireFrameDiv"  ><a href="#" class="show3Dbutton" onClick="showApplet('triangleWireFrame');return false">  </a></div>
<p>The triangle is the basic geometry that is used when rendering. All other shapes of geometry you want to draw must be divided into triangles.</p>
<div class="mceTemp"><a href="http://www.gamerendering.com/wp-content/uploads/triangle.jpg"><img class="size-medium wp-image-518" title="Basic Triangle" src="http://www.gamerendering.com/wp-content/uploads/triangle.jpg" alt="Basic Triangle" width="347" height="165" /></a></div>
<p>The triangle parts:</p>
<ol>
<li>Face, the triangle itself, the area is what is gonna be rasterized (with normal fill mode at least).</li>
<li>Face normal, the normal to the plane which the triangle is parallell too. It is mostly used for calculating the vertex normal.</li>
<li>Vertex, a triangle has three vertices with x,y,z coordinates, they are located in the triangle corners. All transformations apply to these ones.</li>
<li>Edge, the line between vertices are called edges, a triangle has three edges. Are used for example shadow volumes.</li>
<li>Vertex normal, each vertex has a normal which decides the smoothness of the geometry.</li>
</ol>
<p>Other data often used per vertex:</p>
<ul>
<li>Tangent and Binormal for per pixel lighting</li>
<li>Texture coordinates (uvw-coords), sometimes more than one per vertex</li>
</ul>
<p>Tutorial to render a triangle in DirectX10<br />
<a href="http://msdn.microsoft.com/en-gb/library/bb172486(VS.85).aspx">http://msdn.microsoft.com/en-gb/library/bb172486(VS.85).aspx</a></p>
<p>Tutorial to render a triangle in OpenGL<br />
 <a href="http://60hz.csse.uwa.edu.au/workshop/workshop0/workshop1.html">http://60hz.csse.uwa.edu.au/workshop/workshop0/workshop1.html</a></p>
<p>Tutorial to render a triangle in XNA<br />
<a href="http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/The_first_triangle.php">http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/The_first_triangle.php</a></p>
<p>Tutorial to render a triangle in OpenGL ES 2.0<br />
<a href="http://www.webreference.com/programming/opengl_es/">http://www.webreference.com/programming/opengl_es/</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%252F2009%252F06%252F02%252Fbasic-triangle%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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle%26amp%3Bbodytext%3D%2520%2520%2520%2520%2520%250D%250A%250D%250AThe%2520triangle%2520is%2520the%2520basic%25C2%25A0geometry%2520that%2520is%2520used%2520when%2520rendering.%2520All%2520other%2520shapes%2520of%2520geometry%2520you%2520want%2520to%2520draw%2520must%2520be%2520divided%2520into%2520triangles.%250D%250A%250D%250AThe%2520triangle%2520parts%253A%250D%250A%250D%250A%2509Face%252C%2520the%2520triangle%2520itself%252C%2520the%2520area%2520is%2520what%2520is%2520gonna%2520be%2520rasterized%2520%2528wit';" 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%252F2009%252F06%252F02%252Fbasic-triangle%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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle%26amp%3Bnotes%3D%2520%2520%2520%2520%2520%250D%250A%250D%250AThe%2520triangle%2520is%2520the%2520basic%25C2%25A0geometry%2520that%2520is%2520used%2520when%2520rendering.%2520All%2520other%2520shapes%2520of%2520geometry%2520you%2520want%2520to%2520draw%2520must%2520be%2520divided%2520into%2520triangles.%250D%250A%250D%250AThe%2520triangle%2520parts%253A%250D%250A%250D%250A%2509Face%252C%2520the%2520triangle%2520itself%252C%2520the%2520area%2520is%2520what%2520is%2520gonna%2520be%2520rasterized%2520%2528wit';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Bt%3DBasic%2520Triangle';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle%26amp%3Bannotation%3D%2520%2520%2520%2520%2520%250D%250A%250D%250AThe%2520triangle%2520is%2520the%2520basic%25C2%25A0geometry%2520that%2520is%2520used%2520when%2520rendering.%2520All%2520other%2520shapes%2520of%2520geometry%2520you%2520want%2520to%2520draw%2520must%2520be%2520divided%2520into%2520triangles.%250D%250A%250D%250AThe%2520triangle%2520parts%253A%250D%250A%250D%250A%2509Face%252C%2520the%2520triangle%2520itself%252C%2520the%2520area%2520is%2520what%2520is%2520gonna%2520be%2520rasterized%2520%2528wit';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3D%2520%2520%2520%2520%2520%250D%250A%250D%250AThe%2520triangle%2520is%2520the%2520basic%25C2%25A0geometry%2520that%2520is%2520used%2520when%2520rendering.%2520All%2520other%2520shapes%2520of%2520geometry%2520you%2520want%2520to%2520draw%2520must%2520be%2520divided%2520into%2520triangles.%250D%250A%250D%250AThe%2520triangle%2520parts%253A%250D%250A%250D%250A%2509Face%252C%2520the%2520triangle%2520itself%252C%2520the%2520area%2520is%2520what%2520is%2520gonna%2520be%2520rasterized%2520%2528wit';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle';" 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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Bt%3DBasic%2520Triangle';" 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%2520Triangle%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2009%252F06%252F02%252Fbasic-triangle%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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle';" 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%2520Triangle%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2009%252F06%252F02%252Fbasic-triangle%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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Btitle%3DBasic%2520Triangle';" 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%252F2009%252F06%252F02%252Fbasic-triangle%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%252F2009%252F06%252F02%252Fbasic-triangle%252F%26amp%3Bt%3DBasic%2520Triangle%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3D%2520%2520%2520%2520%2520%250D%250A%250D%250AThe%2520triangle%2520is%2520the%2520basic%25C2%25A0geometry%2520that%2520is%2520used%2520when%2520rendering.%2520All%2520other%2520shapes%2520of%2520geometry%2520you%2520want%2520to%2520draw%2520must%2520be%2520divided%2520into%2520triangles.%250D%250A%250D%250AThe%2520triangle%2520parts%253A%250D%250A%250D%250A%2509Face%252C%2520the%2520triangle%2520itself%252C%2520the%2520area%2520is%2520what%2520is%2520gonna%2520be%2520rasterized%2520%2528wit';" 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/2009/06/02/basic-triangle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Light Indexed Deferred Rendering</title>
		<link>http://www.gamerendering.com/2008/11/04/light-indexed-deferred-rendering/</link>
		<comments>http://www.gamerendering.com/2008/11/04/light-indexed-deferred-rendering/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 15:53:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Rendering Methods]]></category>

		<guid isPermaLink="false">http://www.gamerendering.com/?p=451</guid>
		<description><![CDATA[A different approach to deferred lighting in which the lights are rendered before the actual geometry is rendered. Here&#8217;s the abstract from the paper describing this technique:


&#8220;Current rasterization based renderers utilize one of two main techniques for lighting, forward rendering and deferred rendering. However, both of these techniques have disadvantages. Forward rendering does not scale [...]]]></description>
			<content:encoded><![CDATA[<p>A different approach to deferred lighting in which the lights are rendered before the actual geometry is rendered. Here&#8217;s the abstract from the paper describing this technique:</p>
<div>
<blockquote>
<p align="left"><em>&#8220;Current rasterization based renderers utilize one of two main techniques for lighting, forward rendering and deferred rendering. However, both of these techniques have disadvantages. Forward rendering does not scale well with complex lighting scenes and standard deferred rendering has high memory usage and trouble with transparency and MSAA. This paper aims to explore a middle ground between these two lighting techniques with the aim of keeping the key advantages of both. This is achieved with deferring lighting by storing a light index value where light volumes intersect the scene.&#8221;</em></p>
</blockquote>
<p> <a href="http://www.gamerendering.com/wp-content/uploads/demoscreenshot_small.jpg"><img class="size-medium wp-image-454" title="Light Indexed Deferred Rendering" src="http://www.gamerendering.com/wp-content/uploads/demoscreenshot_small.jpg" alt="Light Indexed Deferred Rendering" width="320" height="240" /></a></p>
<p>The homepage of the research in this technique including paper and demo:<br />
<a href="http://code.google.com/p/lightindexed-deferredrender/">http://code.google.com/p/lightindexed-deferredrender/</a></p>
<p>A OpenGL.org discussion about this technique<br />
<a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;Number=232157&amp;fpart=1">http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;Number=232157&amp;fpart=1</a></div>

<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%252F04%252Flight-indexed-deferred-rendering%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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering%26amp%3Bbodytext%3DA%2520different%2520approach%2520to%2520deferred%2520lighting%2520in%2520which%2520the%2520lights%2520are%2520rendered%2520before%2520the%2520actual%2520geometry%2520is%2520rendered.%2520Here%2527s%2520the%2520abstract%2520from%2520the%2520paper%2520describing%2520this%2520technique%253A%250D%250A%250D%250A%250D%250A%2522Current%2520rasterization%2520based%2520renderers%2520utilize%2520one%2520of%2520two%2520main%2520techn';" 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%252F04%252Flight-indexed-deferred-rendering%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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering%26amp%3Bnotes%3DA%2520different%2520approach%2520to%2520deferred%2520lighting%2520in%2520which%2520the%2520lights%2520are%2520rendered%2520before%2520the%2520actual%2520geometry%2520is%2520rendered.%2520Here%2527s%2520the%2520abstract%2520from%2520the%2520paper%2520describing%2520this%2520technique%253A%250D%250A%250D%250A%250D%250A%2522Current%2520rasterization%2520based%2520renderers%2520utilize%2520one%2520of%2520two%2520main%2520techn';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Bt%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering%26amp%3Bannotation%3DA%2520different%2520approach%2520to%2520deferred%2520lighting%2520in%2520which%2520the%2520lights%2520are%2520rendered%2520before%2520the%2520actual%2520geometry%2520is%2520rendered.%2520Here%2527s%2520the%2520abstract%2520from%2520the%2520paper%2520describing%2520this%2520technique%253A%250D%250A%250D%250A%250D%250A%2522Current%2520rasterization%2520based%2520renderers%2520utilize%2520one%2520of%2520two%2520main%2520techn';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering%26amp%3Bsource%3DGame%2BRendering%2B%26amp%3Bsummary%3DA%2520different%2520approach%2520to%2520deferred%2520lighting%2520in%2520which%2520the%2520lights%2520are%2520rendered%2520before%2520the%2520actual%2520geometry%2520is%2520rendered.%2520Here%2527s%2520the%2520abstract%2520from%2520the%2520paper%2520describing%2520this%2520technique%253A%250D%250A%250D%250A%250D%250A%2522Current%2520rasterization%2520based%2520renderers%2520utilize%2520one%2520of%2520two%2520main%2520techn';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Bt%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%3DLight%2520Indexed%2520Deferred%2520Rendering%26amp%3Burl%3Dhttp%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F04%252Flight-indexed-deferred-rendering%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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%3DLight%2520Indexed%2520Deferred%2520Rendering%2520-%2520http%253A%252F%252Fwww.gamerendering.com%252F2008%252F11%252F04%252Flight-indexed-deferred-rendering%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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Btitle%3DLight%2520Indexed%2520Deferred%2520Rendering';" 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%252F04%252Flight-indexed-deferred-rendering%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%252F04%252Flight-indexed-deferred-rendering%252F%26amp%3Bt%3DLight%2520Indexed%2520Deferred%2520Rendering%26opener%3Dbm%26amp%3Bei%3DUTF-8%26amp%3Bd%3DA%2520different%2520approach%2520to%2520deferred%2520lighting%2520in%2520which%2520the%2520lights%2520are%2520rendered%2520before%2520the%2520actual%2520geometry%2520is%2520rendered.%2520Here%2527s%2520the%2520abstract%2520from%2520the%2520paper%2520describing%2520this%2520technique%253A%250D%250A%250D%250A%250D%250A%2522Current%2520rasterization%2520based%2520renderers%2520utilize%2520one%2520of%2520two%2520main%2520techn';" 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/04/light-indexed-deferred-rendering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
