《OpenGL 3D动画开发 商业游戏开发系列》
|
目录 |
1、VS2008的Win32工程的创建(公共部分) 2、回调函数与完整的windows应用程序框架的分析(公共部分) 3、OpenGL开发环境的配置 4、初始化OpenGL(1) 获取窗口设备环境句柄 设置像素格式 创建喧染环境 设定当前线程的设备环境与喧染环境 5、变换的原理 世界变换(模型变换) 投影变换 观察变换 6、变换的实现 重置变换 投影变换 观察变换 7、初始化OpenGL(2) 设置清除颜色缓冲区与深度缓冲的值 图像与速度之间的选择 清除颜色与深度缓冲区 8、绘画点与线 设置点的位置与颜色 设置点的大小 设置点的抗锯齿 设置线的位置与大小 设置线的颜色 设置线的抗锯齿 虚线的设定 世界变换(模型位移变换)的实现 矩阵堆栈的设置与使用 9、绘制三角形与隐面剪切 设置三角形顶点 设置三角形顶点颜色 设置世界变换(模型旋转变换) 设置多边形点画模式 隐藏多边形的边 隐面剪切与迎风面的作用 设置隐面剪切 设置迎风面 10、纹理的读取与应用 纹理坐标映射原理 读取纹理 产生纹理ID 绑定纹理 指定纹理 纹理过滤 绘制纹理 11、层级贴图 层级贴图的作用 层级贴图的设置 12、描述MD2模型文件内容 描述文件头信息 描述帧信息 描述三角形信息 描述纹理信息 定义MD2类 13、定义读取MD2纹理的方法 14、读取MD2文件内容 计算MD2文件的大小并分配存储空间 查找各部分内容的起始位置 读取顶点信息 读取三角形信息 读取并计算纹理坐标信息 读取MD2用到的纹理 15、绘制MD2静态模型 绑定纹理 设定纹理坐标 设定模型顶点 16、渐变动画 渐变动画的作用 渐变动画的条件 渐变的原理 17、播放MD2动画 判断动画帧是否正确 计算插值的时间 确定"源"和"目标"动画帧 对模型顶点进行动画插值 绘制"插值"后的模型顶点 18、向量 向量的概念 向量的大小 向量的方向 2D与3D向量的表达方式 零向量 向量与点 向量与点各自描述了什么 向量与点的联系与区别 向量大小的计算 2D向量的大小 3D向量的大小 单位向量 单位向量的概念 单位向量的作用 单位向量的计算 向量的加减法 向量加法的计算 向量加法的几何意义 向量减法计算 向量减法的几何意义 向量点乘 向量点乘的计算 向量点乘的几何意义 向量叉乘 向量的叉乘 向量叉乘的几何意义 19、矩阵 矩阵的概念 方阵 单位矩阵 零矩阵 转置矩阵 矩阵的加法 矩阵的乘法 矩阵的程序表示方法 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矩阵的优点与作用 20、四元素 四元素的作用 四元素的概念 负四元素 单位四元素 四元素的模 四元素转矩阵 四元素转为矩阵的条件 四元素转为矩阵的选择 矩阵转四元素 矩阵转四元素的原因 矩阵转四元的方式 球面线性插值 球面线性插值的作用 球面线性插值的方式 21、描述MD3文件内容 认识MD3文件结构 描述MD3文件头 描述TAG信息 描述网格头信息 描述三角形信息 描述纹理坐标信息 描述纹理信息 描述关键帧信息 描述网格信息 定义MD3类 22、定义向量类 保存向量 设定向量 获取向量 23、矩阵类 保存矩阵 设定矩阵 获取矩阵 重置矩阵 设置4X4位移矩阵 从四元素转化为4X4矩阵 24、四元类 保存四元数 设置四元数 获取四元数 计算四元数的模 标准化四元数 将3X3矩阵转换为四元素 25、读取MD3文件与纹理 计算MD3文件的大小并分配存储空间 计算各部分内容的起始位置 分配各部分内容的存储空间 读取MD3文件头信息 读取TAG信息 将TAG旋转信息转换为四元素 读取网格信息 读取纹理信息 读取纹理 读取关键帧中的顶点 读取三角形信息 读取纹理坐标信息 26、绘制MD3静态模型 绑定纹理 设定纹理坐标 设定模型顶点 27、MD3动画控制 判断动画帧是否正确 计算插值时间 TAG线性插值 TAG球面线性插值 模型顶点插值 28、球面线性插值 计算插值四元素的大小 取出最短的弧进行插值 判断是否需要进行球面线性插值 计算球面线性插值的结果 29、绘制MD3动画 实现TAG连接信息 绑定纹理 设定纹理坐标 设定经过插值的模型顶点 将插值后的TAG四元素转换为4X4矩阵 把TAG位移信息设置到4X4矩阵中 递归调用TAG连接信息将各连接部分绘制出来 30、描述MS3D文件内容 认识MS3D文件结构 骨骼动画的原理 描述顶点信息 描述三角形信息 描述网格信息 描述材质信息 描述骨骼信息 定义MS3D类 31、读取MS3D文件内容 计算MS3D文件的大小并分配存储空间 计算各部分内容的起始位置 分配各部分内容的存储空间 读取顶点信息 读取三角形信息 读取网格信息 读取才质信息 读取纹理 读取骨骼信息 查找各骨骼的你节点 32、欧拉角 认识欧拉角 欧拉角转换到矩阵 欧拉角转换到四元数 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、绘制MD5模型动画 通过骨骼帧动画信息匹配网格 绘制动画帧所产生出来的动画模型 46、MD5动画帧之间的平滑过渡 动画帧平滑过渡的原理 确定"源"和"目标"帧 对"源"和"目标"帧的动画信息进行插值 通过"插值"的动画信息匹配网格 47、多动画集之间的平滑过渡(MD5) 多动画集之间平滑过渡的原理 确定"源"和"目标"动画集 确定"源"和"目标"的动画帧 通过多动画集之间"插值"的信息匹配网格 "多动画集过渡"结束后的处理 48、TGA文件结构 TGA文件的结构 TGA文件头的结构 TGA压缩数据块 TGA没压缩数据块 49、读取TGA文件 计算TGA文件大小并分配存储空间 判断TGA文件的数据是否有压缩 获取没压缩数据的数量并读取 获取有压缩数据的数量并读取 根据读取的TGA数据产生纹理 绑定并过滤纹理 |