UE4_Niagara基础实例—13、通过纹理采样来创造粒子

news2024/11/5 17:25:40

效果:

知识点:

1、纹理采样目前仅支持GPU粒子运行(Texture sampling is only supported on the GPU at the moment.)

2、网格位置输出每个粒子在网格中的归一化位置。我们使用该值来采样纹理,就像它是UV一样(The Grid Location outputs a normalized location of each particle in the grid. We use that value to sample the texture as if it were a UV.)

Output.GridLocation.Normalized Array location 

3、杀死粒子模块的作用形式为“拒绝采样”。我们对纹理进行采样,然后在采样纹理的alpha值等于0的情况下新生成的粒子的第一帧将它们杀死。 (The Kill Particles module acts as a form of "Rejection Sampling". We sample the texture and then kill the newly spawned particles on their first frame if the sampled texture alpha equals 0. )

4、因为在发射器属性中没有勾选插值生成,新生成的粒子在出生的这一帧不会同时运行生成和更新脚本这使得这种技术非常节省资源。(Because Interpolated Spawn is unchecked in the emitter properties, newly spawned particles do not run both their spawn and update scripts on the frame they were born, making this technique quite inexpensive. )

操作步骤:

1、在Simple Sprite Burst发射器模版的基础上创建粒子系统。

2、修改发射器属性中的模拟目标为GPU计算模拟,同时勾选固定边界。

3、在发射器更新模块添加在网格上出生粒子。

修复问题,如下:

你会发现多了Grid Location模块。

4、把Spawn Burst Instantaneous模块删掉,修改出生粒子的数量。

修改粒子的大小

5、为了能够看到效果,我们需要对Grid Location和Initialize Particle 交换位置。

6、在粒子生成部分添加sample Texture,并设置其参数。

并设置采样的uv坐标来自于网格体粒子的规格化位置中某一个坐标。

7、把颜色中alpha为0的粒子消灭掉。

添加Kill Particles模块后,发现参数Kill Particles为布尔值,要么杀死要么不杀死,所以我们需要一个通过比较而得到的布尔值(Set Bool by Float Comparision)。

用线性颜色的alpha与0相比较(Make Float from Linear Color),当与0相等时,则为真需要杀死粒子。

线性颜色为Sample texture SampledColor

拓展提高:

1、可以使粒子的颜色为采样纹理的颜色。

2、可以加扰乱力和点吸引力,让后面动起来。

一开始没有扰乱力,逐渐加大。

一开始没有点吸引力,先排斥向外后向里面吸引。

3、还可以加入颜色和不透明度的变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多个锚点定位时的锚点优选方法(附公式和python代码讲解)

以下是将上述 MATLAB 代码转化为 Python 代码的版本。我们使用 NumPy 库进行数值计算,并使用 itertools 库生成锚点组合。 1. 基于几何分布的选择 锚点的几何分布影响定位的可辨识性。选择位置均匀分布的锚点组合可以提高定位精度。具体来说,锚点之间的…

HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构

