Shader Stencil

本文深入探讨了图形渲染管线中的模板测试与深度测试过程,解释了如何通过模板测试筛选像素,以及它与深度测试的关系。文章详细介绍了stencil buffer的作用,以及Ref值在测试中的运用,包括各种测试条件如Equal、Greater、Less等,和像素通过或未通过测试后的操作如Keep、Zero、Replace等。
摘要由CSDN通过智能技术生成

对于每一个像素值来说,其中都会存储一个模板值(像是深度值)
模板测试一般指 stencil buffer与自定义的Ref相比较的结果。模板测试时在ZTest深度测试之前测试的,如果当前像素没有通过模板测试,则会直接跳过ZTest

for example:
stencil{
Ref 2//stencilBuffer的默认值为0
Comp Equal//表示通过模板测试的条件,这里表示只有等于2的像素才算是通过测试 除了Equal、还有Greater、Less、Always、Never等
****这里很重要的是Less是ref小于stencil buffer中的值
Pass keep//通过模板测试和深度测试的像素保留它的模板值
Fail decrWarp//没有通过模板测试的像素,循环自减
ZFail keep//通过模板测试但是没有通过深度测试的像素保持不变
}

关键词:
keep:保持
zero:归零
Replace:拿ref代替buffer
IncrSat:值增加1但是不溢出(不溢出的意思是如果值255就不再增加)
DecrSat:只减少1但是不溢出(值为0就不再减少)
Invert:翻转所有的位(1会变成254)
IncrWarp(值增加会溢出)
DecrWrap(值减少会溢出)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值