我正在開發針對Android和iOS的跨平臺遊戲。對於幾個類似廣告牌的對象,我使用添加劑混合(glBlend(GL_ONE, GL_ONE)
)和黑色背景紋理。渲染的對象幾乎無處不在,看起來很好(即紋理中的黑色像素完全透明)。但是,在兩款採用Adreno GPU(一款Nexus 4和另一款索尼Xperia Go)的Android設備上,我有這樣的人工製品:在某些Android設備上添加混合人造產品與OpenGL ES 2.0
由於漢堡包圖標可見,背景顏色會滲入渲染的四邊形。我假設它是背景顏色出血,因爲當廣告牌四邊形直接位於背景前時效果不可見。爲了讓事情變得更加詭異,當我從設備截取屏幕時,效果不可見,所以我必須用另一臺相機拍攝屏幕圖像。我還注意到,當我從Android開發人員設置啓用Disable HW Overlays
時,人工製品消失。當我按下音量按鈕時,屏幕上還有另一個透明窗口,例如音量滑塊,人工製品也會消失。
當我渲染我的場景時,首先在第一遍渲染不透明物體,然後在第二遍渲染我的透明廣告牌glBlend(GL_ONE, GL_ONE)
並禁用深度寫入。
除了在這裏發佈,還可以在Qualcomm開發者網絡論壇上嘗試。你有沒有嘗試過不同的紋理內部格式? – Trax
感謝您的建議,我也會嘗試。 – rgngl