我是OpenGL的新手,并试图从'现代'OpenGL教程中学习。
我正在使用C#和OpenTK。
我正在使用以下代码设置我的projectionMatrix:
_projectionMatrix = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver3, GetAspectRatio(), 0.1f, 100f);
设置之后,我将其上传到着色器,用于转换等。一切都运行良好,如下图所示:
现在,如果我以这种方式设置投影矩阵,结果非常糟糕,如下图所示:
_projectionMatrix = Matrix4.CreateOrthographic(GLControl.ClientSize.Width, GLControl.ClientSize.Height, 0.1f, 100f);
不仅新视图很奇怪,而且如果我向前移动场景,对象也会开始剪裁,即使znear接近于零。
如何正确设置正交投影,以便我可以看到接近我的透视图?
答案 0 :(得分:1)
您似乎无法理解正交投影。
在正交视图中,您的场景看起来不正确有几个原因:
CreateOrthographic
中使用较小的尺寸。但这并不能解决所有问题;例如,地板仍然是“看不见的”。另请注意:
zNear
的负值,
但可能不是0.透视投影不是这种情况。