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

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的片段
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/thefist11cc/article/details/124162566