【发布时间】:2011-12-12 22:24:10
【问题描述】:
我目前正在使用 openGL 编写游戏,我已经处于第一人称模式,使用 W&S 控制“相机”并使用鼠标旋转。
由于某种原因,当我处于窗口模式时,我移动和旋转的速度似乎比全屏时的速度快得多,但这不是我的主要问题。 (*1)
由于上述原因,我决定将游戏限制为全屏。
我的关卡是一个立方体,每一面都是不同的 RGB 颜色,当我快速移动鼠标时,关卡的角落会变得非常块状,直到我放慢速度。 (*2)
任何人都知道这两个问题(*1,*2)发生了什么。
我试着给你们截图了,但是截图看起来很正常。
【问题讨论】:
-
你在全屏和窗口下获得什么样的帧速率?
-
您使用的是 GLUT 还是像 win32 这样的 OS API?
-
呃,我不知道我得到的帧率是多少,有什么方法可以在不编码的情况下显示它? :P 是的,我使用 GLUT 库。
-
如果在你转得非常快时它变得块状,那可能是由于 vsync... 至于相机移动太快:游戏中的一切都必须依赖于帧之间的时间。所以你的相机旋转代码应该是:
camera.rotate(rotx * timeSinceLastFrame, roty * timeSinceLastFrame)。这让一切都保持在一个恒定的速度。 -
啊好的 :) 关于 timeSinceLastFrame,有没有什么好的干净的方法来做这些事情而不是数学计算,也许是 GLUT 计时器或其他什么?这对我来说都是全新的:D。
标签: c++ opengl rendering fullscreen antialiasing