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

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第七篇-体积纹理绘制】

在这里插入图片描述
我们前几篇已经完成了渲染部分,现在终于开始做动态绘制功能了

之前使用的是这样一个体积雾的切片图,那么现在要做的就是动态编辑它
在这里插入图片描述
首先,让我们简单了解一下它是如何运作的:
开始绘制画布以渲染目标,并将材质绘制到画布上。
在这里插入图片描述
我们先不考虑其他参数,首先关注所需的资源。
左侧:纹理目标,即画板。
右侧:需要一个材质,它充当笔刷。
显而易见,这个过程就是将笔刷的内容绘制到画板上。而这个“纹理目标”最终会被用作体积纹理的切片。

关键问题在于,如何在2D纹理目标上绘制出3D切片呢?之间如何转换?

我们开始一步步制作吧。

新建纹理目标

首先,我们创建一个渲染目标

新建一个渲染目标RT_VolTexture
在这里插入图片描述

调整细节

设置尺寸和目标格式
因为是三维的信息量,所以可以比二维图相对大一些
渲染目标选了单通道16位,其实我觉得8位也够
在这里插入图片描述

顺便把材质中的图替换为它
在这里插入图片描述

制作画笔

UVtoVol

新建材质函数 UVtoVol ,用来将UV转为体积
在这里插入图片描述

新建两个变量
在这里插入图片描述

将结果相乘,可以看到框内为0-1
在这里插入图片描述

使用Frac取小数部分,就得到了12个0-1循环的小UV
在这里插入图片描述

还需要给每个小UV一个编号,放在Z通道
在这里插入图片描述

使用Floor取整
在这里插入图片描述

将他除12,可以看到是这样的
在这里插入图片描述

要用它组成ID
在这里插入图片描述

将结果除以总数,可以看到从左上角的0开始,每一格都是一个ID
在这里插入图片描述

RG就相当于体积的XY平面,而ID则相当于Z轴。因此,你只需将结果放入Z通道即可。在这里插入图片描述

别忘了,我们需要这个体积的轴心位于中心位置。
对结果-0.5 *2 。完整如下:
在这里插入图片描述

M_VolPaint

新建材质M_VolPaint
在这里插入图片描述
它负责把内容绘制到RT贴图,因此改为无关照
在这里插入图片描述

他作为一个画笔,当然也得是三维的。那么我们做一个最简单的球形画笔

放入刚制作好的函数
在这里插入图片描述

因为已经把轴居中了,因此直接使用Length(同计算distance0),就得到了一个点距离场切片
在这里插入图片描述
在这里插入图片描述

有些跳跃不理解?
在这里插入图片描述
以它为例,其意思就是每个像素的XY,距离0,0有多远
在这里插入图片描述
因为我们已经居中了,实际就是这样
在这里插入图片描述
Distance就是AB两点的距离公式,如果其中一点为0,就可以用Length长度代替

增加变量Radius,控制其半径
在这里插入图片描述

除以Radius半径,规格化到0-1,并使用Saturate(等同于Clamp0-1),丢弃小于0大于1的值
在这里插入图片描述

在增加一个Density控制笔刷浓度/密度,一个简单的球形画笔就做好了。在这里插入图片描述

制作绘制蓝图

新建蓝图

新建蓝图 BP_VolPainter
在这里插入图片描述

新建函数Paint Sphere
在这里插入图片描述
在这里插入图片描述
新建变量 VolTexture ,类型是 纹理渲染目标2D ,并把我们的RT_VolTexture设置为变量默认值
在这里插入图片描述
在这里插入图片描述

绘制功能

就像之前演示的一样,但现在我们已经准备好了这两样东西
渲染目标的Size就是画板的Size,将其连接到ScreenSize
在这里插入图片描述

别忘了还需要结束:
在这里插入图片描述

测试

开启编辑器中调用
在这里插入图片描述

BP_VolPainter放在场景里,点击PaintSphere执行函数
在这里插入图片描述
在这里插入图片描述
就绘制出来了(我把笔刷的Density调到1,这样明显点)
在这里插入图片描述

检查渲染目标,已经绘制上了
在这里插入图片描述

基本的原理就是这样,但现在我们只在最中心规规整整画了一个球。
下一篇继续,如何通过调整笔刷的空间位置和大小,自由的在体积里绘制体积图案

相关文章:

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第七篇-体积纹理绘制】

