gpt4 book ai didi

c - gluLookAt 不工作

转载 作者:行者123 更新时间:2023-11-30 19:44:26 26 4
gpt4 key购买 nike

我正在尝试使用 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 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中的不同身份不太熟悉。

那么我如何更改此代码以使按键放大?

最佳答案

glDrawPixels 并不像人们天真地假设的那样受到变换矩阵的影响。特别是,位置集 glRasterPos 被转换为视口(viewport)中的一个点,然后该点成为从数据到帧缓冲区的常规逐像素位 block 传输的起点。这意味着不会发生缩放或类似情况。

使用纹理四边形以获得所需的效果。并且不要使用 glDrawPixels。曾经! glDrawPixels 很慢,有很多问题,而且支持很差,因此决定最好从 OpenGL-3 及更高版本中完全删除它。

关于c - gluLookAt 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com