我目前正在开发一个游戏引擎,并被要求制作一个接收顶点数组并输出浮点数组的方法。我们有一个为 Vector3 制作的类。Vector3 是 3 个浮点数 x、y 和 z 的包装器。顶点只是 Vector3f 的包装器。所以如果他们是一个顶点数组,我怎么能把它变成一个浮点数组。这就是我到目前为止所拥有的
public static float[] VertexArrayToFloatArray(Vertex[] vertices){
float[] floats = new float[vertices.length];
int i = 0;
for (Vertex v : vertices){
float x, y, z;
x = v.getPosition().getX();
y = v.getPosition().getY();
z = v.getPosition().getZ();
floats[i] = x;
floats[i + 1] = y;
floats[i + 2] = z;
}
System.out.println(floats);
return floats;
}
预期的输出将放在一个顶点数组中以形成一个正方形,例如
Vertex[] vertices = new Vertex[]{
new Vertex(new Vector3f(0.5f,-0.5f,0)), //Bottom Right
new Vertex(new Vector3f(-0.5f,0.5f,0)), // Top Left
new Vertex(new Vector3f(0.5f,0.5f,0)), //Top Right
new Vertex(new Vector3f(-0.5f,-0.5f,0)) //Bottom Left
}
你会得到
{0.5f,-0.5f,0,-0.5f,0.5f,0,0.5f,0.5f,0 ,-0.5f,-0.5f,0}
作为结果