Direct3D 开发之旅 3D 游戏基本概念的介绍1

简介:

   3d游戏是相对于2d游戏而言,就是是游戏角色具有立体感。

               3D游戏的官方解释为

              3D游戏是使用空间立体计算技术实现操作的游戏。从编程实现角度来说游戏基础模型(游戏的人物,场景,基础地形)是使用三维立体模型实现的,游戏的人物角色控制是

         使用空间立体编程算法实现的,那么就把这种游戏称作3D游戏。

               要实现一个3D游戏并非什么易事。 

                首先,我们在这里要明确3d游戏的一些概念,3d游戏主要是 由3D图像处理引擎完成3D图像处理过程 并呈现给玩家玩的过程

            他包括  程序控制、几何变换、特效 等等部分构成。其实3d游戏的过程本质就是一个将3d渲染成2d过程。其解释如图所示。

      

        

         对于渲染的处理又由两个主要部分组成– 包括几何变换 应用于顶点  (在相应的顶点处进行几何变换)、 三角形光栅化(把每个面进行三角形处理) 、 应用于像素点
 

    又包含固定功能管线、像素和顶点着色器的替代 、特定特效的固定功能管线的部分

           3D 游戏,无非是在三维空间进行游戏。下面介绍坐标系系统。

     坐标系统是用于描述物体位置和方向的空间,而 最简单的坐标系系统是笛卡尔平面,而最好的解释如图所示:

 

           读者们,你是不是觉得脑袋有点糊了。  好,我还介绍一个重要的知识——重要的3D几何知识,就结束这篇恶魔般的文章

       3D物体由多边形组成– 多边形由按照指定顺序描述的顶点集合组成 。由于 三角形是最简单的多边形,例如,使用三角形来描述一个立方体,那么每个面都需

       要使用2个三角形来描述,并且由于立方体一共有6个面,因此我们需要12个三角形来描述一个立方体.每个顶点包含: x, y, z坐标值,颜色,用于计算灯光的法线, 纹理坐标,通常是(u,v)。

         好了,我们在这里总结一下

  1.  游戏主要是 由3D图像处理引擎完成3D图像处理过程
  2. 3D游戏的本质是渲染的过程
  3. 3D需要坐标系来描述
  4. 3D物体由多边形构成
目录
相关文章
|
前端开发 JavaScript
react 修改 antdesign 的 组件默认样式
react 修改 antdesign 的 组件默认样式
524 0
|
Go 开发工具 C语言
flutter项目打包.exe文件发布windows版
目录 发布windows版 1.为现有的 Flutter 应用程序添加桌面支持 2..创建main_desktop.dart文件 3.hover安装和环境配置 4.初始化,并打包 坑1
1724 0
flutter项目打包.exe文件发布windows版
|
安全 网络协议 关系型数据库
|
JavaScript
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’
|
存储 JSON 数据库
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
|
消息中间件 NoSQL 调度
Django后端架构开发:Django 与 Celery 的深度集成
Django后端架构开发:Django 与 Celery 的深度集成
698 0
|
调度 Python
Python任务调度神器:APScheduler使用详解
Python任务调度神器:APScheduler使用详解
2599 3
|
JavaScript 前端开发 Windows
【异常解决】vue项目localhost:8080无法访问此网站或者无法访问此页面,localhost拒绝了我们的连接请求
【异常解决】vue项目localhost:8080无法访问此网站或者无法访问此页面,localhost拒绝了我们的连接请求
3723 0
|
Web App开发 JavaScript 前端开发
vue 项目调试的三种方法和不同比较
之前的一篇文章讲了两种在 vue 项目中调试的方法,一个是在项目源码中手动加入断点(debugger), 然后利用 Chrome 调试,第二种是直接在 Chrome 中打断点调试,但是需要知道怎么找到
[Python]Django 配置和静态文件(二)
[Python]Django 配置和静态文件(二)