开源商业化三维游戏引擎大揭秘

当前位置:首页 > 经济 > 各部门经济 > 开源商业化三维游戏引擎大揭秘

出版社:清华大学出版社
出版日期:2013-1
ISBN:9787302306092
页数:922页

章节摘录

版权页:   插图:    渲染的处理过程也属于游戏引擎内部构造问题。同样的渲染特性与效果在不同游戏引擎中渲染过程可能不完全一致。渲染的处理过程涉及渲染的基本流程、流程的集成性、划分则定义了集成的方式、扩展的便捷性。 Panda3D游戏引擎通过4个类处理渲染过程,对应于图形管道、图形引擎、图形状态监控、图形输出。它们与窗口、缓冲器组织成各种显示区域,共享图形上下文,确定渲染次序,调用图像过滤器,生成特殊渲染效果。本章将介绍有关的内容。 Panda3D游戏引擎通过4个类实现渲染过程,分别是图形引擎GraphicsEngine、图形管道GraphicsPipe、图形输出GraphicsOutput、图形状态监控GraphicsState.Guardian。 每个应用只有一个全局图形引擎对象,主要任务是保持与窗口、缓冲器等图形输出对象的通信,管理各种渲染任务。 启动应用程序时,通常会自动创建一个全局GraphicsEngine对象。在C++中,该任务由PandaFramework负责完成。在Python中,该任务由ShowBase负责完成。开发者没有必要创建第二个图形引擎。 每个应用至少需要一个图形管道对象,用来封装渲染APl。OpenGL、DirectX使用不同的图形管道,Windows、Xll也使用不同的图形管道,IPhone、PC还是使用不同的图形管道。游戏引擎需要分别提供满足上述特性组合的图形管道。尽管允许直接创建相应的GraphicsPipe对象,启动应用程序时通常已经创建了合适的图形管道对象。在C++中,该任务由PandaFramework负责完成。在Python中,该任务由Show Base负责完成。除非需要创建窗口或缓冲器对象,一般不必直接使用图形管道对象。 图形输出的具体类型是窗口及缓冲器。前者是渲染的显示载体。启动应用程序时通常已经创建了合适的窗口。在C++中,该任务由Panda Framework负责完成。在Python中,该任务由ShowBase负责完成。游戏引擎允许创建多个窗口,但处理不当会影响性能。后者是隐形的、画面外渲染载体,用来渲染特殊的画面外效果,例如环境纹理(render—to—texturel等。一个应用可能具有多个画面外缓冲器。两者的公共基是图形输出对象Graphics Output。 图形状态监控Graphics State Guardian对象简写为GSG,表示图形上下文,管理绘制到窗口上的具体细节,包括将纹理、顶点缓冲器载入图形内存,绘制三角形等简单几何形体。在每帧的渲染过程中,图形状态有可能发生多次改变。开发者一般不需直接调用GSG的函数,Graphics Engine对象会自动处理。如果使用了多线程,需要确保该线程中的GSG对象不会在绘制图形时被中断。

内容概要

  刘晖,上海嘉趣多媒体科技有限公司CEO。西安交通大学计算机软件博土,上海交通大学计算机软件博士后,RHCE。曾先后担任东华大学副教授、上海三零卫士信息安全有限公司企业部副CTO、中国科学院上海高等研究院科技处项目主管等职。目前致力于3D产业的科技、服务、商贸活动,同时支持3D游戏引擎的可持续、开源、免费、商业化运作。塑造并追求“时尚欢乐美好趣味”的企业文化。
  
  林欣,东华大学信息学院教师、上海嘉趣多媒体科技有限公司兼职培训师。西安电子科技大学图形图像处理硕士。曾先后就职于西安交通大学、东华大学。目前关注3D产业的技术普及推广活动,积极支持3D游戏引擎的叮持续、开源、共享发展。崇尚科技美化生活。
  
  李强,上海嘉趣多媒体科技有限公司副总经理。毕业于西安电子科技大学。曾先后就职于陕西省机械设备进出口公司和中兴通讯股份有限公司。爱好旅游、文学和羽毛球运动,足迹遍及40多个国家和国内大江南北。目前致力于3D产业的科技、服务、商贸活动,积极支持3D游戏引擎技术与资源分享。崇尚自由、多彩、率性、现代的数字生活。

书籍目录

第1章 游戏引擎大比拼
1.1 国内热门网络游戏引擎类型统计
1.2 Panda3D的前世今生
1.3 游戏引擎的发展
1.3.1 抽象硬件
1.3.2 软件抽象
1.4 开源游戏引擎整体比较
1.5 知名游戏引擎及代表游戏
1.6 游戏引擎的成本与收益
1.7 选择游戏引擎的尺度
1.8 十大开源游戏引擎深入比较
1.9 开源游戏引擎许可证比较
1.10 安装Panda3D
1.10.1 Windows中的安装
1.10.2 Linux中的安装
1.11 小结
第2章 游戏引擎的开发环境
2.1 选择开发环境
2.2 安装Eclipse CDT & Pydev 1.6.3
2.3 在Python中运行第一个程序
2.4 在LinuxC++中运行第一个程序
2.5 在VisualC++中运行第一个程序
2.6 小结
第3章 配置Panda3D游戏引擎
3.1 Panda3D配置文件
3.2 Panda3D 1.7 配置变量列表
3.3 用C++访问配置变量
3.4 用Python访问配置变量
3.5 自带工具
3.6 用Pview查看模型
3.7 小结
第4章 管理游戏资产
4.1 Egg文件格式
4.2 动画模型的约定结构
4.3 场景浏览器
4.4 导演工具快捷键
4.5 管理Autodesk 3ds Max资产
4.6 管理Autodesk Maya资产
4.7 管理Linux+Blender资产
4.8 Bam与Egg模型
4.9 演示资源
4.10 小结
第5章 场景处理
5.1 场景节点公共基类
5.2 节点类NodePath
5.3 场景默认节点及场景基本处理
5.4 场景的主要状态
5.5 检索场景
5.6 场景层次化管理技巧
5.7 游戏引擎窗口及框架
5.8 用Python处理场景
5.9 开发实战——C++版太阳系
5.10 小结
第6章 模型、地形与角色
6.1 模型载入及载入路径
6.2 载入角色及动画
6.3 基于帧的动画的公共接口及控制
6.4 角色与动画的自动绑定
6.5 播放动画
6.6 动画的混合
6.7 角色的多个组成部分
6.8 用Python处理模型与角色
6.9 地形
6.10 用Python处理地形
6.11 细节节点
6.12 开发实战——C++版拳击机器人
6.13 开发实战——C++版看看抓抓
6.14 小结
第7章 渲染特性与效果
7.1 渲染属性概览
7.2 灯光
7.3 材质
7.4 景深缓冲器
7.5 雾
7.6 Alpha测试
7.7 色彩写入掩码
7.8 抗走样
7.9 重新配色
7.10 前后表面拣选
7.11 灯光缓变
7.12 辅助位平面
7.13 蜡版测试及写入
7.14 渲染效果
7.15 指南针效果
7.16 公告牌效果
7.17 开发实战——C++版迪斯科灯光
7.18 开发实战——C++版无底洞
7.19 小结
第8章 纹理
8.1 基本纹理
8.2 纹理尺寸
8.3 换行模式
8.4 纹理过滤器
8.5 纹理替换
8.6 多纹理
8.7 多纹理的模式
8.8 纹理组合
8.9 纹理变换
8.10 自动纹理
8.11 投影纹理
8.12 环境映射
8.13 3D纹理
8.14 立方体映射
8.15 动画纹理
8.16 视频纹理
8.17 透明与混合
8.18 纹理管理
8.19 纹理压缩
8.20 开发实战——C++版凹凸贴图
8.21 开发实战——C++版纹理交换
8.22 小结
第9章 着色器
9.1 着色器概览
9.2 着色器输入
9.3 着色器空间坐标
9.4 着色器生成器
9.5 相机控制
9.6 镜头与视野
9.7 着色器实战——初始程序
9.8 着色器实战——变形与变色
9.9 着色器实战——GPU交互控制
9.10 着色器实战——灯光漫游初始程序
9.11 着色器实战——Cg灯光漫游程序
9.12 着色器实战——带衰减的Cg灯光漫游
9.13 开发实战——C++版卡通着色
9.14 开发实战——C++版发光滤镜
9.15 小结
第10章 幕与情节的自动处理
10.1 全局时钟
10.2 幕与幕管理器
10.3 幕的自动插值
10.4 角色的混合效果
10.5 情节
10.6 幕的本质
……
第11章 音频
第12章 高级交互组件
第13章 游戏引擎内部构造
第14章 渲染的处理过程
第15章 粒子
第16章 碰撞检测
第17章 物理系统
第18章 人工智能与有限状态机
第19章 高级开发杂项
第20章 分布式应用
第21章 性能优化
第22章 编译游戏引擎源代码
参考文献

编辑推荐

《开源商业化三维游戏引擎大揭秘》作者结合深入的专业知识及多年的工作实践开发经验,重点针对市场、读者技术实践需求编写《开源商业化三维游戏引擎大揭秘》,通过全面学习,相信读者能够轻松掌握Panda3D的使用技巧,简单快捷地步入3D应用开发新天地。

作者简介

《开源商业化三维游戏引擎大揭秘》为中文读者深入、完整掌握游戏引擎C++、Python核心内容提供了“先天下之阅而阅”的揭秘地图。全书图文并茂、实例丰富,配书光盘中有80多段演示效果视频,为Windows、Linux、Mac操作系统中的C++、Python游戏引擎掘金者提供了价值无穷的资源。

图书封面


 开源商业化三维游戏引擎大揭秘下载



发布书评

 
 


精彩短评 (总计5条)

  •     刘晖,你好!我是读者。恭喜你的关于Panda3D的书出版了!我们都为你感到骄傲!我的问题是:对于想了解Panda3D引擎的读者,你把所有中国的游戏列出来有什么意义?
  •     书中的绝大部分内容都是为 C++ 准备的,只有少量对应 Python 。这本书比较像 API 接口介绍,涉及编程思路以及注意事项的部分似乎不多。
  •     非常喜欢这本书,但是封面搞的就和千万个人摸过一样,什么呀
  •     随书视频只是程序运行的演示,根本没多大价值。有用的东西太少,凑了一本书。绝对对不起这价钱。
  •     书的光盘为我挑了一款好刻录机,很赞
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024