我正在计算很多顶点,然后用四条带显示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。 –