使相机 LookDirection 看前面
Make Camera LookDirection look front face
如何在WPF
中查看3D
模型的正面?
我对为 LookDirection 设置 X Y Z 感到困惑。
我不知道当我设置 xyz 时会发生什么,我也不知道相机在看哪里。我不知道 UpDirection
.
的情况
以下是我的相机属性:
camera.Position = new Point3D(100, 100, 150);
camera.LookDirection = new Vector3D(-100, -100, -100);
camera.UpDirection = new Vector3D(0, 0, 1);
问题是摄像头是从后面看的。
模型如下图所示。
如何让它看起来像正面?
另外请说明如何设置xyz。我知道属性的作用,但我无法想象它们。
我认为 X 是从右到 left.Y 是深度。 Z 从上到下 .
想象一下,您正在 3D 中四处移动头部,而不是相机 space。然后 Camera.Position
指定您的头部位置,Camera.LookDirection
确定您正在看的方向,Camera.UpDirection
显示您头部的方向。以下图片为您一目了然。
在第一张图片中,相机以 +Z 轴为中心,向下看 -Z 轴和您的形状:
当您将 camera.Position
设置为例如 (x=1, y=0, z=10) 时,相机位置会像这样改变:
因此,相机向右移动了一点,因此您会在视图的左侧看到您的形状。
现在,如果 camera.LookDirection
变为 (x=0, y=1, z=-1),那么相机会像这样简单地观察点 (0,1,-1):
重要编辑:
根据 DaveInCaz 的评论,LookDirection
不同于 LookAtPoint
(PrespectiveCamera
的前 属性 是 Point3D
而不是
Vector3D
).
LookDirection
实际上等于"the point to look at"减去"camera position".
这意味着在上图中,如果我们想让位于 (1,0,10) 的相机看点 (0,1,-1) 那么 LookDirection
应该是:
(0,1,-1) - (1,0,10) = (-1,1,-11).
最后,camera.UpDirection
确定相机顶部指向的位置。下图中,设置camera.UpDirection
为(-0.5,1,0)会导致相机逆时针旋转:
希望这些图片能帮您解决问题。
如何在WPF
中查看3D
模型的正面?
我对为 LookDirection 设置 X Y Z 感到困惑。
我不知道当我设置 xyz 时会发生什么,我也不知道相机在看哪里。我不知道 UpDirection
.
以下是我的相机属性:
camera.Position = new Point3D(100, 100, 150);
camera.LookDirection = new Vector3D(-100, -100, -100);
camera.UpDirection = new Vector3D(0, 0, 1);
问题是摄像头是从后面看的。 模型如下图所示。
如何让它看起来像正面?
另外请说明如何设置xyz。我知道属性的作用,但我无法想象它们。
我认为 X 是从右到 left.Y 是深度。 Z 从上到下 .
想象一下,您正在 3D 中四处移动头部,而不是相机 space。然后 Camera.Position
指定您的头部位置,Camera.LookDirection
确定您正在看的方向,Camera.UpDirection
显示您头部的方向。以下图片为您一目了然。
在第一张图片中,相机以 +Z 轴为中心,向下看 -Z 轴和您的形状:
当您将 camera.Position
设置为例如 (x=1, y=0, z=10) 时,相机位置会像这样改变:
因此,相机向右移动了一点,因此您会在视图的左侧看到您的形状。
现在,如果 camera.LookDirection
变为 (x=0, y=1, z=-1),那么相机会像这样简单地观察点 (0,1,-1):
重要编辑:
根据 DaveInCaz 的评论,LookDirection
不同于 LookAtPoint
(PrespectiveCamera
的前 属性 是 Point3D
而不是
Vector3D
).
LookDirection
实际上等于"the point to look at"减去"camera position".
这意味着在上图中,如果我们想让位于 (1,0,10) 的相机看点 (0,1,-1) 那么 LookDirection
应该是:
(0,1,-1) - (1,0,10) = (-1,1,-11).
最后,camera.UpDirection
确定相机顶部指向的位置。下图中,设置camera.UpDirection
为(-0.5,1,0)会导致相机逆时针旋转:
希望这些图片能帮您解决问题。