Niagara_Advanced内容示例 1.2 Advect Grid 2D Collection

在这里插入图片描述

粒子效果

这个例子主要由三部分组成:上边悬于空中、始终面向相机的Unreal Engine 4的黑白Logo,它还会受到某种噪声的影响向四周扭曲;地面上贴着的两张纹理图片,左侧类似于一张迷宫图,但是斜着的线条会动态的改变位置,右侧是一张颜色流动的纹理,上面各种颜色呈现出液体的性质,在互相扩散和浸染。

Niagara蓝图部分

本例的蓝图包含三个粒子发射器Emitter,对应我们看到的三张效果纹理图。从发射器内的结构来看,跟前面一个章节没有太大的差别,主要是多了一些Simulation Stage。

此外这里需要强调一个概念——Grid2D Collection。它是什么呢?文档里说明它是一段缓冲区数组,用来作属性的“缓冲”。怎么理解?其实可以对照前面遇到的Render Target 2D,Render Target 2D可以认为是一个2维的数组,数组内存着的是一个又一个对应位置的颜色数据。Grid2D Collection是它的超集,即Grid2D Collection也是这样一个数组,其内存着的可以是颜色数据,也可以是其他乱起八糟的其他类型数据,这些数据可以供你把玩、蹂躏(模拟,变换等),但是如果希望输出(显示),还是得借助Render Target(所以才说Grid2D Collection是数据的缓冲区)。

在这里插入图片描述

效果实现分析

三个纹理效果,其中一些中间计算都相对来说比较复杂,我这里会拆解第一个,后面两个其实都是殊途同归的,类比就好。

Unreal Engine 4 logo 效果分析

先来看我们的新成员——Grid2D Collection。这里对其主要属性进行了定义,如数据格式,横纵的cell数等。

在这里插入图片描述

来到Simulation Stage,根据其命名,可以大致知道其所承担的工作:Fill Grid with Texture,将Texture拿到的数据存到Grid2D Collection里;Advect Grid,对Grid里的数据做一些运算从而获得流动的效果;Fill Render Target with Grid,将Grid2D Collection里的数据流入Render Target里以最终显示出来。下面我们来一个一个看看这些Scratch Module里面具体是怎么实现的。

在这里插入图片描述

Fill Grid with Texture,蓝图看着相当得吓人,原因其实是做了一些额外的操作,除了将数据写入Grid2D中的属性(RGBA)上外,还做了灰度处理(颜色从原先的橘黄色处理成了灰色,主要是在灰色的方框内,对RGB值进行了一些数值运算)和噪点的渐入渐出(引入随机性,同时利用这里的随机性去作为蒙版的参数,即插值的Alpha值)。

这里的STACKCONTEXT命名空间下的RGBA即是Grid2D Collection的属性(即数组中的变量)(因为Grid2D Collection是这个stage的数据接口Data Interface),创建的方法是在Scratch Pad里创建变量(如Vector 4类型的变量),并修改命名空间到STACKCONTEXT。

在这里插入图片描述

我自作聪明,把所有额外效果都去掉:整个世界清净了~

在这里插入图片描述

在这里插入图片描述

值得讨论的节点——Execution Index to Unit。Grid2D Collection数组里具体某一个变量的位置可以用X Index和Y Index来描述,to Unit的操作就是将两个值归一化(处理到0-1的范围内),这样就可以用作UV去纹理里相应位置去采样。

在这里插入图片描述

Advect Grid。这里就不进入Scratch Pad细讲了,其中涉及到的计算和本例传达的精神没有太大关系,更多是数学上的处理。只要理解其效果,即利用Curl Noise来在纹理上产生类似水纹的波动,就好了。

在这里插入图片描述

Fill Render Target with Grid,相比于从之前从Texture上采样,这里只需要Index对应Index得去取值赋值就好了。

在这里插入图片描述

总结

第一次偷懒了,不过不要紧,关于后面两个纹理的中间计算过程以及Curl Noise的引入应用过程,我会找时间补充到本文中。

