Sheeep Blog

随笔记录,佛系更新

0%

UE4中对于Niagara在进行进一步的完善,在4.26推出了Simulation Stage支持了更高级的应用,在官方示例中利用渲染阶段创建了许多高级的用例,例如PBD,Boid鸟群,与环境的交互等,还有很多大佬利用Niagara模拟流体等效果。

这次主要是通过官方示例中的Niagra_Advanced关卡中的Boid鸟群更好的了解使用流程

Simulation Stage

模拟阶段是一种迭代粒子、渲染目标纹素或网格集合的网格单元的实验方法。

这解锁了编写迭代约束、基于网格的求解器、将属性传入和传出网格以及直接输出这些属性以渲染目标以在材质中渲染的能力。

添加渲染阶段,渲染阶段的主要属性,是说明这个阶段需要针对哪个对象,进行几次迭代。

可选的对象有粒子、RenderTarget、Grid2D,对于RenderTarget则针对每一个纹素进行处理,对于Grid2D则针对每一个网格点。

相当于是在粒子的执行栈中依次加入的执行阶段,每个粒子在Update的过程中全部执行一个阶段之后才会执行下一个Simulation Stage。每个阶段之间的数据传输除了依靠Attribute Reader之外,最主要的就是依靠数据结构Grid2D,Neighbor Grid3D等。

模拟阶段开启:
将Emitter设置为GPU渲染,并打开显示高级属性(右上角的小眼睛),便能够打开渲染阶段。
Open Simulation Stage

阅读全文 »

在Niagara中实现LOD效果

主要借助Niagara中的VisibilityTag参数实现的

基本思路:获取摄像机到粒子的距离,判断是几级LOD,赋值VisibilityTag

阅读全文 »

UE4自定义泛型蓝图节点

起因是在存取数据表的时候,希望蓝图节点的输入能够普适所有的结构体(只要继承自FTableRowBase)就可以,所以就去查找了相关的实现方法。

关键词: UE4, Wildcard, customThunk, Generic

想实现的效果就是类似GetDataTableRow的输出节点

Get DataTable Row

UE4的蓝图和C++都是静态类型的编程语言,因此想要蓝图节点支持任意类型的参数要么使用基类指针作为参数然后在具体实现时Cast,根据反射信息具体处理;要么使用Wildcard(通配符)实现。

阅读全文 »

链表结点结构

1
2
3
4
5
6
struct Node
{
int data;
Node *next;
};
typedef struct Node Node;
阅读全文 »

零碎知识点

1. new、delete、malloc、free

:smile:

new 和 delete对应,是C++语言的标准库函数

malloc和free对应,是C++的运算符

它们都可用于申请动态内存和释放内存,区别在对非内部数据类型的对象而言,malloc和free无法满足动态对象的要求(因为对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数)

2. delete和delete[] 的区别

delete只会调用一次析构函数

但是delete[]会调用每一个成员的析构函数

阅读全文 »

这是对于论文《A review on crowd simulation and modeling》的阅读笔记

常用词汇 含义
lane formation 车道形成
vortex formation 涡流形成
congestion 拥塞
trajectory 轨迹、弹道

人群模拟的主要方法可以分为:

  1. 微观模型 Microscopic
  2. 宏观模型 Macroscopic
  3. 细观模型 Mesoscopic
阅读全文 »

使用的工具

Hexo + Github

需要下载:

  1. npm
  2. Git

操作步骤

首先要有一个GitHub账号,建立一个Repository,名称为

1
yourname.github.io

这样博客的网站就是http://YourName.github.io

阅读全文 »