Direct3D 开发之旅 3D 游戏基本概念的介绍2
文接上篇,上节说到了3D的重要的几何知识。
这节首先我们补充一些其他重要的3D的几何知识。
通过所有的变换,将顶点从物体局部坐标系变换到视口坐标系系统。变换方法以下几种
1. 平移,旋转和缩放等变换操作通常使用矩阵来执行
2. 在投影之后,每个顶点都在投影平面上有一个新的x和y值用于描述它的位置,同时还有一个述深度的z值。
3.在管线处理的最后阶段,将纹理填入到各个三角形或者表面当中.纹理就是游戏背景出现的一些头案。
在这,我们介绍一个主要空间系统,如图所示
我们再介绍一下物理坐标系统。
所谓的物理坐标系统, 是使用层次模型来表示由各个部分“装配”起来的物体,并且 每个物体都有自己的坐标系。 下面图像显示就是两个物体不同的物理坐标系统显示。
那么什么是世界坐标系系统
世界坐标系系统也被称为“全局坐标系系统”,所有的物体做这同一系统中。所有对象实例都能够在这系统缩放,平移和旋转的。所有的几何体都在同一坐标系中,使用同一坐标
系原点。下面的图像在世界坐标系系统中显示了两个绿色的立方体和一个红色的立方体的实例。
摄像机系统,也被称为“参考坐标系统”, 是指明在世界空间中的某一角度中任意放置,方向和方位的空间。 所有物体的位置都根据摄像机的中心和方向重新变换。
下图显示了摄像机在世界坐标系系统中从左侧观察物体。
也能从下图显示了从左侧摄像机坐标系系统,或者摄像机点中所看到的相同的场景。
而下面的图像则显示了在世界坐标系系统内摄像机,从系统右面观看世界场景。
投影坐标系系统又是什么了? 投影坐标系系统也被称为“裁剪坐标系系统”, 他由视图截锥和投影方法定义的空间,
并裁剪并且投影3D物体到2D视图平面。解释投影坐标系统,如图所示。
最后,介绍视口系统。视口系统是在显示窗口中图像被实际绘制的矩形区域, 是由原点和窗口的延伸方向定义, 因此Z值通常被保留,我们有时候也称“2.5D”;
介绍完了坐标系系统,我们介绍了3D处理管理系统。
3D处理管理系统为了实现时间平行性的作用,它类似于装配线,通过将任务分割为一系列子任务来完成, 子任务由特定的硬件来执行, 各个处理阶段并发操作, 连续的任
务在子任务层面上重叠执行。3D处理管理系统介绍完了。
我们看看,这些程序部分是由几 个硬件执行。应用程序处理阶段通过软件在CPU中实现,几何变换和光栅化在GPU(图像处理单元)中实现,具体的执行过程如图所示。
我们再看应用程序处理的是个啥样子。是用于软件实现,他需要一个游戏引擎:这里的游戏引擎是指碰撞检测和响应,动画,AI,来对用户
输入的读取和解析。他的作用是 准备GP所使用的图元,所包含属性和相关函数。 对加速和优化非常重要。
应用程序处理由以下组件组成。
1.游戏逻辑 2.人工智能 3.动画物体 4.摄像机控制 5.剔除算法 6.碰撞检测和响应 7.游戏物理和动力学特性 8.几何运算库。
游戏逻辑是指控制游戏流和层级流、用于用户界面控制、对输入/输出(I/O)处理、物体导入和加载。
人工智能是指 对不可玩角色反应、 对不可玩角色行为、对不可玩角色路径查找程序设计。并且对脚本事件控制。
动画物体包括刚性物体、 可变形物体、 关节物体
刚性物体是指不可变的物体,与此相对的是柔性物体,包括可变物体和关节物体。 可变形物体是指 可以变形的物体,如 变形金刚,关节物体,有关节质地物体,如魔兽世界的英雄。
介绍完这个物体以后 我们再介绍另外游戏重要的元素——摄像头。
摄像头包括以下几个方面。
1.第一人称视角. 2.第三人称视角. 3.跟踪正在移动物体的路径 4.在不同的摄像机角度和方向之间内插数值(Quaternions)以提供最短的距离。5.在体育竞技游戏
经常使用的重播的方法。
对于几何运算库,我的解释是指 1.向量和矩阵操作 2.距离和角度测量 3.交集和包含运算 4.搜索和排序算法
说说剔除算法,1.背面剔除– 如果一个绘制元素的法线方向背离视点观察方向,则该绘制元素必不可见
2.摄像机平截体内部的对象之间的遮挡测试– 遮挡剔除:如果一个绘制元素被其他不透明绘制元素(组)所遮挡,则该绘制元素必不可见
3. 空间分割– 八叉树(Octree)
最后我们说说 游戏的物理和力学特性
物理特性包括正向和反向运动, 力学逆过程(已知力求运动, 刚体和柔体物体对象以及碰撞检测和响应等方面的概念。
这节,我们从坐标系统说起,并且介绍了应用程序的逻辑,相信对大家了解3d游戏开发的基本概念有所帮助把。
接下来,所说的就来到了几何处理的阶段。 几何处理大概流程如图所示: