使用几何体的正交投影被远平面裁剪
Othographic projection causing geometry to get clipped by the far plane
假设我有一个矩形,我想将其渲染成与相机的 x 轴成 45 度角。所以它看起来像这样:
(在底部剪掉只是因为它是 window 的边缘)。
当我沿着它的局部 y 方向移动这个矩形时(即在我们围绕 x 轴旋转它之前增加它的顶点上的 y)然后它最终被远平面剪裁:
如何防止这种情况发生?当从视口移开但仍在实际视图中时,矩形应该完全被切断似乎不自然。
我确实想要正交渲染我的矩形。
我对 OpenGL 很陌生,所以我想我在这里遗漏了一些东西。
事实证明,这个技巧只是在顶点着色器中压缩顶点的 z 位置。这样更多的顶点可以容纳在平截头体内。这确实扭曲了网格,但在正交投影中这实际上并没有产生明显的差异(至少在我的情况下)。
即在顶点着色器中执行此操作:
gl_Position.z *= 0.5; // or whatever scale you want
假设我有一个矩形,我想将其渲染成与相机的 x 轴成 45 度角。所以它看起来像这样:
(在底部剪掉只是因为它是 window 的边缘)。
当我沿着它的局部 y 方向移动这个矩形时(即在我们围绕 x 轴旋转它之前增加它的顶点上的 y)然后它最终被远平面剪裁:
如何防止这种情况发生?当从视口移开但仍在实际视图中时,矩形应该完全被切断似乎不自然。
我确实想要正交渲染我的矩形。
我对 OpenGL 很陌生,所以我想我在这里遗漏了一些东西。
事实证明,这个技巧只是在顶点着色器中压缩顶点的 z 位置。这样更多的顶点可以容纳在平截头体内。这确实扭曲了网格,但在正交投影中这实际上并没有产生明显的差异(至少在我的情况下)。
即在顶点着色器中执行此操作:
gl_Position.z *= 0.5; // or whatever scale you want