1

我正在投影视图中试验 LibGDX 和 3D。现在我正在研究如何在 z=0.0 处确定我的视口在世界空间中的最外边界,以便绘制不大于必要的坐标网格。然而,我似乎已经超越了我的教育,因为我没有上过正式的线性代数课,而且对矩阵数学仍然有些模糊。

有没有办法确定我应该在哪里开始和停止画线,而无需使用拾取和绘制透明平面与之相交?

LibGDX 的 unproject 函数在 Vector3 中获取屏幕坐标,并在给定 z 的情况下返回世界空间中从近剪裁平面到远剪裁平面的 Vector3。但是,鉴于我有一个平移和旋转的相机(viewprojection 矩阵的封装和一系列便利方法),我突然想到我不能选择任意 z 放入窗口坐标向量并设置它取消投影后变为 0.0,因为该点可能不是视口中最远的可视点。那么我怎么知道在窗口坐标中使用什么 z 值,它会在 z=0.0 的世界空间中给出我需要的 x 和 y?

编辑(更新):显然,我正在查看的问题是平面相交,这需要光线追踪。所以现在我想我的问题是:每个渲染循环进行 4 次光线追踪(或者,我想每当相机移动时)是否值得能够动态绘制不大于视口的世界空间坐标网格的回报?如果没有,是否有更便宜的算法可以用来估计我应该在哪里开始和停止画线?

4

0 回答 0