当前位置: 首页 > article >正文

UE4_Niagara基础实例—13、通过纹理采样来创造粒子

效果:

知识点:

1、纹理采样目前仅支持GPU粒子运行(Texture sampling is only supported on the GPU at the moment.)

2、网格位置输出每个粒子在网格中的归一化位置。我们使用该值来采样纹理,就像它是UV一样(The Grid Location outputs a normalized location of each particle in the grid. We use that value to sample the texture as if it were a UV.)

Output.GridLocation.Normalized Array location 

3、杀死粒子模块的作用形式为“拒绝采样”。我们对纹理进行采样,然后在采样纹理的alpha值等于0的情况下新生成的粒子的第一帧将它们杀死。 (The Kill Particles module acts as a form of "Rejection Sampling". We sample the texture and then kill the newly spawned particles on their first frame if the sampled texture alpha equals 0. )

4、因为在发射器属性中没有勾选插值生成,新生成的粒子在出生的这一帧不会同时运行生成和更新脚本这使得这种技术非常节省资源。(Because Interpolated Spawn is unchecked in the emitter properties, newly spawned particles do not run both their spawn and update scripts on the frame they were born, making this technique quite inexpensive. )

操作步骤:

1、在Simple Sprite Burst发射器模版的基础上创建粒子系统。

2、修改发射器属性中的模拟目标为GPU计算模拟,同时勾选固定边界。

3、在发射器更新模块添加在网格上出生粒子。

修复问题,如下:

你会发现多了Grid Location模块。

4、把Spawn Burst Instantaneous模块删掉,修改出生粒子的数量。

修改粒子的大小

5、为了能够看到效果,我们需要对Grid Location和Initialize Particle 交换位置。

6、在粒子生成部分添加sample Texture,并设置其参数。

并设置采样的uv坐标来自于网格体粒子的规格化位置中某一个坐标。

7、把颜色中alpha为0的粒子消灭掉。

添加Kill Particles模块后,发现参数Kill Particles为布尔值,要么杀死要么不杀死,所以我们需要一个通过比较而得到的布尔值(Set Bool by Float Comparision)。

用线性颜色的alpha与0相比较(Make Float from Linear Color),当与0相等时,则为真需要杀死粒子。

线性颜色为Sample texture SampledColor

拓展提高:

1、可以使粒子的颜色为采样纹理的颜色。

2、可以加扰乱力和点吸引力,让后面动起来。

一开始没有扰乱力,逐渐加大。

一开始没有点吸引力,先排斥向外后向里面吸引。

3、还可以加入颜色和不透明度的变化。


http://www.kler.cn/a/377153.html

相关文章:

  • Speaker Recognition说话人识别(声纹识别)
  • react18中redux-saga实战系统登录功能及阻塞与非阻塞的性能优化
  • 专利生成穿刺demo
  • Type-C PD诱骗取电快充协议芯片 支持PD 5V、9V、12V、15V、20V电压
  • 反常积分的敛散性判别
  • VBA在低版本Excel中创建unique函数的方法
  • Elasticsearch中的常用操作
  • Redis全系列学习基础篇之位图(bitmap)常用命令的解析
  • java8 list map 聚合求和
  • 线性代数求特征值和特征向量的技巧
  • 深基坑结构施工安全在自动化监测不知道怎么布设测点?不知道用什么设备?
  • 论分布式架构设计及其实现
  • CSRF与SSRF
  • DPDK event 驱动开发
  • 本周我都做了啥?(10.25-11.1)
  • 【css】CSS 文本溢出显示省略号
  • 【STM32】INA3221三通道电压电流采集模块,HAL库
  • Linux-计算机网络-探索epoll是同步阻塞的还是异步非阻塞的
  • 将一个文件夹存放到 GitHub 已有仓库
  • 在网卡属性里面更改IP地址后的IP和用ipconfig输出的IP不一致