1

在android中,在视图上使用alpha混合时,视图被渲染为一个opengl纹理,然后纹理渲染到具有alpha值的帧缓冲区中......我想知道他们为什么这么做,并不少昂贵的只是直接用alpha值渲染视图到目标缓冲区中?还是有什么我在这里失踪?为什么谷歌Android做昂贵的alpha混合?

回答

0

你错过的东西必须做混合得到最终的颜色,这有3个选项:

  1. 使用GPU与帧缓冲融为一体。
  2. 在硬件中混合到帧缓冲区。
  3. 使用图像合成/处理硬件进行混合。

如果您想知道为什么不直接访问framebuffer,渲染纹理的原因是与目标alpha相关,即将存储在纹理中的alpha值。这将在视图的透明部分下面存在的情况下存在。您建议的优化只能在视图保证不透明的情况下使用。