全部内容
UE4 流体模拟NiagaraFluidSimulation
最近研究了一下niagara的流体模拟,能够在空场景,显卡2080s下达到120帧,再优化优化是足以应用到项目实际中的,实现理论主要是基于 Asher的UOD分享 ,GCStudio的技术分享 ,GitHub的流体模拟 本文章是对于这些文章结合起来并实现之后,在具体实现细节和与遇到的问题上的记录和补充,如果有任何问题和更好的办法欢迎评论区留言。虚幻ue5有一个NiagaraFluid插件,里面也有很多实现思路可供参考。实现效果如下: [图片] - 核心理念就是将世…
虚幻引擎图文笔记:使用Niagara的CPU模拟实现可碰撞的Mesh粒子
本人是Niagara的初学者,这个视频主要参考了UnrealSimon的教程 ,各位有更好的方案敬请告知ヾ(•ω•`)o演示视频 [视频: 使用Niagara的CPU模拟实现可碰撞] 关键模块SpawnRateCollisionGravity ForceSolve Rotational Forces and Velocity和 Solve Forces and VelocityMesh Renderer自定义模块:Slowdown[可选]Add Velocity in Cone [图片] 模块设置Emitter SettingsSim Target设为:CPUSim(CPU模拟) [图片] Spawn RateSpawn Rate [图片] Collision根据需要设定弹性系数和摩擦系数 [图片] …
粒子系统设计随想
首先是关于粒子系统的概念,维基百科上是这么描述的: 粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的游戏图形。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。 除过影视行业,CG 特效在游戏领域中也有着广泛的应用,往往用于强化视觉、动作张力的表现,或是丰富一些细节处理…
小小菜鸡的UE踩坑笔记4
最近在看Niagara,Niagara里面有个东西叫"Data Interface",俺对他的理解就是一个可以提供很多方法的类www。 然后实际上,我们也可以写自己的Data Interface,官方有个示例代码(是个插件),写得蛮清楚的 [图片] 本菜鸡看了这个示例代码,对其中一些接口的理解如下: [图片] 照着写(其实是魔改了另外一个功能不完善的Data Interface),也踩了一些坑: 1、Shader路径VirtualFilePath设置错误导致编译Shader的时候引擎崩溃: [图片] 这个是官方的注释。其…
UE5_Niagara Fluids 烟雾与动态物体实现碰撞
1.打开插件 [图片] 2.从模板里新建Niagara System [图片] 3.选择一个3D的烟雾 [图片] 4.设置无限循环方便后面测试 [图片] 5.实现动态物体的碰撞需要勾选以下选项,官网教程中没有提及 [图片] 6.把特效放入场景中,选中粒子系统,在细节面板中添加物理资产和场景中的动画Actor。这样动画角色就可以与烟雾交互了。 [图片] 7.把边界放大,更好的查看效果 [图片] 8.现在可以试试效果 [视频]
UE4 Niagara基础知识点学习总结(一)
抽空整理下自己以前的学习笔记 欢迎大佬批评指正。 目录1 .Niagara系统常识2.发射器常用参数 3.粒子光照效果 一、Niagara系统1.奶瓜系统 可以由一个或多个发射器组成,发射器不能单独拖入场景中; 2.可根据当前已创建的发射器右键创建奶瓜系统; 3.创建新的系统可以把已经做好的发射器扔进来,但要拖入时间轴才会有效 [图片] [图片] 4.在系统里更改发射器参数,外部发射器也不会受到影响;但在外部发射器中单独修改参数则会影响系统内的发射器…
UE5 Niagara虚拟机VectorVM源码探
Niagara作为Unreal Engine的新一代粒子系统,其中一项最为强大的特性就在于它的可编程性,彻底解放了美术对程序的角色依赖,可以完全按照自己的想法来制作特效。Niagara拥有两套Simulation模式:基于CPU模拟和基于GPU模拟。然而在使用者看来,上层表现几乎是完全一致的,并且支持Graph的形式来作为编程范式。 窥探其相关源代码,发现Niagara可以将Graph高效地转换为对应的op指令,其解释过程就涉及到了其自身实现的虚拟机: Vect…
Advect Grid 2D Collection(1)
吧啦吧啦:学习过程正好记录一下,niagara早已不是入门水平了(嘚瑟一下),写这个完全旨在丰富知乎文章数量。(写文章记录比单纯理解慢多了,不过记忆倒是会深刻点) 文章摘要:写的是UE5内容示例下的:NiagaraAdvanced关卡的1.2 Advect Grid 2D Collection的理解 有三个例子的:EmitterLevelSpriteRender;FillGridWithColor;FillGridWithPattern(后两个发隔壁) 文章正文:NiagaraSystem系统属性对于NiagaraSystem的设置为I…
UE4 Niagara粒子贴花实现
对于特效教程中材质表现错误的一些改进。 基本实现思路:利用半透明Cube重构Cube内的世界坐标,以世界坐标为UV进行贴图的采样。 重建世界坐标主要实现计算方法 worldPosition = cameraPositon + CameraVector * sceneDepthUE4材质连线,WorldPosition减去 cameraPosition获取指向当前像素的方向。 [图片] Pixel Depth返回的当前像素与摄像机平面的深度值,并非当前像素与摄像机的直接距离。根据相似三角形,获取Pixel Depth与Scene Dep…