[英]xna: display 2d sprites behind the 3d object
我是3D圖形方面的初學者,並且學習xna和csharp。
我有要在2d背景前面繪制的3d對象,該3d對象很簡單,它只是一條線。 我是從二維VertexPositionColor []制作的。
然后用PrimitiveType.LineStrip繪制它。
而且我還有一個用Spritebatch.draw顯示的Texture2D。
這是怎么回事,該行顯示在背景的后面,所以我看不到任何行。
但是,如果我評論了spritebatch.draw,我可以在那看到線。
請幫忙..
您那里有一個z緩沖區問題。 您以什么順序進行2D和3D繪圖? 我猜應該首先使用2D。 另外,您還應該查看混合SpriteBatch和3D操作時如何使渲染狀態起作用 。
我設法解決它。 所有3D繪制方法都應在spritebatch.begin之后並結束。
我所做的是在spritebatch.begin和end之后放了effect.begin和pass.begin
這是game1.cs上draw方法的代碼(使用向導時的默認文件名)
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
GameEngine.Draw(GameEngine,gameTime);
spriteBatch.End();
//resetRenderState3D();
GameEngine.Draw3D(GameEngine, gameTime);
base.Draw(gameTime);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.