OpenGL学习笔记十三(模板测试)
需要模板测试的原因
在上节中,讲了深度测试,即
判断一个像素点是否能通过深度检测,显示到屏幕上,但是在实际开发中,我们可能遇到很多
需求,希望实现不是通过深度关系进行遮挡的,比如游戏里常见的透视效果,可以看到一个物体之后的东西,这种情况下,我们就不能仅仅使用深度测试就能实现,需要其他的测试方式——模板测试,通过模板测试,可以实现更多更有意思的效果。
模板测试
模板测试和深度测试一样,都是为了挑选像素点并按照自己定义的比较函数实现想要的效果
模板测试先于深度测试执行,模板缓存精度只有八位,即只能存256以内的数,不像深度缓冲那样高的精度,因此使用的存储空间更小。
模板缓存
模板缓冲和深度缓冲一样是一个二维数组,用于保存对应的像素点的模板值,我们可以设置某个点的模板值,与当前缓冲区中的模板值作比较,通过则显示该点,不通过则不进行渲染。

模板缓冲首先会被清除为0,之后在模板缓冲中使用1填充了一个空心矩形。场景中的片段将会只在片段的模板值为1的时候会被渲染(其它的都被丢弃了)。
模板测试函数
开启模板测试

最低0.47元/天 解锁文章
3691

被折叠的 条评论
为什么被折叠?



