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

Posted thefist11

tags:

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

1. Alpha测试/ 透明度测试(Alpha Test)

透明度测试采用一种很极端的机制,通过片元数据,可以获取该片元的alpha值,如果alpha值小于某个阈值,则直接将该片元丢弃,不进行渲染(即只渲染透明度在某一范围内的片元),可以用来做一些树叶镂空的效果。

  • alpha测试本身消耗较大,性能较低,

  • 颜色一般采用RGBA四分量来进行表示,其中颜色的Alpha值用来表示物体本身的不透明度(alpha=1表示完全不透明,alpha=0表示完全透明)。Alpha测试可以根据片段颜色的Alpha值来裁剪片段。

  • OpenGL和DIrectX都有内置的函数进行裁剪,其中HLSL中使用Clip(),GLSL中使用discard()。

eg. 在片段着色器中丢弃alpha值小于0.1的片段

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

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

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

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

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

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

渲染管道整体流程