<?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>Sgt. Conker &#187; Graphics</title>
	<atom:link href="http://www.sgtconker.com/tag/graphics/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sgtconker.com</link>
	<description>We are &#34;absolutely fine&#34;</description>
	<lastBuildDate>Thu, 09 Sep 2010 19:48:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Article : Sun- and Lens Flare as a Post Process</title>
		<link>http://www.sgtconker.com/2010/04/article-sun-and-lens-flare-as-a-post-process/</link>
		<comments>http://www.sgtconker.com/2010/04/article-sun-and-lens-flare-as-a-post-process/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 12:12:01 +0000</pubDate>
		<dc:creator>NemoKrad</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[MVP Watch]]></category>
		<category><![CDATA[Post Processing]]></category>
		<category><![CDATA[Shaders]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Blacksun]]></category>
		<category><![CDATA[Charles Humphrey]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Lens flare]]></category>
		<category><![CDATA[Post Process]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=1407</guid>
		<description><![CDATA[by ]]></description>
			<content:encoded><![CDATA[<h4 style="text-align: center;">by <a href="<a href="http://xna-uk.net/blogs/randomchaos/">Charles Humphrey</a></h4>
<p><img class="alignright" src="http://sgtconker.com/wp-content/uploads/2010/04/sunpostprocess.png" alt="" width="264" height="206" /></p>
<p>Now this sample has come from my current XNA toy which is the Blacksun engine I am currently writing in XNA 3.1. It uses deferred lighting, instancing and a post processing framework that I found on a great site <a href="http://graphicsrunner.blogspot.com/2008/06/post-process-framework-sample.html">here</a>, all I had to do was make it engine ready.</p>
<p>If you want to have a look at the effect in the engine you can see it <a href="http://www.youtube.com/watch?v=DrhF2Bp-95I">here</a>.</p>
<p>This sample is just one of the elements from the post processing framework in the engine, there are none of the other goodies in this sample, just the Sun post process. This sample has also been created using the XNA 4.0 CTP, so I only had one render target to work with at the time. This means that you can't see the sun being culled behind objects in the scene as I can't create a depth map as well as the rendered scene, to be honest, I still don't have that bit of the shader 100% anyway <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><span id="more-1407"></span></p>
<p>So, what do you get in this sample, well, the sun shader and the lens flare effect all in one post process and done in XNA 4.0. It's a pretty simple effect really, taking the suns position in the world, then just finding its screen coordinates on the render target and render the sun flare texture, then render the texture again over a set of offset texture coordinates to give the lens flare effect.</p>
<p>Lets take a look at the code...</p>
<p><strong>Sun.fx</strong></p>
<p>We have a few variables we can pass to the shader to control this effect, the names I hope are quite self explanatory, well most of them</p>
<pre class="brush: csharp;">
float3 cameraPosition;

float SunSize = 1500;

float Density = 3;
float Exposure = -.1;
float Weight = .25;
float Weight2 = .125;
float Decay = .5;

float3 lightPosition;

float lightIntensity = 10.0f;
float3 Color = float3(1,1,1);

texture flare;
sampler Flare = sampler_state
{
    Texture = (flare);
    AddressU = CLAMP;
    AddressV = CLAMP;
};

sampler BackBuffer : register(s0);

//depth
texture depthMap;
sampler depthSampler = sampler_state
{
    Texture = (depthMap);
};

struct VertexShaderInput
{
    float3 Position : POSITION0;
    float2 texCoord : TEXCOORD0;
};

struct VertexShaderOutputToPS
{
    float2 texCoord : TEXCOORD0;
};
</pre>
<p>Those that I guess are not that obvious are Density to Decay and these relate the the lens flare part of the shader and control the number of texture samples to display, density of those samples etc..</p>
<p>So onto the lane flare function that is used in the shader to give the lens flare effect.</p>
<pre class="brush: csharp;">
float4 DoLenseFlare(float4 ScreenLightPosition,float2 texCoord,bool fwd)
{
    // Calculate vector from pixel to light source in screen space.
    float2 deltaTexCoord = (texCoord - ScreenLightPosition.xy);// Divide by number of samples and scale by control factor.
    deltaTexCoord *= 1.0f / 3 * Density;

    // Store initial sample.
    float3 color = 0;

    // Set up illumination decay factor.
    float illuminationDecay = 1.0f;

    for (int i = 0; i &amp;lt; 3 ; i++)
    {
        // Step sample location along ray.
        if(fwd)
            texCoord -= deltaTexCoord;
        else
            texCoord += deltaTexCoord;

        // Retrieve sample at new location.
        float3 sample = tex2D(Flare, texCoord);

        // Apply sample attenuation scale/decay factors.
        if(fwd)
            sample *= illuminationDecay * Weight;
        else
            sample *= illuminationDecay * Weight2;

        // Accumulate combined color.
        color += sample;

        // Update exponential decay factor.
        illuminationDecay *= Decay;
    }

    return float4(color,1);
}
</pre>
<p>I can take very little credit for this bit of the code, as I got it from GPU Game 3 Chapter 13 Volumetric Light Scattering as a Post Process, not exactly using it as it was intended, but is does the job I wanted here well enough <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So the pixel shader itself that pulls this all together looks like this</p>
<pre class="brush: csharp;">
float4 PixelShaderFunction(VertexShaderOutputToPS input) : COLOR0
{
    // Get the scene
    float4 col = tex2D(BackBuffer,input.texCoord);// Find the suns position in the world and map it to the screen space.
    float4 ScreenPosition = mul(lightPosition - cameraPosition,VP);
    float scale = ScreenPosition.z;
    ScreenPosition.xyz /= ScreenPosition.w;
    ScreenPosition.x = ScreenPosition.x/2.0f+0.5f;
    ScreenPosition.y = (-ScreenPosition.y/2.0f+0.5f);

    // get the depth from the depth map
    //float depthVal = 1- tex2D(depthSampler, input.texCoord).r;

    // Are we lokoing in the direction of the sun?
    if(ScreenPosition.w &gt; 0)
    {
        float2 coord;

        float size = SunSize / scale;

        float2 center = ScreenPosition.xy;

        coord = .5 - (input.texCoord - center) / size * .5;

        //if(depthVal &gt; ScreenPosition.z-.0003)
        col += (pow(tex2D(Flare,coord) * float4(Color,1),2) * lightIntensity) * 2;

        // Lens flare
        col += ((DoLenseFlare(ScreenPosition,input.texCoord,true) + DoLenseFlare(ScreenPosition,input.texCoord,false)) * float4(Color,1) * lightIntensity) * 5;
    }

    return col;
}
</pre>
<p>You will see in here that I have left in the code for detecting the depth of objects in the scene for sun culling and just commented it out, when you have a full release XNA 4.0 you will be able to create and pass in the depth map, but it’s not possible in the current CTP.</p>
<p>So what am I doing in the pixel shader, first off we grab the current scene’s color, I then get the position of the light in screen space by multiplying its position by the camera position and then doing the homogeneous divide (ScreenPosition.xyz / ScreenPosition.w) to get the position of the sun (see the Get2DCoords method below for my inspiration for this). Then, if we are looking in the direction of the sun (ScreenPosition.w &gt; 0) then we need to render the sun and or lens flare. I then calculate the size of the sun and find the tex coords required to get the texture from the Flare sampler and then add this with the sun color and raise it to the power of 2, this lightens the light bits and darkens the dark bits, this is then multiplied by the light intensity and the final values doubled again. Then we come to the lens flare, I call this twice: once for each direction of the flare (you will see in the clip there are two) and again tint this to the sun color and multiply by intensity.</p>
<p>Now please feel free to pick my dodgy math’s apart here I know I suck, but it is working and I have not thought much more abut it since writing it <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><strong>Game Code</strong></p>
<p>First thing we will do is set up a render target and and effect so we can apply our sun as a post process.</p>
<pre class="brush: csharp;">
RenderTarget2D rt;
Effect effect;
</pre>
<p>Also some way of representing the sun’s position, color intensity and size</p>
<pre class="brush: csharp;">
Vector3 sunPosition = new Vector3(100, 200, -1000);
Color sunColor = Color.White;
float sunIntensity = 1f;
float sunSunSize = 1500;
</pre>
<p>Now we have these variable lined up and ready to use we can initialize both the render target and the effect shader</p>
<pre class="brush: csharp;">
rt = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);

effect = Content.Load&lt;Effect&gt;(&quot;Shaders/PostProcessing/Sun&quot;);
effect.Parameters[&quot;flare&quot;].SetValue(Content.Load&lt;Texture2D&gt;(&quot;Textures/PostProcessing/flare&quot;));
effect.Parameters[&quot;Color&quot;].SetValue(sunColor.ToVector3());
effect.Parameters[&quot;lightIntensity&quot;].SetValue(sunIntensity);
effect.Parameters[&quot;SunSize&quot;].SetValue(sunSunSize);
effect.Parameters[&quot;lightPosition&quot;].SetValue(sunPosition);
</pre>
<p>Now we need to make sure the shader/effect is updated with the required variables. So in our update method we set the following parameters</p>
<pre class="brush: csharp;">
effect.Parameters[&quot;VP&quot;].SetValue(camera.View * camera.Projection);
effect.Parameters[&quot;cameraPosition&quot;].SetValue(camera.Position);
//effect.Parameters[&quot;depthMap&quot;].SetValue(depthBuffer);
</pre>
<p>And now for the render, keep in mind that this is all done just for this sample, you will want to encapsulate all this in its own class deriving from DrawableGameComponent or in a post processing framework as shown in the link above.</p>
<pre class="brush: csharp;">
    GraphicsDevice.SetRenderTargets(rt);
    GraphicsDevice.Clear(&lt;Color.Black);
    base.Draw(gameTime);

    // Post Processing.
    GraphicsDevice.SetRenderTargets(null);

    GraphicsDevice.Textures[0] = rt;
    spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
    effect.Techniques[0].Passes[0].Apply();
    spriteBatch.Draw(rt, new Rectangle(0, 0, rt.Width, rt.Height), Color.White);
    spriteBatch.End();
</pre>
<p>So, we setup the render target, allow the scene to be drawn (nothing gets drawn in this sample), then we resolve the render target and then apply our effect to the newly captured render target.</p>
<p>As mentioned earlier I have a method I use to get screen coordinates from a 3D screen position, this method I am 99% sure I got (or at least the nuts and bolts of it) from Rocket Commander which was written by <a href="http://exdream.com/Games/Default.aspx?Game=RocketCommander&amp;Category=Open%20Source">Benjamin Nitsche</a></p>
<pre class="brush: csharp;">
public Vector2 Get2DCoords(Vector3 myPosition, Base3DCamera Camera)
{
    Matrix ViewProjectionMatrix = Camera.View * Camera.Projection;
    Vector4 result4 = Vector4.Transform(myPosition, ViewProjectionMatrix);

    if(result4.W &lt;= 0)
        return new Vector2(Camera.Viewport.Width, 0);

    Vector3 result = new Vector3(result4.X / result4.W, result4.Y / result4.W, result4.Z / result4.W);

    Vector2 retVal = new Vector2((int)Math.Round(+result.X * (Camera.Viewport.Width / 2)) + (Camera.Viewport.Width / 2), (int)Math.Round(-result.Y * (Camera.Viewport.Height / 2)) + (Camera.Viewport.Height / 2));

    return retVal;
}
</pre>
<p>As you can see it transforms the position by the ViewProjection matrix to then get the screen position if the result4.W &gt;= 0.</p>
<p><a href="http://www.sgtconker.com/Downloads/articles/RandomchaosSunPostProcess.zip">Download the sample project here</a><br />
Well that’s abut it, and this is my first post on Sgt Conker, hope it’s not my last one <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Hope you find this useful, if not in it’s own right, then I hope it gives you some ideas for your own shaders…..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/04/article-sun-and-lens-flare-as-a-post-process/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Placeholder in Games</title>
		<link>http://www.sgtconker.com/2010/03/placeholder-in-games/</link>
		<comments>http://www.sgtconker.com/2010/03/placeholder-in-games/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 09:48:57 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/03/placeholder-in-games/</guid>
		<description><![CDATA[Barnaby Smith shares his thoughts about using placeholder assets during the development of games:
Creation and use of placeholders, whether levels, 3d models, sprites or sounds, has a number of advantages when developing computer games. In this article I discuss some aspects of the use of placeholders in games.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://xna-uk.net/blogs/mvi/default.aspx">Barnaby Smith</a> shares his thoughts about <a href="http://xna-uk.net/blogs/mvi/archive/2010/03/28/placeholders-in-games.aspx">using placeholder assets</a> during the development of games:</p>
<blockquote cite="http://xna-uk.net/blogs/mvi/archive/2010/03/28/placeholders-in-games.aspx"><p>Creation and use of placeholders, whether levels, 3d models, sprites or sounds, has a number of advantages when developing computer games. In this article I discuss some aspects of the use of placeholders in games.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/03/placeholder-in-games/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Render Target Changes in XNA Game Studio 4.0</title>
		<link>http://www.sgtconker.com/2010/03/render-target-changes-in-xna-game-studio-4-0/</link>
		<comments>http://www.sgtconker.com/2010/03/render-target-changes-in-xna-game-studio-4-0/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 01:43:45 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[RenderTarget]]></category>
		<category><![CDATA[XNA 4.0]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/03/render-target-changes-in-xna-game-studio-4-0/</guid>
		<description><![CDATA[The Shawn of Hargreaves details the changes to the render target API in XNA Framework 4.0. The high level summary of these changes are:

RenderTarget2D inherits from Texture2D and RenderTargetCube from TextureCube to properly denote the Is-a in the API (no more RenderTarget*.GetTexture()) 
Multiple render targets are set at once without explicitly specifying its index and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/shawnhar/">The Shawn of Hargreaves</a> details the <a href="http://blogs.msdn.com/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx">changes to the render target API in XNA Framework 4.0</a>. The high level summary of these changes are:</p>
<ul>
<li><code>RenderTarget2D</code> inherits from <code>Texture2D</code> and <code>RenderTargetCube</code> from <code>TextureCube</code> to properly denote the Is-a in the API (no more <code>RenderTarget*.GetTexture()</code>) </li>
<li>Multiple render targets are set at once without explicitly specifying its index and all previous set render targets are unset automatically</li>
<li>An optional depth buffer for a render target is now a property of the render target itself, which might be shared across multiple render targets if certain conditions are met </li>
</ul>
<p>For the motivation and details of these changes see <a href="http://blogs.msdn.com/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx">Rendertarget changes in XNA Game Studio 4.0</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/03/render-target-changes-in-xna-game-studio-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: Resolution Independent Rendering in 2D</title>
		<link>http://www.sgtconker.com/2010/03/howto-resolution-independent-rendering-in-2d/</link>
		<comments>http://www.sgtconker.com/2010/03/howto-resolution-independent-rendering-in-2d/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 23:28:22 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/03/howto-resolution-independent-rendering-in-2d/</guid>
		<description><![CDATA[David Amador shares his code to work with a fixed resolution on Windows without having to manage the placement of your renderables yourself. Sez David:
Independent Resolution Rendering?? What’s this all about?
Basically a way of not caring what you resolution is. Ever had Gui elements misplaced because you changed the resolution? Or getting out of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.david-amador.com/">David Amador</a> <a href="http://www.david-amador.com/2010/03/xna-2d-independent-resolution-rendering/">shares his code to work with a fixed resolution on Windows</a> without having to manage the placement of your renderables yourself. Sez David:</p>
<blockquote cite="http://www.david-amador.com/2010/03/xna-2d-independent-resolution-rendering/"><p>Independent Resolution Rendering?? What’s this all about?</p>
<p>Basically a way of not caring what you resolution is. Ever had Gui elements misplaced because you changed the resolution? Or getting out of the screen?</p>
<p>If you are doing a game on Xna just for Xbox360 you can basically use a 1280×720 base resolution and the Xbox will scale the game for you making the proper Letterbox.</p>
<p>But what about on Windows? Or if you use a different resolution on the Xbox? You have to manage that yourself.</p>
<p>I’ve made a small example on how to achieve this.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/03/howto-resolution-independent-rendering-in-2d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Light Pre-Pass</title>
		<link>http://www.sgtconker.com/2010/03/light-pre-pass/</link>
		<comments>http://www.sgtconker.com/2010/03/light-pre-pass/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:14:40 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[light pre pass]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/03/light-pre-pass/</guid>
		<description><![CDATA[Michael Quandt has posted a write up detailing the theory behind his Light Pre-Pass code he released for educational use previously.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://mquandt.com/">Michael Quandt</a> has <a href="http://mquandt.com/blog/2010/03/light-pre-pass-round-2/">posted a write up detailing the theory behind his Light Pre-Pass code</a> he released for educational use previously.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/03/light-pre-pass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distance field based decal rendering</title>
		<link>http://www.sgtconker.com/2010/03/distance-field-based-decal-rendering/</link>
		<comments>http://www.sgtconker.com/2010/03/distance-field-based-decal-rendering/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:28:28 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Shaders]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Distance Field]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/03/distance-field-based-decal-rendering/</guid>
		<description><![CDATA[Rim van Wersch shares an XNA Framework implementation of the Valve paper Improved Alpha-Tested Magnification for Vector Textures and Special Effects, presenting “[a] simple and efficient method […] which allows improved rendering of glyphs composed of curved and linear elements. A distance field is generated from a high resolution image, and then stored into a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xnainfo.com/">Rim van Wersch</a> shares an <a href="http://www.xnainfo.com/content.php?content=44">XNA Framework implementation</a> of the <a href="http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf">Valve paper <em>Improved Alpha-Tested Magnification for Vector Textures and Special Effects</em></a>, presenting <q>“[a] simple and efficient method […] which allows improved rendering of glyphs composed of curved and linear elements. A distance field is generated from a high resolution image, and then stored into a channel of a lower-resolution texture.”</q></p>
<p><a href="http://www.xnainfo.com/content.php?content=44"><img style="border-right-width: 0px; margin: 8px auto 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Distance Field Based Rendering" border="0" alt="Distance Field Based Rendering" src="http://www.sgtconker.com/wp-content/uploads/2010/03/dfcsmall.png" width="200" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/03/distance-field-based-decal-rendering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sgMotion v1.0.0 Released</title>
		<link>http://www.sgtconker.com/2010/02/sgmotion-v1-0-0-released/</link>
		<comments>http://www.sgtconker.com/2010/02/sgmotion-v1-0-0-released/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 14:20:37 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Sunburn]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/02/sgmotion-v1-0-0-released/</guid>
		<description><![CDATA[Tom Looman released his sgMotion library to CodePlex. Says Tom:
sgMotion is an animation library (based on XNAnimation by Bruno Evangelista) and provides full integration with both the Sunburn Engine and the Sunburn Framework.

More at the source.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://coreenginedev.blogspot.com/">Tom Looman</a> released his <a href="http://sgmotion.codeplex.com/">sgMotion library</a> to CodePlex. <a href="http://coreenginedev.blogspot.com/2010/02/sgmotion-v100-released.html">Says Tom</a>:</p>
<blockquote><p>sgMotion is an animation library (based on XNAnimation by Bruno Evangelista) and provides full integration with both the Sunburn Engine and the Sunburn Framework.</p>
</blockquote>
<p>More at the source.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/02/sgmotion-v1-0-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: show drawing items with the mouse in XNA</title>
		<link>http://www.sgtconker.com/2010/02/howto-show-drawing-items-with-the-mouse-in-xna/</link>
		<comments>http://www.sgtconker.com/2010/02/howto-show-drawing-items-with-the-mouse-in-xna/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 21:33:46 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Input]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=1040</guid>
		<description><![CDATA[Jakob Krarup answers an unidentified question in the XNA Community Forums about “how to give a player the possibility of adding things to a game, and storing the position of the added images”.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://xnafan.net/">Jakob Krarup</a> answers an unidentified question in the <a href="http://forums.xna.com/forums/">XNA Community Forums</a> about “<a href="http://xnafan.net/?p=196">how to give a player the possibility of adding things to a game, and storing the position of the added images</a>”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/02/howto-show-drawing-items-with-the-mouse-in-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geodesic Grid, Part 3</title>
		<link>http://www.sgtconker.com/2010/02/geodesic-grid-part-3/</link>
		<comments>http://www.sgtconker.com/2010/02/geodesic-grid-part-3/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:48:16 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Geodesic Grid]]></category>
		<category><![CDATA[Geodesic Truncated Icosahredron]]></category>
		<category><![CDATA[Icosahedron]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/02/geodisc-grid-part-3/</guid>
		<description><![CDATA[Brian Schaeflein published part 3 of his Geodesic Truncated IcosahedronsGrid series, covering his design decisions about how to store the cells to aid pathfindig.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://jebuscoding.wordpress.com/">Brian Schaeflein</a> published <a href="http://jebuscoding.wordpress.com/2010/02/02/geodesic-grid-part-3/">part 3 of his Geodesic <strike>Truncated Icosahedrons</strike>Grid</a> series, covering his design decisions about how to store the cells to aid pathfindig.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/02/geodesic-grid-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geodesic Grid</title>
		<link>http://www.sgtconker.com/2010/01/geodesic-grid/</link>
		<comments>http://www.sgtconker.com/2010/01/geodesic-grid/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 13:17:46 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Geodisc Truncated Icosahedron]]></category>
		<category><![CDATA[Icosahedron]]></category>
		<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/01/geodisc-truncated-icosahedron/</guid>
		<description><![CDATA[ Brian “JeBuS” I-Don’t-Know-His-Last-NameSchaeflein published a multi part article about Geodesic Truncated Icosahedron (part 2 is here, part 3 is pending) in C# and the XNA Framework. Geodisc Truncated Icosahedrons are “a shape made of hexagons and pentagons” that “has as many faces as needed to make it as spherical as needed, like a Geodesic [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Geodisc Truncated Icosahedron" border="0" alt="Geodesic Truncated Icosahedron" align="right" src="http://www.sgtconker.com/wp-content/uploads/2010/01/geodisctruncatedicosahedron.gif" width="120" height="120" /> <a href="http://jebuscoding.wordpress.com/">Brian “JeBuS” <del>I-Don’t-Know-His-Last-Name</del>Schaeflein</a><em></em> published a multi part article about <a href="http://jebuscoding.wordpress.com/2010/01/28/geodesic-grid-part-1/">Geodesic Truncated Icosahedron</a> (<a href="http://jebuscoding.wordpress.com/2010/01/30/geodesic-grid-part-2/">part 2 is here</a>, part 3 is pending) in C# and the XNA Framework. Geodisc Truncated Icosahedrons are “a shape made of hexagons and pentagons” that “has as many faces as needed to make it as spherical as needed, like a <a href="http://en.wikipedia.org/wiki/Geodome">Geodesic Dome</a>”.</p>
<p>Head over and <a href="http://jebuscoding.wordpress.com/2010/01/30/geodesic-truncated-icosahedron-part-2/">grok the code</a> for fun and profit.</p>
<p>Also note his <a href="http://jebuscoding.wordpress.com/2010/01/28/geodesic-truncated-icosahedron-part-1/">disclaimer in the first post</a>:</p>
<blockquote cite="http://jebuscoding.wordpress.com/2010/01/28/geodesic-truncated-icosahedron-part-1/"><p>I don’t claim that my way of programming is the best way. As far as design patterns and whatnot go, my way works for me, and the code gets the job done. If anyone can offer a more “elegant” approach to anything I’m doing, I’m all ears.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/01/geodesic-grid/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
