Iphone 从文件加载顶点数组的正确格式
在过去的几周里,我一直在用我的头敲击键盘。我要做的是将文本文件中的浮点数组(GLfloat)和无符号短数组(GLushort)加载到objective-c中的等效数组中,以便渲染包含的对象。我已经将数组加载到向量对象中Iphone 从文件加载顶点数组的正确格式,iphone,objective-c,opengl-es,objective-c++,vertex-array,Iphone,Objective C,Opengl Es,Objective C++,Vertex Array,在过去的几周里,我一直在用我的头敲击键盘。我要做的是将文本文件中的浮点数组(GLfloat)和无符号短数组(GLushort)加载到objective-c中的等效数组中,以便渲染包含的对象。我已经将数组加载到向量对象中 vector<float> vertices; 示例阵列如下: vertices: (Vx, Vy, Vz, Nx, Ny, Nz) {10, 10, 0, 0, 0, 1, -10, 10, 0, 0, 0, 1, -10, -10, 0, 0, 0, 1, 1
vector<float> vertices;
示例阵列如下:
vertices: (Vx, Vy, Vz, Nx, Ny, Nz)
{10, 10, 0, 0, 0, 1,
-10, 10, 0, 0, 0, 1,
-10, -10, 0, 0, 0, 1,
10, -10, 0, 0, 0, 1};
indices: (v1, v2, v3)
{0, 1, 2,
0, 2, 3};
要从中加载这些数组以进行渲染的文本文件如下所示:
4 //Number of Vertices
###Vertices###
v 10 10 0 0 0 1
v -10 10 0 0 0 1
v -10 -10 0 0 0 1
v 10 -10 0 0 0 1
###Object1###
2 //Number of faces
f 0 1 2
f 3 4 5
向量对象是最好的方法吗?如果没有,是什么?我做错了什么,这些都不会呈现?谢谢。您可以使用GL_三角形指定顶点格式 请参见有关GL_三角形的图表,您的格式错误。
而且,我更喜欢使用GL_三角形_条格式。它需要几个顶点。“我无法渲染这些顶点”。相反,你得到了…什么?崩溃黑屏?对不起,我没有澄清,它只是没有呈现任何东西,但我的清晰的颜色背景。就像我已经注释掉了我的GLD元素行一样。说到这里,对于我正在尝试做的事情,有没有比gldrawerelements更有效的方法来呈现呢?我终于让它工作了,对于gldrawerelements的最后一个参数,它似乎想要索引向量的地址。我正在从OBJ文件加载几何体,那么如果已经创建了几何体,如何使用三角形条带渲染几何体呢?我不反对在桌面上编写一个预处理器,它可以重新排序索引以利用三角形条带,只是不确定从哪里开始…在你的文章中,我用(x,y)显示顶点。顶点流可以是(10,10)->(-10,10)->(10,-10)->(-10,-10)。我可以通过在几何体预处理器中编写一个优化例程来实现同样的目标,该例程可以查找重复的顶点,消除重复并调整索引指针。看起来唯一的区别是顶点可以与三角形条重复使用,而不是与三角形重复使用。有什么原因可以解释为什么它不如三角形条那么快或几乎和三角形条一样快?如果你的格式是GL_三角形,那么我认为格式不会比GL_三角形条慢。也许你可以测试它们,并与仪器进行效率比较。因为你的帖子只有4个顶点,所以我认为它们在我提供的图表中的格式都不好。
vertices: (Vx, Vy, Vz, Nx, Ny, Nz)
{10, 10, 0, 0, 0, 1,
-10, 10, 0, 0, 0, 1,
-10, -10, 0, 0, 0, 1,
10, -10, 0, 0, 0, 1};
indices: (v1, v2, v3)
{0, 1, 2,
0, 2, 3};
4 //Number of Vertices
###Vertices###
v 10 10 0 0 0 1
v -10 10 0 0 0 1
v -10 -10 0 0 0 1
v 10 -10 0 0 0 1
###Object1###
2 //Number of faces
f 0 1 2
f 3 4 5