我正在尝试使用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/

10-12 22:04