登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Irrlicht 3D游戏引擎程序设计

書城自編碼: 3037621
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 许志闻
國際書號(ISBN): 9787302475934
出版社: 清华大学出版社
出版日期: 2017-08-01
版次: 1 印次: 1
頁數/字數: 236/396000
書度/開本: 16开 釘裝: 平装

售價:NT$ 425

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
引导的秘诀:通过团队合作获得结果的SMART指南(最新修订版)(白金版)
《 引导的秘诀:通过团队合作获得结果的SMART指南(最新修订版)(白金版) 》

售價:NT$ 554.0
文史星历:秦汉史丛稿
《 文史星历:秦汉史丛稿 》

售價:NT$ 661.0
神灵衰落:祈雨与乾隆朝的信仰危机
《 神灵衰落:祈雨与乾隆朝的信仰危机 》

售價:NT$ 498.0
深度营销:成就营销领导力的12大原则(麦肯锡年度经管好书,12大原则揭秘营销本质,带好团队就是从领导力到影响力!)
《 深度营销:成就营销领导力的12大原则(麦肯锡年度经管好书,12大原则揭秘营销本质,带好团队就是从领导力到影响力!) 》

售價:NT$ 325.0
新质生产力:发展新动能
《 新质生产力:发展新动能 》

售價:NT$ 493.0
状态比能力更重要:108个状态调整法
《 状态比能力更重要:108个状态调整法 》

售價:NT$ 308.0
中国上市公司担保行为的影响因素及其效应研究
《 中国上市公司担保行为的影响因素及其效应研究 》

售價:NT$ 202.0
企业级数据架构:核心要素、架构模型、数据管理与平台搭建    李杨
《 企业级数据架构:核心要素、架构模型、数据管理与平台搭建 李杨 》

售價:NT$ 554.0

