Let's create XNA Game!
嗯 這個問題不知道大家有沒有遇過...2D跟3D同時在一個程式呈現的時候,如果用預設的設定會發生,模型都變成透明的了!!!我被這個問題困擾很久了...想過BLEND等等的問題,結果都沒成功這種問題,只要在2D貼圖跟3D貼圖同時進行的時候,都會發生~~~我也問過同學這種問題他們有沒有碰過跟說在OPENGL情況下,需要更動像是ALPHA BLEND不過經過我測試過後來是沒辦法...這兩天在網路上找到一個文章作者有提到如果2D跟3D要一起用的話的呈現方式(老實說,2D跟3D一起用這個簡直就是家常便飯~~~如RPG的血量表、ITEM等等)那我們應該要在哪邊動刀?嘿嘿~~~答案就是,2D的繪圖前製動作spriteBatch.Begin();上面這一行,這個關鍵的函數他有以下多載~~SpriteBatch.Begin ()SpriteBatch.Begin (SpriteBlendMode)SpriteBatch.Begin (SpriteBlendMode, SpriteSortMode, SaveStateMode)SpriteBatch.Begin (SpriteBlendMode, SpriteSortMode, SaveStateMode, Matrix)基本上,前兩個多載,在這種問題沒有任何幫助ORZ所以用3或4就可以,這邊用3就OK~設定如下spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Deferred, SaveStateMode.SaveState);第三個參數,這整個核心的部分,如果這邊設成NONE的話,就會變成原本的問題他的用意就是,當呼叫到Begin這個2D貼圖的方法時候,他會儲存所有設備的狀態,直到遇到END才恢復。預覽圖正確要呈現的錯誤的呈現由上面兩張圖片不難看出,差別在哪~~程式碼 :XNA2.0140.126.21.8/~b09402129/XNA/example5.rar
DotBlogs Tags: XNA posted on 2008/12/5 21:20 | 我要推薦 | 閱讀數 : 1650 | 分類[ XNA ] 訂閱
Copyright © 獃獃