使Camera LookDirection看起来正面

如何在WPF查看3D模型的前端?

我很困惑为LookDirection设置XYZ。

我不知道当我设置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是从右到左.Y是深度。 Z是最多的。

想象一下,你在3D空间中移动头脑而不是相机。 然后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的评论, LookDirectionLookAtPoint不同( LookAtPoint前属性是Point3D而不是Vector3D )。

LookDirection实际上等于“看点”减去“相机位置”

这意味着在上图中,如果我们想要位于(1,0,10)的相机看点(0,1,-1),那么LookDirection应该是:

(0,1,-1) – (1,0,10)=( – 1,1,-11)。


最后, camera.UpDirection确定相机顶部指向的位置。 在下图中,将camera.UpDirection设置为(-0.5,1,0)会导致摄像机逆时针旋转:

在此处输入图像描述

我希望这些照片能为你清楚。