三维图形显示是较为复杂的过程,涉及到三维模型建立、材质应用、坐标变换、光照设置、取景照相机设置等,要使显示内容大小适中、颜色合理,需要对以上各项进行复杂的设置,以下仅叙述最为简单的呈现三维内容的基本步骤。
三维曲面建模方式是三维图形处理最重要的部分,WPF利用三角形构建三维网格曲面,这包括三维地形构建、建筑物表面构建、自由水面构建(波浪表面)、等温面构建、盐度锲入面构建等等。
WPF中,三维模型由GeometryModel 3D建立,三维模型以MeshGeometry3D构建几何形状,MeshGeometry3D公开了Positions和Trianglelndices以指定三角形顶点坐标和三角单元顶点的连接关系,如果需要还可以用TextureCoordinates指定表面材质的平面坐标用于精确显示表面材质。
要利用WPF显示三维图形,首先需要将三维物体表面三角形网格化,记录网格化后的每个顶点的三维坐标值(x,y,z)到Positions中,然后将这些顶点连接成三维曲面的按顺序(一个单元三个顶点,俺逆时针顺序排列)存储到Trianglelndices中,这样基本上就明确了三维曲面的几何构成,加上表面材质的定义,也就是三位曲面表面是何材料,从而完成三维模型GeometryModel3o的建立。
为了提高性能和便于管理,可以将若干个GeomctryModel3D模型集合成一个大的三维模型组,称为Model3DGroup,将其作为三维可视模型ModelVisual3D的内容最终添加到为三维可视内容提供呈现图面的viewport3D对象中。当然,指定Model3DGroup的三维变换矩阵是必须的,这样可以将三维模型正确地显示到屏幕区域。完成以上操作后,向viewport3D对象中添加光源Light和照相机Camera,以照亮模型区域并正确投影到显示区域。