私は最近、頂点バッファオブジェクトを機能させることに大きな進歩を遂げました。そこで、Element配列に移り、そのように実装すると、objから頂点と面データをロードできると考えました。
私はC++でファイルを読むのが苦手なので、Pythonドキュメントを作成してobjを解析し、2つの別々のtxtを作成して、頂点配列と面のインデックスを取得し、コードに直接貼り付けました。これは6000行に似ていますが、(コンパイルエラーなしで)機能します。そして、これがどのように見えるかです
。
彼らは間違っていると思います。わからない。バッファオブジェクトに対して機能する法線またはテクスチャがまだないため、頂点と面の順序はobjから抽出されただけでは変更されません。キューブを見ればいいのですが、実際はそうではありません。
レンダリングコードは次のとおりです
void Mesh_handle::DrawTri(){
glBindBuffer(GL_ARRAY_BUFFER,vertexbufferid);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,elementbufferid);
int index1=glGetAttribLocation(bound_program,"inputvertex");
int index2=glGetAttribLocation(bound_program,"inputcolor");
int index3=glGetAttribLocation(bound_program,"inputtexcoord");
glEnableVertexAttribArray(index1);
glVertexAttribPointer(index1,3,GL_FLOAT,GL_FALSE,9*sizeof(float),0);
glEnableVertexAttribArray(index2);
glVertexAttribPointer(index2,4,GL_FLOAT,GL_FALSE,9*sizeof(float),(void*)(3*sizeof(float)));
glEnableVertexAttribArray(index3);
glVertexAttribPointer(index3,2,GL_FLOAT,GL_FALSE,9*sizeof(float),(void*)(7*sizeof(float)));
glDrawArrays(GL_TRIANGLE_STRIP,0,elementcount);
//glDrawElements(GL_TRIANGLE_STRIP,elementcount,GL_UNSIGNED_INT,0);
}
情報をファイルに書き込むだけの私のPythonパーサー:source
オブジェクトはLeagueofLegendsのEzrealです
私が顔を間違って読んでいるのか、それとも私が思っていたものでさえないのかはわかりません。私はGL_TRIANGLE_STRIP
何か他のものを使うと思いますか?ヒントや詳細情報のリクエスト。