从0开始的技术美术之路(十四)深度测试与模板测试

本篇参考B站视频
“技术美术百人计划”·霜狼_may
《Shader入门精要》·冯乐乐女神著;
OpenGL ES 3.0编程指南
Unity官方“任意门”视频
图像处理抖动相关

本篇主要用于自我复习,其中会掺入一些个人观点,如有疑问或发现有什么错误,请多指教~
本篇内容主要包括:模板测试与深度测试;


一.模板测试

下图是Learn opengl中关于模板测试的,形象表现基本原理和使用方法;
在这里插入图片描述
1.模板测试能做些啥

如下图的一些效果,当然关于传送门的做法,我们还有别的选择,Unity官方有发过关于传送门相关的视频,简单来说是利用添加一台相机和一张Render texture结合一片quad来实现效果,附下连接
在这里插入图片描述

2.模板测试是什么

  • 先回顾下渲染管线,在片元着色器处理后:
    • Pixel Ownership Test :控制当前屏幕像素的使用权限,如Unity中的Game/Scence窗口;
    • Scissor Test:裁剪测试,根据自定义,在Game/Scence确定要渲染的部分,默认是都渲染;
    • Alpha Test:透明度测试,根据透明度阈值判断,舍弃透明度小于阈值的片元;(在OpenGL ES3.0中被删除,因为可以在片段着色器中进行)
    • Stencil Test :模板测试,在输入片段的模板上进行,以确定片段是否该被拒绝;
    • Depth Tset :深度测试,在输入片段的深度值上进行,以确定片段是否该被拒绝;
    • Blending:透明度混合,用于实现半透明效果;
    • Dithering:抖动,可用于最小化,因为使用有限精度在帧缓冲区中保存颜色值而产生伪像,这里有看了下OpenGL ES3.0,暂时也可以先参考下这篇
    • Logic Op;逻辑操作;(在OpenGL ES3.0中被删除,因为很少被应用程序使用)
      在这里插入图片描述
      在这里插入图片描述
  • 逻辑上理解模板测试

翻译下下面的图,

//掩码类比于PS,AE中的蒙版遮罩,属于程序“黑话”
if(当前模板缓冲参考值&读掩码 比较 模板缓冲区中值&读掩码){
   
  通过像素
}else{
   
  舍弃像素
}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值