<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.xna.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Direct3D</title><link>http://forums.xna.com/forums/27.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 0.0)</generator><item><title>Windows 7 Direct3D9: (ERROR) </title><link>http://forums.xna.com/forums/thread/253343.aspx</link><pubDate>Fri, 20 Nov 2009 02:51:41 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:253343</guid><dc:creator>brucezhou</dc:creator><slash:comments>3</slash:comments><comments>http://forums.xna.com/forums/thread/253343.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=253343</wfw:commentRss><description>I am running a application on Windows 7.  It does not work and gives me the messages:&lt;br /&gt;
Direct3D9: (ERROR) :Could not create exclusive mode mutex. exiting&lt;br /&gt;
The thread 0x95C has exited with code -1073741502 (0xC0000142).&lt;br /&gt;
&lt;br /&gt;
I had download and installed the lasted directx 9c from microsoft website!&lt;br /&gt;
 VC++ 6 and sp6&lt;br /&gt;
&lt;br /&gt;
How can I do?&lt;br /&gt;
&lt;br /&gt;
Thanks for all!</description></item><item><title>DirectX shader compiler can't unroll it's loops</title><link>http://forums.xna.com/forums/thread/251236.aspx</link><pubDate>Sat, 14 Nov 2009 04:29:30 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:251236</guid><dc:creator>Kayamon</dc:creator><slash:comments>1</slash:comments><comments>http://forums.xna.com/forums/thread/251236.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=251236</wfw:commentRss><description>The attached HLSL shader does not compile when using the shader compiler from the August 2009 DirectX SDK.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border:1px solid #7f9db9;overflow:auto;background-color:white;font-family:courier new;font-size:11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width:0px;border-bottom:0px solid #eeeeee;margin:2px 0px;width:99%;border-collapse:collapse;background-color:#ffffff;"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;//--&amp;nbsp;TEST.HLSL&amp;nbsp;-------------------&amp;nbsp;&amp;lt;snip&amp;gt;&amp;nbsp;------------------------&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Compiling&amp;nbsp;with&amp;nbsp;this&amp;nbsp;command&amp;nbsp;line:&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;fxc&amp;nbsp;test.hlsl&amp;nbsp;/T&amp;nbsp;ps_3_0&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Fails&amp;nbsp;with&amp;nbsp;this&amp;nbsp;message:&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Microsoft&amp;nbsp;(R)&amp;nbsp;Direct3D&amp;nbsp;Shader&amp;nbsp;Compiler&amp;nbsp;9.27.952.3012&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Copyright&amp;nbsp;(C)&amp;nbsp;Microsoft&amp;nbsp;Corporation&amp;nbsp;2002-2009.&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;D:\test.hlsl(18,16):&amp;nbsp;error&amp;nbsp;X3531:&amp;nbsp;Can&amp;#39;t&amp;nbsp;unroll&amp;nbsp;loops&amp;nbsp;marked&amp;nbsp;with&amp;nbsp;loop&amp;nbsp;attribute&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;D:\test.hlsl(14,16):&amp;nbsp;error&amp;nbsp;X3531:&amp;nbsp;Can&amp;#39;t&amp;nbsp;unroll&amp;nbsp;loops&amp;nbsp;marked&amp;nbsp;with&amp;nbsp;loop&amp;nbsp;attribute&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;compilation&amp;nbsp;failed;&amp;nbsp;no&amp;nbsp;code&amp;nbsp;produced&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;sampler2D&amp;nbsp;smp0&amp;nbsp;:&amp;nbsp;register(s0);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;sampler2D&amp;nbsp;smp1&amp;nbsp;:&amp;nbsp;register(s1);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;sampler2D&amp;nbsp;smp2&amp;nbsp;:&amp;nbsp;register(s2);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;float4&amp;nbsp;fetch(&amp;nbsp;sampler2D&amp;nbsp;tex,&amp;nbsp;float2&amp;nbsp;uv&amp;nbsp;)&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;tex2Dlod(&amp;nbsp;tex,&amp;nbsp;float4(&amp;nbsp;uv.xy,&amp;nbsp;0,&amp;nbsp;0&amp;nbsp;)&amp;nbsp;);&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;float4&amp;nbsp;main()&amp;nbsp;:&amp;nbsp;COLOR&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[loop]&amp;nbsp;&lt;span style="color:blue;"&gt;while&lt;/span&gt;&lt;span style="font-size:11px;"&gt;(&amp;nbsp;result&amp;nbsp;&amp;lt;&amp;nbsp;1&amp;nbsp;)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float2&amp;nbsp;nodeIndex&amp;nbsp;=&amp;nbsp;float2(result,0);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[loop]&amp;nbsp;&lt;span style="color:blue;"&gt;while&lt;/span&gt;&lt;span style="font-size:11px;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;true&lt;/span&gt;&lt;span style="font-size:11px;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float2&amp;nbsp;nodeChildren&amp;nbsp;=&amp;nbsp;fetch(&amp;nbsp;smp2,&amp;nbsp;nodeIndex&amp;nbsp;).xy;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float2&amp;nbsp;nodeInfo&amp;nbsp;=&amp;nbsp;fetch(&amp;nbsp;smp1,&amp;nbsp;nodeIndex&amp;nbsp;).xy;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[flatten]&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;(&amp;nbsp;nodeChildren.x&amp;nbsp;==&amp;nbsp;0&amp;nbsp;)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;break&lt;/span&gt;&lt;span style="font-size:11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nodeIndex&amp;nbsp;+=&amp;nbsp;nodeChildren;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result&amp;nbsp;+=&amp;nbsp;fetch(&amp;nbsp;smp0,&amp;nbsp;nodeIndex&amp;nbsp;).x;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;result.xxxx;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;</description></item><item><title>imposters</title><link>http://forums.xna.com/forums/thread/252804.aspx</link><pubDate>Wed, 18 Nov 2009 19:54:27 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:252804</guid><dc:creator>Btrix</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/252804.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=252804</wfw:commentRss><description>hi,.&lt;div&gt;I would like to create basic imposters that i can use to render far trees and later use to make volumetric clouds. I&amp;#39;ve read somethings. But they only explain the basic idea about it, which is pretty simple,&lt;/div&gt;&lt;div&gt;just render a model( or whatever you want in a texture that is rendered on a face) depenending on the angle chance they make a new texture so we can use them in many frames what seriously speedsup the framerate. I found this interesting article &lt;a href="http://www.gamasutra.com/features/20060105/davis_01.shtml"&gt;http://www.gamasutra.com/features/20060105/davis_01.shtml&lt;/a&gt; but it is written in c++.&lt;/div&gt;&lt;div&gt;But I don&amp;#39;t have that much knowledge about shaders so who could i implement this the best way? all hints or information is Welcome.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description></item><item><title>Need lots of information to vertex shader</title><link>http://forums.xna.com/forums/thread/252545.aspx</link><pubDate>Tue, 17 Nov 2009 23:06:17 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:252545</guid><dc:creator>matieman</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/252545.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=252545</wfw:commentRss><description>I am planning to implement photon mapping entirely on the vertex shader by representing each photon as a vertex, and drawing these vertices as points on a photon map texture.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The thing is, for the calculations to find where the photons hit the scene, I will need to supply the scene information to the vertex shader. This may sound impossible, but the scene is made of cubes aligned to a grid (think infiniminer), so simpler than triangles. I need to pass a large enough portion of these cubes to the vertex shader somehow, and it needs to be fast to access (as I need to find where rays intersect the scene.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Three things I was thinking of:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) as a shader parameter:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;it&amp;#39;s fast, but very limited, I would have to compress the data a lot to try and fit it into 250 quadfloats.&lt;/div&gt;&lt;div&gt;2) as a volumetric texture:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;extremely fill rate intensive, but I can fit a lot of information into it. probably the best way to do it.&lt;/div&gt;&lt;div&gt;3) as a second vertex stream:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;maybe hack the hardware instancing technique a bit and try to get the scene info on a second vertex stream? is this possible?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What is the best way to do it?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any other ideas?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description></item><item><title>[SOLVED] Restoring world space positions from linear depth buffer</title><link>http://forums.xna.com/forums/thread/252539.aspx</link><pubDate>Tue, 17 Nov 2009 22:55:12 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:252539</guid><dc:creator>Kjetil</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/252539.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=252539</wfw:commentRss><description>Hi!&lt;br /&gt;
I tried posting this problem on Gamedev earlier, though it didn&amp;#39;t get a lot of attention, so I hope it&amp;#39;s not bad karma to post it here as well. The more readers the merrier :)&lt;br /&gt;
&lt;br /&gt;
So I&amp;#39;m trying to reconstruct the world space postion from a linear depth buffer (depths between [0,1] in view space) in my deferred renderer for a bounding volume (namely a light sphere). I know this topic has been covered before in a few threads, though these have focused on the problem when using fullscreen quads, and not bounding volumes. Also, MJP has posted a nice technique in his blog &lt;a href="http://mynameismjp.wordpress.com/2009/05/05/reconstructing-position-from-depth-continued/"&gt;here&lt;/a&gt;, but I don&amp;#39;t really understand it and can&amp;#39;t get it working. MJP proposes this method to get the view space position from the depth buffer:&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
float3 VSPositionFromDepth(float2 vTexCoord, float3 vPositionVS) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
// Calculate the frustum ray using the view-space position.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
// farCip is the distance to the camera&amp;#39;s far clipping plane.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
// Negating the Z component only necessary for right-handed coordinates&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
float3 vFrustumRayVS = vPositionVS.xyz * (farClip/-vPositionVS.z);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
return tex2D(depthSampler, vTexCoord).x * vFrustumRayVS; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
So I create my texcoords, which after a litte cpu-testing/debugging seems to work just fine, like this:&amp;nbsp; &lt;br /&gt;
input.ssPos.xy /= input.ssPos.w;&lt;br /&gt;
//Setup texture coordinates, transforming from [-1,1]-&amp;gt;[1,-1] to [0,1]-&amp;gt;[1,0] &lt;br /&gt;
float2 tex = (0.5f * (float2(input.ssPos.x, -input.ssPos.y) + 1)) - halfPixel;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
where ssPos is output from the vertex shader computed normally as:&amp;nbsp; &lt;br /&gt;
output.ssPos = mul(input.pos, WorldViewProj);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Okay...so after having run:&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
//View space position &lt;br /&gt;
float3 wsPos = VSPositionFromDepth(tex, input.vsPos);&amp;nbsp; &lt;br /&gt;
//Transform to world space &lt;br /&gt;
float3 wsPos = mul(wsPos, InvertView);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
the shader still produces incorrect results. I don&amp;#39;t see why wsPos is incorrect, which is mysterious to me. Any thoughts on how to approach the problem?&lt;br /&gt;</description></item><item><title>Problem solved</title><link>http://forums.xna.com/forums/thread/252388.aspx</link><pubDate>Tue, 17 Nov 2009 16:24:20 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:252388</guid><dc:creator>Kode527</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/252388.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=252388</wfw:commentRss><description>No problem anymore, My program just didn&amp;#39;t close because I was trying to release index buffer I didn&amp;#39;t have.&lt;br /&gt;</description></item><item><title>How to handle Lock Screen ?</title><link>http://forums.xna.com/forums/thread/252253.aspx</link><pubDate>Tue, 17 Nov 2009 06:13:06 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:252253</guid><dc:creator>autumn</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/252253.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=252253</wfw:commentRss><description>I have app written in C++ with DirectX9.0c, i found a problem, when I lock the screen by press Ctrl + Alt + Del, and return back, i found there is nothing in the app window! only left me the background color, how to handle this?&lt;br /&gt;
thanks in advance!</description></item><item><title>About vertex normals</title><link>http://forums.xna.com/forums/thread/251673.aspx</link><pubDate>Sun, 15 Nov 2009 16:51:41 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:251673</guid><dc:creator>Kode527</dc:creator><slash:comments>6</slash:comments><comments>http://forums.xna.com/forums/thread/251673.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=251673</wfw:commentRss><description>Can I set more than just one normal for one vertex?&lt;br /&gt;
For example .obj format has 3 normals per face. How do I convert them to my FVF, which is (XYZ|NORMAL|COLOR).&lt;br /&gt;
If I can, how do I tell the device which one to use when rendering?&lt;br /&gt;</description></item><item><title>Heightmap rendering issue</title><link>http://forums.xna.com/forums/thread/251809.aspx</link><pubDate>Mon, 16 Nov 2009 00:51:20 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:251809</guid><dc:creator>Qzole</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/251809.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=251809</wfw:commentRss><description>Hi everyone, I have a bit of a problem which is driving me crazy.&lt;br /&gt;
I wrote a heightmap class, it generally works good, but it&amp;#39;s littered with weird shading artifacts, and I have absolutely no idea what can be the problem.&lt;br /&gt;
&lt;br /&gt;
Enough talk, let&amp;#39;s see the pictures.&lt;br /&gt;
The reference picture from wikipedia:&lt;br /&gt;
&lt;a href="http://upload.wikimedia.org/wikipedia/commons/2/2f/Heightmap_rendered.png"&gt;http://upload.wikimedia.org/wikipedia/commons/2/2f/Heightmap_rendered.png&lt;/a&gt;&lt;br /&gt;
And my scene, same heightmap, nearly same camera / light position:&lt;br /&gt;
&lt;a href="http://img4.imageshack.us/img4/1699/myterrain.png"&gt;http://img4.imageshack.us/img4/1699/myterrain.png&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ok, you might say that it looks ok, but if you look closer, you can see that there are many weird rectangles in the image, as if it would be converted into a low quality jpeg (which, almost nobody who I know would notice from this distance except me &amp;#39;-.-)&lt;br /&gt;
&lt;br /&gt;
So I looked closer what could be the problem, and here is a close up with a vertex shader:&lt;br /&gt;
&lt;a href="http://img690.imageshack.us/img690/2888/vertexshading.png"&gt;http://img690.imageshack.us/img690/2888/vertexshading.png&lt;/a&gt;&lt;br /&gt;
Uh well, yeah ugly linear interplorations of the color, I know, let&amp;#39;s put diffuse intensity calculation into the pixelshader:&lt;br /&gt;
&lt;a href="http://img35.imageshack.us/img35/8674/pixelshading.png"&gt;http://img35.imageshack.us/img35/8674/pixelshading.png&lt;/a&gt;&lt;br /&gt;
uh,... what? I am kinda new to shader programming, and I might not be used to look at things this close up, but shouldn&amp;#39;t there be a change aside from the contour of the darkest parts?&lt;br /&gt;
Maybe there is something up with the normals?&lt;br /&gt;
&lt;a href="http://img513.imageshack.us/img513/8238/normals.png"&gt;http://img513.imageshack.us/img513/8238/normals.png&lt;/a&gt;&lt;br /&gt;
Well, alright it looks like a mess, but they don&amp;#39;t seem to be off...&lt;br /&gt;
&lt;br /&gt;
The wierdest thing is about the triangles near the camera, the ones that all 3 of their vertices are somewhat dark, but there is one edge that is bright :S&lt;br /&gt;
EDIT: looked at them with the eyedrop tool in photoshop, and the color is correctly interpolated linearly so it isn&amp;#39;t brigther, altough still I thought that if I use pixel shading, and the normal is interpolated, the colors won&amp;#39;t look like this.&lt;br /&gt;
&lt;br /&gt;
So I&amp;#39;m out of ideas what could be the problem, I really don&amp;#39;t know.&lt;br /&gt;
&lt;br /&gt;
There was also a specular calculation, which changed depending if it was in the VS or PS, but I took it out for simplicity&amp;#39;s sake.&lt;br /&gt;
&lt;br /&gt;
Here is the hlsl code for the pixelshader:&lt;br /&gt;
&lt;div style="border:1px solid #7f9db9;overflow:auto;background-color:white;height:250px;font-family:courier new;font-size:11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width:0px;border-bottom:0px solid #eeeeee;margin:2px 0px;width:99%;border-collapse:collapse;background-color:#ffffff;"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt;shared&amp;nbsp;float4x4&amp;nbsp;World;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;shared&amp;nbsp;float4x4&amp;nbsp;View;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;shared&amp;nbsp;float4x4&amp;nbsp;Projection;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;shared&amp;nbsp;float3&amp;nbsp;cameraPosition;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:blue;"&gt;struct&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;VS_Output&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;Position&amp;nbsp;:&amp;nbsp;POSITION;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;WorldNormal&amp;nbsp;:&amp;nbsp;TEXCOORD0;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;WorldPosition&amp;nbsp;:&amp;nbsp;TEXCOORD1;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;};&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;VS_Output&amp;nbsp;PerPixelDiffuseVS(&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;position&amp;nbsp;:&amp;nbsp;POSITION,&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;normal&amp;nbsp;:&amp;nbsp;NORMAL&amp;nbsp;)&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VS_Output&amp;nbsp;output;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//generate&amp;nbsp;the&amp;nbsp;World-View-Projection&amp;nbsp;matrix&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4x4&amp;nbsp;wvp&amp;nbsp;=&amp;nbsp;mul(mul(World,&amp;nbsp;View),&amp;nbsp;Projection);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//transform&amp;nbsp;the&amp;nbsp;input&amp;nbsp;position&amp;nbsp;to&amp;nbsp;the&amp;nbsp;output&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Position&amp;nbsp;=&amp;nbsp;mul(float4(position,&amp;nbsp;1.0),&amp;nbsp;wvp);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.WorldNormal&amp;nbsp;=&amp;nbsp;&amp;nbsp;mul(normal,&amp;nbsp;World);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;worldPosition&amp;nbsp;=&amp;nbsp;&amp;nbsp;mul(float4(position,&amp;nbsp;1.0),&amp;nbsp;World);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.WorldPosition&amp;nbsp;=&amp;nbsp;worldPosition&amp;nbsp;/&amp;nbsp;worldPosition.w;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//return&amp;nbsp;the&amp;nbsp;output&amp;nbsp;structure&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;output;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;float4&amp;nbsp;DiffuseAndPhongPS(VS_Output&amp;nbsp;input)&amp;nbsp;:&amp;nbsp;COLOR&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;directionToLight&amp;nbsp;=&amp;nbsp;normalize(float3(0,&amp;nbsp;1,&amp;nbsp;1));&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;diffuseIntensity&amp;nbsp;=&amp;nbsp;saturate(&amp;nbsp;dot(directionToLight,&amp;nbsp;input.WorldNormal));&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;diffuse&amp;nbsp;=&amp;nbsp;float4(0.7,&amp;nbsp;0.7,&amp;nbsp;0.7,&amp;nbsp;1)&amp;nbsp;*&amp;nbsp;diffuseIntensity;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//all&amp;nbsp;color&amp;nbsp;components&amp;nbsp;are&amp;nbsp;summed&amp;nbsp;in&amp;nbsp;the&amp;nbsp;pixel&amp;nbsp;shader&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;color&amp;nbsp;=&amp;nbsp;diffuse&amp;nbsp;+&amp;nbsp;float4(0.15,&amp;nbsp;0.15,&amp;nbsp;0.15,&amp;nbsp;15);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color.a&amp;nbsp;=&amp;nbsp;1.0;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;color;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;technique&amp;nbsp;PerPixelDiffuseAndPhong&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pass&amp;nbsp;P0&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//set&amp;nbsp;the&amp;nbsp;VertexShader&amp;nbsp;state&amp;nbsp;to&amp;nbsp;the&amp;nbsp;basic&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//vertex&amp;nbsp;shader&amp;nbsp;that&amp;nbsp;will&amp;nbsp;set&amp;nbsp;up&amp;nbsp;inputs&amp;nbsp;for&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//the&amp;nbsp;pixel&amp;nbsp;shader&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VertexShader&amp;nbsp;=&amp;nbsp;compile&amp;nbsp;vs_2_0&amp;nbsp;PerPixelDiffuseVS();&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//set&amp;nbsp;the&amp;nbsp;PixelShader&amp;nbsp;state&amp;nbsp;to&amp;nbsp;the&amp;nbsp;complete&amp;nbsp;Phong&amp;nbsp;Shading&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//implementation&amp;nbsp;of&amp;nbsp;the&amp;nbsp;pixel&amp;nbsp;shader&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PixelShader&amp;nbsp;=&amp;nbsp;compile&amp;nbsp;ps_2_0&amp;nbsp;DiffuseAndPhongPS();&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
And my normal calculation (vertex2Array is for drawing the green normal lines):&lt;br /&gt;
&lt;div style="border:1px solid #7f9db9;overflow:auto;background-color:white;height:231px;font-family:courier new;font-size:11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width:0px;border-bottom:0px solid #eeeeee;margin:2px 0px;width:99%;border-collapse:collapse;background-color:#ffffff;"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;RecalculateNormals()&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;for&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;y&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;y&amp;nbsp;&amp;lt;&amp;nbsp;heightMapTexture.Height;&amp;nbsp;++y)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;for&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;x&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;x&amp;nbsp;&amp;lt;&amp;nbsp;heightMapTexture.Width;&amp;nbsp;++x)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Vector3&amp;nbsp;left&amp;nbsp;=&amp;nbsp;(x&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;?&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x&amp;nbsp;-&amp;nbsp;1].Position&amp;nbsp;:&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Vector3&amp;nbsp;right&amp;nbsp;=&amp;nbsp;(x&amp;nbsp;&amp;lt;&amp;nbsp;heightMapTexture.Width&amp;nbsp;-&amp;nbsp;1)&amp;nbsp;?&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x&amp;nbsp;+&amp;nbsp;1].Position&amp;nbsp;:&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Vector3&amp;nbsp;up&amp;nbsp;=&amp;nbsp;(y&amp;nbsp;&amp;lt;&amp;nbsp;heightMapTexture.Height&amp;nbsp;-&amp;nbsp;1)&amp;nbsp;?&amp;nbsp;vertexArray[(y&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position&amp;nbsp;:&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Vector3&amp;nbsp;down&amp;nbsp;=&amp;nbsp;(y&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;?&amp;nbsp;vertexArray[(y&amp;nbsp;-&amp;nbsp;1)&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position&amp;nbsp;:&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Normal&amp;nbsp;=&amp;nbsp;Vector3.Normalize(Vector3.Cross(Vector3.Normalize(right-left),&amp;nbsp;Vector3.Normalize(up-down)));&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vertex2Array[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;*&amp;nbsp;2&amp;nbsp;+&amp;nbsp;x&amp;nbsp;*&amp;nbsp;2]&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;VertexPositionNormalTexture(vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position,&amp;nbsp;Vector3.Up,&amp;nbsp;Vector2.One);&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vertex2Array[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;*&amp;nbsp;2&amp;nbsp;+&amp;nbsp;x&amp;nbsp;*&amp;nbsp;2&amp;nbsp;+&amp;nbsp;1]&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;VertexPositionNormalTexture(vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Position&amp;nbsp;+&amp;nbsp;vertexArray[y&amp;nbsp;*&amp;nbsp;heightMapTexture.Width&amp;nbsp;+&amp;nbsp;x].Normal&amp;nbsp;*&amp;nbsp;0.05f,&amp;nbsp;Vector3.Up,&amp;nbsp;Vector2.One);&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
I tried 3 other ways to calculate the normals, and all had the same results...&lt;br /&gt;
&lt;br /&gt;
I desperately need help, thank you in advance with any advice.&lt;br /&gt;</description></item><item><title>How to disable 3D device caps ?</title><link>http://forums.xna.com/forums/thread/248441.aspx</link><pubDate>Fri, 06 Nov 2009 18:48:32 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:248441</guid><dc:creator>Kroah</dc:creator><slash:comments>1</slash:comments><comments>http://forums.xna.com/forums/thread/248441.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=248441</wfw:commentRss><description>Hello everybody!&lt;br /&gt;
&lt;br /&gt;
Here&amp;#39;s my problem:&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m currently developping a game using a 3D device (GeForce 7600GS) which has some 3D capabilities. This card runs my game flawlessly.&lt;br /&gt;
Some beta testers are testing my game with different 3D devices and old cards can&amp;#39;t run my game because they are missing some caps.&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m updating my game to make those older 3D devices compatible.&lt;br /&gt;
Unfortunately, i can only test my game with my 3D device and i don&amp;#39;t want to release the new version to the beta testers without having tested it before on older 3D devices.&lt;br /&gt;
&lt;br /&gt;
So my question is:&lt;br /&gt;
Do you know if there&amp;#39;s a way to disable some capabilities of my 3D device to check if the new version of my game fix the problem of older devices?&lt;br /&gt;
&lt;br /&gt;
In my case, the capabilities are D3DPTEXTURECAPS_POW2 (SupportsPower2 in C#) and D3DPTEXTURECAPS_NONPOW2CONDITIONAL (SupportsNonPower2Conditional in C#).&lt;br /&gt;
&lt;br /&gt;
If i can disable both capabilities, i will be sure i wouldn&amp;#39;t have missed something in my code.&lt;br /&gt;
&lt;br /&gt;
Thank you for your help&lt;br /&gt;</description></item><item><title>Multidimensional Array for Texture3D.SetData&lt;T[]&gt;(..)</title><link>http://forums.xna.com/forums/thread/251649.aspx</link><pubDate>Sun, 15 Nov 2009 15:14:39 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:251649</guid><dc:creator>ab2</dc:creator><slash:comments>1</slash:comments><comments>http://forums.xna.com/forums/thread/251649.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=251649</wfw:commentRss><description>(How) Can I use multidimensional C#-Arrays like
&lt;pre&gt;
&amp;quot;arr[5,6,7]&amp;quot;&lt;/pre&gt;
or
&lt;pre&gt;&amp;quot;arr[5][6][7]&amp;quot;&lt;/pre&gt;
&lt;br /&gt;
for Texture3D.SetData&amp;lt;T[]&amp;gt;(..)-method?&lt;br /&gt;
&lt;br /&gt;
Somehow it seems to be possible but I can not figure it out how.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The compiler tells me that there are generic types for SetData&lt;br /&gt;
available but if I try to use an multidimensional-array then there&lt;br /&gt;
&amp;nbsp;are System.ValueType - errors.&lt;br /&gt;
&lt;br /&gt;
Would&amp;#39;nt it be possible to use an multidimensional array like [][][] or [,,] that is accepted&lt;br /&gt;
somehow by the generic-SetData&amp;lt;&amp;gt;() ?&lt;br /&gt;
&lt;br /&gt;
Thanks for some words about this.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;cheers &lt;br /&gt;</description></item><item><title>How to render DirectX9 on my CLR customed control?</title><link>http://forums.xna.com/forums/thread/250087.aspx</link><pubDate>Wed, 11 Nov 2009 11:05:59 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:250087</guid><dc:creator>akira32</dc:creator><slash:comments>4</slash:comments><comments>http://forums.xna.com/forums/thread/250087.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=250087</wfw:commentRss><description>My CLR project have many Split Containers, one Container has a customed user control.&lt;br /&gt;
I want to Render a cylinder with DirectX9 on the user control.&lt;br /&gt;
Could somebody tell how to get windows handle of user control or render with DirectX?</description></item><item><title>HLSL (sm2.0b) LOD</title><link>http://forums.xna.com/forums/thread/251308.aspx</link><pubDate>Sat, 14 Nov 2009 12:26:14 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:251308</guid><dc:creator>Orwell</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/251308.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=251308</wfw:commentRss><description>&lt;div style="border:1px solid #7f9db9;overflow:auto;background-color:white;font-family:courier new;font-size:11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width:0px;border-bottom:0px solid #eeeeee;margin:2px 0px;width:99%;border-collapse:collapse;background-color:#ffffff;"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;#define&amp;nbsp;MAX_ALLOWED_DISTANCE_FLORA&amp;nbsp;200.0f&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;VS_OUTPUT_FLORA&amp;nbsp;vs_flora(uniform&amp;nbsp;&lt;span style="color:blue;"&gt;const&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;PcfMode,&amp;nbsp;float4&amp;nbsp;vPosition&amp;nbsp;:&amp;nbsp;POSITION,&amp;nbsp;float4&amp;nbsp;vColor&amp;nbsp;:&amp;nbsp;COLOR,&amp;nbsp;float2&amp;nbsp;tc&amp;nbsp;:&amp;nbsp;TEXCOORD0)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VS_OUTPUT_FLORA&amp;nbsp;Out&amp;nbsp;=&amp;nbsp;(VS_OUTPUT_FLORA)0;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;vWorldPos&amp;nbsp;=&amp;nbsp;(float4)mul(matWorld,vPosition);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;fDistance&amp;nbsp;=&amp;nbsp;distance(vCameraPos,vWorldPos);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Distance&amp;nbsp;between&amp;nbsp;Camera&amp;nbsp;and&amp;nbsp;Vertex&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;(fDistance&amp;nbsp;&amp;lt;&amp;nbsp;MAX_ALLOWED_DISTANCE_FLORA)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;Near&amp;nbsp;the&amp;nbsp;camera&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.Pos&amp;nbsp;=&amp;nbsp;mul(matWorldViewProj,&amp;nbsp;vPosition);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.Color&amp;nbsp;=&amp;nbsp;vColor&amp;nbsp;*&amp;nbsp;(vAmbientColor&amp;nbsp;+&amp;nbsp;vSunColor&amp;nbsp;*&amp;nbsp;0.06f);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.Tex0&amp;nbsp;=&amp;nbsp;tc;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.SunLight&amp;nbsp;=&amp;nbsp;(vSunColor*0.34f)*vMaterialColor*vColor;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;(PcfMode&amp;nbsp;!=&amp;nbsp;PCF_NONE)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float4&amp;nbsp;ShadowPos&amp;nbsp;=&amp;nbsp;mul(matSunViewProj,vWorldPos);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.ShadowTexCoord&amp;nbsp;=&amp;nbsp;ShadowPos;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.ShadowTexCoord.z&amp;nbsp;/=&amp;nbsp;ShadowPos.w;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.ShadowTexCoord.w&amp;nbsp;=&amp;nbsp;1.0f;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.TexelPos&amp;nbsp;=&amp;nbsp;Out.ShadowTexCoord&amp;nbsp;*&amp;nbsp;fShadowMapSize;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float3&amp;nbsp;P&amp;nbsp;=&amp;nbsp;mul(matWorldView,vPosition);&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.Fog&amp;nbsp;=&amp;nbsp;get_fog_amount(length(P));&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style="color:blue;"&gt;else&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;NOT&amp;nbsp;near&amp;nbsp;the&amp;nbsp;camera&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Out.Color.a&amp;nbsp;=&amp;nbsp;0.0f;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//&amp;nbsp;Optional,&amp;nbsp;to&amp;nbsp;remove&amp;nbsp;the&amp;nbsp;greyish&amp;nbsp;goo&amp;nbsp;left&amp;nbsp;over&amp;nbsp;by&amp;nbsp;not&amp;nbsp;Outputting&amp;nbsp;anything&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;//&amp;nbsp;There&amp;#39;s&amp;nbsp;only&amp;nbsp;one&amp;nbsp;problem:&amp;nbsp;vertices&amp;nbsp;which&amp;nbsp;are&amp;nbsp;skipped&amp;nbsp;stay&amp;nbsp;at&amp;nbsp;their&amp;nbsp;origin&amp;nbsp;(middle&amp;nbsp;of&amp;nbsp;the&amp;nbsp;screen),&amp;nbsp;while&amp;nbsp;calculated&amp;nbsp;vertices&amp;nbsp;remain&amp;nbsp;on&amp;nbsp;their&amp;nbsp;proper&amp;nbsp;spot...&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;Out;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:green;"&gt;//&amp;nbsp;the&amp;nbsp;lines&amp;nbsp;connecting&amp;nbsp;those&amp;nbsp;vertices&amp;nbsp;will&amp;nbsp;then&amp;nbsp;start&amp;nbsp;tearing&amp;nbsp;across&amp;nbsp;the&amp;nbsp;screen&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;} &lt;br /&gt;
            &lt;br /&gt;
            As the comments say, it&amp;#39;s not the best solution to make rendering go faster at a distance...&lt;br /&gt;
            &lt;br /&gt;
            Anyone know of a better approach?&lt;br /&gt;
            &lt;br /&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;</description></item><item><title>Hello, just started d3d programming</title><link>http://forums.xna.com/forums/thread/250702.aspx</link><pubDate>Thu, 12 Nov 2009 18:33:37 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:250702</guid><dc:creator>Kode527</dc:creator><slash:comments>5</slash:comments><comments>http://forums.xna.com/forums/thread/250702.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=250702</wfw:commentRss><description>Hi!&lt;br /&gt;
Allright, this seems to be some kind of direct3d forum. If I&amp;#39;m right I can ask for help here?&lt;br /&gt;
Started programming with direct3d and c++ about half a week ago, and what I have done is movable camera and 2 cubes.&lt;br /&gt;
Here is couple of questions I&amp;#39;ve been looking answer for:&lt;br /&gt;
&lt;br /&gt;
The cubes I&amp;#39;ve created are stored in 2 vertexbuffers(6 verticles on each) and 2 indexbuffers&lt;br /&gt;
So is it the best way to create objects by using custom vertex FVF format with coordinates and so on?&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;ve been thinking about textures too.&lt;br /&gt;
I think its just storing the texture coordinates to the FVF and then something like somedevice-&amp;gt;setTexture() or something... messing with TextureStages and so on.&lt;br /&gt;
Am I right?&lt;br /&gt;
But if there is 1 set of texture coordinates per vertex and theres something like 3 faces that has the vertex, how do you map the textures then?&lt;br /&gt;
Its 3 faces with textures, but only 1 set of coordinates.&lt;br /&gt;
&lt;br /&gt;
How about if I have multiple textures, do I just set the texture again every time I need to use another one?&lt;br /&gt;
&lt;br /&gt;</description></item><item><title>Supported file format(s)</title><link>http://forums.xna.com/forums/thread/243552.aspx</link><pubDate>Mon, 26 Oct 2009 10:58:58 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:243552</guid><dc:creator>Jonathan Archer</dc:creator><slash:comments>5</slash:comments><comments>http://forums.xna.com/forums/thread/243552.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=243552</wfw:commentRss><description>Hi there!&lt;br /&gt;
&lt;br /&gt;
Is it correct, that .x is the only out-of-the-box file format that is supported by D3D9? I also have seen the obj example in the samples. But are there other formats directly supported?&lt;br /&gt;
&lt;br /&gt;
And what about D3D10?&lt;br /&gt;
&lt;br /&gt;
Thanks a lot in advance! &lt;br /&gt;</description></item><item><title>Antialiasing-State of the graphic card before the initialization of the device</title><link>http://forums.xna.com/forums/thread/250088.aspx</link><pubDate>Wed, 11 Nov 2009 11:06:18 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:250088</guid><dc:creator>shine47</dc:creator><slash:comments>1</slash:comments><comments>http://forums.xna.com/forums/thread/250088.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=250088</wfw:commentRss><description>Is there a possibility to find out if the graphic card is using antialiasing (and what stage) before i create a device?&lt;br /&gt;
The problem is that if i create a device i set the stage of the antialiasing (2x, 4x...), but how&lt;br /&gt;
can i know which stage is used before that? &lt;br /&gt;
&lt;br /&gt;
Thanks in advance,&lt;br /&gt;
&lt;br /&gt;
Jens&lt;br /&gt;
&lt;br /&gt;</description></item><item><title>Creating a cube map texture from 6 bitmap resource</title><link>http://forums.xna.com/forums/thread/243566.aspx</link><pubDate>Mon, 26 Oct 2009 11:37:34 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:243566</guid><dc:creator>Noekk</dc:creator><slash:comments>7</slash:comments><comments>http://forums.xna.com/forums/thread/243566.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=243566</wfw:commentRss><description>Hi,&lt;br /&gt;
I want to make an app (st like a screen saver) which must create a 3d environment from 6 images stored in its resouces(cube mapping) but as far as I know it is only possible to create a cube map texture from a .dds file created by dxtex tool.&lt;br /&gt;
so is there a way to create a cube map from anything other than that?</description></item><item><title>Problem getting a simple vertex shader to run</title><link>http://forums.xna.com/forums/thread/210547.aspx</link><pubDate>Fri, 07 Aug 2009 09:49:23 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:210547</guid><dc:creator>DarkBob</dc:creator><slash:comments>4</slash:comments><comments>http://forums.xna.com/forums/thread/210547.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=210547</wfw:commentRss><description>Hi, &lt;br /&gt;
&lt;br /&gt;
I was trying to set up a simple vertex shader and get in running on two triangles but for some reason it doesn&amp;#39;t seem to be applied to the vertices. As you&amp;#39;ll be able to see if the shader was successfully run all the vertices would be white but unfortunately for me they are not. &lt;br /&gt;
&lt;br /&gt;
I have the D3D_DEBUG_INFO preprocessor flag set for Direct3D. I get no warnings from Direct3D except if I run in software processing mode where it outputs saying there was a first chance exception. I have an NVidia Quadro FX 3700 graphics card that supports vertex shader 3.0. When I try to debug the vertex shaders using pix it says &amp;quot;An error occurred while attempting to debug shader&amp;quot;. If I look at the mesh tab in PIX it says vertes shading disabled. All the Direct3D calls return D3D_OK.&lt;br /&gt;
&lt;br /&gt;
If anyone would like to run the program for me and see if they get the same results, I&amp;#39;ve added all the includes and libraries by pragma calls so literally all you have to do is create a blank Win32 project and paste the code into your main file and put the SimpleHLSL.fx file in a subfolder called shaders.&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m really at a loose end on this one, any help would be appreciated.&lt;br /&gt;
&lt;br /&gt;
Thanks =)&lt;br /&gt;
&lt;br /&gt;
SimpleHLSL.fx&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border:#7f9db9 1px solid;font-size:11px;overflow:auto;font-family:courier new;background-color:white;"&gt;
&lt;table style="border-top-width:0px;border-left-width:0px;margin:2px 0px;width:99%;border-bottom:#eee 0px solid;border-collapse:collapse;background-color:#fff;border-right-width:0px;" cellspacing="0" cellpadding="0"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//-------------------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Global variables &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//-------------------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;float4x4    gr4x4WorldViewProjection;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:blue;"&gt;struct&lt;/span&gt;&lt;span style="font-size:11px;"&gt; cOutputVS  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    float4  mPositionOut    : POSITION;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    float4  mColourOut      : COLOR0;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;};  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;cOutputVS MyVertexShaderVS(   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        float4  lPositionIn     : POSITION,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        float4  lColourIn       : COLOR0 )  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    cOutputVS lOutputVS;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;      &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    lOutputVS.mPositionOut = mul( lPositionIn, gr4x4WorldViewProjection );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    lOutputVS.mColourOut = float4( 1.0f, 1.0f, 1.0f, 1.0f); &lt;span style="color:green;"&gt;//lColourIn; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;      &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; lOutputVS;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;technique EntryPoint  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    pass P0  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        VertexShader = compile vs_3_0 MyVertexShaderVS();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
main.cpp
&lt;div style="border:#7f9db9 1px solid;font-size:11px;overflow:auto;font-family:courier new;background-color:white;"&gt;
&lt;table style="border-top-width:0px;border-left-width:0px;margin:2px 0px;width:99%;border-bottom:#eee 0px solid;border-collapse:collapse;background-color:#fff;border-right-width:0px;" cellspacing="0" cellpadding="0"&gt;
    
    
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size:11px;"&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;#include &amp;quot;stdafx.h&amp;quot; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;#include &amp;lt;stdio.h&amp;gt; &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;#define VC_EXTRALEAN &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;#define WIN32_LEAN_AND_MEAN &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;#include &amp;lt;Windows.h&amp;gt; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;#include &amp;lt;d3d9.h&amp;gt; &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;#include &amp;lt;d3dx9Effect.h&amp;gt; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;#pragma comment ( lib, &lt;span style="color:blue;"&gt;&amp;quot;d3d9.lib&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt; ) &lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;#pragma comment ( lib, &amp;quot;d3dx9.lib&amp;quot; ) &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;#pragma comment ( lib, &lt;span style="color:blue;"&gt;&amp;quot;d3dcompiler.lib&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt; )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;typedef unsigned &lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span style="font-size:11px;"&gt; U32; &lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;#include &amp;lt;d3d9.h&amp;gt; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;#pragma warning( disable : 4996 ) &lt;span style="color:green;"&gt;// disable deprecated warning  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;#include &amp;lt;strsafe.h&amp;gt; &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:gray;"&gt;#pragma warning( default : 4996 ) &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Global variables &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;IDirect3D9*         gpD3d = NULL; &lt;span style="color:green;"&gt;// Used to create the D3DDevice &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;IDirect3DDevice9*   gpD3dDevice = NULL; &lt;span style="color:green;"&gt;// Our rendering device &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt;&lt;span style="font-size:11px;"&gt; cVertex  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:11px;"&gt;:  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;   mrX;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;   mrY;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;   mrZ;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;float&lt;/span&gt;&lt;span style="font-size:11px;"&gt;   mrRHW;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    U32     muColour;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;};  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;cVertex gaVertices[ 4 ] =   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    { 0.0f, 0.0f, 0.0f, 1.0f, 0xffff0000 },  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    { 100.0f, 0.0f, 0.0f, 1.0f, 0xff0000ff },  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    { 0.0f, 100.0f, 0.0f, 1.0f, 0xff00ff00 },  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    { 100.0f, 100.0f, 0.0f, 1.0f, 0xffffffff }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;};  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;IDirect3DVertexBuffer9* gpVertexBuffer = NULL;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;U32 guVertexFormat = D3DFVF_XYZRHW | D3DFVF_DIFFUSE;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;U32 guVertexSoftwareOrHardwareProcessing = D3DCREATE_HARDWARE_VERTEXPROCESSING;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//U32 guVertexSoftwareOrHardwareProcessing = D3DCREATE_SOFTWARE_VERTEXPROCESSING; &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;ID3DXEffect*    gpEffect = NULL;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Name: InitD3D() &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Desc: Initializes Direct3D &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;HRESULT InitD3D( HWND hWnd )  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Create the D3D object, which is needed to create the D3DDevice. &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( NULL == ( gpD3d = Direct3DCreate9( D3D_SDK_VERSION ) ) )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; E_FAIL;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Set up the structure used to create the D3DDevice. Most parameters are &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// zeroed out. We set Windowed to TRUE, since we want to do D3D in a &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// window, and then set the SwapEffect to &amp;quot;discard&amp;quot;, which is the most &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// efficient method of presenting the back buffer to the display.  And  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// we request a back buffer format that matches the current desktop display  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// format. &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    D3DPRESENT_PARAMETERS d3dpp;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    ZeroMemory( &amp;amp;d3dpp, &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( d3dpp ) );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    d3dpp.Windowed = TRUE;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Create the Direct3D device. Here we are using the default adapter (most &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// systems only have one, unless they have multiple graphics hardware cards &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// installed) and requesting the HAL (which is saying we want the hardware &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// device rather than a software one). Software vertex processing is  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// specified since we know it will work on all cards. On cards that support  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// hardware vertex processing, though, we would see a big performance gain  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// by specifying hardware vertex processing. &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( FAILED( gpD3d-&amp;gt;CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;                                      guVertexSoftwareOrHardwareProcessing,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                                      &amp;amp;d3dpp, &amp;amp;gpD3dDevice ) ) )  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; E_FAIL;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Check device capabilities &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Device state would normally be set here &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    gpD3dDevice-&amp;gt;SetFVF( guVertexFormat );   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpD3dDevice-&amp;gt;SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Set up vertex buffer &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpD3dDevice-&amp;gt;CreateVertexBuffer(   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( gaVertices ),  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        guVertexSoftwareOrHardwareProcessing,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        guVertexFormat,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        D3DPOOL_DEFAULT,   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &amp;amp;gpVertexBuffer,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        NULL );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;span style="font-size:11px;"&gt;* lpVertexBufferData;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpVertexBuffer-&amp;gt;Lock( 0, &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( gaVertices ), &amp;amp;lpVertexBufferData, 0 );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    memcpy( lpVertexBufferData, gaVertices, &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( gaVertices ) );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpVertexBuffer-&amp;gt;Unlock();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Vertex Shader Effect &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    ID3DXBuffer*    lpCompilationErrorsBuffer;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    HRESULT lResult = D3DXCreateEffectFromFileA(  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        gpD3dDevice,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;&amp;quot;Shaders/SimpleHLSL.fx&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;,  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        NULL,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        NULL, &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;#ifndef _DEBUG &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        D3DXSHADER_OPTIMIZATION_LEVEL3, &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;#else &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        D3DXSHADER_DEBUG | D3DXSHADER_SKIPOPTIMIZATION, &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:gray;"&gt;#endif &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        NULL,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &amp;amp;gpEffect,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &amp;amp;lpCompilationErrorsBuffer );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt; ( lResult != S_OK )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        printf( &lt;span style="color:blue;"&gt;&amp;quot;%s&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;, lpCompilationErrorsBuffer-&amp;gt;GetBufferPointer() );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; E_FAIL;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    D3DXMATRIX lWorld;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    D3DXMATRIX lView;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    D3DXMATRIX lProjection;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    D3DXMATRIX lWorldViewProjection;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpD3dDevice-&amp;gt;GetTransform( D3DTS_WORLD, &amp;amp;lWorld );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    gpD3dDevice-&amp;gt;GetTransform( D3DTS_VIEW, &amp;amp;lView );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    gpD3dDevice-&amp;gt;GetTransform( D3DTS_PROJECTION, &amp;amp;lProjection );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    D3DXMatrixMultiply( &amp;amp;lWorldViewProjection, &amp;amp;lWorld, &amp;amp;lView );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    D3DXMatrixMultiply( &amp;amp;lWorldViewProjection, &amp;amp;lWorldViewProjection, &amp;amp;lProjection );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    lResult = gpEffect-&amp;gt;SetMatrix( &lt;span style="color:blue;"&gt;&amp;quot;gr4x4WorldViewProjection&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;, &amp;amp;lWorldViewProjection );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    lResult = gpEffect-&amp;gt;SetTechnique( &lt;span style="color:blue;"&gt;&amp;quot;EntryPoint&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt; );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; S_OK;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Name: Cleanup() &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Desc: Releases all previously initialized objects &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;VOID Cleanup()  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt; ( gpEffect != NULL )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        gpEffect-&amp;gt;Release();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt; ( gpVertexBuffer != NULL )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        gpVertexBuffer-&amp;gt;Release();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( gpD3dDevice != NULL )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        gpD3dDevice-&amp;gt;Release();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( gpD3d != NULL )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        gpD3d-&amp;gt;Release();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Name: Render() &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Desc: Draws the scene &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;VOID Render()  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    HRESULT lResult;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( NULL == gpD3dDevice )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt;;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Clear the backbuffer to a blue color &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    gpD3dDevice-&amp;gt;Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 255 ), 1.0f, 0 );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Begin the scene &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( SUCCEEDED( gpD3dDevice-&amp;gt;BeginScene() ) )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        U32 luNumPasses;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        lResult = gpEffect-&amp;gt;Begin( &amp;amp;luNumPasses, 0 );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:blue;"&gt;for&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( U32 luPass = 0; luPass &amp;lt; luNumPasses; luPass++ )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            lResult = gpEffect-&amp;gt;BeginPass( luPass );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color:green;"&gt;// The effect interface queues up the changes and performs them  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            &lt;span style="color:green;"&gt;// with the CommitChanges call. You do not need to call CommitChanges if  &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color:green;"&gt;// you are not setting any parameters between the BeginPass and EndPass. &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            &lt;span style="color:green;"&gt;// V( g_pEffect-&amp;gt;CommitChanges() ); &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            &lt;span style="color:green;"&gt;// Render the mesh with the applied technique &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            gpD3dDevice-&amp;gt;SetStreamSource( 0, gpVertexBuffer, 0, &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( cVertex ) );   &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            gpD3dDevice-&amp;gt;DrawPrimitive(   &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;                D3DPT_TRIANGLESTRIP, &lt;span style="color:green;"&gt;// D3DPRIMITIVETYPE PrimitiveType, &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                0, &lt;span style="color:green;"&gt;// UINT StartVertex, &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;                2 ); &lt;span style="color:green;"&gt;// UINT PrimitiveCount &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            lResult = gpEffect-&amp;gt;EndPass();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        gpEffect-&amp;gt;End();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:green;"&gt;// End the scene &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        gpD3dDevice-&amp;gt;EndScene();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Present the backbuffer contents to the display &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    gpD3dDevice-&amp;gt;Present( NULL, NULL, NULL, NULL );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Name: MsgProc() &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Desc: The window&amp;#39;s message handler &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;switch&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( msg )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;case&lt;/span&gt;&lt;span style="font-size:11px;"&gt; WM_DESTROY:  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            Cleanup();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            PostQuitMessage( 0 );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; 0;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        &lt;span style="color:blue;"&gt;case&lt;/span&gt;&lt;span style="font-size:11px;"&gt; WM_PAINT:  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            Render();  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            ValidateRect( hWnd, NULL );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; 0;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; DefWindowProc( hWnd, msg, wParam, lParam );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;// Name: wWinMain() &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color:green;"&gt;// Desc: The application&amp;#39;s entry point &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;&lt;span style="color:green;"&gt;//----------------------------------------------------------------------------- &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT )  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;{  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Register the window class &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    WNDCLASSEX wc =  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;sizeof&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        L&lt;span style="color:blue;"&gt;&amp;quot;D3D Vertex Shader Test&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;, NULL  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    };  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    RegisterClassEx( &amp;amp;wc );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:green;"&gt;// Create the application&amp;#39;s window &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    HWND hWnd = CreateWindow( L&lt;span style="color:blue;"&gt;&amp;quot;D3D Vertex Shader Test&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;, L&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;quot;D3D Vertex Shader Test&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;,  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;                              WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;                              NULL, NULL, wc.hInstance, NULL );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    &lt;span style="color:green;"&gt;// Initialize Direct3D &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;if&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( SUCCEEDED( InitD3D( hWnd ) ) )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:green;"&gt;// Show the window &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        ShowWindow( hWnd, SW_SHOWDEFAULT );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        UpdateWindow( hWnd );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:green;"&gt;// Enter the message loop &lt;/span&gt;&lt;span style="font-size:11px;"&gt; &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        MSG msg;  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        &lt;span style="color:blue;"&gt;while&lt;/span&gt;&lt;span style="font-size:11px;"&gt;( GetMessage( &amp;amp;msg, NULL, 0, 0 ) )  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;        {  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;            TranslateMessage( &amp;amp;msg );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;            DispatchMessage( &amp;amp;msg );  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;        }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    }  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;    UnregisterClass( L&lt;span style="color:blue;"&gt;&amp;quot;D3D Vertex Shader Test&amp;quot;&lt;/span&gt;&lt;span style="font-size:11px;"&gt;, wc.hInstance );  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt;    &lt;span style="color:blue;"&gt;return&lt;/span&gt;&lt;span style="font-size:11px;"&gt; 0;  &lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}  &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color:#f7f7f7;"&gt; &lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Orthographic projection</title><link>http://forums.xna.com/forums/thread/249944.aspx</link><pubDate>Tue, 10 Nov 2009 23:26:22 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:249944</guid><dc:creator>MarvinF</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/249944.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=249944</wfw:commentRss><description>hi&lt;br /&gt;
&lt;br /&gt;
I am trying to implement an orthographic projection using Direct3D9. My first approach was to use the following FVF:&lt;br /&gt;
D3DFVF_XYZRHW | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0)&lt;br /&gt;
&lt;br /&gt;
Then I simply composed a triangle array, set it as stream source and rendered it. It worked.&lt;br /&gt;
&lt;br /&gt;
But this way I couldn&amp;#39;t transform the vertices. Neither translation, nor rotation, nor scale worked. So I thought, I had to use an FVF without RHW like this:&lt;br /&gt;
D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0)&lt;br /&gt;
&lt;br /&gt;
Then I set up the matrices like this:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; D3DXMATRIX proj;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; D3DXMatrixOrthoLH( &amp;amp;proj, 1920, 1200, -1.0f, 1.0f );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; device-&amp;gt;SetTransform( D3DTS_PROJECTION, &amp;amp;proj );&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; D3DXMATRIX id;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; D3DXMatrixIdentity( &amp;amp;id );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; device-&amp;gt;SetTransform( D3DTS_WORLD, &amp;amp;id );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; device-&amp;gt;SetTransform( D3DTS_VIEW, &amp;amp;id );&lt;br /&gt;
&lt;br /&gt;
So, I used the identity transformation for now. The vertices have the exact same absolute screen coordinates like in the version with the RHW=1, where it worked, but without this RHW.&lt;br /&gt;
&lt;br /&gt;
Using this code, not a single fracment is shown on the screen. What could be my mistake?&lt;br /&gt;
&lt;br /&gt;
Thanks in advance,&lt;br /&gt;
Marvin</description></item><item><title>SpriteBatch can mess up GPU RAM?</title><link>http://forums.xna.com/forums/thread/249857.aspx</link><pubDate>Tue, 10 Nov 2009 20:18:25 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:249857</guid><dc:creator>Wotan42</dc:creator><slash:comments>3</slash:comments><comments>http://forums.xna.com/forums/thread/249857.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=249857</wfw:commentRss><description>I have my terrain data in the GPU RAM using the VertexBuffer and
IndexBuffer with option BufferUsage.WriteOnly. Drawing works without
problems.&lt;br /&gt;
&lt;br /&gt;
In order to get some debug text displayed (execution time of the draw
method and the-like) I have the option to enable debugging by pressing
F1. This enables that the debug text is displayed using a SpriteBatch at the end of the Draw method.
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void Draw(GameTime gameTime)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice.Clear(Color.CornflowerBlue);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; terrain.Draw();&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Draw(gameTime);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (debug) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debugSprite.Begin();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; debugSprite.End();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
However as soon as I call the Begin() and End() methods of the SpriteBatch
class (debug becomes true) my terrain gets modified, even if I do not draw any text.&lt;br /&gt;
&lt;br /&gt;
This led me to the conclusion that the SpriteBatch messed up my terrain
data in the GPU RAM. Being a novice I might be completely wrong, but I
have no other explanation why my terrain gets altered as soon as I
enable that debug text is displayed. &lt;br /&gt;</description></item><item><title>Layers in DirectX?</title><link>http://forums.xna.com/forums/thread/249705.aspx</link><pubDate>Tue, 10 Nov 2009 13:13:36 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:249705</guid><dc:creator>VijayKamat</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/249705.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=249705</wfw:commentRss><description>Hello everyone,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am relatively new to DirectX and I have a question.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is it possible to have layers in DirectX?&lt;br /&gt;I am working on a project where I am displaying data in a curve format (graph).&lt;/div&gt;&lt;div&gt;I render the whole grid in the background and the data curve onto it every time.&lt;/div&gt;&lt;div&gt;Is it possible that I form two layers, the background layer I draw the grid so I have only to draw data line every time unless I modify the axis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I read somewhere that managing back buffer efficiently I could do something similar, that is send only the data to GPU and keep the grid in a texture.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is there any better way to do this?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks in advance :)&lt;/div&gt;</description></item><item><title>Pixel/Vertex Shader</title><link>http://forums.xna.com/forums/thread/248310.aspx</link><pubDate>Fri, 06 Nov 2009 13:19:02 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:248310</guid><dc:creator>adamroper</dc:creator><slash:comments>1</slash:comments><comments>http://forums.xna.com/forums/thread/248310.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=248310</wfw:commentRss><description>Hi,&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m writing a bit of software for an image capturing system, which basically projects a series of patterns (usually hoz/vert stripes) on to a physical object, captures images of that object, and emalgamates those images to create a 3D model that is viewable in a CAD system.&amp;nbsp; Typically the sequence involves projecting 50 patterns on to the object, with an image being captured for each projection.&amp;nbsp; The time to make the projection and capture the image needs to be of the order of ~10ms.&lt;br /&gt;
&lt;br /&gt;
This is all working well, however I now need to vary the intensity of the light according to results that are returned from the previous image, so if the image contains a light spot in one corner then I need to project less light to that area on the next projection.&amp;nbsp; I was thinking that it would be best to leave the patterns (stripes) as they are, and apply a texture that basically contained solid white but had variable opacity, i.e. I decrease the alpha in the bright spots.&amp;nbsp; In order to achieve this in the required time periods I want to pass off as much as I can to the GPU, and I was wondering whether you thought like this should be best achieved through a vertex shader, a pixel shader, or none of the above.&amp;nbsp; The system is based on XP Embedded, so it&amp;#39;s D3D9 or earlier for me.&lt;br /&gt;
&lt;br /&gt;
As you can see the system is not exactly stretched as it is only displaying a single quad that is updated 50 times a second, but this system will have to scale up in future and I would like to keep it as fast as possible.&lt;br /&gt;
&lt;br /&gt;
Opinions?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;</description></item><item><title>C++ Message Loop in DLL</title><link>http://forums.xna.com/forums/thread/249659.aspx</link><pubDate>Tue, 10 Nov 2009 10:31:39 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:249659</guid><dc:creator>Stefano5</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/249659.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=249659</wfw:commentRss><description>&lt;br /&gt;
Hi Guys,&lt;br /&gt;
&lt;br /&gt;
Please excuse my ignorance again..&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m developing a custom control for one of my collegues which consists of a basic DirectX scene. The DirectX part is written in native C++ and compiled as a DLL, I&amp;#39;m also producing a Visual Basic wrapper so that my collegues can use the control within their .NET application. The constructor passes the &amp;#39;handle&amp;#39; of a custom &amp;#39;control&amp;#39; to the C++ code which uses it to draw the DirectX stuff. I&amp;#39;d like to have a message loop in the DLL so that I can respond to mouse clicks and drags without having to rely on the Visual Basic wrapper to deal with them.&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;ve tried to make this sound as simple as possible but I&amp;#39;m having trouble understanding it myself.&lt;br /&gt;
&lt;br /&gt;
Many thanks in advance,&lt;br /&gt;
&lt;br /&gt;
Stefan :) &lt;br /&gt;</description></item><item><title>Rendertarget texture is dark on my Xbox</title><link>http://forums.xna.com/forums/thread/248486.aspx</link><pubDate>Fri, 06 Nov 2009 20:25:16 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:248486</guid><dc:creator>Fabian Viking</dc:creator><slash:comments>5</slash:comments><comments>http://forums.xna.com/forums/thread/248486.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=248486</wfw:commentRss><description>I have a mesh with a texture from a rendertarget. On my PC it works perfect, but on my xbox the texture gets darker the further away I pull the camera, until it&amp;#39;s only a black surface. &lt;br /&gt;
I tried different shaders, but it doesn&amp;#39;t change anything. &lt;br /&gt;
Im pretty sure it have something to do with the rendertarget, if I use a normally loaded texture there is no darkness.&lt;br /&gt;</description></item><item><title>XNA: Graphics card not supported</title><link>http://forums.xna.com/forums/thread/247816.aspx</link><pubDate>Thu, 05 Nov 2009 04:20:59 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:247816</guid><dc:creator>cable729</dc:creator><slash:comments>3</slash:comments><comments>http://forums.xna.com/forums/thread/247816.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=27&amp;PostID=247816</wfw:commentRss><description>Alright, so I haven&amp;#39;t ever been able to run XNA games on my school computer (I do have special privileges and administrative rights, so I can install things if needed).&lt;br /&gt;
&lt;br /&gt;
The graphics card is a Radeon X1300/1550 series, and I&amp;#39;ve tried updating the graphics card, but I&amp;#39;ve never done it before, and I&amp;#39;m not sure I did it right, because it still doesn&amp;#39;t work.&lt;br /&gt;
&lt;br /&gt;
I want to come here and ask for your help instead of try random stuff, because it&amp;#39;s not my computer.&lt;br /&gt;
&lt;br /&gt;
I don&amp;#39;t understand what I need to do. DirectX is also 9.0c.&lt;br /&gt;
&lt;br /&gt;
I run dxdiag and 3d acceleration is disabled.&lt;br /&gt;
&lt;br /&gt;
Thanks in advance, I sincerely hope you can help me solve this!&lt;br /&gt;</description></item></channel></rss>