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

  • 购买积分:24 如何计算积分?
  • 作  者:刘晖,林欣,李强等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302306092
  • 页数:922 页
图书介绍:Panda3D是美国“卡内基梅隆大学”为娱乐巨头“华特迪斯尼”研发的开源、商业化3维游戏引擎,是世界十大开源游戏引擎中功能最完整、性能最稳定、商业化限制最少的一款。本书为中文读者深入、完整掌握游戏引擎C++、Python核心内容提供了揭秘地图。全书图文并茂、实例丰富,配有80多段演示效果视频,为Windows、Linux、Mac操作系统中C++、Python游戏引擎掘金者提供了价值无穷的资源。

第1章 游戏引擎大比拼 1

1.1 国内热门网络游戏引擎类型统计 2

1.2 Panda3D的前世今生 5

1.3 游戏引擎的发展 6

1.3.1 抽象硬件 7

1.3.2 软件抽象 7

1.4 开源游戏引擎整体比较 8

1.5 知名游戏引擎及代表游戏 11

1.6 游戏引擎的成本与收益 14

1.7 选择游戏引擎的尺度 15

1.8 十大开源游戏引擎深入比较 16

1.9 开源游戏引擎许可证比较 21

1.10 安装Panda3D 24

1.10.1 Windows中的安装 24

1.10.2 Linux中的安装 25

1.11 小结 27

第2章 游戏引擎的开发环境 29

2.1 选择开发环境 30

2.2 安装Eclipse CDT&Pydev 1.6.3 30

2.3 在Python中运行第一个程序 32

2.4 在Linux C++中运行第一个程序 38

2.5 在Visual C++中运行第一个程序 51

2.6 小结 54

第3章 配置Panda3D游戏引擎 55

3.1 Panda3D配置文件 56

3.2 Panda3D1.7 配置变量列表 58

3.3 用C++访问配置变量 82

3.4 用Python访问配置变量 85

3.5 自带工具 87

3.6 用Pview查看模型 89

3.7 小结 94

第4章 管理游戏资产 95

4.1 Egg文件格式 96

4.2 动画模型的约定结构 113

4.3 场景浏览器 116

4.4 导演工具快捷键 120

4.5 管理Autodesk 3ds Max资产 121

4.6 管理Autodesk Maya资产 125

4.7 管理Linux+Blender资产 130

4.8 Bam与Egg模型 132

4.9 演示资源 132

4.10 小结 133

第5章 场景处理 135

5.1 场景节点公共基类 136

5.2 节点类NodePath 138

5.3 场景默认节点及场景基本处理 139

5.4 场景的主要状态 140

5.5 检索场景 143

5.6 场景层次化管理技巧 144

5.7 游戏引擎窗口及框架 147

5.8 用Python处理场景 153

5.9 开发实战——C++版太阳系 156

5.10 小结 166

第6章 模型、地形与角色 167

6.1 模型载入及载入路径 168

6.2 载入角色及动画 170

6.3 基于帧的动画的公共接口及控制 171

6.4 角色与动画的自动绑定 174

6.5 播放动画 178

6.6 动画的混合 180

6.7 角色的多个组成部分 182

6.8 用Python处理模型与角色 186

6.9 地形 190

6.10 用Python处理地形 198

6.11 细节节点 200

6.12 开发实战——C++版拳击机器人 202

6.13 开发实战——C++版看看抓抓 210

6.14 小结 218

第7章 渲染特性与效果 219

7.1 渲染属性概览 220

7.2 灯光 223

7.3 材质 231

7.4 景深缓冲器 234

7.5 雾 235

7.6 Alpha测试 238

7.7 色彩写入掩码 239

7.8 抗走样 240

7.9 重新配色 241

7.10前后表面拣选 245

7.11 灯光缓变 246

7.12 辅助位平面 247

7.13 蜡版测试及写入 248

7.14 渲染效果 253

7.15 指南针效果 254

7.16 公告牌效果 255

7.17 开发实战—C++版迪斯科灯光 257

7.18 开发实战——C++版无底洞 265

7.19 小结 272

第8章 纹理 273

8.1 基本纹理 274

8.2 纹理尺寸 281

8.3 换行模式 282

8.4 纹理过滤器 286

8.5 纹理替换 289

8.6 多纹理 294

8.7 多纹理的模式 298

8.8 纹理组合 305

8.9 纹理变换 306

8.10 自动纹理 309

8.11 投影纹理 313

8.12 环境映射 316