从效果上来看,本例已经有了一些2D流体模拟的雏形,当然其应用不止与此,现在最大的体会是前面1系列这几个粒子,都值得多次拿出来品味。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 《niagara_4_developercourse_labexercises.pdf》是一份关于Niagara 4开发者课程实验练习的PDF文件。Niagara 4是特尔斯控制系统公司开发的一款用于建筑自动化的软件平台,旨在提供集成管理各种设备和技术的解决方案。这份文件可能包含了一系列实验练习,旨在帮助学习者掌握Niagara 4的开发和配置技巧。 这些实验练习可能涉及不同的主题,包括系统架构、设备配置、图形界面设计、数据收集与分析等。学习者可能需要按照指导进行一系列的实验任务,通过实践来熟悉Niagara 4的各项功能和工具。这些实验练习可以帮助学习者了解如何使用Niagara 4平台来创建自定义的控制策略、设置定时任务、监视和控制设备,以及收集和分析数据等。 通过完成这些实验练习,学习者可以获得对Niagara 4开发和配置过程的实际经验,并加深对系统的理解。这份文件可能包含了实验指南、示例代码、实验结果分析等各种信息,以便学习者能够按照指导顺利完成实验任务。 总之,《niagara_4_developercourse_labexercises.pdf》是一份提供Niagara 4开发者课程实验练习的文件,通过完成其中的实验任务,学习者可以提高他们在Niagara 4平台上开发和配置的能力。 ### 回答2: niagara_4_developercourse_labexercises.pdf 是一份开发者课程实验练习的文档。 这份文档主要是针对Niagara 4开发者课程中的实验练习而编写的。Niagara 4是一种基于Tridium公司的框架和平台,用于建立和管理建筑自动化系统。开发者课程旨在帮助开发人员深入了解Niagara 4的功能和特性,并提供实践的机会来掌握其开发技术。 在这份文档中,会列出一系列的实验练习,帮助开发者逐步学习和实践Niagara 4的开发过程。每个实验练习都会有详细的步骤和指导,包括设置环境、创建项目、编写代码等等。开发者需要按照文档的指示一步步地完成每个实验,同时还需要理解实验的目的和背景。 这份文档的目的是帮助开发者通过实践加深对Niagara 4的理解和掌握。通过每个实验的完成,开发者可以逐步提升其在Niagara 4开发方面的技能。实验的内容涵盖了不同的主题和技术,包括系统建模、设备接入、数据处理等等。 总之,niagara_4_developercourse_labexercises.pdf 是一份Niagara 4开发者课程的实验练习文档,通过实践完成每个实验,开发者可以逐步提升其在Niagara 4开发方面的能力和技术。 ### 回答3: "niagara_4_developercourse_labexercises.pdf" 是一个文件名,可能是一个包含关于 Niagara 4 开发者课程实验练习的 PDF 文件。 在这个文件中可能包含了一些与 Niagara 4 开发相关的实验练习,供开发人员使用。该 PDF 可能包含了一些说明、指导或教程,以帮助开发人员学习和实践 Niagara 4 系统的开发技术。这些实验练习可能涉及到创建和配置 Niagara 4 网络、开发自定义应用程序、编写 Niagara 4 控制程序等。 对于想要学习并使用 Niagara 4 技术的开发人员来说,这个文件应该是一个很有用的资源。通过完成其中的实验练习,开发人员可以加深对 Niagara 4 系统的理解,掌握相关的开发技能,并在实际项目中应用这些技能。 需要注意的是,为了更好地利用这个文件,开发人员可能需要先了解基本的 Niagara 4 系统知识和开发概念。此外,建议开发人员按照文件中的顺序逐个完成实验练习,以获得更好的学习效果。 总而言之,“niagara_4_developercourse_labexercises.pdf” 是一个帮助开发人员学习 Niagara 4 系统开发技术的实验练习文件,对于想要学习并应用 Niagara 4 的开发人员来说是一份有价值的资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Claude的羽毛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值