0

私はこの数週間、キーボードに頭をぶつけてきました。私がやろうとしているのは、floatの配列(GLfloat)とunsigned shortsの配列(GLushort)をテキストファイルからobjective-cの同等の配列にロードして、含まれているオブジェクトをレンダリングできるようにすることです。配列をベクターオブジェクトにロードしました

vector<float> vertices;

vector<GLushort> indices;

しかし、何らかの理由で、これらをレンダリングできない理由がわかりません。上記をレンダリングするための私のコードは次のとおりです。

glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPoitner(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);
glDrawElements(GL_TRIANGLES, sizeof(indices)/sizeof(indices[0]), GL_UNSIGNED_SHORT, indices);

サンプル配列は以下のとおりです。

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

ベクターオブジェクトは最善のアプローチですか?そうでない場合は、何ですか?そして、これらがレンダリングされないのは何が間違っているのでしょうか?ありがとう。

4

1 に答える 1

2

GL_TRIANGLESを使用して、頂点の形式を指定します。

代替テキスト

GL_TRIANGLESに関するグラフを参照してください。形式が間違っています。そして、私はGL_TRIANGLE_STRIP形式を使用することを好みます。頂点はほとんど必要ありません。

于 2010-12-01T00:58:08.927 に答える