当前位置: 首页 > article >正文

Unity shader中真的可以动态关闭Stencil Test吗?

这个问题很多年前就有人问了:
https://discussions.unity.com/t/how-to-disable-the-stencil-block-via-shader-properties/600273/1

最后的答案是:
set [_StencilComp] to CompareFunction.Disabled to disable the Stencil Op completely.

但是我测试了一下,Disabled只出现在了Frame Debugger中,使用RenderDoc截帧分析(DX11),设置的渲染状态仍然是StencilEnabled True:
在这里插入图片描述
但是我没有测试移动平台和DX12,但这应该是RHI无关的逻辑吧。
另外,如果Shader中根本不包含Stencil这段,则Stencil Eanble为false。
可是Stencil这段没法动态关闭。

由此可知,如果我上面的测试是正确的,UGUI的 UI/Default shader由于包含了Stencil,那么Stencil Test对于所有的UGUI Drawcall都是开启的。那么使用Mask似乎也不会额外影响性能了是吧,那还优化个啥呢


http://www.kler.cn/a/503007.html

相关文章:

  • JAVA:利用 RabbitMQ 死信队列实现支付超时场景的技术指南
  • 服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例
  • Linux下部署Redis(本地部署超详细)
  • 【Uniapp-Vue3】页面生命周期onLoad和onReady
  • 《JavaWeb开发-javascript基础》
  • Bash语言的语法糖
  • java_将数据存入elasticsearch进行高效搜索
  • 【centos】校时服务创建-频率修改
  • Spring Boot整合SSE实时通信
  • ansible 知识点【回顾梳理】
  • Unity TextMesh Pro入门
  • 谈谈人工智能在中国:现状与未来展望
  • Swift语言的正则表达式
  • 理解AJAX与Axios:异步编程的世界
  • MySQL的多表设计和查询,事务以及索引了解
  • Web基础-分层解耦-三层架构
  • 数据仓库: 10- 新技术与趋势
  • day38 tcp 并发 ,linux下的IO模型----IO多路复用
  • linux的大内核锁与顺序锁
  • TaskBuilder前端页面CSS样式规则设置
  • python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像
  • paddle——站在巨人肩膀上及背刺二三事
  • 如何用 SSH 访问 QNX 虚拟机
  • 如何用bigemap pro裁剪矢量数据?
  • 【MySQL】基础架构分析
  • 模板方法模式详解