簡體   English   中英

xna:在3d對象后面顯示2d精靈

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM