渲染管道像素阶段“Alpha混合”

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渲染管道像素阶段“Alpha混合”相关的知识,希望对你有一定的参考价值。

1. Alpha混合 (Alpha Blending)

GPU会取出源颜色和目标颜色,将两种颜色进行混合,可以根据片段的alpha值进行混合,用来产生半透明的效果。

  • OpenGL可以通过glEnable(GL_BLEND)来开启混合

1.1 混合方程

源颜色:该片元在片元着色器计算后得到的颜色
目标颜色:已经存在颜色缓冲中的颜色

其中,四个变量分别表示源颜色、源因子值、目标颜色和目标因子值。方程常常与透明通道(alpha 通道)相关。

eg.

  • 通过glBlendFuncSeparate()、glBlendFunc()和glBlendEquation()来设置各种混合效果
  • 根据透明通道的值进行 相加、相减、相乘等操作。eg. GL_ZERO、GL_ONE、GL_SRC_ALPHA、GL_FUNC_ADD等。

1.2 渲染顺序

step1. 先渲染不透明物体,渲染顺序为从前往后(Front-to-Back);(为了减少深度颜色缓冲器的写入操作,提升性能)

step2. 渲染半透明物体,渲染顺序为从后往前(Back-to-Front)。(透过半透明物体看到半透明物体背后的东西,所以对半透明物体进行渲染时需要后面图层的信息,才能够正确进行混合)

以上是关于渲染管道像素阶段“Alpha混合”的主要内容,如果未能解决你的问题,请参考以下文章

渲染管道像素阶段“混合”

渲染管道像素阶段“混合”

渲染管道像素阶段“深度测试”

渲染管道像素阶段“深度测试”

渲染管道光栅阶段一“总览”

渲染管道光栅阶段一“总览”