在 Android 中使用 OGLES。我想创建一些三角形并翻译它们。够直截了当。
我查看了示例,发现 FloatBuffers 被推荐作为在 Android 中使用 GLES 的多边形坐标的存储结构,因为它们是原生代码类固醇。好东西!解释在这里。
为什么使用 FloatBuffer 而不是 float[]?
现在让我感到困惑的是,Android 中的 Matrix 类几乎只在 java 浮点数组上运行。因此,一方面我被告知要使用 FloatBuffers 来提高速度,但另一方面,我现在想做的每个转换都必须看起来像这样?
float[] myJavaFloatArray = new float[polylength];
myFloatBuffer.get(myJavaFloatArray);
Matrix.translateM(myJavaFloatArray,0,-1.0f,0.0f,0.0f);
myFloatBuffer.put(myJavaFloatArray);
这真的是最佳实践吗?是否只是假设我的翻译与抽奖的比率足够低以至于这笔费用是值得的?如果我要进行大量翻译,每帧的每个对象都进行翻译,这是否是贯穿始终使用 java 浮点数组的参数?