Skip to content

w040150594/ParticleSystem

Repository files navigation

程序功能

  1. 完成了以下效果:
  • 星星喷泉
  • 萤火虫
  • 火束
  • 雨水
  • 烟花

image.png

  1. 通过鼠标拖动或者键盘输入交互修改属性
  • 按M键进入全屏模式
  • 点击不同类型的粒子效果显示不同的效果
  • 修改每秒生成粒子的数量
  • 修改粒子死亡时间
  • 修改发射器死亡时间

image.png

核心算法原理

创建粒子

  • 通过判断粒子的配置属性(位置,速度,颜色等等),初始化对应生成粒子初始属性
  • 判断粒子运动的类型,有立方体(x,y,z)变化和球体坐标变化两种,根据这两个不同的类型生成对应的初始化属性
  • 调用随机函数生成对应属性的随机初始值

image.png

渲染粒子

  • 循环遍历全部的粒子并渲染出来

image.png

更新粒子

  • 遍历粒子,如果粒子还存活就更新粒子的各种属性

image.png

  • 其中某些属性例如颜色、大小等要重新更新计算插值生成对应新的值
    • 核心算法为缓动插值函数
      • times保存时间关键帧,values保存对应的值
      • 找到时间数组中第一个大于t的值,为0返回第一个值,为数组最后一个
      • 计算出插值比例p
      • 重新计算插值(采用线性插值)
        • image.png

image.png

  • 如果粒子年龄大于死亡年龄,则设置粒子死亡并添加到回收索引数组里

image.png

  • 如果发射器年龄大于死亡年龄,则直接设置发射器死亡,截止更新粒子
  • 遍历回收索引数组,重新创建粒子,保持死亡粒子和生成粒子数一致,使效果得以连贯

image.png

实验结果与分析

结果

  • 星星喷泉

image.png

  • 萤火虫

image.png

  • 火束

image.png

  • 雨水

image.png

image.png

  • 烟花

image.png

  • 修改粒子数量举例

image.png

分析

通过创建不同类型的粒子,设置不同粒子系统的属性模拟实现了不同的粒子粒子的效果,通过设置缓动函数的插值计算,实现粒子的大小、颜色、透明度等随时间的变化的平缓的变化视觉效果更好,同时设置合理的速度、加速度,粒子本身的角速度等通过物理公式的计算让粒子移动变得更加现实感。

感想与思政

通过一学期图形学的学习,我认为图形学不仅仅是用于实现美丽的视觉效果,更是可以用来传达思想、价值观和文化内涵。
首先,图形学可以用来呈现我们国家的文化遗产,比如数字化的博物馆、数字化的艺术品和数字化的历史文化遗迹。这些数字化的作品不仅可以让更多的人了解和欣赏它们,还可以保护它们,让它们得以流传下去。
其次,图形学可以用来呈现我们国家的价值观和思想。比如,可以使用图形学来制作宣传片、广告和教育软件,来传达正能量和积极的思想。同时,图形学也可以用来制作游戏,游戏中的故事情节、角色塑造和游戏玩法都可以传达一定的价值观和思想。
最后,图形学还可以用来解决一些社会问题。比如,可以使用图形学来模拟城市交通,优化交通流量,减少交通拥堵和污染。又比如,可以使用图形学来模拟天气预报,提高天气预报的准确性,减少自然灾害造成的损失。
但是我国底层的图形学渲染引擎和gpu硬件相对于西方国家还有一定的差距,自研自足还不够,因此需要我们认清现实,专心专研,相信总有一天我们也能实现自足,领先世界,不受制于人。

About

粒子系统-图形学课程

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors