0
私はあるプログラムから別のプログラムにスワップしています。なぜ、GL_QUADSが同じコードで表示されなくなるのかわかりません。古いコードがなぜ機能していないのかを調べるために、私はこの新しい簡単なコードを作ったが、それはまだ動作しません。GL_TRIANGLESは動作しますが、GL_QUADSは何も表示しません
セットアップ:
vector <vec3f> squarepoints;
vec3f temper(-0.5f, 0.5f, 0.5f);
squarepoints.push_back(temper);
temper.x += 1.0f;
squarepoints.push_back(temper);
temper.y -= 1.0f;
squarepoints.push_back(temper);
temper.x -= 1.0f;
squarepoints.push_back(temper);
vector <unsigned int> squareindex;
squareindex.push_back(0);
squareindex.push_back(1);
squareindex.push_back(2);
//squareindex.push_back(0);
//squareindex.push_back(2);
squareindex.push_back(3);
GLuint VAOO;
GLuint IBOO;
GLuint VBOO;
glGenVertexArrays(1, &VAOO);
glBindVertexArray(VAOO);
glGenBuffers(1, &VBOO);
glBindBuffer(GL_ARRAY_BUFFER, VBOO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vec3f) * squarepoints.size(), &squarepoints[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT,GL_FALSE, 0, 0);
glGenBuffers(1, &IBOO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBOO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * squareindex.size(), &squareindex[0], GL_STATIC_DRAW);
glBindVertexArray(0);
描画:
glBindVertexArray(VAOO);
glDrawElements(GL_QUADS, squareindex.size(), GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
これは何も表示されません。ここで、セットアップで2つのコメント行を追加して6ポイントにし、図面のGL_TRIANGLESに変更すると、すべてが完全に表示されます。私はここにどこに欠陥があるのかは分かりませんが、私はモデルの読み込みや他の機能を長く修正しようとしていますので、私はこの時点で非常に明白なものを見落としていると確信しています。
対象とするOpenGLのバージョンはどれですか。コアプロファイルには 'GL_QUADS 'はありません。 – BDL