首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

OpenGL进阶(6)-粒子系统

2013-01-04 
OpenGL进阶(六)-粒子系统一、提要有一款例子特效软件叫做particle illution,在影视后期和游戏制作领域都可

OpenGL进阶(六)-粒子系统
一、提要

       有一款例子特效软件叫做particle illution,在影视后期和游戏制作领域都可以用到,相信很多人都接触过,今天我们用SDL+OpenGL来实现例子效果。

确保你搞定了物理模拟的代码!

   代码下载

二、原理简介

     所谓的例子系统,就是同时控制一大堆类似的对象,这些对象可能是形体,可能是图片,有着不同的特征(寿命,速度,位置)。有了之前的基础,我们可以很轻易地搞定今天的东西。

三、代码清单

首先是粒子的头文件,我直接写成结构体了,里面有一些基本的属性。


效果还是不错的~下面我们来实现一些更棒的效果!


四、动态模糊和碰撞检测

动态模糊的实现比较简单,主循环不再每次把整个画面清空,而是每帧画一个半透明的黑色长方形,就可以模拟动态模糊(motion blur)的效果。

将之前的


效果还不错!

碰撞检测之前也实现过,在粒子系统里面加检测函数就Ok了.


OpenGL进阶(6)-粒子系统


五、交互发射

这个其实是opengl之外的东西了。我们要用的是SDL的获取鼠标信息函数:SDL_GetMouseState(&posX, &posY);

作用就是获取当前鼠标的位置。

接下来还要做的一件事是写坐标变换函数。因为opengl的坐标个SDL窗口的坐标并不是重合的,我们要将鼠标的当前坐标映射到OpenGL的坐标上去。




OpenGL进阶(6)-粒子系统


六、参考用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
nehe的opengl教程

热点排行