首先,我的所有代码都可以在这里找到,它有3个文件。
flythrough.cpp,support.cpp,support.h
好吧......所以,如果你运行它,似乎有效,但有些事情真的让我烦恼!
相机在一个奇怪的位置开始,我尝试改变各种变量,但它似乎没有效果。
目前最大的问题是移动相机。此时......相机将左右移动,但不能向前或向后移动。当我试图向前移动时,就像像素正在做正确的事情一样,当我向前移动时,物体最终会消失,就像我已经移过它一样,但是当我靠近时,物体本身并没有“显得更大”。向后移动也一样。
如果你能拿出任何东西,请告诉我。
我想补充一点,大部分代码来自我的教科书。经过我自己的修改。
谢谢!
答案 0 :(得分:4)
它是一个正交相机,因此你无法沿Z轴移动。您需要更改相机类型以执行您尝试执行的操作。
参考:第33行,flythrough.cpp
glOrtho(-2.0 * 64 / 48.0, 2.0 * 64 / 48.0, -2.0, 2.0, 100, 100.0);
通常,只需取消注释此行,然后编写以下内容:
gluPerspective(60.0, 640.0 / 480.0, 0.1, 1000.0);
这会将透视矩阵乘以当前加载的单位矩阵(LoadIdentity())。
参考:http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml
答案 1 :(得分:0)
如果不尝试计算轴,您是否尝试沿Z轴向前和向后移动相机而不是Y.也许您的深度轴设置为Z而不是Y.