渲染管道像素阶段“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混合”的主要内容,如果未能解决你的问题,请参考以下文章