-
09-09-2019 - |
题
我使用
worldview_inverse * (projection_inverse * vector)
要变换的屏幕空间坐标转换成世界空间坐标。 我假定
(x,y,1,1)
将改变到一个点上的远平面,而
(x,y,-1,1)
转变为一个点上的近平面,和连接线I可以查询在该相交线视锥的所有对象。 改造后,我通过他们各自的.W成分划分产生点。 这适用于远飞机,但近平面点莫名其妙地被转化为世界空间原点。
我认为这与我送入逆投影的1瓦特部件做的,因为它通常是1投影之前,而不是之后,和我做反向投影。我在做什么错了?
解决方案
我知道这仅仅是一个解决办法,但你可以只用远点和观看位置推断近平面点。
near_point = view_position
+ (far_point - view_position) * (near_distance / far_distance)
至于你真正的问题。首先,不要忘记用W来划分!此外,根据您的投影矩阵,你有没有试过(X,Y,0,1),而不是Z = -1。
near_point = worldview_inverse * (projection_inverse * vector)
near_point /= near_point.W
不隶属于 StackOverflow