如何知道单位的平面尺寸?

时间:2011-11-17 17:29:21

标签: c++ opengl

那就是,我不想用不同的宽度和高度来描绘迷宫。我正在以单位绘制它们,我的问题是,如何以单位形式获得平面可视尺寸,我知道屏幕内部有多深,我必须绘制迷宫以便完全可见。对于透视图,我使用“:: gluPerspective(45.0f,(GLfloat)width /(GLfloat)height,1.0f,100.0f);”

perspective

例如,我如何获得OpenGL单位或远平面或这些平面之间的任何平面的近平面尺寸(宽度和高度)。如果我想描绘一些完全可见的东西,我需要知道OpenGL单元中的平面尺寸还是有另一种方式?

1 个答案:

答案 0 :(得分:4)

一些三角函数会告诉你:h_near = 2*near*tan(fovy/2)并且远远相同:h_far = 2*far*tan(fovy/2)

然后,比率将给你宽度。

对于“证明”,只考虑由视线形成的直角三角形,渲染平面的垂直和背面。视线的长度为nearfar(取决于),眼睛位置的角度为fovy/2(即视角的一半),平面上的垂直为{ {1}}或h_near/2,因为我们只能到飞机的中途。那么,直角三角形上的角度切线等于远边除以近边...