OpenGL学习笔记十三(模板测试)

需要模板测试的原因

在上节中,讲了深度测试,即
判断一个像素点是否能通过深度检测,显示到屏幕上,但是在实际开发中,我们可能遇到很多
需求,希望实现不是通过深度关系进行遮挡的,比如游戏里常见的透视效果,可以看到一个物体之后的东西,这种情况下,我们就不能仅仅使用深度测试就能实现,需要其他的测试方式——模板测试,通过模板测试,可以实现更多更有意思的效果。

模板测试

模板测试和深度测试一样,都是为了挑选像素点并按照自己定义的比较函数实现想要的效果
模板测试先于深度测试执行,模板缓存精度只有八位,即只能存256以内的数,不像深度缓冲那样高的精度,因此使用的存储空间更小。

模板缓存

模板缓冲和深度缓冲一样是一个二维数组,用于保存对应的像素点的模板值,我们可以设置某个点的模板值,与当前缓冲区中的模板值作比较,通过则显示该点,不通过则不进行渲染。
图片选自LearnOpenGL
模板缓冲首先会被清除为0,之后在模板缓冲中使用1填充了一个空心矩形。场景中的片段将会只在片段的模板值为1的时候会被渲染(其它的都被丢弃了)。

模板测试函数

开启模板测试


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值