我正在研究一种地板可视化工具(用于透视瓷砖地板),并且正在通过相机进行加速。基本上,我有一个2D矩形(在X& Y轴上),我想看看这个正方形,好像它是一个地板(后面我将“平铺” - 类似于棋盘)。 问题是,花了好几个小时摆弄LookDirection和Position(在透视镜头中),我似乎无法让它直视广场(好像在看房间)。我改变的任何东西都不允许我看到“正面”的场景(“背面”中的X或Y轴)并且它总是以一定角度卡住。我不想旋转模型,只需要相机。 我该怎么做?
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera Position="-40,60,50" LookDirection="0.8,-.7,-0.8" UpDirection="0,0,1" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<DirectionalLight Color="White" Direction="-1,-1,-3" />
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0,0 25,0,0 25,25,0 0,25,0 " TriangleIndices="0 1 3 1 2 3 "/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="Red"/>
</GeometryModel3D.Material>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
答案 0 :(得分:2)
我相信你因LookDirection
而陷入困境。这是一个方向向量,因此设置X
,Y
和Z
将为您提供偏移外观。你是以一个角度而不是直接向前指向太空。要直视前方,请在X
中将LookDirection
设置为0,然后将相机的Position X
移动到场景的中心,即12.5(因为你的方块从0到25)
<PerspectiveCamera Position="12.5,60,50" LookDirection="0,-.7,-0.8" UpDirection="0,0,1" />
这将产生一个“正面”视图。根据你的说法,你似乎想要更接近“地板”,所以我将Position
移近“地板”并减小了LookDirection
向量的角度,就像这样
<PerspectiveCamera Position="12.5,50,20" LookDirection="0,-.7,-0.35" UpDirection="0,0,1" />
这产生了以下结果。