做网站好一点的公司,高端服装产品网站建设,高级ui设计是什么,网站制作与网站建设一、模板测试#xff08;Stencil Test#xff09;
模板测试可以实现的一些效果图 1.是什么
①从渲染管线出发#xff1a;模板测试是在逐片源操作阶段#xff0c;透明测试之后#xff0c;深度测试之前的位置。 ②从书面概念上理解
说到模板测试#xff0c;就要先说道模…一、模板测试Stencil Test
模板测试可以实现的一些效果图 1.是什么
①从渲染管线出发模板测试是在逐片源操作阶段透明测试之后深度测试之前的位置。 ②从书面概念上理解
说到模板测试就要先说道模板缓冲区。模板缓冲区与颜色缓冲区和深度缓冲区类似模板缓冲区可以为屏幕上的每个像素点保存一个无符号证书值通常的话是个8位整数。这个值的具体一一视程序的具体应用而定。在渲染的过程中可以用这个值与一个预先设定的参考值相比较根据比较的结果来决定是否更新相应的像素点的颜色值。这个比较的过程被称为模板测试。模板测试发生在透明测试之后深度测试之前。如果模板测试通过则相应的像素点更新否则不更新。 ③从逻辑上理解通过一些逻辑判断针对当前像素进行取舍如下图。stencilBufferValue是模板缓存中的值其它由我们定义 2.语法表示 Ref referenceValue //参考值ReadMask readMask //读取掩码取值范围也是0~255的整数默认255二进制11111111即读取的时候不对referenceValue和stencilBufferValue产生效果读取的还是原始值WriteMask writeMask //输出掩码当写入模板缓冲时进行掩码操作按位与【】writeMask取值范围是0~255的整数默认值也是255即当修改stencilBufferValue值时写入的仍是原始值Comp comparisionFunction //比较方式关键字见下图Pass stencilOperation //条件满足后的处理Fail stencilOperation //条件不满足后的处理ZFail stencilOperation //深度测试失败后的处理 ComparisionFunction StencilBufferValuePassFailZFail
3.模板测试流程 4.模板测试总结
使用模板缓冲区最重要的两个值当前模板缓冲之stencilBufferValue和模板参考值referenceValue模板测试主要就是对这两个值使用特定的比较操作NeverAlwaysLessLEqualGreaterEqual等等模板测试之后要对模板缓冲区的值stencilBufferValue进行更新操作更新操作包括KeepZeroReplaceIncrSatDecrSat,Invert等等模板测试之后可以根据结果对模板缓冲区做不同的更新操作比如模板测试成功操作Pass模板测试失败操作Fail深度测试失败操作ZFail还有针对正面和背面精确更新操作PassBackPassFrontFailBack等等
5.模板测试扩展
描边多边形填充反射区域控制shadow volume阴影渲染等等 视频代码 Stencil-Test
StencilMask ToonLitStencilMasked