《DirectX Shaders——3D动画开发》
![]() |
|
| 目录 |
|
1、渲染管线的概念与组成部分 可编程渲染管线的优点 渲染管线的概念 渲染管线的各个阶段 2、初始化Direct3D 设备类型 特征级别 创建后台渲染目标与视口 清除与显示 3、HLSL 什么是HLSL HLSL语法 数据类型 流程控制 语意 函数 4、编写顶点与像素着色器并绘制三角形 编写顶点与像素着色器 编译与创建顶点与像素着色器 输入布局与输入汇编阶段的实现 创建顶点缓冲区 绘制三角形 5、设置三角形的颜色 着色器中结构体的使用 着色器中对颜色的处理 设置颜色输入布局 6、变换的分析 世界的变换 观察变换 投影变换 7、旋转的三角形 常量缓冲区的作用 常量缓冲区的创建 常量缓冲区的更新 设置光栅化状态 8、创建深度缓冲区与绘制多个三角形 深度缓冲区的描述 创建深度缓冲区 设定深度缓冲区到输出合并阶段 绘制多个三角形 9、创建索引缓冲区并绘制三角形 索引的原理 创建索引的缓冲区 使用索引绘制三角形 10、纹理 纹理的映射原理 读取纹理并创建采样状态 设置纹理输入布局 着色器接收并绘制纹理 11、MD2文件的结构与信息的描述 描述文件头信息 描述帧信息 描述三角形信息 描述纹理信息 描述顶点与顶点缓冲区信息 定义MD2类 12、读取MD2文件 计算MD2文件的大小并分配存储空间 查找各部分内容的起始位置 读取顶点信息 读取三角形信息 建立索引存储空间并保存索引信息 描述并创建索引缓冲区 读取并计算纹理坐标信息 建立顶点与纹理坐标的存储空间 根据索引来组织并存放顶点与纹理坐标 描述并创建顶点缓冲区 13、绘制MD2模型 设置输入布局 设定顶点缓冲区 设定索引缓冲区 根据索引值绘制模型 14、渐变动画 渐变动画的作用 渐变动画的条件 渐变的原理 15、播放MD2动画 动画的控制 设定多个输入槽接收顶点信息 通过常量缓冲区传递线性插值的信息 顶点着色器接收多个顶点的信息 通过顶点着色器完成顶点的线性插值 16、向量 向量的概念 向量的大小 向量的方向 2D与3D向量的表达方式 零向量 向量与点 向量与点各自描述了什么 向量与点的联系与区别 向量大小的计算 2D向量的大小 3D向量的大小 单位向量 单位向量的概念 单位向量的作用 单位向量的计算 向量的加减法 向量加法的计算 向量加法的几何意义 向量减法计算 向量减法的几何意义 向量点乘 向量点乘的计算 向量点乘的几何意义 向量叉乘 向量的叉乘 向量叉乘的几何意义 17、矩阵 矩阵的概念 方阵 单位矩阵 零矩阵 转置矩阵 矩阵的加法 矩阵的乘法 矩阵的程序表示方法 2D旋转矩阵 认识2D旋转矩阵 2D旋转的分析 3D旋转矩阵 认识3D旋转矩阵 以X轴作为轴心的3D旋转矩阵 以Y轴作为轴心的3D旋转矩阵 以Z轴作为轴心的3D旋转矩阵 4X4平移矩阵 认识4X4平移矩阵 4X4平移矩阵的平移分析 4X4缩放矩阵 认识4X4缩放矩阵 4X4缩放矩阵的缩放分析 4X4旋转矩阵 认识4X4旋转矩阵 以X轴作为轴心的4X4旋转矩阵 以Y轴作为轴心的4X4旋转矩阵 以Z轴作为轴心的4X4旋转矩阵 4X4矩阵的优点与作用 18、四元素 四元素的作用 四元素的概念 负四元素 单位四元素 四元素的模 四元素转矩阵 四元素转为矩阵的条件 四元素转为矩阵的选择 矩阵转四元素 矩阵转四元素的原因 矩阵转四元的方式 球面线性插值 球面线性插值的作用 球面线性插值的方式 19、MD3文件结构与信息描述 认识MD3文件结构 描述MD3文件头 描述TAG信息 描述网格头信息 描述三角形信息 描述纹理坐标信息 描述纹理信息 描述关键帧信息 描述网格信息 定义MD3类 20、读取MD3文件与纹理 计算MD3文件的大小并分配存储空间 计算各部分内容的起始位置 分配各部分内容的存储空间 读取MD3文件头信息 读取TAG信息 将TAG旋转信息转换为四元素 读取网格信息 读取材质信息 读取关键帧中的顶点 读取三角形信息 读取纹理坐标信息 组织顶点与纹理坐标 创建顶点缓冲区 21、绘画MD3模型 设置顶点缓冲区 绘画MD3模型各个部分 22、MD3模型各个部分的连接 找到对应的TAG信息 将TAG中旋转的四元素转化为矩阵 将TAG中的位移的信息转化为矩阵 把TAG转化后的矩阵传递给着色器 23、创建动画帧的顶点缓冲区 获取每帧的顶点与纹理坐标的信息 描述并创建每帧的顶点缓冲区 24、MD3动画控制与绘制TAG连接的模型 确定源和目标的TAG信息 对源和目标的TAG旋转信息进行线性插值 对源和目标的TAG位移信息进行线性插值 设定Tag与模型连接的关系 设定源和目标的顶点缓冲区 递归调用TAG连接信息将MD3各个部分绘制出来 25、定义向量类 保存向量 设定向量 获取向量 26、矩阵类 保存矩阵 设定矩阵 获取矩阵 重置矩阵 设置4X4位移矩阵 从四元素转化为4X4矩阵 27、四元类 保存四元数 设置四元数 获取四元数 计算四元数的模 标准化四元数 将3X3矩阵转换为四元素 28、球面线性插值 计算插值四元素的大小 取出最短的弧进行插值 判断是否需要进行球面线性插值 计算球面线性插值的结果 29、描述MS3D中的信息 认识MS3D文件结构 骨骼动画的原理 描述顶点信息 描述三角形信息 描述网格信息 描述材质信息 描述骨骼信息 定义MS3D类 30、读取MS3D文件内容 计算MS3D文件的大小并分配存储空间 计算各部分内容的起始位置 分配各部分内容的存储空间 读取顶点信息 读取三角形信息 读取网格信息 读取材质信息 读取骨骼信息 查找各骨骼的父节点 31、欧拉角 认识欧拉角 欧拉角转换到矩阵 欧拉角转换到四元数 32、初始化MS3D的骨骼矩阵与顶点 建立骨骼"相对矩阵" 建立骨骼"绝对矩阵" 判断顶点是否受到骨骼的影响 建立"位移逆反矩阵" 建立"旋转逆反矩阵" 33、创建MS3D的顶点与索引缓冲区 获取顶点与纹理坐标 获取顶点对应的骨骼 通过骨骼来变换顶点 描述并创建动态顶点缓冲区 34、动态更新顶点缓冲区并绘画MS3D模型 影射顶点缓冲区 通过骨骼更新顶点并写入顶点缓冲区 读取纹理 设定纹理资源 设定顶点与索引缓冲区 绘制模型 35、MS3D的动画控制 控制动画播放的时间 取出模型的骨骼并判断骨骼是否带有动画信息 判断与控制动画的当前帧 判断动画是否需要进行插值 计算插值的时间 对动画信息进行插值 计算动画的"绝对矩阵" 36、MD5文件结构 分析MD5模型文件的内部结构 骨骼信息结构 网格信息结构 顶点信息结构 权重信息的作用 三角形信息结构 权重信息结构 分析MD5模型文件中各信息的连系与作用 顶点与权重的连系 权重与骨骼的连系 顶点受多少个权重的影响 计算最终的顶点信息 总结MD5模型文件中各部分的连系与计算的过程 37、描述MD5模型文件中各部分的内容 描述骨骼信息 描述顶点信息 描述网格信息 描述MD5模型信息 38、读取MD5模型文件 查找各数据块的起始位置 分配各数据的存储空间 读取骨骼信息 转换骨骼旋转信息为"四元素" 读取网格信息 读取纹理路径 读取顶点信息 读取三角形信息 读取权重信息 39、四元数运算法则与公式 40、匹配网格(MD5) 创建存储顶点的存储空间 查找顶点对应的"骨骼"和"权重" 通过"骨骼"和"权重"计算出最终的顶点 保存"最终顶点"到顶点数组 41、创建MD5顶点缓冲区 描述顶点缓冲区 创建顶点缓冲区 42、绘制MD5静态模型 设定顶点缓冲区 绘制模型 43、描述与读取MD5动画文件 描述"包围盒"信息 描述MD5动画信息 描述"骨骼动画层次结构"信息 描述"基础帧"信息 描述"动画帧"信息 查找各数据块的起始位置 分配各数据的存储空间 读取"骨骼层次结构"信息 读取"包围盒"信息 读取"基础帧"信息 读取"动画帧"信息 44、创建骨骼帧 提取"基础帧信息" 提取骨骼层次结构信息 判断动画帧信息的作用(旋转还是平移) 产生骨骼帧动画信息 45、更新顶点缓冲区 通过骨骼帧重新匹配网络 把匹配后的网格顶点写入到顶点缓冲区中 46、MD5动画帧之间的平滑过渡 动画帧平滑过渡的原理 初始化动画信息 确定"源"和"目标"帧 对"源"和"目标"帧的动画信息进行插值 通过"插值"的动画信息匹配网格 47、多动画集之间的平滑过渡(MD5) 多动画集之间平滑过渡的原理 确定"源"和"目标"动画集 确定"源"和"目标"的动画帧 通过多动画集之间"插值"的信息匹配网格 "多动画集过渡"结束后的处理 |