8.13 3D纹理 320

8.14 立方体映射 324

8.15 动画纹理 328

8.16 视频纹理 330

8.17 透明与混合 334

8.18 纹理管理 335

8.19 纹理压缩 335

8.20 开发实战——C++版凹凸贴图 336

8.21 开发实战——C++版纹理交换 343

8.22 小结 350

第9章 着色器 353

9.1 着色器概览 354

9.2 着色器输入 358

9.3 着色器空间坐标 362

9.4 着色器生成器 364

9.5 相机控制 366

9.6 镜头与视野 368

9.7 着色器实战——初始程序 373

9.8 着色器实战——变形与变色 379

9.9 着色器实战——GPU交互控制 381

9.10 着色器实战——灯光漫游初始程序 383

9.11 着色器实战—Cg灯光漫游程序 388

9.12 着色器实战——带衰减的Cg灯光漫游 391

9.13 开发实战——C++版卡通着色 394

9.14 开发实战—C++版发光滤镜 399

9.15 小结 405

第10章 幕与情节的自动处理 407

10.1 全局时钟 408

10.2 幕与幕管理器 410

10.3 幕的自动插值 413

10.4 角色的混合效果 417

10.5 情节 418

10.6 幕的本质 423

10.7 符合重力规律的弹道曲线幕 424

10.8 函数幕 425

10.9 异步任务 426

10.10 任务链 433

10.11 多线程 435

10.12 事件 438

10.13 C++程序主循环 442

10.14 Python程序主循环 443

10.15 开发实战—C++版小行星 444

10.16 开发实战——C++版旋转木马 453

10.17 开发实战——C++版电视机中的茶壶 458

10.18 小结 463

第11章 音频 465

11.1 音频系统的结构 466

11.2 循环控制 467

11.3 音频管理器 468

11.4 DSP音频效果 469

11.5 3D音频效果 471

11.6 音频自动化幕 475

11.7 开发实战—C++版播放多媒体 476

11.8 开发实战——C++版场景扭曲 478

11.9 开发实战——C++版萤火虫 483

11.10 小结 494

第12章 高级交互组件 495

12.1 文本字符集 496

12.2 字体 498

12.3 文本节点 502

12.4 文本节点Python扩展 511

12.5 段落属性多样化 512

12.6 C++交互组件公共基 517

12.7 C++交互组件 521

12.8 Python交互组件 522

12.9 按钮 524

12.10 复选框 526

12.11 单选按钮 527

12.12 对话框 529

12.13 输入框 530

12.14 框架 531

12.15 菜单 532

12.16 滚动列表 534

12.17 进度条 536

12.18 滑块 537

12.19 滚动条 538

12.20 滚动框架 539

12.21 开发实战——C++版音乐盒 540

12.22 小结 545

第13章 游戏引擎内部构造 547

13.1 顶点数据的构成 548

13.2 顶点数据的格式 552

13.3 简单几何形体 556

13.4 几何形体 561

13.5 几何形体节点 563

13.6 几何形体边界 563

13.7 矩阵 565

13.8 自主定义顶点数据格式 566

13.9 生成顶点数据 568

13.10 生成简单几何形体 569

13.11 设置场景 571

13.12 读取几何形体 571

13.13 修改几何形体 574

13.14 网格绘制器 575

13.15 顶点数据读写器 577

13.16 修改纹理图像 578

13.17 保存模型 582

13.18 开发实战——C++版立方体控制 584

13.19 小结 589

第14章 渲染的处理过程 591

14.1 实现渲染过程的主要类 592

14.2 图形管道 593

14.3 图形输出窗口与缓冲器 594

14.4 显示区域 598

14.5 2D显示区域 604

14.6 图形引擎 606

14.7 图形状态监控 608

14.8 管理图形输出对象 614

14.9 渲染次序 615

14.10 渲染生成的纹理 618

14.11 Python过滤器动态管理 621

14.12 动态立方体环境映射 622

14.13 渲染生成纹理的低层API 625

14.14 立体显示区域 627

14.15 多通道渲染 630

14.16 开发实战——C++版影子处理 631

14.17 开发实战——Python过滤器 637

14.18 小结 641

第15章 粒子 643

15.1 粒子渲染器 644

15.2 粒子发射器 646

15.3 粒子工厂 648

15.4 各种粒子 649

15.5 粒子系统 650

15.6 Python粒子面板 651

15.7 力场与力场节点 652

15.8 粒子实战——尘土飞扬 654

