我正在玩 OpenGL ES 2 和 FloatBuffers。实际上,我尝试将处理顶点数据的 FloatBuffer 保存到二进制文件中。它似乎有效,但是在读取浮点数并将它们一起放回 FloatBuffer 之后,对象就搞砸了。
为了从我的缓冲区中保存浮点数据,我使用以下代码:
for(int i = 0; i < bufferSize; i++)
outStream.writeFloat(floatBuffer.get(i));
阅读:
for(int i = 0; i < bufferSize; i++)
if(inStream.available() != 0)
tmpFloat[i] = inStream.readFloat();
FloatBuffers 是这样创建的:
FloatBuffer VertexBuffer = ByteBuffer.allocateDirect(VertexFloatArray.length * mBytesPerFloat).order(ByteOrder.nativeOrder()).asFloatBuffer();
VertexBuffer.put(VertexFloatArray).position(0);
有谁知道为什么会这样?
更新:我已经比较了写入和读取的数据,它们是相等的。问题仍然存在,这更加令人困惑。