【发布时间】:2015-05-08 18:39:21
【问题描述】:
我正在尝试使用 JBullet 创建一个 TriangleIndexVertexArray,但为此我需要解析模型中所有顶点的 ByteBuffer。
我有一个模型中所有顶点的ArrayList<Vector3f>。
如何将Vector3f 的列表解析为ByteBuffer?
【问题讨论】:
标签: java arraylist nio bytebuffer
我正在尝试使用 JBullet 创建一个 TriangleIndexVertexArray,但为此我需要解析模型中所有顶点的 ByteBuffer。
我有一个模型中所有顶点的ArrayList<Vector3f>。
如何将Vector3f 的列表解析为ByteBuffer?
【问题讨论】:
标签: java arraylist nio 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 );