欢迎光临散文网 会员登陆 & 注册

CG仿真及3D特效编程教程(三)| 粒子特效系统

2023-08-17 15:30 作者:虹图AI开放平台  | 我要投稿

回顾

上一期分享中,给大家介绍了运动学基础及代码实现了正向运动学如何模拟实现,内容相信对大家来说有些枯燥乏味,但是这就是3D编程,复杂特效的基础,比如逆向运动学被广泛用在模型IK操作中,还是希望如果对这块感兴趣的开发者小伙伴能够有些帮助。

这一期讲会给大家讲述粒子系统,这一章会比较简单易懂,也没有非常复杂的内容。

粒子系统表示3D计算机图形学中模拟一些特定的现象的技术,而这些现象用其它传统的渲染技术难以实现真实感的物理运动规律。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等,甚至还有毛发。

粒子系统生命周期主要是从随机粒子构造器到粒子发射器,到渲染,更新再渲染,以此往复。

发射器会定义每个粒子的创建时间、销毁时间、初始位置、初始速度、初始颜色、初始透明度、初始大小等信息。

通过以下代码实现为发射器创建随机值:

到渲染显示的时候方法就很多了,从最简单的point,例如:

到Vertex Buffer Objects方式都可以进行display。

下面是不同绘制物体显示出的粒子:

接下来就给大家看下用代码生成的粒子系统的一些例子,本期就不做过多介绍内容,相关示例代码可以关注后留言。

点和轨迹形成的粒子系统:

100百万不同色彩的粒子系统,通过shader实现:

关于用shader其实就是使用的GPU资源,也就是所谓的基于GPU的粒子,对于大量的顶点或者变换还是GPU更节省资源,充分发挥GPU的性能,感兴趣的可以详细了解下。

本期最后给大家介绍下我们虹图美颜SDK、3D Avatar SDK已经在接口中加入了开发者自选CPU或GPU计算的功能,开发者能够更加贴合自己平台用户的硬件情况自适应性能,将极致精致、又流畅的效果呈现给用户。

在接下来的一章中,我们将介绍关于功能性动效(Functional Animation),物理碰撞(Collision Physics),碰撞检测(Collision Detection)等方面的内容,敬请期待~

CG仿真及3D特效编程教程(三)| 粒子特效系统的评论 (共 条)

分享到微博请遵守国家法律