第1章3D游戏编程入门.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章3D游戏编程入门

第1章 3D游戏编程入门 本章介绍一些基本的游戏编程主题,如游戏循环、2D和3D游戏的差别等。最后将介绍一个很小的3D游戏,以帮助您正确地设置编译器和DirectX。如果读者阅读过我的《Windows游戏编程大师技巧》,可以考虑略读本章,并重点关注最后部分的内容;否则,即使您已经是一个中级或高级游戏程序员,也最好仔细阅读本章。本章主要包括下列内容: ( 简介; ( 2D/3D游戏的元素; ( 游戏编程通用指南; ( 使用工具; ( 一个16位窗口游戏范例:Raiders 3D。 1.1 简 介 本书是我写作的2D和3D游戏编程系列的第二卷。第一卷《Windows游戏编程大师技巧》主要介绍了如下内容: ( Windows编程; ( Win32 API; ( DirectX基础; ( 人工智能; ( 基本物理模型; ( 声音和音乐; ( 算法; ( 游戏编程; ( 2D光栅和矢量图形。 本书是前一卷的续写。但是,即使您没有阅读过前一卷,仍可以从本书获得许多与实时3D图形相关的知识,以更好地进行3D编程。因此,本书将主要适合那些阅读过第一卷且对3D游戏编程感兴趣,或者已经是2D程序员且想从软件和算法的角度学习3D技术的读者。 考虑到这一点,本书将重点介绍3D数学和图形学,而对于与游戏编程有关的内容只作简要介绍。我认为您已经了解了这些内容——如果您还不了解这些内容,建议先阅读《Windows游戏编程大师技巧》或其他优秀的游戏编程书籍,并在计算机上进行练习,以熟悉Windows、DirectX和游戏编程。 另一方面,即使您没有阅读过《Windows游戏编程大师技巧》,且不了解游戏编程,仍可以从本书学习到一些知识,因为这是一本有关图形学的书籍。我们将在每章中逐步建立3D引擎,但是为了节省时间,我们将以《Windows游戏编程大师技巧》中开发的基本DirectX引擎为基础。它将有助于处理2D、声音、音乐、输入等。当然,该引擎是一个DirectX 7/8引擎,而DirectX 8.0以上版本所做的修改使2D编程更困难,因为DirectDraw已被集成到Direct3D中。我们将继续使用DirectX 7/8的接口,但在DirectX 9.0 SDK下进行编译。 注意:本书介绍软件和算法,而不是DirectX,因此将在DOS下编写引擎。只是需要适当的高级图形、I/O和声音层,因此DirectX 8.0+是一个合理的选择。如果读者是Linux用户,该引擎移植到SDL也是相当容易的! 因而,如果您阅读过《Windows游戏编程大师技巧》,将很熟悉该引擎及其函数;否则,可将其视为一个黑盒API(当然其中包括源代码),因为本书将逐步在该引擎中加入3D功能。 不用担心,下一章将介绍整个2D引擎及其结构,您将知道每一个函数的功能;我还将提供一些演示程序,帮助您熟悉使用《Windows游戏编程大师技巧》中创建的基本DirectX引擎。 本书将从一种通用的角度来介绍图形系统。本书的代码将以《Windows游戏编程大师技巧》中创建的引擎为基础,该引擎是以标准的线性寻址方式建立一个双缓存图形系统。 要将代码移植到Mac或Linux平台上,只需要几小时或一个周末。本书的目标是以一种通用的角度介绍3D图形学和数学。DirectX所处的Windows平台是当前最流行的计算机操作系统,因此将以它为基础进行介绍。本书的重点是高级的概念。 我编写过大约20个3D引擎,它们都保存在我的硬盘中。但是在编写本书时,我想随着本书的进度编写一个新的3D引擎,因此是为本书编写一个引擎,而不是编写一本关于引擎的书。本书不是讨论3D引擎,而是介绍如何编写3D引擎。因此,我并不清楚最后将得到一个什么样的3D引擎!实际上,我对于将会看到什么感到非常兴奋。我争取编写一个类似于Quake的6DOF(degree of freedom,自由度)引擎,但谁知道结果将如何呢?您将学习创建Quake引擎所需要的所有知识,但我将重点介绍室外引擎或其他内容—谁知道呢。关键是本书将提供一个学习过程,而不是充满了作者注释的典型代码。我想您很清楚我在说什么! 最后,阅读过《Windows游戏编程大师技巧》的读者可能还会注意到,本书中有些地方与该书相同。实际上,我没有办法一点也不重复前一本书中的内容,而直接介绍3D图形学。我不能假定每个人都购买了《Windows游戏编程大师技巧》,也不能强迫他们去购买。总之,本书的前几章包含一些与DirectX、引擎和Windows相关的内容。 1.2 2D/3D游戏的元素 首先回顾一下视频游戏程序与其他程序的区别。视频游戏是一些相当复杂的软件。毫无疑问,它们是最难编写的程序。的确,编写类似于MS Word之类的软件要比编写星星游戏困难,但编写类

您可能关注的文档

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档