2011-11-23 78 views
1

有什麼辦法讓整個Android OpenGL ES場景變得透明嗎?這對小部件和壁紙很有用。任何使整個Android OpenGL ES場景透明的方法?

有一個Android專用答案here。但我的理解是,這種技術創造了一個透明的背景,人們可以進一步繪製透明的形狀。

我正在尋找一種讓整個場景在繪製完成後都變爲透明的方法。例如,在場景被繪製後,有沒有辦法改變整個顏色緩衝區的alpha值?

回答

3

是的,這很容易。您需要使用正確的顏色和混合功能,通過使用四邊形覆蓋整個視圖,將顏色緩衝區中的值混合。我認爲這將這樣的伎倆:

  • 繪製場景爲正常
  • 設置glBlendFunc(GL10.GL_ZERO, GL10.GL_SRC_COLOR)
  • 繪製無紋理着色四,涵蓋與(R,G,B,A)=全視圖(1 ,1,1,a),其中一個是你想要的不透明度

這應該擴展了的colorbuffer,我認爲這是你想要的字母。

0

如果你可以要求API 14(Android 4.0),那麼有一個新的類可以解決這個問題:TextureView。在這個Android Developers blog post有一些關於它的信息。不幸的是,我認爲在以前的Android版本中沒有簡單的方法來做到這一點。