计算机
类型
可以朗读
语音朗读
696千字
字数
2021-06-01
发行日期
展开全部
主编推荐语
游戏引擎高级技术解析:动画、渲染、多线程等
内容简介
本书主要讲解游戏引擎中的动画、渲染、多线程等高级技术。主要内容包括骨骼蒙皮模型与动画基础,动画播放和插槽,动画的混合,变形动画的混合,逆向动力学,角色,光照渲染的进化史,如何设计一个高效的渲染器,材质系统,渲染流程架构,光照和材质的关系,后期效果,常用阴影方法,多线程技术,动态缓冲区和性能分析器。本书有助于读者提升游戏引擎的开发水平。本书要求读者熟练掌握C++、数据结构、基本3D知识、常用的设计模式,以及具备多线程的基础知识。本书适合游戏开发人员阅读。
目录
- 版权信息
- 内容提要
- 前言
- 写作本书的缘由
- 本书内容
- 本书特色
- 读者对象
- 资源支持
- 致谢
- 第1章 骨骼蒙皮模型与动画基础
- 1.1 蒙皮模型与动画原理
- 1.1.1 骨骼
- 1.1.2 蒙皮模型
- 1.1.3 动作
- 1.2 蒙皮模型架构
- 1.3 FBX蒙皮模型导入
- 1.3.1 骨架处理
- 1.3.2 蒙皮矩阵
- 1.3.3 拆分模型
- 1.3.4 权重信息
- 1.3.5 计算最终骨骼矩阵
- 1.3.6 计算骨架和骨骼模型的包围盒
- 1.4 FBX动画导入
- 1.4.1 游戏引擎中的动画数据结构
- 1.4.2 从FBX导入游戏引擎格式
- 1.4.3 动画数据压缩
- 1.4.4 把动画导入角色动画集合
- 示例
- 示例1.1
- 示例1.2
- 第2章 动画播放与插槽
- 2.1 动画控制
- 2.1.1 控制相机
- 2.1.2 播放动画
- 2.1.3 根骨动画
- 2.1.4 根据动画数据计算骨架包围盒
- 2.2 插槽
- 练习
- 示例
- 示例2.1
- 示例2.2
- 示例2.3
- 示例2.4
- 第3章 动画混合
- 3.1 动画树架构
- 3.2 一个参数的动画混合
- 3.3 动画过渡
- 3.4 两个参数的动画混合
- 3.5 叠加动画
- 3.6 部分混合动画
- 3.7 动画树实例详解
- 练习
- 示例
- 示例3.1
- 示例3.2
- 示例3.3
- 示例3.4
- 示例3.5
- 示例3.6
- 示例3.7
- 示例3.8
- 示例3.9
- 示例3.10
- 示例3.11
- 示例3.12
- 示例3.13
- 示例3.14
- 示例3.15
- 示例3.16
- 示例3.17
- 示例3.18
- 第4章 变形动画混合
- 4.1 变形动画
- 4.2 FBX变形动画导入引擎
- 4.3 变形动画树架构
- 4.4 一个参数的变形动画混合
- 练习
- 示例
- 示例4.1
- 示例4.2
- 示例4.3
- 示例4.4
- 第5章 IK与角色
- 5.1 IK*
- 5.2 多姿多彩的角色*
- 练习
- 第6章 光照渲染的发展史
- 6.1 前向渲染
- 6.2 延迟渲染
- 6.3 延迟光照
- 6.4 基于块的延迟渲染
- 6.5 前向增强渲染
- 6.6 总结
- 示例
- 示例6.1
- 第7章 渲染器接口
- 7.1 渲染资源
- 7.1.1 VSBind
- 7.1.2 VSBlendState
- 7.1.3 VSDepthStencilState
- 7.1.4 VSSamplerState
- 7.1.5 VSRasterizerState
- 7.1.6 VSRenderState
- 7.1.7 VSTexture
- 7.1.8 VSRenderTarget
- 7.1.9 VSDepthStencil
- 7.1.10 VSDataBuffer
- 7.1.11 VSIndexBuffer
- 7.1.12 VSVertexFormat
- 7.1.13 VSVertexBuffer
- 7.1.14 VSShader
- 7.2 渲染器
- 7.2.1 显卡特性信息
- 7.2.2 初始化与窗口信息
- 7.2.3 资源设置加载与销毁
- 7.2.4 渲染接口
- 7.2.5 其他管理接口
- 第8章 材质
- 8.1 材质与着色器
- 8.1.1 着色器编译与参数传递
- 8.1.2 着色器键
- 8.1.3 着色器映射表与着色器缓存
- 8.1.4 基于自定义文件的材质
- 8.1.5 基于节点的材质
- 8.1.6 材质实例
- 8.1.7 渲染通道
- 8.2 材质树
- 8.2.1 图形节点表达式组合与拆解
- 8.2.2 图形节点类
- 8.2.3 生成遍历图形节点的代码
- 8.2.4 着色器组成与剖析
- 8.2.5 图形节点类型
- 8.2.6 顶点着色器代码生成
- 8.2.7 像素着色器代码生成
- 8.2.8 着色器中自定义变量设置
- 练习
- 第9章 流程渲染架构
- 9.1 渲染队列
- 9.2 VSSceneRender
- 9.3 渲染目标和深度模板管理
- 9.4 VSRenderMethod与VSViewFamily
- 第10章 光照与材质
- 10.1 VSMaterialSceneRender
- 10.2 VSIndirectRenderPass
- 10.3 VSMaterialPass
- 10.4 自定义光照
- 10.5 光源投射函数
- 练习
- 示例
- 示例10.1
- 示例10.2
- 示例10.3
- 示例10.4
- 示例10.5
- 示例10.6
- 示例10.7
- 示例10.8
- 示例10.9
- 示例10.10
- 示例10.11
- 示例10.12
- 示例10.13
- 示例10.14
- 示例10.15
- 示例10.16
- 示例10.17
- 示例10.18
- 第11章 后期效果
- 11.1 VSPostEffectSceneRender
- 11.2 后期效果集合
- 11.3 后期材质效果
- 示例
- 示例11.1
- 示例11.2
- 示例11.3
- 第12章 阴影
- 12.1 引言
- 12.2 阴影映射
- 1.聚光灯
- 2.方向光
- 3.点光源
- 4.材质中加入阴影处理
- 12.3 CSM
- 12.4 阴影体
- 12.5 投射体阴影
- 1.聚光灯
- 2.点光源
- 3.方向光
- 12.6 双剖面阴影映射
- 示例
- 示例12.1
- 示例12.2
- 示例12.3
- 示例12.4
- 示例12.5
- 示例12.6
- 示例12.7
- 示例12.8
- 示例12.9
- 示例12.10
- 示例12.11
- 示例12.12
- 第13章 多线程
- 13.1 操作系统中的PV操作
- 13.2 Windows系统中关于线程的API
- 1.关键区
- 2.信号量
- 3.互斥量
- 4.事件
- 13.3 异步加载
- 13.4 多线程更新
- 13.4.1 游戏中代码多线程化的常规方法
- 13.4.2 一种渲染用的多线程更新架构
- 13.4.3 基于Unreal Engine Command实现多线程命令分发
- 13.4.4 多线程更新框架
- 13.4.5 封装组件到多线程中
- 13.5 多线程渲染
- 13.5.1 多线程渲染框架
- 13.5.2 真正要处理的问题
- 1.不是线程安全的代码是否可以在多线程下执行
- 2.如何处理锁缓存
- 3.如果主线程删除资源,而渲染线程还在用这个资源,该怎么办?
- 4.设备丢失问题
- 13.5.3 封装渲染命令
- 13.5.4 小结
- 13.6 纹理流式加载*
- 13.6.1 线程架构
- 13.6.2 最大Mip层级计算
- 13.7 着色器缓存编译*
- 13.7.1 材质树编译
- 13.7.2 自定义文件格式
- 13.7.3 检测着色器改变
- 13.7.4 多进程编译着色器
- 13.8 编辑器资源热更新
- 练习
- 示例
- 示例13.1
- 示例13.2
- 示例13.3
- 示例13.4
- 示例13.5
- 示例13.6
- 示例13.7
- 第14章 动态缓冲区与性能分析器
- 14.1 动态缓冲区
- 14.2 性能分析器
- 练习
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。