15.9 粒子实战——云蒸雾绕 657

15.10 粒子实战——喷泉 659

15.11 粒子实战——烟雾 661

15.12 粒子实战——烟圈 663

15.13 粒子实战——火炬 664

15.14 在Python中使用粒子 666

15.15 在C++中生成粒子 668

15.16 开发实战——C++版分形树 670

15.17 小结 679

第16章 碰撞检测 681

16.1 碰撞形体 682

16.2 碰撞处理器 685

16.3 碰撞实体 690

16.4 碰撞遍历器 692

16.5 碰撞掩码 693

16.6 高速移动的物体 695

16.7 碰撞检测实战——碰撞推处理器 696

16.8 碰撞检测实战——碰撞处理器事件 699

16.9 碰撞检测实战——碰撞掩码及碰撞射线 705

16.10 碰撞检测实战——点击3D物体 712

16.11 开发实战——C++版漫游者 713

16.12 小结 721

第17章 物理系统 723

17.1 启动物理系统 724

17.2 力场 725

17.3 ODE的基本特征 728

17.4 ODE的游戏世界、物体与质量 729

17.5 ODE关节 736

17.6 ODE碰撞检测 742

17.7 NVIDIA Physx的基本特征 751

17.8 开发实战——C++版迷宫滚球 754

17.9 小结 763

第18章 人工智能与有限状态机 765

18.1 系统基本特征 766

18.2 人工智能实战——寻找 767

18.3 人工智能实战——逃离 769

18.4 人工智能实战——追逐 770

18.5 人工智能实战——逃避 773

18.6 人工智能实战——游逛 775

18.7 人工智能实战——羊群 776

18.8 人工智能实战——避障 779

18.9 人工智能实战——路径跟踪 782

18.10 人工智能实战——最短寻径 784

18.11 在C++中实现AI 791

18.12 人工智能C++类 792

18.13 Python有限状态机 793

18.14 带输入的FSM 795

18.15 FSM技巧 797

18.16 开发实战——C++版国际象棋 797

18.17 小结 805

第19章 高级开发杂项 807

19.1 键盘 808

19.2 鼠标 811

19.3 数据报协议基础类 813

19.4 建立客户-服务器连接 816

19.5 传递数据报文 820

19.6 下载文件 821

19.7 分布式网络对象 827

19.8 多媒体文件包 831

19.9 补丁 841

19.10 非标准文件源 842

19.11 跨语言派生子类 843

19.12 调试日志 845

19.13 脚本语言代码质询 848

19.14 开发实战——C++版构造FPS相机 851

19.15 小结 854

第20章 分布式应用 855

20.1 基于P3D文件的分布式应用 856

20.2 基于Web的分布式应用 858

20.3 分布式应用程序的数字签名 860

20.4 配置分布式应用 862

20.5 自安装的分布式应用 863

20.6 Panda3D运行库软件包目录 864

20.7 Panda3D运行库软件包构成 865

20.8 构建系统包宿主机 867

20.9 打补丁 870

20.10 高级脚本技术——检测插件 870

20.11 高级对象标签及插件运行窗口标签 871

20.12 高级脚本技术——插件的通告与回调 872

20.13 高级脚本技术——全局启动对象 874

20.14 高级脚本技术——源安全及运行安全 876

20.15 系统包安装类 877

20.16 开发实战——C++版运动踪迹 878

20.17 小结 883

第21章 性能优化 885

21.1 帧速测量与场景分析 886

21.2 性能测量 888

21.3 性能测量机制分析 894

21.4 刚体组合器 895

21.5 性能优化问题分析——网格过多 897

21.6 性能优化问题分析——文本过频 897

21.7 性能优化问题分析——着色器指令过长 897

21.8 性能优化问题分析——几何形体过多 898

21.9 性能优化问题分析——Python计算过难 899

21.10 性能优化问题分析——其他问题简述 899

21.11 小结 899

第22章 编译游戏引擎源代码 901

22.1 源代码编译的基本依赖 902

22.2 源代码编译的目录结构及依赖 903

22.3 源代码编译的配置变量 906

22.4 Unix及Linux系统源代码编译基本步骤 907

22.5 Windows与Cygwin组合环境源代码编译基本步骤 909

22.6 Windows非Cygwin环境源代码编译基本步骤 910

22.7 测试ppremake编译结果 914

22.8 编译Python接口的步骤细节 915

22.9 快速编译源代码的方法 917

22.10 小结 919

参考文献 921