我正在使用标准渲染管道和
unity_ObjectToWorld
着色器中用于某些计算的变量.在启用动态批处理之后,这些计算就被打破了.看来
unity_ObjectToWorld
批处理对象时将其设置为默认值.是设计使然吗? 我没有在文档中找到任何内容。
最新回答
- 2021-1-41 #
相关问题
- 在样本纹理节点着色器上使用Unity时为什么会损坏纹理unityshaderstextures2021-01-04 14:59
- unity:Unity3D中的水着色器在某些Linux发行版/某些Mac OS上不起作用?unityshaderslinuxwater2020-12-11 10:26
这已在手册中进行了说明,其中描述了动态和静态批处理:
在这里:
自然地,由于批处理中的所有顶点在渲染之前都已预先转换为CPU侧的世界空间,因此 仅仅是身份矩阵.在GPU着色器中没有其他工作要做,并且由于批处理中的对象可能来自多个不同的对象空间,因此,这个变量无法保留有关所有对象的信息。
我们在此之前有关于此主题的一些常见问题解答,并暗示了如何针对需要对象空间数据的着色器解决此问题,而不会完全放弃批处理。
unity_ObjectToWorld