編輯推薦:
Irrlicht引擎是一个开源的高性能实时3D引擎,是用C编写的。Irrlicht引擎是完全跨平台的,使用D3D、OpenGL和自己的软件渲染器,具有所有商业3D引擎拥有的先进特性。Irrlicht有一个巨大的活跃社区,并且有很多开发项目使用这个引擎。在网上很容易找到Irrlicht的增强程序,如可选用的地形生成器、入口生成器、输出器、world层生成器,以及相关教程和编辑器。Irrlicht引擎支持Java、Perl、Ruby、Python、Lua等语言。*重要的是,这个引擎是完全免费的。
內容簡介:
Irrlicht(鬼火)引擎是一款用C编写的高性能3D引擎,是经典的3D游戏引擎之一,可以应用于在C程序中开发3D游戏。本书以实例的形式向读者展示Irrlicht的编程精髓,融入了3D游戏设计的理论基础、技巧等方面的知识。
本书内容共分为15章,包括Irrlicht概述与游戏引擎安装,编写*个Irrlicht程序,Irrlicht图形学基础,网格、纹理、覆盖层,场景管理,摄像机,地形、纹理和渲染,光照与材质,声音,粒子系统,碰撞检测,数据和文件的处理,着色器,游戏人工智能,部署Irrlicht程序等。
本书适合C游戏编程初学者和具有一定编程经验的C游戏编程人员,也可作为高等院校和培训学校游戏软件开发课程的教学参考书。
關於作者:
许志闻,吉林大学计算机科学与技术学院教授、博士生导师,中国计算机学会多媒体专业委员会委员,中国图形、图像学会多媒体专业委员会委员。2006年,美国佐治亚大学高级访问学者。主要研究方向为计算机图形学、动画与游戏、虚拟现实、图像处理、网络多媒体和生物信息学等。
目錄
目 录
第1章 Irrlicht游戏引擎 11.1 Irrlicht使用许可与系统要求 11.2 获得Irrlicht引擎 21.3 在Windows下设置编译器 41.3.1 设置编译器的原理 41.3.2 设置动态链接库的方法 51.3.3 其他设置方法 101.3.4 环境变量的设置方法 111.3.5 设置过程中常见的问题 121.4 重新编译Irrlicht引擎 131.5 测试是否已经正确设置 151.6 在Linux环境中使用鬼火游戏引擎 161.6.1 在Linux下编译静态库 161.6.2 编译Hello World程序并运行 171.6.3 在Linux下创建第一个项目 181.6.4 第三方编程工具Code::Blocks 19第2章 编写第一个Irrlicht程序 202.1 Irrlicht引擎的结构 202.1.1 引入命名空间 202.1.2 了解Irrlicht引擎的结构 212.2 分析简单的代码 212.3 简单的扩展 242.4 类的形式 262.5 让窗口显示内容 282.6 比较成型的模式 292.7 让我们的程序发生变化 30第3章 图形学基础 333.1 计算机显示原理 333.1.1 图形系统的硬件 333.1.2 光栅扫描系统 343.1.3 计算机图形标准 353.2 图形学的数学基础 363.2.1 向量及向量运算 363.2.2 坐标 363.2.3 基本几何变换 383.2.4 三维空间的变换 403.3 双缓存和垂直同步 423.4 纹理 433.5 Z缓冲 453.6 摄像机 463.7 粒子系统 47第4章 网格、纹理、覆盖层 504.1 网格简介 504.2 不同格式网格模型的区别 524.3 初识纹理 544.4 动态网格模型 564.5 覆盖层 594.6 使用精灵表 634.7 绘制基本图形 67第5章 场景管理 695.1 场景节点和实体 695.1.1 场景节点 695.1.2 实体 715.2 场景节点类型 725.3 场景管理器 745.4 动态节点 745.5 场景的应用示例 775.5.1 场景节点的应用 775.2.2 动态节点的应用 815.5.3 自定义场景节点 83第6章 摄像机 876.1 摄像机投影 876.1.1 正交投影 886.1.2 透视投影 896.1.3 两种投影在代码上的实现 906.2 裁剪 926.3 摄像机观看视角的类型 956.3.1 普通摄像机 956.3.2 第一人称射击摄像机 956.3.3 Maya摄像机 966.4 FPS摄像机的使用示例 96第7章 地形、纹理和渲染 997.1 地形场景节点类 997.2 高度图 1017.3 纹理 1027.3.1 纹理简介 1027.3.2 使用纹理 1037.4 渲染示例 1067.4.1 渲染地形 1067.4.2 纹理渲染 1117.5 创建地形 114第8章 光照与材质 1198.1 光照模型 1198.2 光源 1198.3 深入光源 1208.3.1 模拟环境光 1218.3.2 模拟漫射光 1238.3.3 灯光的衰减 1238.4 光源 1248.4.1 光源的类型 1248.4.2 光源属性 1258.4.3 添加灯光 1268.5 一些简单的光照示例 1278.5.1 用代码实现环境光 1278.5.2 用代码实现漫射光 1298.5.3 用代码实现镜面反射光 1328.6 材质 1358.7 阴影 1368.8 着色 1378.8.1 着色模式 1378.8.2 设置着色模式 1388.9 示例 1388.9.1 光照和材质示例 1388.9.2 显示实时动态阴影 140第9章 声 音 1449.1 声音基础 1449.1.1 声音的生成 1449.1.2 声音的编码存储 1459.1.3 声音的合成 1469.2 irrKlang简介 1469.3 irrKlang的使用 1479.3.1 实践 Hello World 1479.3.2 播放3D声音文件 1519.3.3 声音特效 154第10章 粒子系统 15710.1 粒子系统简介 15710.2 粒子编辑器irrEdit 15810.2.1 添加自己的粒子系统 15810.2.2 设置粒子系统 15910.3 粒子系统各部分的代码实现 16010.3.1 粒子结构 16010.3.2 发射器 16110.3.3 影响器 16310.4 绘制一个粒子系统 16410.4.1 编写代码完成一个简单的粒子系统 16410.4.2 使用代码制作水面 16910.4.3 环形粒子系统 173第11章 碰撞检测 17711.1 碰撞检测概述 17711.2 几何和数学知识 17811.2.1 多边形和多面体 17811.2.2BSP树 17911.2.3 空间四叉树和空间八叉树 17911.2.4 Minkowski和与Minkowski差 18011.2.5 包围体 18111.3 常用的碰撞检测算法 18311.3.1 距离跟踪法 18311.3.2 基于图像空间的碰撞检测法 18311.3.3 空间分解法 18411.3.4 层次包围盒法 18511.4 代码解析 185第12章 数据和文件的处理 19212.1 Irrlicht文件系统简介 19212.2 文件的读取和写入 19412.2.1 写文件 19412.2.2 普通文件的读写 19512.2.3 一行一行读取和按分隔符读取 19812.2.4 XML文件的读写 20012.2.5 从XML文件中加载数据 20112.2.6 向XML文件写入数据 20412.2.7 从XML文件中读取特殊数据类型的数据 20512.3 从档案中读取数据 207第13章 着色器 21013.1 图形渲染管线简介 21013.2 着色器简介 21113.2.1 顶点着色器 21113.2.2 片断(像素)着色器 21113.2.3 几何着色器 21213.3 使用着色器 21213.3.1 安装并使用GLSL demo 21213.3.2 在Irrlicht引擎中使用着色器 21413.4 进一步了解着色器 223第14章 游戏人工智能 22414.1 什么是智能 22414.2 什么是游戏AI 22514.3 AI的组成与设计 22614.3.1 抉择与推理 22614.3.2 解决方案的类型 22614.3.3 智能体的反应能力 22614.3.4 系统的真实性 22614.3.5 游戏类型 22714.3.6 游戏内容 22714.3.7 游戏平台 22714.4 AI的输入处理和感知 22814.4.1 感知系统 22814.4.2 更新规则 22914.4.3 反应时间 22914.4.4 门限 22914.4.5 负荷平衡 22914.4.6 计算代价与预处理 22914.5 OpenSteer 230第15章 部署一个Irrlicht应用程序 23215.1 什么是部署 23215.2 针对不同平台打包发布应用 23215.2.1 在Windows平台下部署Irrlicht应用程序 23215.2.2 在Linux平台下部署Irrlicht应用程序 23315.2.3 在Mac OS X平台下部署Irrlicht应用程序 23415.3 部署源代码 23615.3.1 为什么要部署源代码 23615.3.2 如何部署 236
內容試閱
前 言
Irrlicht(鬼火)引擎是一款用C编写的高性能3D引擎,是经典的3D游戏引擎之一,可以应用于在C程序中开发3D游戏。该引擎提供商业级别的艺术特性,如动态阴影、粒子系统、角色动画、碰撞检测等。Irrlicht引擎的优点有:精悍的引擎框架,和Orge极其相似;高质量的图形渲染,虽然没有Orge的质量优越,但是与一般商业引擎相比仍然略胜一筹;清晰单一的C语言实现,使得引擎没有繁冗庞大的外部脚本编译器;支持根据硬件加速调整渲染模块的参数和算法机制。整体程序会跑得很快、很流畅,但是画质会降低,是牺牲画质而保证性能。游戏开发,特别是3D游戏开发是当前非常热门的一门学科,但是目前高校计算机专业开设的有关游戏方面的课程比较少,而且大多偏向于理论。鉴于此,本书将在讲解3D游戏开发基础理论知识的同时,选择Irrlicht游戏引擎对这些技术进行具体的实现,使大家能够理解一些三维图形的理论知识,对游戏引擎有一个具体的了解,从而知道3D游戏开发的基本过程。这样能够使想要从事游戏开发、对游戏开发感兴趣的朋友逐渐入门,掌握游戏设计的精髓。
本书内容本书共分为15章,包括Irrlicht游戏引擎,编写第一个Irrlicht程序, Irrlicht图形学基础,网格、纹理、覆盖层,场景管理,摄像机,地形、纹理和渲染,光照与材质,声音,粒子系统,碰撞检测,数据和文件的处理,着色器,游戏人工智能,部署一个Irrlicht应用程序等。
本书特点本书以实例的形式向读者展示Irrlicht的编程精髓,将3D游戏设计的理论基础、技巧等方面的知识融入其中,从浅入深、从易到难地讲解。书中实例丰富、讲解清晰、尽量避免代码复杂冗长。恰当的实例特别有助于初学者仿效理解,进而把握问题的精髓,在实践中掌握和领会3D游戏开发的基本技巧和思想精髓。
作者简介许志闻,吉林大学计算机科学与技术学院教授、博士生导师,中国计算机学会多媒体专业委员会委员,中国图形、图像学会多媒体专业委员会委员。2006年,美国佐治亚大学高级访问学者。主要研究方向为计算机图形学、动画与游戏、虚拟现实、图像处理、网络多媒体和生物信息学等。此外,参与本书创作的还有李伟、朱明会、李杨、王刚、姜晓巍等人,在此表示感谢。
读者对象本书适合C游戏编程初学者和具有一定编程经验的C游戏编程人员,也可作为高等院校和培训学校游戏软件开发课程的教学参考书。
编者2017年3月


14 章? 游戏人工智能 ?
游戏AI(Artificial Intelligence,人工智能)是近来讨论较多的主题。随着游戏中画质与音效的稳步提高和改善,游戏控制玩家(game controlled players)不用聪明的方式进行操作,这种情况变得越来越明显。游戏AI是编程人员为了给用户提供某种挑战或某种真实体验而设计出来的。在游戏中,站在一处从不移动的警卫显得非常不真实。如果你创建一个程序,使他不时朝四周张望或变换姿势,就会看起来更具活力,而且更加真实。通过创建一个在预设路径上行走的警卫,偶然还能够停下来与正在站岗的警卫谈话的情景,可以使玩家感觉到游戏的真实感有很大提高。编写游戏AI是一个十分复杂的工程,里面包含的知识可以编撰成一本书了,但是AI是我们不可回避的问题,所以本章将为大家讲解AI的含义及相关概念,最后还会向大家推荐一些在Irrlicht中常使用的协助编写AI的类库。学习目标? 了解游戏AI的想关概念14.1 什么是智能AI是一门相对年轻的学科,其早期的一些研究工作完成于19世纪50年代初期。受早期游戏机计算能力和存储空间的限制,游戏采用真正AI技术的历史很短。由于AI在游戏中是一个崭新的概念,因此游戏AI的定义对于大多数人,甚至从事游戏开发的人来说都还很模糊。在介绍游戏AI之前,我们应该先了解一下智能的概念。智能这个术语相当模糊,它是指获取和应用知识的能力,从字面上解释,该定义可能意味着自动调温器也是智能的。因为自动调温器可以获取房间太冷这个知识,从而应用它所学到的知识调节加热器。事实上,智能的真正定义已经是一个古老的争论了,而设计一个好的游戏并不需要这个定义。基于我们自己的目的,一个智能的游戏智能体是能够获取关于这个世界的知识,并对该知识做出反应的智能体。做出反应的质量和效果就是游戏需要权衡和设计的问题。14.2 什么是游戏AI在AI的经典著作《Artifical Intelligence:A Modern Approach》(人工智能:一种现代方法)中,Russel和Norving指出,AI就是设计计算机程序可以像人一样行动和思考,同时是理性地行动和思考。这个定义包含智能的认知学和行为学的观点,并涵盖理性和人性。简单地说,游戏AI就是游戏中的代码,使得在给定情形下,当游戏有多种选择时,计算机控制的竞争对手(或合作伙伴)采取看起来聪明的决策,从而产生相关、有用的行为。注意上述叙述中看起来这个词。游戏中由AI产生的行为是结果导向的,因此可以认为游戏界主要关注AI中的行为主义学派。的确,我们仅仅对系统将要做出的响应感兴趣,而不太关心系统是如何做出这个响应的。我们关心系统如何行动,而不关心如何思考。人们在玩游戏时并不会在意这个游戏是否运用庞大的决策脚本数据库,也不会在意是否对决策树进行直接搜索,或者是否建立所处环境的精确知识库,是否基于逻辑规则进行推理决策。正如这些AI所说,推理过程全由游戏AI实现。因此,纯粹的行为决策,如对手发动了哪项攻击、他是如何接近玩家的、他如何在环境中使用各种要素以及其他游戏细节,全部是由游戏AI系统完成的。现代游戏发展过程中也使用AI这个术语描述其他游戏行为,比如人类输入接口的工作方式。有时甚至支配运动和碰撞的算法(如果游戏运动通过动画驱动而非物理模拟)也属于这一类。可见,AI是游开发界中一个被广泛使用的名词。当与其他同行讨论AI时,大家必须一致认同这个术语的内涵和范围。这点非常重要,否则一个人关于AI的观念与其他人的观念相差太远,就容易产生误解。本章涉及AI时,将使用非常狭窄的定义,即基于角色的行为智能。其中的术语角色源于大多数游戏的角色驱动本质。以前,AI编程普遍被称为游戏玩法编程,因为CPU控制的角色所展现出来的行为的确不含任何智能成分。在视频游戏早期,大多数程序员都为他们游戏中的人物使用一些模式或重复运动。在某种程度上,玩这些游戏时都要找到预先确定的行为模式,以便能够轻易击倒对手并继续前往另一个地点。这是由早期处理器速度和存储空间的极端限制所决定的。模式很容易存储,只需要最少的代码来驱动,并且几乎不需要进行计算;无论在顶层表现什么行为,它都简单地使人物按规则模式运动。事实上,一些游戏采用所谓随机的运动,但由于早期游戏中的随机数产生器使用伪随机数的硬编码表,因此这些模式能够在整个游戏行为中最终预见。过去,为了让游戏看起来更加智能,经常使用另一种技术,即让计算机对手作弊,也就是让其拥有人类玩家所不拥有的关于该游戏的额外信息,从而使下一步所做的决策看起来非常巧妙。计算机读入玩家所按的按钮后,以一个阻碍的走步作为系统的响应。一个实时策略作弊器可以使使用者在游戏早期还没有找到有价值资源的区域时便前往这些地点。当游戏赋予计算机对手额外的能力、资源以及一些可直接使用的东西,而不是依靠自己提前规划和了解对这些资源的需要,就可以实现AI的作弊。这些策略能够带来更具挑战性,但是最终还是不能让人满意的对手。14.3 AI的组成与设计几乎所有AI引擎都将以某种形式使用决策与推理、感知、导航等基本系统。14.3.1 抉择与推理决策系统是AI引擎中使用最广泛的部分,是决定用户构建的AI引擎类型的底层结构。推理可定义为从实际知识或假定为真的前提中获取逻辑或合理结论的行为。用游戏术语来说,意味着AI控制的对手获取关于世界的信息并响应智能、合理的决策。因此,AI系统受获取的外界信息限制,也受游戏设计时定义的响应集丰富程度的限制。游戏允许AI角色做的事情越来越多,游戏的响应集或状态空间就越来越大。用户选择的技术应该由用户要构建的游戏规模和状态空间的大小决定。所有决策系统都可归结于这个定义:利用可得到的输入获取解决方案。这些技术之间的差别将决定用户选择使用的类型。我们关注的主要区别有:解决方案的类型、智能体的反应能力、系统的真实性、游戏类型、游戏内容、游戏平台等。14.3.2 解决方案的类型游戏解决方案的主要类型有两种:战略型和战术型。战略型解决方案通常针对长期、高层次并需要多个行动共同完成的目标。而战术型解决方案更多针对短期、低层次并只包含一个物理动作和技巧的目标。两者的区别在于游戏中关注整体行动还是个体行动。许多游戏同时需要战略型和战术型两种解决方案,因此开发人员根据这种划分将问题分离成几个独立的部分,并结合不同的结束实现。14.3.3 智能体的反应能力游戏元素应该如何反应?脚本化系统趋向于设计具有更多程式化和语境响应的角色,但它们容易受困于这些行动脚本,从而失去反应。与此相反,完全反应式系统容易被认为过于机械或作弊,并且不符合人类的感情。强响应系统需要一个非常丰富的响应集,否则它们表现的行为将是可预测和无新意的。然而这对街机式游戏或所谓的twitch游戏非常合适,需要在所设计的游戏类型和对所期望设计的玩法经验正确权衡的基础上进行阐述。14.3.4 系统的真实性要被认为是真实的,AI元素做出的决策和行动必须类似于人类。在游戏的限制条件下,每个AI实体都需要智能决定所要做的正确的事情,但类似于人类也意味着会犯错误。因此,AI角色也需要很好地体现人类的弱点。化解玩家所有拳击或射击永远不会落空的对手和Scrabble游戏中对整个字典了如指掌的对手都不会让玩家高兴,反而会让他们感到沮丧,我们的目标是在竞赛和娱乐之间找到平衡,从而使玩家被游戏的挑战性所吸引,同时通过击败游戏形成一个持续的积极反馈。真实性问题还包括对游戏使用物理定律的实际认同数量。玩家能跳得比实际生活中更高吗?他能飞吗?是否能很快痊愈?这些都得由开发人员决定,意味着真实性可定义为特定游戏世界中的真实性。在幻想世界中尤其要小心,因为肆意破坏规则的敌人将被认为是在作弊而不是具有魔法,必须采取措施以确保玩家了解并遵守游戏世界中的规则。还要记住,大多数玩家都知道地球物理定律,但在他们设法习惯开发人员设定的规则时,这些特殊定律最初很有可能成为他们的绊脚石。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.