我真的对WPF中的透视摄像头感到沮丧,它做了各种各样奇怪的事情,我在互联网上找到的所有解决方案对我来说都不起作用。
目前我有这样的代码:
<Window x:Class="projectv1.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Name="MainWin">
<Grid HorizontalAlignment="Stretch" >
<Viewport3D Name="viewport3D1" >
<Viewport3D.Camera>
<PerspectiveCamera x:Name="camMain" Position="-500 -10 300" LookDirection="0 -0.2 -1" UpDirection="0 1 0" FarPlaneDistance="10000" NearPlaneDistance="1" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1">
</DirectionalLight>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D x:Name="meshMain"
Positions="-800,0,-1000 -200,0,-1000 -500,0,-100"
TriangleIndices="0,1,2" >
</MeshGeometry3D>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial x:Name="matDiffuseMain">
<DiffuseMaterial.Brush>
<SolidColorBrush Color="Red"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Grid>
所以我有一个三角形,我从下面看...但现在我想从顶部看它,所以我将相机的Y参数的位置更改为任何大于0的值,但突然我看不到任何东西。例如,Position="-500 -1300“起作用,但Position=”-500 1300“不再起作用。我经常使用updirection变量,但我无法解决这个问题……
发布于 2012-12-21 19:00:29
您需要更改LookDirection和位置。
您所做的是将摄影机从对象的一侧移动到另一侧,但使其看向同一方向:
----- <-- object
^
|
Camera如下所示:
^
|
Camera
----- <-- object如果您也反转相机方向,您将获得正确的结果:
Camera
|
V
----- <-- object发布于 2013-02-23 03:34:20
您可能需要更改三角形索引的顺序。看一看http://www.codeproject.com/Articles/23332/WPF-3D-Primer,更具体地说是“第四步”。
简而言之,定义顶点的顺序也定义了三角形可见的方向。三角形的背面是不可见的。
https://stackoverflow.com/questions/13988799
复制相似问题