私はたくさんの頂点を計算して、3Dサーフェスプロットのために四角いストリップでそれらを表示しています。glPushMatrix()とglBegin()の間に接続がありますか?
私は、いくつかの頂点に対して、予想外のやり方で色を変える奇妙な動作をしました。私はそれを修正しようとしたと偶然に、私はglPushMatrix()
とglPopMatrix
を前後に入れて、問題が解決されたことを発見した。根本的な問題は誰が知っていますか?私は一般的にプッシュ/ポップアップをglBegin
/glEnd
で使うべきですか?
ここに私の作業コード:
for (int i = 1; i < vec.size(); i++) {
glPushMatrix();
glBegin(GL_QUAD_STRIP);
for (int j = 0; j < vec[i].size(); j++) {
glNormal3dv(vertex_normal[i][j]);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, reflectance[i][j]);
glVertex3d(vec[i][j].x(), vec[i][j].y(),vec[i][j].z());
glNormal3dv(vertex_normal[i-1][j]);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, reflectance[i-1][j]);
glVertex3d(vec[i-1][j].x(), vec[i-1][j].y(), vec[i-1][j].z());
}
glEnd();
glPopMatrix();
}
廃止予定のAPIは使用しないでください。 –