我正在处理一个实验设置,其中向基因修饰的苍蝇显示一张简单的图片。画面被投射到与那只苍蝇有一定距离的屏幕上。
现在轮到我设置透视校正,以便显示的图像(例如水平条)在距离苍蝇视点较远的地方显得更宽(实验设置)。代码现在如下所示:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(!USEFRUSTUM)
gluPerspective(90.0f, 2 * width/height, 0.1f, 100.0f);
else
glFrustum(92.3f, 2.3f, -25.0f, 65.0f, 50.0f, 1000.0f);
这些值是几年前有人输入的,我们发现它们不再准确。但是,我很困惑要输入或更改哪些值才能使投影正常工作,因为正如您在实验设置中看到的那样,苍蝇的视野有点倾斜。
我想到了这些价值观:
- fovy = a 和 c 之间的角度
- 在投影屏幕上测量宽度和高度
- 但什么是 zNear?我应该测量从苍蝇到屏幕顶部还是底部的距离?我不明白为什么有人进入 0.1f,因为这对我来说似乎太近了。
- 我如何知道 zFar 的价值?它是物体到苍蝇的最大距离吗?
我从以下网址获得了有关 glPerspective 的信息:https ://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html 我还检查了设置 3D OpenGL 透视投影的最简单方法,但这篇文章没有不要对待我的实验设置,这是我困惑的根源。
感谢您的任何帮助!