gpt4 book ai didi

opengl-es - glVertexPointer 应该包含不同的顶点还是所有顶点?

转载 作者:行者123 更新时间:2023-12-04 06:48:26 25 4
gpt4 key购买 nike

我正在使用 OpenGL ES 创建一个 Android 应用程序,需要一些关于顶点、纹理和法线指针的帮助。我看到的例子停留在相当基本的水平,所以我似乎错过了一些信息。

我的基本 draw() 过程是

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glTexCoordPointer(3, GL10.GL_FLOAT, 0, uvBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, faceBufferLength, GL10.GL_UNSIGNED_BYTE, faceBuffer);

顶点和 uv 是根据各个顶点和 uv 的各种 x、y 和 z 坐标构造的 FloatBuffers。
faceBuffer是指向相关顶点缓冲区的索引的 ByteBuffer。

每个面由三个顶点组成,每个面为其顶点定义不同的 UV(对吗?)

因此,我的问题是,我是否需要在所有缓冲区中重新定义每个不同的顶点/uv 组合?

考虑一个简单的四面体。它包括

4 个顶点(三个“底”和一个“点”):
Vertex 1: <1,1,1> (the point)
Vertex 2: <2,1,0>
Vertex 3: <0,0,0>
Vertex 4: <2,0,0>

3 个 uv 坐标(所有面都有相同的图像)
UV 1: <0,0,0> (top left)
UV 2: <0,1,0> (bottom left)
UV 3: <1,0,0> (top right)

4张脸:
Face 1: v1/u1, v2/u2, v3/u3
Face 2: v1/u1, v3/u2, v4/u3
Face 3: v1/u1, v4/u2, v2/u3
Face 4: v2/u1, v3/u2, v4/u3

所以我的问题是,我如何告诉 GL 每个面/顶点使用哪个 UV?

vertexBuffer其中有 4 组值,还是 12 组?必须 uvBuffervertexBuffer有相同数量的物品吗?

基本上,如果顶点具有不同的 UV 和/或法线值,我可以“重用”它们吗?

或者我必须是独一无二的:
Vertex  1: <1,1,1> (face A)
Vertex 2: <2,1,0> (face A)
Vertex 3: <0,0,0> (face A)
Vertex 4: <1,1,1> (face B)
Vertex 5: <0,0,0> (face B)
Vertex 6: <2,0,0> (face B)
Vertex 7: <1,1,1> (face C)
Vertex 8: <2,0,0> (face C)
Vertex 9: <2,1,0> (face C)
Vertex 10: <2,1,0> (face D)
Vertex 11: <0,0,0> (face D)
Vertex 12: <2,0,0> (face D)

UV 1: <0,0,0> (face A)
UV 2: <0,1,0> (face A)
UV 3: <1,0,0> (face A)
UV 4: <0,0,0> (face B)
UV 5: <0,1,0> (face B)
UV 6: <1,0,0> (face B)
UV 7: <0,0,0> (face C)
UV 8: <0,1,0> (face C)
UV 9: <1,0,0> (face C)
UV 10: <0,0,0> (face D)
UV 11: <0,1,0> (face D)
UV 12: <1,0,0> (face D)

Face 1: v1/u1, v2/u2, v3/u3
Face 2: v4/u5, v5/u5, v6/u6
Face 3: v7/u7, v8/u8, v9/u9
Face 4: v10/u10, v11/u11, v12/u12

最佳答案

复制位置数据,因为在 vertexData 中有 12 个顶点位置。对纹理坐标执行相同操作。

正如您所注意到的,索引使用相同的索引对所有数组进行索引,因此复制顶点位置是标准的,以便每个索引都有自己的顶点数据(位置 + UV)。

关于opengl-es - glVertexPointer 应该包含不同的顶点还是所有顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com