所有人 - 我卡在一个渲染问题上,希望有人遇到过这个问题。

环境:
- Unity 6(6000.5.6f1)
- OpenXR插件1.15.1
- Vulkan在Android上
- Quest 3
- 原始模式为单次实例渲染
- 场景完全在代码中构建
- 没有场景放置的材料
- 每个网格(一个内向外环境球体、视频屏幕四边形、一个指针)都像这样获得材料:new Material(Shader.Find("Sprites/Default"))

在玩家构建中发生的事情(在编辑器中正常工作):
- 摄像机提交帧,但只有清晰颜色
- 测试:将清晰颜色设置为红色,我得到的结果是纯红色——提交路径正常,绘制侧面不正常
- 诊断测试:两个立方体(一个是标准材料的左立方体,一个是Sprites/Default的右立方体)作为摄像机的子物体。左立方体没有出现,右立方体出现了固体紫色(错误着色)
- 没有异常和着色错误在玩家日志中

什么改变了它:
- 将OpenXR渲染模式从单次实例渲染切换到多次渲染,使环境球体在相同的构建中正确渲染。诊断立方体仍然渲染错误(蓝色带有紫色条纹),屏幕四边形还没有测试

我的怀疑是着色器剥离 / 缺少立体实例变体:Sprites/Default并没有被任何场景资产引用,我的图形设置Always Included Shaders列表只有7个默认内置着色器。早期的着色器(Unlit/Texture)已经被从这个项目中剥离过一次,并且在Shader.Find中返回null,导致出现了紫色

问题:
1. Sprites/Default是否缺乏单次实例渲染支持,还是这更可能是变体剥离,因为着色器是在运行时找到?
2. 是的,正确的解决方案是将其添加到Always Included Shaders列表中,保留一个dummy引用材料在场景/资源中,还是切换到不同的着色器来替代单次实例渲染的runtime材料?
3. 有人看到多次渲染“修复”这个问题,是否这是一个可接受的工作周围或只是掩盖了真正的问题?