使用WPF 3D,我将几何定义如下:
<MeshGeometry3D Positions="0 0 0 1 1 0 1 0 0" />
我的相机定义为
<PerspectiveCamera FarPlaneDistance="20"
LookDirection="0,0,1"
UpDirection="0,1,0"
NearPlaneDistance="0"
Position="0,0,-10"
FieldOfView="45" />
但是,当我查看生成的图片时,我得到了:
似乎X坐标向后,即X轴朝左。奇怪的是,当我尝试翻转符号时,即当我书写时
<MeshGeometry3D Positions="0 0 0 -1 1 0 -1 0 0" />
图像完全消失。这是怎么回事?
答案 0 :(得分:1)
我将首先回答您的第二个问题... WPF等3d引擎通常采用背面剔除,即不渲染指向远离相机的面部以提高性能。您可以通过更改MeshGeometry3D
中点的顺序或将BackMaterial
分配给GeometryModel3D
(而不是常规Material
)来解决此问题。
关于第一个问题,不是X而是Z。如果您查看the WPF 3D Graphics Overview on the Microsoft site,您会看到Z变为负数进入屏幕。您已将相机设置为[0,0,-10],并将外观方向设置为[0,0,1],因此相机实际上位于对象的“后面”并向后看。将这些值分别更改为[0,0,10]和[0,0,-1],并添加一个BackMaterial,就像我上面提到的那样,一切将再次变得很好。