如何在OpenGL中获取物体空间坐标系中的近裁剪平面坐标
我正在渲染一个有8个顶点的立方体。当我旋转或靠近立方体时,一些顶点可能会被近剪裁平面剪裁。然而,出于某种原因,在我的问题中,我需要找到立方体边缘与近剪裁平面的交点。我知道分数可能会有所不同。所以我的想法是得到近剪裁平面(可能在眼睛空间-但是如何做?)并对矩阵进行一些逆计算,以获得立方体对象空间中的坐标,然后我可以找到交点并解决我的问题。但这里的问题是:如何在OpenGL中获取物体空间坐标系中的近裁剪平面坐标,opengl,transformation,clipping,plane,Opengl,Transformation,Clipping,Plane,我正在渲染一个有8个顶点的立方体。当我旋转或靠近立方体时,一些顶点可能会被近剪裁平面剪裁。然而,出于某种原因,在我的问题中,我需要找到立方体边缘与近剪裁平面的交点。我知道分数可能会有所不同。所以我的想法是得到近剪裁平面(可能在眼睛空间-但是如何做?)并对矩阵进行一些逆计算,以获得立方体对象空间中的坐标,然后我可以找到交点并解决我的问题。但这里的问题是: 如何获取近剪裁平面每个角的坐标?(或平面方程系数) 如何返回到对象空间 测试: 为了测试我是否能正确获得坐标,我尝试了以下方法: 我试图做的是得
然后,当我用当前加载的矩阵渲染这四个点时(我刚刚使用了矩阵的倒数),我应该在屏幕前得到一个站立的窗台正方形,因为我的逆乘法应该被openGL当前加载的矩阵的乘法所取消。但由于某种原因,它不起作用,我尝试了转置和正常。我注意到了成为专栏主修等,但它似乎不起作用,我没有得到一个静止的suqare(代表我的近剪裁平面),而是得到一个不断移动和跳跃的平面 看来我在这个论坛上的所有问题都将由我自己来回答!首先,经过思考,我意识到我们不需要投影矩阵的逆。我们在摄影机空间中指定点,并将它们带回对象空间,我们只需要modelview矩阵的逆矩阵 和往常一样,我的向量矩阵乘法计算中有一个逻辑错误。当我用在线矩阵计算器再次检查时,我意识到我的第一个元素是正确的,但其余的元素是错误的。我突然想到,我将结果存储在与之相乘的同一个矩阵中,并因此改变了原始矩阵。所以我只是为结果添加了一个新的矩阵,一切都很好。基本上,我指定了一个点,然后将它乘以模型视图矩阵的倒数,得到对象空间坐标中的点