C++ 如何将OpenGL中的内容缩放到实际大小?

C++ 如何将OpenGL中的内容缩放到实际大小?,c++,opengl,glm-math,C++,Opengl,Glm Math,我正在尝试用OpenGL 3.3制作一个程序。一切正常,但问题是一切看起来都太小了。我在现实生活中测量了我的视野,结果是46.9°。所以我将其应用于我的投影矩阵,如下所示: projection = infinitePerspective(radians(46.9f), float(windowWidth) / float(windowHeight), 0.005f); 但这并没有多大帮助 我为你做了一个屏幕截图,显示了一个一个一个的立方体,离摄像机3米远: 如果我在现实生活中测量出一米,从

我正在尝试用OpenGL 3.3制作一个程序。一切正常,但问题是一切看起来都太小了。我在现实生活中测量了我的视野,结果是46.9°。所以我将其应用于我的投影矩阵,如下所示:

projection = infinitePerspective(radians(46.9f), float(windowWidth) / float(windowHeight), 0.005f);
但这并没有多大帮助

我为你做了一个屏幕截图,显示了一个一个一个的立方体,离摄像机3米远:


如果我在现实生活中测量出一米,从三米远的地方看,它看起来要大得多。是否需要一些系数来缩放一切,使其看起来真实?

事实证明,真实的缩放是不可能的。但如果视角正确,它看起来不错。

“它看起来比那个大得多。”——你能解释一下你是如何得出这个结论的吗?你用什么方法来比较现实生活中物体与屏幕上物体的外观尺寸?您希望屏幕上显示的尺寸是多少?您确定垂直视野角度为68.4度吗?我刚刚测量了我的
atan(屏幕高度/屏幕距离)
并得到了大约25度,这是一个38英寸的显示器。您确实意识到,大多数(如果不是所有的话)透视矩阵创建方法/函数都使用垂直视野角度,而不是水平视野角度。@Romen只需简单地进行比较即可。我希望一些系数取决于屏幕大小(真实世界的测量)@t.niese你是什么意思?@httpdigest,这里的问题可能有一个根本问题,与代码无关。如果我有一台3米宽的电视,当从任何距离观看时,立方体是否应该以电视宽度的100%渲染?如果没有,那么现实生活中的一些因素使得这个问题不可能在没有头部跟踪的情况下得到解决。