<?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>General</title><link>http://forums.xna.com/forums/32.aspx</link><description>Don't know where to post your question? Post it here!</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 0.0)</generator><item><title>Re: Draw Text in 3D world with depth buffer</title><link>http://forums.xna.com/forums/thread/178938.aspx</link><pubDate>Sat, 16 May 2009 20:37:12 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:178938</guid><dc:creator>Daniel Hanson</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/178938.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=32&amp;PostID=178938</wfw:commentRss><description>Be careful. Using SpriteBatch and 3D at the same time affects more in the render state than just the depth buffer. See &lt;a href="http://blogs.msdn.com/shawnhar/archive/2006/11/13/spritebatch-and-renderstates.aspx"&gt;this article&lt;/a&gt; by Shawn Hargreaves.</description></item><item><title>Re: Draw Text in 3D world with depth buffer</title><link>http://forums.xna.com/forums/thread/178821.aspx</link><pubDate>Sat, 16 May 2009 15:47:05 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:178821</guid><dc:creator>underdog32</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/178821.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=32&amp;PostID=178821</wfw:commentRss><description>I was just trying to figure out how to do this yesterday.  Thanks!</description></item><item><title>Draw Text in 3D world with depth buffer</title><link>http://forums.xna.com/forums/thread/178815.aspx</link><pubDate>Sat, 16 May 2009 15:24:07 GMT</pubDate><guid isPermaLink="false">4aa5dbf6-357b-46b2-b5b2-1b660a6dc370:178815</guid><dc:creator>SpaceDude</dc:creator><slash:comments>0</slash:comments><comments>http://forums.xna.com/forums/thread/178815.aspx</comments><wfw:commentRss>http://forums.xna.com/forums/commentrss.aspx?SectionID=32&amp;PostID=178815</wfw:commentRss><description>Just in case anybody else is wondering how to draw text at a 3d position in the world which gets occluded by geometry, here is a little function I wrote:&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;&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;DrawText(Camera&amp;nbsp;camera,&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;text,&amp;nbsp;Vector3&amp;nbsp;position,&amp;nbsp;Color&amp;nbsp;color)&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;Vector3&amp;nbsp;screenPos&amp;nbsp;=&amp;nbsp;camera.Viewport.Project(position,&amp;nbsp;camera.ProjectionMatrix,&amp;nbsp;camera.ViewMatrix,&amp;nbsp;Matrix.Identity);&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;spriteBatch.Begin(SpriteBlendMode.AlphaBlend,&amp;nbsp;SpriteSortMode.Immediate,&amp;nbsp;SaveStateMode.None);&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;RenderState&amp;nbsp;renderState&amp;nbsp;=&amp;nbsp;Game.Instance.GraphicsDevice.RenderState;&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;renderState.DepthBufferEnable&amp;nbsp;=&amp;nbsp;&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 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;renderState.DepthBufferWriteEnable&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;false&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;spriteBatch.DrawString(font,&amp;nbsp;text,&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&lt;span style="font-size:11px;"&gt;&amp;nbsp;Vector2(screenPos.X,&amp;nbsp;screenPos.Y),&amp;nbsp;color,&amp;nbsp;0,&amp;nbsp;Vector2.Zero,&amp;nbsp;1,&amp;nbsp;SpriteEffects.None,&amp;nbsp;screenPos.Z);&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;spriteBatch.End();&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;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
Hope it&amp;#39;s helpful. I used a few classes from my own game (Camera, Game.Instance) but it should be pretty self explanatory where the variables came from.&lt;br /&gt;</description></item></channel></rss>