gpt4 book ai didi

c++ - 更新屏幕以渲染相机位置

转载 作者:行者123 更新时间:2023-11-28 08:22:05 27 4
gpt4 key购买 nike

我已经将 C++ 源代码从使用 GLUT 转换为使用 SDL/OpenGL 问题是因为我已经从 GLUT 更改为“相机的位置没有得到更新,所以与其使用键盘四处移动,屏幕只是坐在那里渲染什么它需要但不会更新。

键盘敲击按照我的设置工作,所以当按下 ESC 时它退出,这很好。

这是我的 Display 函数,它在每个循环和按键(wasd)时都会被调用:

glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
Camera.Render();
glTranslatef(0.0,-0.5,-6.0);

....Draw some stuff....

SDL_GL_SwapBuffers();

接下来是 Camera.Render();

SF3dVector ViewPoint = Position+ViewDir;
gluLookAt(Position.x,Position.y,Position.z,ViewPoint.x,ViewPoint.y,ViewPoint.z,UpVector.x,UpVector.y,UpVector.z);

现在按下一个键会发生什么(w 应该向前移动相机):

case SDLK_w:
CCamera().MoveForward( -0.1 ) ;
Display();
break;

最后是 CCamera().MoveForward() 函数:

MoveForward(GLfloat Distance){
Position = Position + (ViewDir*-Distance);
}

我这辈子都弄不明白为什么一旦按下某个键它就不会更新位置。任何帮助将不胜感激!谢谢。

最佳答案

CCamera() 只是创建一个临时相机。 (然后你移动它。)然后临时消失。

也许您打算修改Camera

关于c++ - 更新屏幕以渲染相机位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5454370/

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