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似乎也不会额外影响性能了是吧,那还优化个啥呢

相关推荐
龚子亦28 分钟前
【Unity开发】热更新学习——HybridCLR框架
学习·unity·游戏引擎·热更新
IMPYLH37 分钟前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua
龚子亦3 小时前
【GameFramework框架】FSM使用
学习·unity·游戏开发·游戏框架
龚子亦4 小时前
【Unity开发】安卓应用开发中,用户进行权限请求
android·unity·安卓权限
君莫愁。4 小时前
【Unity】相机与UI的自适应
ui·unity·c#·游戏引擎
feiduoge13 小时前
教程 44 - 相机系统
windows·游戏引擎·图形渲染
lrh302518 小时前
Custom SRP - 16 Render Scale
3d·unity·srp·render pipeline·render scale
feiduoge21 小时前
教程 43 - 渲染目标和可配置渲染通道
windows·游戏引擎·图形渲染
ellis19701 天前
Unity出安卓包知识点汇总
android·unity
DoomGT1 天前
Audio - UE5中的音效播放重启问题
游戏·ue5·游戏引擎·虚幻·虚幻引擎