2012-05-04 189 views
2

我正在運行使用isgl3d框架顯示pod文件的iOS項目。ISGL3D透明度問題

我有一個時尚的小車與0.5阿爾法的窗戶,我希望呈現在相機的背景下,尋求一些增強現實的善良。

阿爾法窗戶上看起來不錯,但是當我添加了對象,我發現它呈現透明整個對象,那裏的窗戶。包括汽車的內部。

像這樣(例如,鍵盤可通過儀表板看到的,座椅等。應該是固體)

bad car is bad

的汽車內部是具有α1.0一個單獨的對象。

我不想在我的項目中顯示「幽靈車」,但我還沒有找到解決辦法。

有沒有人遇到同樣的問題,並最終達成解決方案?

求助: 感謝德米的回答。這裏是最終的代碼:

// Render opaque objects 
     [_scene render:renderer opaque:true]; 

     // First planar shadow pass (if needed) 
     [self renderPlanarShadows:renderer]; 

     // Render transparent objects 
     glColorMask(1, 1, 1, 0); 
     if (_zSortingEnabled) { 
      [_scene renderZSortedAlphaObjects:renderer viewMatrix:&viewMatrix]; 

     } else { 
      [_scene render:renderer opaque:true]; 
     } 
     glColorMask(1, 1, 1, 1); 

回答

3

問題:你的玻璃重寫了alpha通道。拉車的玻璃時不要修改。當您使用glColorMask(1, 1, 1, 0)繪製透明項目時,禁止寫入顏色緩衝區的Alpha通道。透明繪圖後不要忘記恢復:glColorMask(1, 1, 1, 1) !!!

+0

血腥井工作!花了我一段時間弄清楚在哪裏夾住它,但我已經將解決​​方案添加到OP。 –