如何在屏幕空间定义的特定点处将四边形放置在平截头体的近平面上?我有挫折的角落,我已经尝试了太多的东西来命名它们,但是在一个确切的点上获得一个四边形使我望而却步。特别是如果我移动/旋转相机。我将四边形的中心放置在某一点上取得了一些有限的成功,但是我们无法抵消它们,所以角落是我想要它们的地方。
我使用透视左手投影。关于我唯一没有尝试的事情是沿着使用带有固定相机的新视口的道路,我开始认为我可能会这样......
我失败的尝试之一看起来像这样:
Vector3 bottomleftcorner = Vector3.TransformCoordinate(Frustum.Corners[1], viewProjection);
Frustum.Corners [1]在左下角附近。
使用该矢量会在屏幕的一角放置一个四边形中心,但是我试图将它从中心偏移是不成功的,这听起来比我发现它更容易因为我不知道什么是“半”'是在那个特定的深度。此外,如果我移动相机,四边形开始移动,我希望它是静止的。我不确定它是否会把一切都扔掉或是什么?
从技术上讲,我不需要屏幕坐标,我会很满意任何可以确定视口角落的东西,并在其中的某个位置放置一个物体。我认为有一种简单的方法可以解决这个问题。
感谢。
我忘了提到的一件事是这些四边形是实例化的,所以位置向量只是简单地添加到顶点着色器中的单位矩阵中。我不认为应该让它变得更复杂,但它可能值得一提。