摘要: 在图13.4中,计算三角形网格上的顶点,我们只是在开始产生顶点的地方,一行一行的生成顶点数据,直到结束为止。单元格的顶点与顶点之间有一块空白区域,这会让我们取得x、z坐标,但y坐标是什么呢?得到y坐标很容易,当读取高度图数据结构时会找到对应的入口。
注意:这个操作使用一个巨大的顶点缓存去保存所有地形上的所有顶点。这可能会引起硬件局限性的问题。例如:3D设备都预设了最大图元数和最大顶点索引值。检查D3DCAPS9结构的MaxPrimitiveCount和MaxVertexlndex成员来获得你的设备的限定值。
阅读全文
摘要: 实际上,地形网格不比三角形网格复杂,图13.1.(a)所示,网络的每个顶点指定了高度,格子模型用这种方式显示从山脉到河流的平滑过渡。图13.1 (b),模拟自然地形。当然,我们可以用漂亮的纹理表现沙石地,绿色的山丘。图13.1.(c)雪山效果。
阅读全文
摘要: 掌握游戏编程, 学习几本好书必不可少. 这些书可以大致分为两类. 一类是原理性的书籍, 另一类是应用性的书籍. 原理性的书籍一般变化不大, 这些年来奉为经典的一直都是那几本. 这类书最好拥有一两本, 不求多, 务求懂. 应用类的书这几年来大量涌现, 参差不齐. 这些书没有必要拥有. 但应随时了解最新书籍, 有好的不妨翻一下. 需要的时候知道到哪里去找资料就行了.
阅读全文
摘要: 我们使用D3DXMatrixLookAtLH函数来计算视图空间变换矩阵。这个函数对于在固定位置布置和对准摄像机是非常好用的,不过它的用户接口对于要响应用户输入来实现摄像机移动就不那么好用了。这就激发我们用我们自己的方法来解决,这里我们展示了怎样实现一个Camera类,它使我们能够比 D3DXMatrixLookAtLH函数更好地操作摄像机,并且可以用来作为飞行模拟摄像机和第一人称视角摄像机。
阅读全文
摘要: 该实例程序是创建和渲染一个如图12.8所示的场景。你能够通过键盘输入在场景中自由地飞行。下面是相应键盘设置:
W/S—向前/向后移动
A/D—向左/向右平移
R/F—向上/向下飞行
Up/Down方向键—倾斜
Left/Right方向键—偏航
N/M—滚转
阅读全文
摘要: 为了实现我们的摄像机旋转方法,我们需要能够绕着任意轴旋转,D3DX库提供下面的函数来解决这个问题:
阅读全文
摘要: 我们使用D3DXMatrixLookAtLH函数来计算视图空间变换矩阵。这个函数对于在固定位置布置和对准摄像机是非常好用的,不过它的用户接口对于要响应用户输入来实现摄像机移动就不那么好用了。这就激发我们用我们自己的方法来解决,这里我们展示了怎样实现一个Camera类,它使我们能够比D3DXMatrixLookAtLH函数更好地操作摄像机,并且可以用来作为飞行模拟摄像机和第一人称视角摄像机。
阅读全文
摘要: ID3DXMesh接口的主要功能继承自ID3DXBaseMesh父接口,了解这些是很重要的,其它一些mesh接口如ID3DXPMesh也是继承自ID3DXBaseMesh。
阅读全文
摘要: 有时我们需要计算mesh的外接体(边界范围),常用的有两种类型:立方体和球。也有使用其它方法的,如圆柱体,椭球体,菱形体,胶囊形。图11.4演示了对同一个mesh分别使用立方体和球体类型。
阅读全文
摘要: 一个X文件不包含顶点法线数据,这是很有可能的。假如是这种情况,那么手动计算顶点法线以便我们能够使用灯光这是很有必要的。现在知道了ID3DXMesh接口和它的父接口ID3DXBaseMesh,我们能够使用下面的函数来产生任何mesh的顶点法线:
阅读全文