0

我正在研究地板可视化器(用于透视瓷砖地板),并且正在对相机发疯。基本上,我有一个 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>
4

1 回答 1

2

我相信你因为你的LookDirection. 这是一个方向向量,所以拥有XYZset 会给你那种偏移的外观。您以一定角度而不是笔直指向太空。要直视前方,请将X您的相机设置为 0,LookDirection然后将相机移动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" />

这产生了以下内容。 在此处输入图像描述

于 2013-11-05T22:35:26.763 回答