我试图获得以下观点:
Matrix.CreateOrthographicOffCenter
本质上,我正在做一个带有一些 3D 图形的 2D 游戏,所以我从Matrix.CreatePerspectiveOffCenter
我已经绘制了一个图元,通过减小它的 z-index,它会走得更远,但它总是在 (0, 0) (左上角)的方向上消失,而消失点应该是中心。
我的变换设置现在看起来像这样((640, 360) 是屏幕的中心):
basicEffect.Projection = Matrix.CreatePerspectiveOffCenter(0, graphicsDevice.Viewport.Width, graphicsDevice.Viewport.Height, 0, 1, 10);
basicEffect.View = Matrix.Identity * Matrix.CreateLookAt(new Vector3(640, 360, 1), new Vector3(640, 360, 0), new Vector3(0, 1, 0));
basicEffect.World = Matrix.CreateTranslation(0, 0, 0);
我无法将消失点移到屏幕中心。我设法(在某种程度上)使用 CreatePerspective 视图来做到这一点,但我想继续使用 CreatePerspectiveOffCenter,因为我可以轻松地将正常像素位置转换为 3D 空间。我错过了什么?