首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF 3D相机混淆

WPF 3D相机混淆
EN

Stack Overflow用户
提问于 2013-11-05 20:20:52
回答 1查看 2.2K关注 0票数 0

我正在为地板视觉化(从透视的角度看瓷砖地板)工作,并且在镜头前发疯。基本上,我有一个2D矩形(在X&Y轴上),我想把它看作是一层地板(稍后我会“瓦”--类似于棋盘)。问题是,在花了几个小时摆弄LookDirection和位置(在透视相机中)之后,我似乎无法让它直视正方形(就好像在看房间一样)。我改变的任何东西都不能让我看到场景的“头对”(无论是X轴还是Y轴在“后面”),它总是被固定在一个角度上。我不想旋转模型,只有相机。我该怎么做?

代码语言:javascript
复制
        <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 22:35:26

我相信你因为你的LookDirection而陷入了困境。这是一个方向向量,所以有XYZ集合会给您提供偏移量的外观。你是以一个角度,而不是直接指向太空。向前看,将X设置为LookDirection中的0,然后将相机的Position X移动到场景的中心,即12.5 (因为您的方格从0到25)。

代码语言:javascript
复制
<PerspectiveCamera Position="12.5,60,50" LookDirection="0,-.7,-0.8"  UpDirection="0,0,1" />

这将产生一个“正面对”的观点。根据你所说的,似乎你想离“地板”更近一些,所以我把Position移近了“地板”,减小了LookDirection矢量上的角度,就像这样。

代码语言:javascript
复制
<PerspectiveCamera Position="12.5,50,20" LookDirection="0,-.7,-0.35"  UpDirection="0,0,1" />

这产生了以下情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19798168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档