通过之前对DirectX示例程序代码的研究,基本了解DirectX最简单的工作过程,为了更好的理解整个过程,基于示例程序做一个山峰河谷的简单模型。首先还是根据模板创建正方体的示例程序,Visual C++ -〉Windows应用商店 -〉DirectX3D应用程序,如图1。设置好名称后完成创建。
程序显示一个类似山峰河谷的模型,只要将正方体的数据替换成模型数据即可。在不改变示例程序其他部分的前提下,要提供的模型数据只需包括顶点坐标和颜色,索引数组两部分,其中最重要的部分就是顶点坐标的生成。
在DirectX的右手坐标系中,y方向为垂直方向,表示高度,x和z方向定义水平面。DirectX只绘制三角形,如果将山峰河谷模型投影在xz平面,那么xz平面就是由许多三角形组成的网格。假设相邻的两个三角形能构成一个正方形,如图2,顶点的x和z坐标就很容易生成。获得xz坐标之后,将其代入高度计算公式即可算出y。为表现出山峰河谷的效果,不同的高度范围应该有不同的颜色,可以使用条件判断进行设置。
首先找到CubeRenderer.cpp中的Crea