报个shader instancing的问题

1、做一个深度遮罩,把BlendColorMask改成NONE,这个时候,可以过滤比遮罩要大的Priority的模型。
但是这个遮罩开了instancing,就没有效果了。
2、如果其它物理开了instancing,也无法被过滤。

请问这个问题解决了吗?

引擎人员没有回复,表示没有解决哈。

附加上图说明一下:
image
没开USE INSTANCING的物体显示正常:
image
开了USE INSTANCING,显示被遮挡了:
image

目前instancing的物件在一般物件之后渲染,Priority对instancing不起作用。
目前不好修改默认行为,因为可能有用户依赖默认表现。
未来考虑添加新的渲染队列与排序方式,用户可以通过配置进行选择新排序还是老排序。
新排序大致行为如下:

  1. 根据pass priority、submodel priority对drawcall(dc)进行排序
  2. 半透明物件在此基础上,由远及近进行排序。但Instancing 对象不排序(因为instancing本身无法保证绘制顺序)
  3. 上述排序完成后,进行材质排序,合并instancing对象,生成instancing dc。
  4. 绘制时,普通dc与instancing dc可能交织提交。

综上,与老排序的最大区别是,instancing的priority生效,与普通dc交织绘制

这里解释下图中结果为什么是这样。

  1. 绘制priority 128的Cube,写入深度,画面表现为完整的Cube
  2. 绘制priority 140 的Quad,ColorMask为None,不写入任何颜色(为背景色),但写入深度
  3. 绘制天空盒到Cube、Quad外的区域
  4. 绘制priority 140的Instancing Cube,进行深度测试,有一半没通过Quad的测试,所以只绘制了一半。(priority不生效、永远在普通dc后绘制)

感谢回复,让我明白其中原理。这个功能其实就是一个深度遮罩的功能,用来做一些视角上的挖洞,裂缝等效果,期待后续的修改。