Othographic 投影导致几何体被远平面剪裁

问题描述

假设我有一个矩形,我想将它渲染成与相机的 x 轴成 45 度的方向。所以它看起来像这样:

enter image description here

(仅在底部剪裁,因为它是窗口的边缘)。

当我沿着它的局部 y 方向移动这个矩形时(即在我们围绕 x 轴旋转它之前增加它顶点上的 y)然后它最终被远平面剪裁:

enter image description here

我如何防止这种情况发生?当从视口移开但仍在实际视图中时,矩形应该被切掉似乎很不自然。

我确实想以正交方式渲染我的矩形。

我对 OpenGL 很陌生,所以我想我在这里遗漏了一些东西。

解决方法

事实证明,技巧只是在顶点着色器中挤压顶点的 z 位置。通过这种方式,更多的顶点可以放入截锥体内。这确实会扭曲网格,但在正交投影中,这实际上并没有产生明显的差异(至少在我的情况下)。

即在顶点着色器中这样做:

gl_Position.z *= 0.5; // or whatever scale you want

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...