我们前几篇已经完成了渲染部分,现在终于开始做动态绘制功能了 之前使用的是这样一个体积雾的切片图,那么现在要做的就是动态编辑它 首先,让我们简单了解一下它是如何运作的: 开始绘制画布以渲染目标,并将材质绘制到画…...

Linux的环境搭建

目录 1、linux的简单介绍 2、搭建linux环境 2.1 linux的环境安装 2.2 使用Xshell远程登入linux 2.2.1 Xshell免密登入 2.3 windows与Xshell与linux云服务器的关系 1、linux的简单介绍 linux操作系统 为 部分汇编 C语言编写 的操作系统 源代码公开(开源),官…...

WPF+Mvvm案例实战(五)- 自定义雷达图实现

文章目录 1、项目准备1、创建文件2、用户控件库 2、功能实现1、用户控件库1、控件样式实现2、数据模型实现 2、应用程序代码实现1.UI层代码实现2、数据后台代码实现3、主界面菜单添加1、后台按钮方法改造:2、按钮添加:3、依赖注入 3、运行效果4、源代码获…...

网络爬虫-Python网络爬虫和C#网络爬虫

爬虫是一种从互联网抓取数据信息的自动化程序,通过 HTTP 协议向网站发送请求,获取网页内容,并通过分析网页内容来抓取和存储网页数据。爬虫可以在抓取过程中进行各种异常处理、错误重试等操作,确保爬取持续高效地运行 1、Python网…...

如何有效解除TikTok账号间的IP关联

在当今社交媒体环境中,TikTok凭借其独特的短视频形式吸引了数以亿计的用户。对许多内容创作者而言,运营多个账号是获取更大曝光和丰富内容的有效策略。然而,如何避免这些账号之间的IP关联,以防止被平台识别并封禁,成为…...

Python自省机制

Python 自省机制 Python 自省(Introspection)是一种动态检查对象的能力,使得开发者可以在运行时获取对象的相关信息,比如属性、方法、类型等。自省机制让 Python 具备了更强的动态性和灵活性,便于调试和开发。 自省&…...

wgan-gp 对连续变量 训练,6万条数据,训练结果不错,但是到局部的时候,拟合不好,是否可以对局部数据也进行计算呢

Wasserstein GAN with Gradient Penalty (WGAN-GP) 是一种改进的生成对抗网络(GAN),它通过引入梯度惩罚来改进训练过程,从而提高生成模型的稳定性和质量。如果你在使用WGAN-GP对连续变量进行训练时,发现整体训练结果不…...

python 制作 发货单 (生成 html, pdf)

起因, 目的: 某个小店,想做个发货单。 过程: 先写一个 html 模板。准备数据, 一般是从数据库读取,也可以是 json 格式,或是 python 字典。总之,是数据内容。使用 jinja2 来渲染模板。最终的结果可以是 h…...

GeoWebCache1.26调用ArcGIS切片

常用网址: GeoServer GeoWebCache (osgeo.org) GeoServer 用户手册 — GeoServer 2.20.x 用户手册 一、版本需要适配:Geoserver与GeoWebCache、jdk等的版本适配对照 ​ 查看来源 二、准备工作 1、数据:Arcgis标准的切片,通过…...

深度学习-卷积神经网络-基于VGG16模型, 实现猫狗二分类(文末附带数据集下载链接, 长期有效)

简介: 1.基于VGG16模型进行特征提取, 结合mlp实现猫狗二分类 2.训练数据--"dog_cat_class\training_set" 3.模型训练流程 1.对图像数据进行导入和预处理 2.搭建模型, 导入VGG16模型, 去除mlp层, 将经过VGG16训练后的数据作为输入, 输入到自建的mlp层中进行训练, 要…...

计算Java集合占用的空间【详解】

以ArrayList为例,假设集合元素类型是Person类型,假设集合容量为10,目前有两个person对象{name:“Jack”,age12} {name:“Tom”,age14} public class Person{private String name;private int age; }估算Person对象占用的大小: 对…...

仕考网:关于中级经济师考试的介绍

中级经济师考试是一种职称考试,每年举办一次,报名时间在7-8月,考试时间在10-11月 报名入口:中guo人事考试网 报名条件: 1.高中毕业并取得初级经济专业技术资格,从事相关专业工作满10年; 2.具备大学专科…...

SYN590RL 300MHz至450MHz ASK接收机芯片IC

一般描述 SYN590RL是赛诺克全新开发设计的一款宽电压范围,低功耗,高性能,无需外置AGC电容,灵敏度达到典型-110dBm,300MHz”450MHz 频率范围应用的单芯片ASK或OOK射频接收器。 SYN59ORL是一款典型的即插即用型单片高集成度无线接收器&…...

15分钟学 Go 第 20 天:Go的错误处理

第20天:Go的错误处理 目标 学习如何处理错误,以确保Go程序的健壮性和可维护性。 1. 错误处理的重要性 在开发中,错误处理至关重要。程序在运行时可能会出现各种问题,例如文件未找到、网络连接失败等。正确的错误处理能帮助我们…...

C++——string的模拟实现(上)

目录 引言 成员变量 1.基本框架 成员函数 1.构造函数和析构函数 2.拷贝构造函数 3.容量操作函数 3.1 有效长度和容量大小 3.2 容量操作 3.3 访问操作 (1)operator[]函数 (2)iterator迭代器 3.4 修改操作 (1)push_back()和append() (2)operator函数 引言 在 C—…...

JavaCV 之均值滤波:图像降噪与模糊的权衡之道

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

桥接模式,外界与主机通,与虚拟机不通

一 二 在此选择Windows与外界连接的网卡,通过有线连就选有线网卡,通过无线连就选无线网卡。 三 如果需要设置固定IP,则选择"Manual"进行设置。我这边根据实际需要,走无线的时候用DHCP,走有线的时候设固定IP…...

用HTML构建酷炫的文件上传下载界面

1. 基础HTML结构 首先&#xff0c;我们构建一个基本的HTML结构&#xff0c;包括一个表单用于文件上传&#xff0c;以及一个列表用于展示已上传文件&#xff1a; HTML <!DOCTYPE html> <html> <head><title>酷炫文件上传下载</title><link …...

Gateway 统一网关

一、初识 Gateway 1. 为什么需要网关 我们所有的服务可以让任何请求访问&#xff0c;但有些业务不是对外公开的&#xff0c;这就需要用网关来统一替我们筛选请求&#xff0c;它就像是房间的一道门&#xff0c;想进入房间就必须经过门。而请求想要访问微服务&#xff0c;就必须…...

7 种常见的前端攻击

大家都知道&#xff0c;保证网站的安全是十分重要的&#xff0c;一旦网站被攻陷&#xff0c;就有可能造成用户的经济损失&#xff0c;隐私泄露&#xff0c;网站功能被破坏&#xff0c;或者是传播恶意病毒等重大危害。所以下面我们就来讲讲7 种常见的前端攻击。 1. 跨站脚本 (X…...

element plus实现点击上传于链接上传并且回显到upload组件中

摘要&#xff1a; 今天遇到一个问题&#xff1a;vue3使用elemnt plus的上传图片时&#xff0c;数据是从别人的系统导出来的商品&#xff0c;图片是http的形式的&#xff0c;并且商品很多的&#xff0c;一个一个下载下来再上传很麻烦的&#xff0c;所以本系统插件商品时图片使用…...

ELK日志分析系统部署

ELK日志分析系统 ELK指的是ElasticsearchLogstashKibana这种架构的缩写。 ELK是一种日志分析平台&#xff0c;在很早之前我们经常使用Shell三剑客&#xff08;一般泛指grep、sed、awk&#xff09;来进行日志分析&#xff0c;这种方式虽然也可以应对多种场景&#xff0c;但是当…...

驾校小程序:一站式学车解决方案的设计与实践

​​一、引言 随着移动互联网技术的飞速发展&#xff0c;人们的生活方式和消费习惯正在发生深刻变化。驾校作为传统的服务行业&#xff0c;也面临着数字化转型的迫切需求。驾校小程序作为一种轻量级的应用&#xff0c;能够为用户提供便捷、丰富的学车服务&#xff0c;成…...

【自然语言处理】BERT模型

BERT&#xff1a;Bidirectional Encoder Representations from Transformers BERT 是 Google 于 2018 年提出的 自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;它基于 Transformer 架构的 Encoder 部分。BERT 的出现极大提升了 NLP 任务的性能&#xff0c;如问答系…...

Android 添加如下飞行模式(飞行模式开和关、飞行模式开关菜单显示隐藏)接口

请添加如下飞行模式(飞行模式开关、飞行模式开关显示隐藏)接口: 飞行模式飞行模式开关com.action.airplankey: enable value:boolean true open the airplan false close the airplan关闭Intent intent = new Intent(); intent.setAction("com.action.airplan");…...

【Vue3】基于 Vue3 + ECharts 实现北京市区域地图可视化

文章目录 基于 Vue3 ECharts 实现北京市区域地图可视化1、引言2、项目初始化2.1、环境搭建2.2 、安装依赖2.3、项目结构 3、地图数据准备3.1、地图 JSON 文件获取&#xff08;具体的json数据&#xff09; 4、 组件开发4.1、Map 组件的设计思路4.2、基础结构实现4.3、核心数据结…...

【IC】什么是min period check

在 Synopsys Primetime 工具中可以检查.lib 文件中时钟输入的最小周期。想象这样一个场景&#xff0c;有一个设计 A&#xff0c;它有一个名为 clk 的时钟&#xff0c;并且该设计的 clk 周期被设定为一个值&#xff0c;比如 2 纳秒&#xff0c;即 500MHz。假设我们在进行静态时序…...

MyBatis入门之一对多关联关系(示例)

【图书介绍】《SpringSpring MVCMyBatis从零开始学&#xff08;视频教学版&#xff09;&#xff08;第3版&#xff09;》-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)&#xff08;第3版&#xff09;》(杨章伟&#xff0c;刘祥淼)【摘要 书评 试读】- 京东图书 …...

【Git 】Windows 系统下 Git 文件名大小写不敏感

背景 在 Windows 系统上&#xff0c;Git 对文件名大小写的不敏感性问题确实存在。由于 Windows 文件系统&#xff08;如 NTFS &#xff09;在默认情况下不区分文件名大小写所导致的。 原因分析 文件系统差异 Windows文件系统&#xff08;如 NTFS&#xff09;默认不区分文件名…...

【算法系列-二叉树】层序遍历

【算法系列-二叉树】层序遍历 文章目录 【算法系列-二叉树】层序遍历1. 算法分析&#x1f6f8;2. 相似题型&#x1f3af;2.1 二叉树的层序遍历II(LeetCode 107)2.2 二叉树的右视图(LeetCode 199)2.3 二叉树的层平均值(LeetCode 637)2.4 N叉树的层序遍历(LeetCode 429)2.5 在每个…...

网站建设飠金手指下拉/成人本科

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include void sub_reverse(char *);int main(){char str[256] "The only way to learn a new programming language is by writing programs in it";char string[256] "Oh,My god!What are you doing here? \&q…...

旅游网站作用/百度网盘资源链接入口

AQS是JUC包中各种CAS同步器的基类,核心原理就是aqs维护了一个volatile的int类型的变量state,不同的同步器state代表的意义不同. 比如: CountDownLatch的实现中state变量指代的是一个计数. Semaphore的实现state代表的是一个令牌的数量. ReentrantLock的实现state代表的是冲入的…...

药品网站建设/百度推广新手入门

&#xff08;1&#xff09;黄金分割法&#xff08;0.618法&#xff09; 基本思想&#xff1a; 它通过对试探点的函数值进行比较&#xff0c;使得包含极小点的区间不断缩短&#xff0c;当区间长度小到精度范围之内时&#xff0c;可以粗略地认为区间上各点的函数值均接近于…...

南京哪家网站做的好/seo搜索引擎优化实训

1. jsonp 原理&#xff1a;jsonp之所以能够实现跨域资源的访问&#xff0c;是因为<script>标签不受浏览器同源策略的限制&#xff0c;使用时将src属性指定一个跨域URL&#xff0c;服务器在收到请求后&#xff0c;将数据放到指定的callback里传回来2.CORS 原理&#xff1a…...

微信运营服务商/长沙官网seo

一&#xff0c;次最小生成树 定义&#xff1a;设T是图G的最小生成树&#xff0c;如果T1满足ω(T1)min{ω(T’)| T’∈Not(T)},则T1是G的次小生成树。 解释&#xff1a;除了最小生成树外&#xff0c;另外一个生成树的权值和最小的生成树&#xff0c;定义为次最小生成树。 经典题…...

河北邢台做移动网站/seo排名赚app官网

前言二叉树遍历是非常经典的算法题&#xff0c;也是二叉树的一道基础算法题。但是在平常的笔试面试中&#xff0c;其出现的频率其实并不是特别的高&#xff0c;我推测是这种题目相对来说比较基础&#xff0c;算是一个基础知识点。比如剑指offer中出现的后序遍历题目&#xff0c…...