1

在android中,在視圖上使用alpha混合時,視圖被渲染爲一個opengl紋理,然後紋理渲染到具有alpha值的幀緩衝區中......我想知道他們爲什麼這麼做,並不少昂貴的只是直接用alpha值渲染視圖到目標緩衝區中?還是有什麼我在這裏失蹤?爲什麼谷歌Android做昂貴的alpha混合?

回答

0

你錯過的東西必須做混合得到最終的顏色,這有3個選項:

  1. 使用GPU與幀緩衝融爲一體。
  2. 在硬件中混合到幀緩衝區。
  3. 使用圖像合成/處理硬件進行混合。

如果您想知道爲什麼不直接訪問framebuffer,渲染紋理的原因是與目標alpha相關,即將存儲在紋理中的alpha值。這將在視圖的透明部分下面存在的情況下存在。您建議的優化只能在視圖保證不透明的情況下使用。