文章目录 什么是 HTML ?HTML 的构成 ?什么是 HTML 元素?HTML 元素的组成部分HTML 元素的特点 HTML 基本文档结构如何打开新建的 HTML 文件代码查看 什么是 HTML ? HTML(超文本标记语言,HyperText Markup L…

web安全测试渗透案例知识点总结(上)——小白入狱

目录 一、Web安全渗透测试概念详解1. Web安全与渗透测试2. Web安全的主要攻击面与漏洞类型3. 渗透测试的基本流程 二、知识点详细总结1. 常见Web漏洞分析2. 渗透测试常用工具及其功能 三、具体案例教程案例1:SQL注入漏洞利用教程案例2:跨站脚本&#xff…

基于Qt的独立线程创建与多线程执行实验Demo

一、多线程与线程池的应用目的[1][4] (一)多线程 一个进程内多个线程并发执行的情况就叫多线程,每一个线程是一个独立的执行流。多线程是一种编程模型,它与处理器无关,与设计机制有关。 需要多线程的原因包括&#xf…

基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 这里实现的是256*256双线性插值到512*512的系统模块 局部放大: 将数据导入到matlab,得到插值效果…

Spring1(初始Spring 解耦实现 SpringIOC SpringDI Spring常见面试题)

Spring1 创建项目集成maven创建一个Maven项目实现: 初识SpringSpring简介Spring的发展历史Spring之父体系结构生态系统官方文档解耦实现JDBCSpringBoot整合MyBatis和lombok,开启驼峰映射三层思想 SpringIOC实现 SpringDIset注入全部代码:实现…

纯享受 : 力扣:234 回文链表

BLG牛逼 – 奖励自己一道题 描述: 给你一个单链表的头节点 head ,请你判断该链表是否为 回文链表 。如果是,返回 true ;否则,返回 false 。 示例: 何解? 1、所谓 回文 就是正读反读都一样&…

开源项目-投票管理系统

哈喽,大家好,今天主要给大家带来一个开源项目-投票管理系统 投票管理系统主要有首页,发起投票,管理投票,参与投票,查看投票等功能 首页 为用户提供了一键导航到各个功能模块的便捷途径。 新增投票 用户可以在此轻松创建新的投票活动,设置投票主题、选项等信息。 管理…

系统架构图设计(行业领域架构)

物联网 感知层:主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息,并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理,为上层提供数据基础网络层:网络层负责处理和传输…

APP获取用户的三大法则

APP内容,提升APP吸引力和用户留存率 A. 用户研究深化 1. **深入用户行为分析**: - 用户使用路径分析 - 用户行为模式识别 - 用户流失点分析 2. **定性研究与定量研究结合**: - 进行深度访谈和焦点小组讨论 - 利用数据分析用…

QT——串口调试助手

目录 1.QSerialPort类包含了很多有关串口的API 2.实现串口的打开 2.1 方法一:通过函数实现 2.2 方法二:在ui界面右下角实现 3. 实现定时发送 3.1类的私有成员中添加定时器QTimer timer并去构造函数中初始化它 3.2帮助文档中有QTimer类相关的说明 …

全自动一键批量创建站群网站插件 | Z-BlogPHP 堆词起站工具

在当今竞争激烈的数字营销世界,如何快速提升网站曝光率和流量?答案就是智能站群系统。 本文将结合实际效果,介绍一款功能强大的站群系统,重点讲述其堆词功能、泛目录管理、一键批量创建、内容转码、自定义标签和GPT内容生成与发布…

计算机毕业设计Spark+大模型知识图谱中药推荐系统 中药数据分析可视化大屏 中药爬虫 机器学习 中药预测系统 中药情感分析 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Linux云计算 |【第五阶段】CLOUD-DAY7

主要内容: 在kubernetes平台上理解掌握各种控制器的用法:掌握kubectl管理命令、掌握POD原理、掌握集群调度的规则、熟悉控制器资源文件; 一、kubectl 常用命令 Kubectl是用于控制Kubernetes集群的命令行工具; - 格式&#xff1…

json-server的使用(根据json数据一键生成接口)

一.使用目的 在前端开发初期,后端 API 可能还未完成,json-server 可以快速创建模拟的 RESTful API,帮助前端开发者进行开发和测试。 二.安装 npm install json-server //局部安装npm i json-server -g //全局安装 三.使用教程 1.准备一…

在VS中安装chatGPT

2、在VSCode中打开插件窗口 3、输入ChatGPT 4、这里有个ChatGPT中文版,就它了 5、安装 6、这时候侧边栏多了一个chatGPT分页图标,点击它 7、打个招呼 8、好像不行 9、看一下细节描述 10、根据要求按下按下快捷键 Ctrl Shift P 11、切换成国内模式 12、…

# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十九)--mysql数据库基本操作

linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十九)–mysql数据库基本操作 一、MySQL的基本操作(1)(难点) 1、名词介绍 以Excel文件举例: 数据库&#xff1a…

冒泡排序,快速排序讲义

冒泡排序 基本原理:对存放原始数据的数组,按从前往后的方向进行多次扫描,每次扫描称为一趟。当发现相邻的两个数据次序和排序要求的大小次序不符合的时候,即将这两个数据进行互换。如果从小到大排序,这时,…

智能语音助手:开启智能交互的新时代

随着人工智能和自然语言处理技术的进步,智能语音助手已经逐渐成为日常生活中的一部分。无论是手机上的虚拟助手、智能音箱,还是车载导航和智能家居控制系统,智能语音助手的应用越来越广泛,为用户提供了高效便捷的交互体验。通过语…

vue data变量之间相互赋值或进行数据联动

摘要: 使用vue时开发会用到data中是数据是相互驱动,经常会想到watch,computed,总结一下! 直接赋值: 在 data 函数中定义的变量可以直接在方法中进行赋值。 export default {data() {return {a: 1,b: 2};},methods: {u…