《OpenGL 3D商业游戏开发全面详解》

  OpenGL 商业游戏开发全面详解系列  
《OpenGL 3D商业游戏开发系列》是可奇教育最新推出的一套适合广大学生朋友和初中级水平职场人士快速学习的视频教程。该教程继承可奇一贯轻松学习的理念,帮助您更加轻松和快速地掌握业内必备核心技术,在最短的时间内理解核心概念、原理、框架,并通过真实的动手实践,将最核心的知识点牢固掌握。

《OpenGL 3D商业游戏开发系列》使用真实的商业游戏"魔兽争霸"作为教程中的例子,教学的每个环节都有可以执行代码、资源等文件提供,所有的代码在教程中都配有深入详细的讲解。使用《商业游戏开发系列》,您可以亲自动手修改或重写每个环节的源代码,能够帮助您以最快速度从原理学习转入实践操作阶段,最终制作出真实的商业游戏。

《OpenGL 3D商业游戏开发全面详解》

1、 全屏显示模式实现

          显示全屏模式的选择窗口

          根据选择结果进行设置

          根据选择结果以全屏或窗口模式进行显示

2、 空间划分

          空间划分的必要性

          BHV(包围体层次结构)的划分原理

          描述BHV的存储信息

          描述BHV的存储单元格

          描述BHV的节点

          定义BHV类

3、 创建BHV树

          创建根节点并设置根节点的信息

          设定创建BHV树的结束条件

          分配BHV临时存储单元格

          判断并插入对象信息到BHV临时存储单元格

          分配BHV节点

          将BHV临时存储单元格中的信息插入到BHV节点

          递归设置下级BHV节点

4、 通过BHV树进行快速剔除

          通过摄像机的"视景体"进行剔除判断

          BHV节点剔除的原理

          获取BHV树中的每个节点并进行判断

          设置BHV树节点的状态

5、 绘画场景与对象

          读取模型与纹理

          读取场景编辑信息

          绘画地形与对象

          设置摄像机

          显示字符

6、 添加模型动画功能

          描述对象的动画信息

          分配对象动画的存储空间

          设置对象的动画信息

          产生并存储模型动画信息

          绘制模型动画

7、 角色模型动画

          读取每个部分的角色模型动画

          不同动画集之间切换的原理

          产生并存储不同动画集之间的切换信息

          绘画不同动画集之间切换的模型动画

          绘画角色模型动画

8、 改变角色的朝向

          描述角色

          确定鼠标在3D空间中的位置

          确定角色当前位置

          判断角色转动的方向

          确定角色旋转的角度

9、 网格系统

          插入可移动对象信息到网格

          删除网格中的对象信息

          统计网格系统在可视范围中对象的数量

          绘画可移动对象

10、寻路的原理

          寻路的必要性

          寻路中的待处理列表

          寻路中的历史最佳距离

          路径节点的排序

11、寻路的实现

          描述路径节点

          寻路代码结构的介绍

          寻路代码执行的流程

          待处理列表的初始化

          加载节点到待处理列表

          提取待处理列表中的节点

          历史最佳记录的判断

          保存找到的最佳移动路径

12、角色寻路

          描述角色寻路的信息

          获取角色当前位置与目标点的位置

          判断是否需要寻路

          判断寻路是否成功

          角色成功寻路后的设置

13、角色按所寻路径移动

          角色按照路径移动的原理

          角色移动时自动改变移动方向

          获取路径节点

          判断节点是否被占用

          删除与插入信息到地形网格

          到达目标点后的处理

14、添加敌人

          描述敌人信息

          描述敌人寻路信息

          初始化敌人信息

          敌人攻击方向的改变

15、敌人寻路与移动

          转换敌人当前位置与目标点的位置

          判断是否应该寻路

          敌人按照所寻路径移动时方向的改变

          获取路径节点

          判断下一个路径节点是否为障碍或被占用

          判断是否允许取下一个路径节点

          到达目标点后的处理

