我正在尝试使用JBullet创建一个TriangleIndexVertexArray
,但是要做到这一点,我需要解析模型中所有顶点的ByteBuffer
。
我在模型中得到了所有顶点的ArrayList<Vector3f>
。
如何将Vector3f
的列表解析为ByteBuffer
?
最佳答案
您可以按照以下步骤进行操作
声明顶点
ArrayList<Vector3f> verticesnew = new ArrayList<Vector3f>();
设置顶点
vertices.add( new Vector3f(someVertice) );
从顶点获取浮动缓冲区:
// 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/