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

UE4 Simulation Stage 制作 平流

第一步:

先将Sprite Render里面将Source Mode还为Emitter

下面Bindings里面有Emitter的SpriteFacing和SpriteAlignment的变量,在左侧的Emitter Attributes里面创建该两个变量,最后在Emitter Spawn里面设置SpriteFacing和SpriteAlignment的初始值


创建5个需要的变量:

TS:TextureSample        主贴图

RT:RenderTarget        将RenderTarget的Size为256 * 256

Grid2D:Grid2D Collection        将Buffer的Format设置为半精度浮点数(精度越高细节越多,看项目需要,再将Num Cells X/Y设置为256

Noise:TextureSample        设置扰动图,将UV进行扰动

SpriteSize:Vector2D        整个贴图的显示大小

将本地空间打开(根据你的需求调整)

Simulation Stage需要GPU粒子,所以开启GPU粒子然后开启Fixed Bounds

最后打开Enable Simulation Stage的开关

将材质设置上去,材质编写在下面:

最主要是看这个FillRT的图片变量,然后我们又回到Niagara界面

这里面将材质放进去了,在Material Parameter Bindings里面点击“+”号,里面的Material Parameter Name里面就有材质里面的变量,这里面用Fill RT(材质里面的贴图变量)

然后将Niagara的RT变量传给材质,然后粒子输出具有材质的Sprite,就可以看到RT绘制的样子

这里有三个Simulation Stage的模块

点击Add Simulation Stage的“+”号就可以加上Simulation Stage的模块

Simulation Stage最大的优势就是能够多次效果迭代,模拟更丰富的效果

这里我们把Iteraction Source设置为Data Interface,迭代次数为1

Data Interface 设置为模块输出的变量就行,这里写为Grid2D

这里看第一个Cal RGBA模块

输入为Grid2D(Emitter),TS(Emitter),将Grid2D的索引转为UV,对TS按照Grid2D转化出的UV进行采样,每次把上一帧的RGBA进行淡化(乘以0.8),再加上本帧采样的贴图效果

再来看第二个模块

不过多解释这里的信息了

看Modify RGBA

首先看输入,Grid2D老样子Index转UV,用于采样Noise贴图,Age用于让扰动贴图进行平移

这里将扰动贴图采样的RG值(值范围在0~1),映射到-1到1,让扰动效果能在四周扰动

算出来的扰动值加上UV,对Cal RGBA模块计算出来的Grid2D中的RGBA变量进行采样,再重新赋值到RGBA中

这里的最后一个Drawing RT模块,是对RGBA绘制到RT上,最后RT给到上面说的材质中,进行显示,所以这里的Data Interface设置为RT

这里就比较简单了,就是将之前计算好的RGBA进行采样,然后设置到Render Target上,就可以进行效果展示了

http://www.xdnf.cn/news/8325.html

相关文章:

  • 开疆智能Profinet转RS485网关连接富士电机配置案例
  • 问题 | 撰写一份优秀的技术文档,既是科学也是艺术。
  • 模仿医学专家思维的Citrus:助力医疗决策支持
  • 自定义类型-联合体
  • 十进制转二进制
  • git@gitee.com: Permission denied (publickey). fatal: 无法读取远程仓库
  • N-gram语言模型原理与实战教程
  • sqli-labs第二十一/二十二关——POST-base64
  • STL 转 STP 深度技术指南:从 3D 打印模型到工程标准的跨领域转换全解析(附迪威模型在线方案)
  • 亚马逊选品可以从以下几个方面着手
  • 浙江大学python程序设计(陈春晖、翁恺、季江民)习题答案-第十章
  • 各种标准的简称和字母标识
  • 01-jenkins学习之旅-window-下载-安装-安装后设置向导
  • Android 串口-usb-serial-for-android
  • Spring Boot——自动配置
  • 如何给文件夹添加编号?批量给文件夹添加数字、字母、日期编号
  • 前端判空:与后端 “千层套路” 的斗智斗勇
  • highCharts生成3D饼图
  • 若依Ruoyi富文本编辑器Quill粘贴图片改成文件上传(不使用base64)
  • 【C/C++】深入解析Linux下C/C++内存管理全攻略(纲要)
  • 从0到1玩转TypeScript:开启类型世界的奇妙冒险
  • 基于 AMDXCVU13P FPGA 的 4 路 100G 光纤 PCIe 低时延高性能计算加速卡
  • MCP Server StreamableHTTP 开发学习文档
  • RT-Thread源码阅读(2)——任务启动与调度
  • ArkTs中的尾随闭包
  • 如何重新设置网络ip地址?全面解析多种方法
  • 第八天 搭建车辆状态监控平台(Docker+Kubernetes) OTA升级服务开发(差分升级、回滚机制)
  • eNSP防火墙实现GRE over IPSec
  • 文件操作和IO-3 文件内容的读写
  • 【Java高阶面经:数据库篇】16、分库分表主键:如何设计一个高性能唯一ID