我正在尝试创建一个 TriangleIndexVertexArray
使用 JBullet,但要做到这一点,我需要解析 ByteBuffer
模型中的所有顶点。
我有一个ArrayList<Vector3f>
模型中的所有顶点。
如何解析此列表 Vector3f
发送至 ByteBuffer
?
最佳答案
您可以按照以下方式进行
声明你的顶点
ArrayList<Vector3f> verticesnew = new ArrayList<Vector3f>();
设置顶点
vertices.add( new Vector3f(someVertice) );
从顶点获取 float 缓冲区:
// There are 3 floats needed for each vertex (x,y,z)
int bufferSize = vertices.size() * 3 * Float.SIZE;
FloatBuffer verticesBuffer = ByteBuffer.allocateDirect( bufferSize ).order( ByteOrder.nativeOrder() ).asFloatBuffer();
// Copy the values from the list to the direct float buffer
for ( Vector3f v : vertices )
verticesBuffer.put( v.x ).put( v.y ).put( v.z );
关于java - 如何将 ArrayList<Vector3f> 转换为 ByteBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121531/