我正在考虑在我的应用程序中(主要使用 C++)是否应该主要使用浮点数或整数来处理所有3D相关元素。我了解到大多数基于 ARM 的设备没有硬件浮点支持,因此我认为使用浮点进行任何复杂计算都会明显变慢。
但是,我打算准备好绝大部分数据(例如有适用的顶点缓冲并使用不常更改的矩阵进行转换),所以我只是将数据传递给 OpenGL。我能否假设这些数据直接传递到 GPU 并且因此速度合理快呢? (顺便说一句,最低要求是 OpenGL ES 2.0,因此这可能排除了旧的基于 1.x 的手机。)
同时,如果我混合使用整数和浮点数,会有什么影响呢?如果所有的几何体都是预先构建的浮点数缓冲区,但我对于需要执行昂贵操作(如矩阵乘法)的矩阵使用整数,那么我会遇到多少问题?
另外,我知道我应该保持期望值低(似乎即使在 CPU 上请求浮点数也太过分了),但是否有类似于 128 位 VMX 寄存器之类的东西存在呢?
(顺便说一句,我希望fadden能够看到这个问题并给出一个很棒的答案。)
但是,我打算准备好绝大部分数据(例如有适用的顶点缓冲并使用不常更改的矩阵进行转换),所以我只是将数据传递给 OpenGL。我能否假设这些数据直接传递到 GPU 并且因此速度合理快呢? (顺便说一句,最低要求是 OpenGL ES 2.0,因此这可能排除了旧的基于 1.x 的手机。)
同时,如果我混合使用整数和浮点数,会有什么影响呢?如果所有的几何体都是预先构建的浮点数缓冲区,但我对于需要执行昂贵操作(如矩阵乘法)的矩阵使用整数,那么我会遇到多少问题?
另外,我知道我应该保持期望值低(似乎即使在 CPU 上请求浮点数也太过分了),但是否有类似于 128 位 VMX 寄存器之类的东西存在呢?
(顺便说一句,我希望fadden能够看到这个问题并给出一个很棒的答案。)