电子书 编程

(中英对照)精通 C++ 游戏动画编程(双语版电子书)

¥2.90 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

主要内容概览 全书分为 4 个部分,共 14 章,围绕游戏角色动画的高级技术展开,从基础模型加载到复杂的动画融合和交互实现。 第一部分:用游戏角色模型填充世界 使用 Open Asset Import Library 介绍 Open Asset Import Library(Assimp)的数据结构,讲解如何加载模型文件,包括嵌入纹理、解析节点层次结构、导入动画等。 扩展 UI,添加基于 ImGui 的文件对话框,实现模型实例的动态添加和删除。 将动画计算从 CPU 迁移到 GPU 引入计算着色器,利用 GPU 的大规模并行架构加速节点位置计算,减轻 CPU 负担。 介绍性能分析方法,调整数据模型以适应 GPU 计算,实现节点计算在 GPU 上的迁移和调试。 添加视觉选择功能 实现 “移动到实例” 功能,添加坐标箭头标识选中实例,创建按钮将选中实例居中显示。 为选中实例添加高亮效果,通过鼠标点击选择模型实例,实现空对象以允许取消选择。 第二部分:将模型查看器转换为动画编辑器 增强应用程序处理 实现编辑模式和查看模式的切换,区分不同模式下的配置。 添加更改还原功能,实现撤销和重做操作,通过回调函数和菜单实现相关功能。 保存和加载配置 比较文本和二进制文件格式的优缺点,选择 YAML 格式存储配置。 介绍 YAML 文件结构,添加 YAML 解析器,实现配置文件的保存和加载,处理可能的错误。 扩展相机处理 支持多个相机,实现从单个相机到相机数组的扩展,提取和调整相机设置。 定义默认自由相机,添加和删除相机,实现不同类型相机(第一人称、第三人称、固定相机等),支持相机切换和正交投影。 第三部分:调整角色动画 增强动画控制 实现动画混合,利用查找表加速 GPU 上的动画计算,添加新的实例状态(如 idle、walk、run 等)。 通过 UI 控制动画状态与动画片段的映射,使用有限状态机控制动画流程,实现状态的保存和加载。 碰撞检测入门 介绍碰撞检测的复杂性,避免 naive 方法,利用空间分区(网格、四叉树等)减少计算复杂度。 简化实例以加快碰撞检测,添加四叉树存储模型实例,实现轴对齐 bounding box 和 bounding sphere 用于碰撞检测。 添加行为和交互 构建控制实例行为的结构,添加可视化节点编辑器,集成 imnodes 创建 UI 元素。 创建节点工厂,扩展节点编辑器,实现节点树的保存和加载,添加实例间的交互。 高级动画混合 介绍面部表情动画,加载 morph 网格,将面部动画添加到代码和 GPU 着色器。 实现 additive blending,扩展代码支持 additive 动画,添加头部动画节点,实现相关设置的保存和加载。 第四部分:增强虚拟世界 加载游戏地图 分析地图和模型数据的差异,选择合适的地图文件格式,导入游戏地图。 添加 C++ 类存储关卡数据,扩展 UI 控制关卡属性,将四叉树转换为八叉树。 高级碰撞检测 增强关卡数据的碰撞检测,添加新的八叉树类型,检测实例与关卡的碰撞。 添加重力使实例保持在地面,实现反向运动学(FABRIK 算法)调整节点位置。 添加简单导航 概述不同的导航方式,重点介绍 A路径查找算法,实现基于 A的导航。 准备网格三角形数据,生成地面三角形,查找路径,添加导航目标,实现实例向目标导航。 创建沉浸式交互世界 添加音效和背景音乐,使用音频库(如 SDL、OpenAL 等)播放音效和音乐。 增强视觉效果,使用基于物理的渲染、添加透明度、天空盒、光影效果等,实现昼夜循环和天气效果。 其他内容 每章末尾提供实践环节和额外资源,帮助读者巩固知识和深入学习。 包含代码示例,可从 GitHub 仓库获取,支持 Windows 和 Linux 系统的编译和运行。 该书全面覆盖了 C++ 游戏动画编程的高级技术,从基础模型加载到复杂的动画融合、碰撞检测和导航,适合有一定基础的游戏开发者深入学习。