16、敌人寻路与移动方法的调用

          判断当前是否允许敌人寻路

          设置敌人移动的目标

          根据敌人寻路的结果来设置敌人的状态以及寻路的标志

          根据敌人的死亡状态与寻路标志判断是否允许敌人移动

17、敌人与角色的碰撞和移动

          碰撞判断的原理

          碰撞判断的实现

          敌人移动到目标点后判断是否与角色产生碰撞

          敌人的惯性移动

18、敌人的死亡动画与尸体的绘制

          死亡动画的播放控制

          显示敌人尸体

19、敌人尸体的处理

          判断敌人是否死亡

          释放敌人死亡前所占用的位置

          将敌人死亡的信息存入死亡数组中并统计尸体的总数量

          控制尸体逐渐下沉

          从死亡数组中删除尸体信息

20、角色攻击敌人

          获取当前角色与敌人的模型

          判断角色与敌人是否产生碰撞

          减少敌人生命值

          敌人生命值为零时将它标记为死亡

21、绘制光标

          设置2D平行投影

          获取屏幕鼠标的位置

          设置纹理坐标

          设置混合功能

          绘画光标

22、绘画并显示敌人生命值

          转换敌人3D空间中的位置坐标到屏幕坐标

          绘画生命值边框

          根据敌人生命值的变化与位置信息进行生命值的绘画

          显示光标所选中的敌人生命值

23、影子

          影子的原理

          描述影子的信息

          产生影子信息

          绘画影子

24、绘画影子动画

          产生影子动画的信息

          绘画影子动画

          产生不同动画集之间切换时的影子动画信息

          绘画不同动画集之间切换时的影子动画

25、对象按照地形的变化移动

          计算对象在地形网格中的位置

          判断对象在地形网格中哪个三角形上

          计算对象当前位置的高度

          设置对象的位置高度

26、地形阴影

          地形阴影的原理

          受影响的邻接顶点的处理

          地形顶点的读取顺序

          计算阴影值

          设置阴影值到地形顶点

27、粒子系统(火焰)

          描述粒子信息

          分配粒子存储空间

          设定火焰粒子顶点的颜色

          设定火焰粒子的位置取值范围

          设定火焰粒子的位置

          绑定粒子的纹理

          设置混合功能

          绘画火焰粒子

          根据火把对象的位置绘画火焰

28、粒子系统(雨)

          分配粒子存储空间

          根据摄像机的位置设定位置取值范围

          设置粒子的起始位置

          设置粒子的移动速度

          设置粒子的颜色

          设置粒子的生命周期

          绑定粒子纹理

          设置混合功能

          绘画雨粒子

29、对象的排序

          比较各对象之间的距离

          调整对象在绘画列表中的位置

30、通过鼠标调整摄像机的位置

          初始化鼠标设备

          通过鼠标滚轮控制摄像机升高或下降

          设置摄像机的位置与观察点

          设置投影的角度

31、绘画天空

          绘画天空盒

          绘画闪电

32、绘画状态栏

          状态栏的结构

          绑定纹理

          设置纹理坐标

          绘画状态栏的各个部分

          绘画状态栏的背景

33、绘画状态栏图标与按钮

          绘画状态栏的图标

          实现按钮功能

          通过按钮控制角色技能是否启用

34、绘画状态栏中的角色模型

          绘画角色模型的动画

          绘画角色模型的背景

35、绘画缩略图(小地图)并显示角色位置

          定义缩略图的存储空间

          初始化缩略图信息

          绘画缩略图

          插入角色信息到缩略图存储空间中

          删除缩略图存储空间中角色信息

          绘画角色位置的缩略图

36、通过缩略图(小地图)快速定位

          通过缩略图定位的原理

          实现缩略图定位的方法

          设置摄像机的位置与观察点

37、3D音效

          了解3D音效的概念

          建立声音的主缓缓冲区

          建立倾听者

          建立声音的次缓冲区

          读取声音文件

          建立发声者

          设定发声者的位置

          播放声音

教程例子截图: