第一章 第一节 概述

翻译 2007年09月11日 23:38:00
第一章概述
这本书是写给不论你有没有3D图形经验,只要你想一窥游戏引擎设计大门的人们的。这一章从大的方面来看游戏引擎。目标是提供对游戏引擎的一个概观,本书剩余部分的更详细讨论都以这为基础。在这本书里,我们将研究游戏引擎的方方面面,并且检验随书附带的示例游戏引擎(可以在Apress网站下载http://www.apress.com)源代码里相应的特征。每一章都关注游戏引擎的一个主要概念或者子集。有几章是专注于渲染不同类型的图形,因为需要使用不同的技术来渲染复杂的对象。
 
什么是游戏引擎?
游戏引擎是任何电脑游戏的心脏。很多游戏引擎是紧紧的跟游戏绑定在一起,只能适用于一个游戏。然而,一个设计得当的引擎应该是模块化,可重用和足够灵活的,可以适用于同一类型的很多款游戏。游戏引擎一般是为某一特定类型游戏设计和优化过的。这些类型包括第一人称射击、实时战略游戏和车辆模拟,这几类最流行的一些游戏(to name a few of the most popular)。
 
在这里讲到的商业游戏引擎都是针对各自的游戏高度优化过的,这都是由非常有经验的专业人员组成的团队经过许多man-years开发的。这些商业游戏必须在非常广泛的硬件上良好的运行。它们既可以使用DirectX也可以使用OpenGL渲染,这样玩家可以自由的选择他们的系统中图形卡最好的工作方式。商业软件使用高级方法,例如vertex和pixel shaders的一些专利代码,为了提供公司刺向游戏市场的利刃。
 
第一人称射击游戏引擎
第一人称设计游戏引擎常是基于室内场景。这就强调了可视的细节和动画。增加可视细节就伴随着花费很多的纹理以及在给定的游戏级别上增加更多的多边形数目。为了补偿这些(必须维持一个合理的帧率),大多数的引擎依赖四叉树(Quadtree),Protal,或者空间二分法(BSP)剔除。剔除是从场景中移除多边形的过程。(这些剔除方法的具体细节在第三章。)这些类型的例子是id Software公司的Doom和Quake(在他们的许多版本中),以及Sierra公司的Half-Life(包括极其流行的反恐精英版本)。
 
实时战略游戏引擎
直到最近,实时战略游戏一直是二维的,基于精灵(sprite-based)的游戏,他们使用固定的视点和巧妙设计的sprite来给人三维的假象。新的游戏,例如Sierra公司的Empire Earth和Ensemble Studios的Age of Mythology把这类游戏带入到3D时代。图1-1展示了Age of Mythology游戏的一个场景。
图一 Age of Mythology中的一个场景
 
这一类游戏一般是室外的,面临着使人畏惧的在同一时间显示非常巨大数量的对象和广阔的地形的困难。这类游戏的游戏引擎使用高空视点来减少玩家视野里的对象数目和地形数目。这些游戏也使用相比第一人称射击里的相对较低的分辨率的对象。因为视点保持在离地面较远的一个固定点上,玩家不会足够近看到对象的细节。
 
车辆模拟游戏引擎
这第三类游戏引擎是车辆模拟。这一种包括第一人称军事战斗模拟器(飞机,直升机,坦克等等),赛车游戏,以及其他驾驶游戏。一个例子是NovaLogic公司出品的Comanche 4。
 
因为这些游戏是室外的,并且视点角度也相对没有限制,所以需要一些特殊的技术来维持可玩的帧率。这些技术主要落在剔除和细节级别(LOD)这些领域,来减少必须贴纹理和绘制的多边形数目。在室外的模拟游戏中,一个最普通的方法是把远裁剪平面移近视点。这会导致任何远于平面的多边形被移除场景。一个不好的效果是当视点移动时,玩家可以看到在远裁剪平面有对象忽隐忽现。这个问题的解决方法是使用雾。雾或者烟使多边形在接近雾的最大距离(通常是等于或者稍小于远裁剪平面的距离)时,退成雾的颜色。LOD和改进的面片(mesh)技术都提供了一个机制减少给定的对象的多边形数目,通过一个函数的方式,根据对象离视点的距离范围。LOD技术在模型远离眼睛时用低细节来替代高细节。另一方面,改进的面片技术,基于离视点的范围来修改单个的面片。
 
注意:不要混淆游戏引擎设计和游戏设计。游戏引擎是游戏背后的方法技术(enabling technology)。游戏设计需要考虑的许多问题无关于游戏引擎。游戏引擎提供游戏设计者向游戏传递概念或者故事情节的工具。
 

第一章 操作系统概述(一)

第一章 操作系统概述 本章将介绍学习操作系统应该建立的一些基本概念和常识性内容,划定研究对象的范围并补充一些必要的硬件知识;说明对操作系统内核需要实现的主要功能;简要介绍操作系统的发展历程和分类以帮助...
  • xieqian02
  • xieqian02
  • 2015年02月01日 10:46
  • 330

第1章 计算机、程序和Python概述

Chapter 1
  • u013603102
  • u013603102
  • 2017年01月31日 09:33
  • 116

2-《电子入门趣谈》第一章_一切从单片机开始-1.1单片机概述

接下来,我将带您走入一个神奇的世界。 我知道,当您拿起这本书翻开第一页的时候,您心里肯定还是在嘀咕“我到底该如何入门科研呢?这个头该怎么开呢?”。 好吧,我来告诉你,从单片机开始。 为何要从单片机开始...
  • u012452561
  • u012452561
  • 2015年12月02日 09:18
  • 2030

【第一章 第一节】

【第一章 第一节】
  • u012966411
  • u012966411
  • 2013年12月09日 21:13
  • 274

《数论概论》读书笔记(第一章) 什么是数论?

数论是纯粹数学的分支之一,主要研究整数的性质。 整数可以是方程式的解(丢番图方程)。有些解析函数(像黎曼ζ函数)中包括了一些整数、质数的性质,透过这些函数也可以了解一些数论的问题。透过数论也可以建...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2017年03月18日 16:44
  • 9489

JQuery第一章js 上机+课后

=============上机1 包含字母 sj1.html --> document.write("在以下字符中:"); va...
  • qq_36074043
  • qq_36074043
  • 2017年04月25日 13:14
  • 493

第一节 Lookup 缓存 之 概述

可以配置查找转换以高速缓存查找表。PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存。它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存。PowerCen...
  • u012174410
  • u012174410
  • 2015年04月15日 14:14
  • 190

第一章:概述

嵌入式系统的定义: 1.美国:一种计算机硬件和软件的集合,也许还有机械装置,用于实现一个特定的功能,在某些特定的情况下,嵌入式系统是一个大系统或产品的一部分。 2.CHINA:置于...
  • qq_24085431
  • qq_24085431
  • 2016年03月06日 10:04
  • 200

第一章--概述

本系列博文用于本人复习计算机网络,参考自《计算机网络》(第6版)谢希仁。如有侵权,请联系本人删除 本章最重要的内容是: (1)因特网的边缘部分和核心部分 (2)计算机网络的一些性能指标 ...
  • Ace_Yom
  • Ace_Yom
  • 2015年08月18日 21:27
  • 304

第一章~第一节spring bean的生命周期

看到上面的这张图可能大家就能很清晰的理解spring是如何初始化beans及管理benas的生命周期了,那下面就具体的说下这个整体流程。 传统的java应用中,bean的生命周期很简单。关键字new...
  • q7forever
  • q7forever
  • 2013年09月27日 16:12
  • 5713
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一章 第一节 概述
举报原因:
原因补充:

(最多只允许输入30个字)