Niagara内容示例 3.3 Visibility Tag

在这里插入图片描述

粒子效果

能看到有多种不同网格体的Mesh粒子,甚至还有Sprite粒子,他们拥有一定的速度和方向,并且会随着时间动态的变化。此外,在右侧那堆粒子中,每个粒子单位会在不同的Mesh以及Sprite上切换,即同一个粒子在不同时间会表现出不同的样子(可能是四面体,圆环,圆片,或是陀螺的样子),似乎是有一个切换按钮在不同的Renderer间进行切换。

Niagara蓝图部分

蓝图内包含两个发射器,分别对应左右两堆粒子。其差别主要是体现在决定可见性的逻辑上——左侧是在粒子出生阶段随机决定由哪种渲染器渲染,而右侧则是动态的改变粒子的渲染方式,让其呈现出样子会动态变动的效果。

在这里插入图片描述

效果实现分析

本例的核心在于另一个粒子的关键属性——VisibilityTag。默认情况下该值为0,而渲染器中Renderer Visibility也默认为0,则通常情况下这两者相等,即意味着它可见。但是当我们修改VisibilityTag时,则需要去找对应Renderer Visibility也为对应修改值的渲染器进行渲染,而原先这个Renderer Visibility = 0的渲染器就不可见了。

在这里插入图片描述

实现方面,随机粒子的初始朝向(Initial Mesh Orientation),并且随着时间方向发生改变(Update Mesh Orientation)。

在这里插入图片描述

在Particle Spawn阶段设定VisibilityTag,以在这个阶段就决定到底渲染哪一个Renderer。
在这里插入图片描述

最后就是力的解算(阻力Drag,卷曲噪声力Curl Noise Force),还有大小的缩放(使用了Curve工具)。

在这里插入图片描述

右侧那堆粒子的主要不同就是VisibityTag的设置的时机和方式。它是在Particle Update(意味着每帧执行)去设置,意味着每帧都可能是不同的值。这里采用了乘法的方式:NormalizedAge取值在0到1内,乘以4则是将取值范围扩大到0到4,toInt函数会将数字的小数部分舍去,保留个位上的数字,这样就可以通过粒子的生命周期来取得整数取与Renderer Visibility去比较。
t o I n t ( P a r t i c l e s . N o r m a l i z e d A g e ∗ 4 ) toInt(Particles.NormalizedAge*4) toInt(Particles.NormalizedAge4)
在这里插入图片描述

总结

认识到了一个新的属性参数VisibilityTag,及其所能达到的效果。其实就跟基础的Position(绑定位置数据),Color(绑定颜色数据)等一样,VisibilityTag就可以理解为一个粒子绑定其渲染的数据。当我们理解了属性这一个核心概念,所有的这些属性参数就可以举一反三,我们继续去积累的意义就是可以使用的更加顺手,同时也反过来不断加深我们对于“属性”的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Claude的羽毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值