三角形のメッシュとして表示したい .OBJ ファイルに人体モデルがあります。テクスチャはありません。3D での移動、拡大縮小、回転もできるようにしたいです。
最初の有効なオプションは、手動で数学を使用して頂点を 2D に投影し、Quartz 2D で描画することです。透視投影の基礎となる数学の概念を知っているので、これはうまくいきます。
ただし、その方法に OpenGL ES を使用したいのですが、三角形の描画方法がわかりません。
たとえば、 - (void)drawRect:(CGRect)rect のコードは次のとおりです。
glClearColor(1,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
GLKBaseEffect *effect = [[GLKBaseEffect alloc] init];
[effect prepareToDraw];
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
それで?頂点位置の配列(頂点ごとに3つの浮動小数点数)と三角形インデックスの配列があるので、これを試しました:
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, numVertices,pVertices);
glDrawElements(GL_TRIANGLES, numTriangles, GL_UNSIGNED_INT,pTriangles);
しかし、これは何も表示されません。サンプルから glEnableVertexAttribArray(GLKVertexAttribPosition) と glDrawArrays の使用法を見ましたが、それらの使用方法がわかりません。
ES ではワイヤーフレームのレンダリングができないことも理解していますか? そのため、頂点に色属性を適用する必要があります。それは問題ありませんが、その前に三角形を最初に表示する必要があります。