作者pleaselouis (LOUISN)
看板GameDesign
標題Re: [請益] 請問關於 Ogre 材質 透明色 設定
時間Fri Mar 6 16:02:30 2009
大家好 小弟因最近工作較忙 所以比較少上來 這次關於此主題又有問題向大家請教
請各位前輩 幫幫忙 給在下一些幫助 謝謝大家 <(_ _)>
小弟我目前已經可以做到 透明色處理的功能 但是還有些異常問題發生
目前我針對一個 樹 的模組做載入顯示 其中分別對 setDepthWriteEnabled() 作測試
這是將參數設為 False 的情況 :
http://0rz.tw/FbpI1
而這是將參數設為 True 的情況 :
http://0rz.tw/Em40q
首先討論關於 True 的圖片 可以看見 每一片樹葉模組 會以底色 蓋住下面或後面的模組
原本希望的正常顯示畫面 應該是可以從 樹葉的縫隙中 看到其他樹葉或是枝幹
但卻完全被其底色所干擾 要是應用到人物的頭髮上 後果應該會蠻慘的...
以下是相關程式碼 :
Entity * EtTemp;
EtTemp->getSubEntity(mTextureSubMeshIndex)->getMaterial()->getTechnique(0)
->getPass(0)->setSceneBlending(Ogre::SBF_SOURCE_ALPHA,
Ogre::SBF_ONE_MINUS_SOURCE_ALPHA);
EtTemp->getSubEntity(mTextureSubMeshIndex)->getMaterial()->getTechnique(0)
->getPass(0)->setDepthWriteEnabled(true);
再來討論關於 False 的圖片 底色蓋住下面或後面的模組 略為減緩 但還是有出現
但由於參數為False 故對於 Depth 的判斷關閉了 所以可以看到應該在比較後面的樹葉
整塊的顯示在比較前面的位置 甚至是蓋住了前面的樹葉...
以下是相關程式碼 :
Entity * EtTemp;
EtTemp->getSubEntity(mTextureSubMeshIndex)->getMaterial()->getTechnique(0)
->getPass(0)->setSceneBlending(Ogre::SBT_REPLACE);
EtTemp->getSubEntity(mTextureSubMeshIndex)->getMaterial()->getTechnique(0)
->getPass(0)->setDepthWriteEnabled(false);
目前對於這樣的錯誤 幾乎沒有頭緒該如何解決
希望版上的前輩 可以再度指導一下晚輩 謝謝大家 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.76.190.21
※ 編輯: pleaselouis 來自: 211.76.190.21 (03/06 16:03)
→ Transformers:在Shader裡把AlphaTestEnable設定為true 03/06 16:08
→ pleaselouis:對不起 可以再給多一點關鍵字 我找不太到相關文件 03/06 16:15
※ 編輯: pleaselouis 來自: 211.76.190.21 (03/06 16:22)
※ 編輯: pleaselouis 來自: 211.76.190.21 (03/06 16:24)
→ Transformers:DirectX 是 EnableAutoDepthStencil "深度測試" 03/06 16:24
→ Transformers:應該有類似的關鍵字 03/06 16:24
→ pleaselouis:請問這是針對Ogre的關鍵字 還是原理文件方面的呢 ?? 03/06 16:30
→ pleaselouis:查了一下 好像是針對 DirectX 的 謝謝你 希望有用 <囧 03/06 16:34