【发布时间】:2012-02-12 12:20:31
【问题描述】:
在绘制顶点蒙皮模型时,不同 iOS 设备每次绘制调用/批次的最大骨骼数是多少?
在 OpenGL ES 1.1 上,限制是由调色板矩阵的数量设置的,但是在 OpenGL ES 2.0 上,限制是什么?
【问题讨论】:
标签: ios opengl-es opengl-es-2.0 skinning vertex
在绘制顶点蒙皮模型时,不同 iOS 设备每次绘制调用/批次的最大骨骼数是多少?
在 OpenGL ES 1.1 上,限制是由调色板矩阵的数量设置的,但是在 OpenGL ES 2.0 上,限制是什么?
【问题讨论】:
标签: ios opengl-es opengl-es-2.0 skinning vertex
OpenGL ES 2.0 使用着色器进行所有顶点处理。因此,这取决于您可以创建多少个统一矩阵。这是一个实现定义的限制,因此它因硬件而异。
您还可以将四元数+位置用于骨骼而不是完整矩阵以节省空间。
【讨论】:
mat4s,那么你将数字除以4,得到32。如果你使用mat3x4s并做一些换位工作,那么你将数字除以3,得到42。如果你使用四元数+位置作为我建议,这只需要 2 个向量,所以你可以有 64 个。当然减去您可能需要的任何其他制服,例如投影矩阵或其他任何东西。
从 iOS 7 开始,您可以从顶点着色器访问纹理单元,因此您可以制作纹理,用矩阵填充它,然后从顶点着色器访问矩阵。这将允许访问更多矩阵,但代价是实现更复杂。
【讨论】: