C 看不见工作
我试图使用gluLookAt()函数来控制放大和缩小。现在它根本没有改变矩阵,我也不知道为什么 以下是相关代码:C 看不见工作,c,opengl,glut,glulookat,C,Opengl,Glut,Glulookat,我试图使用gluLookAt()函数来控制放大和缩小。现在它根本没有改变矩阵,我也不知道为什么 以下是相关代码: // Basic Opengl display function void onDisplay() { // Clear the initial buffer glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Set up viewing transformation, looking down -Z
// Basic Opengl display function
void onDisplay()
{
// Clear the initial buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Set up viewing transformation, looking down -Z axis
glLoadIdentity();
gluLookAt(0, 0, zPosition, 0, 0, -1, 0, 1, 0);
// Draw the complete Mandelbrot set picture
glDrawPixels(520, 520, GL_RGB, GL_FLOAT, pixels);
//glLoadIdentity();
glutSwapBuffers();
}
void keyPressed (unsigned char key, int x, int y)
{
if(key == 'w')
{
printf("pressed %a", key);
printf("\n");
zPosition -= 1.0;
glutPostRedisplay();
}
}
这与glLoadIdentity()调用有关吗?我不太熟悉openGL中的不同标识
那么,我如何更改此代码以使按键在w放大?glDrawPixels不会像人们天真地假设的那样受到变换矩阵的影响。特别是,位置集glRasterPos被转换为视口中的一个点,然后该点是从数据到帧缓冲区的常规逐像素闪烁的原点。这意味着不会发生缩放或类似的情况
使用带纹理的四边形以获得所需的效果。不要使用GLDRAW像素。曾经glDrawPixels速度慢,存在大量问题,而且支持程度很低,因此决定最好将其从OpenGL-3及更高版本中完全删除。您设置了投影矩阵吗?如果不是,那么它将是identity,这意味着您正在使用。这样,移动
z
不会有任何作用,因为这只会改变使用透视图时的外观。@vesan:没关系。glDrawPixels不受PMV转换的影响。@DatenWalf:啊,它有glDrawPixels。我的坏朋友,没注意到。在这种情况下,你当然是对的。