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游戏开发的基本概念有所帮助把。

           接下来,所说的就来到了几何处理的阶段。    几何处理大概流程如图所示:

 

 

目录
相关文章
|
5月前
|
C++ 容器
《QT从基础到进阶·三十》QVariant的基础用法
《QT从基础到进阶·三十》QVariant的基础用法
36 0
|
9月前
|
Linux 虚拟化 Windows
嵌入式Linux开发环境搭建之三---网络的设置
嵌入式Linux开发环境搭建之三---网络的设置
121 0
|
11月前
|
安全
游戏开发零基础入门教程(12):从想法到设计的过程
一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。
87 0
|
11月前
游戏开发零基础入门教程(1):先对游戏有个概念
首先回答第一个问题,是的,学完这个教程后,你能够做出自己的游戏。这里,有一点儿地方需要澄清一下,“做出来”跟“能够做出来”是完全不同的,“做出来”是既定的事实,去做了,并且做出来了。而“能够做出来”只是一种想象,前提是要先“去做”。
205 0
嵌入式开发学习之--通讯的基本概念
嵌入式开发学习之--通讯的基本概念
嵌入式开发学习之--通讯的基本概念
|
存储 开发工具 芯片
基础概念:模拟器概念及其配置方法|学习笔记
快速学习基础概念:模拟器概念及其配置方法
138 0
基础概念:模拟器概念及其配置方法|学习笔记
|
消息中间件 Dubbo Java
Rocket 第二章内容介绍|学习笔记
快速学习 Rocket 第二章内容介绍
92 0
|
开发框架 图形学
Unity进阶之ET网络游戏开发框架 02-ET的客户端启动流程分析
Unity进阶之ET网络游戏开发框架 02-ET的客户端启动流程分析 万物起源:Init.cs打开范例场景init.unity,可以发现其场景层级如下: 其中唯一重要的就是Global对象上挂在的init.
1979 0

热门文章

最新文章