生活小妙招之UE custom Decal

因为这几年大部分时间都在搞美术,所以博客相关的可能会鸽的比较多,阿巴阿巴

https://twitter.com/Tuatara_Games/status/1674034744084905986

之前正好看到一个贴花相关的小技巧,正好做一个记录,也在这个的基础上做一些小的拓展。没啥难度,但倒觉得是个值得记录的点。

首先,和UE原生的贴花组件相比,这样的方式的优点在于可以用于自定义的unlit材质的流程,并且在粒子系统中也可以直接发射用。奶瓜中用原生的方式这里就不做讨论。

这里就讨论距离一个轴向的贴花,其他轴向同理

原理是首先根据pixelDepth和SceneDepth反推出当前像素对应深度的世界坐标,再转换到localspace再根据boundSize算出某个朝向的UV,当然为了能跟着走还要减掉objectPosition

用于粒子的时候,减的坐标换成ParticlePosition,并且由于没有类似mesh粒子size的节点,所以用于粒子的时候要手动传个参调一下,也能用。

但是如上的做法有一个问题,由于拿的sceneDepth,所以无论这个贴花的盒子放在那里,里面显示的都是直接拿的最后面的深度出来计算的。而UE原生的贴花的范围就是在那个盒体的范围内的,超出盒体的范围是不显示的,我们肯定也希望是这样的效果,深度超出盒体范围之后的就不显示了。

为了实现这个效果,有个小误区,比如用世界坐标来直接筛是不行的,因为其实显示贴花信息的还是盒子最前面的面上的像素。

所以还是得用深度信息来做筛选,我这里的思路就是拿到盒体后面面的世界坐标和前面显示的像素的对应深度世界坐标来比较来得知是否在盒体的范围内了。这里方便看用个if,一般还是用个custom包起来。注意计算后边界面的坐标的时候,bound要乘上objectScale,不然盒体缩放的时候会有偏差。

以上,一个简单的自定义贴花就能用了

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

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

相关文章

微信小程序前后页面传值

微信小程序前后页面传值 从前一个页面跳转到下一个页面,如何传递参数?从后一个页面返回前一个页面,如何回调参数? 向后传值 从前一个页面跳转到下一个页面并传值。 前页面:在跳转链接中添加参数并传递 wx.navigat…

MySQL体系结构和存储引擎【InnoDB特性】【4种隔离级别】【聚集索引】

1.概念 1.1 数据库 文件的集合 1.2 数据库实例 程序 1.3 数据库 & 数据库实例的关系 应用程序通过数据库实例和数据库打交道 2.InnoDB存储引擎 2.1 特性 2.1.1 支持事务 2.1.2 具有行锁设计 默认的读取操作不会产生锁 2.1.3 支持外键 2.1.4 通过多版本并发&am…

compile_and_runtime_not_namespaced_r_class_jar\debug\R.jar: 另一个程序正在使用

问题情况: run App的时候,提示该文件被占用 想要clean Project,还是提示该文件被占用,这个文件和连带的文件夹都无法被删除。 方法1: AndroidStudio下方的terminal(没有这个窗口的话,从上面的…

Docker基本使用

查看本地镜像 查看本地:docker imagesPull镜像:docker pull nginx:latest登录镜像:docker login hub.docker.com -u **** -p ****制作镜像:docker build -t xxxx:v1push:docker push xxx:v1删除镜像:docker rmi #imag…

ELK 企业级日志分析系统(二)

目录 ELK Kiabana 部署(在 Node1 节点上操作) 1.安装 Kiabana 2.设置 Kibana 的主配置文件 3.启动 Kibana 服务 4.验证 Kibana 5.将 Apache 服务器的日志(访问的、错误的&#x…

DC电源模块关于多路输出的问题

BOSHIDA DC电源模块关于多路输出的问题 DC电源模块通常具备多路输出功能,这使得它在实际应用中具有极高的灵活性和可扩展性。当需要为多个不同的负载提供电源时,多路输出的设计可以降低整个系统的成本和复杂度,同时也可以减少系统空间的占用。…

react钩子副作用理解

useEffect(() > { fetch(‘https://api.example.com/data’) .then(response > response.json()) .then(data > setData(data)); }, []); 怎么理解这个[] 在 React 中,useEffect 钩子用于处理副作用,比如数据获取、订阅、手动 DOM 操作等。useE…

基于Spring Boot的影视点播网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: 基于Spring Boot的影视点播网站设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java springboot…

Centos 从0搭建grafana和Prometheus 服务以及问题解决

下载 虚拟机下载 https://customerconnect.vmware.com/en/downloads/info/slug/desktop_end_user_computing/vmware_workstation_player/17_0 cenos 镜像下载 https://www.centos.org/download/ grafana 服务下载 https://grafana.com/grafana/download/7.4.0?platformlinux …

C语言易错知识点总结1

生命周期&作用域 第 1 题(单选题) 题目名称: 局部变量的作用域是: 题目内容: A .main函数内部 B .整个程序 C .main函数之前 D .局部变量所在的局部范围 答案解析: 在C语言中,变量分为局部…

视频声音怎么转换成文字?这四种转换方法很简单

将视频声音转换成文字的好处不仅仅限于方便记录、保存和查阅视频内容。它还可以大大提高视频内容的可访问性和可搜索性,使得非母语人士、听力障碍者等人群更容易理解视频内容,并且可以更快速地找到相关信息。此外,将视频声音转换成文字还可以…

led台灯哪些牌子性价比高?推荐几款性价比高的护眼台灯

作为学龄期儿童的家长,最担心的就是孩子长时间学习影响视力健康。无论是上网课、写作业、玩桌游还是陪伴孩子读绘本,都需要一个足够明亮的照明环境,因此选购一款为孩子视力发展保驾护航的台灯非常重要。为大家推荐几款性价比高的护眼台灯。 …

gitee分支合并

合并dev分支到master(合并到主分支) git checkout master git merge dev //这里的dev表示你的分支名称 git push //推送到远程仓库 效果如下图 不报错就表示推送成功了,希望能帮助各位小伙伴

PHP日期差计算器,计算两个时间相差 年/月/日

1. 计算两个日期相隔多少年,多少月,多少天示例:laravel框架实现 /*** 天数计算* return \Illuminate\Http\JsonResponse*/public function loveDateCal(){$start_date $this->request(start_date);$end_date $this->request(end_date…

STM32串口IAP升级

STM32串口IAP升级 1.分区 L073RZ 192K 6K 分区大小Bootloader64KAPP72KBackup72KMemory6K 分区 | 大小 | 备注 | Bootloader | 64K | 引导程序 | APP | 72K | App运行 | Backup | 72K | APP备份 | Memory | 6K | 数据存储 | 2.工程创建 1)BOOT a.IR0M1 Bootlo…

二叉树的性质、前中后序遍历【详细】

1. 树概念2.二叉树的概念1.2二叉树的性质 3.二叉树遍历3.2前序遍历3.2 中序遍历3.3 后序遍历 1. 树概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合,有二叉树,N叉树等等。 子树…

Node.js:实现遍历文件夹下所有文件

Node.js:实现遍历文件夹 代码如下 const fs require(fs) const path require(path)function traverseFolder(folderPath) {// 读取文件夹列表const files fs.readdirSync(folderPath)// 遍历文件夹列表files.forEach(function (fileName) {// 拼接当前文件路径…

安卓:实现复制粘贴功能

目录 一、介绍 (一)ClipboardManager介绍 1、ClipboardManager常用方法: 2、获取 ClipboardManager实例 (二)、ClipData介绍 1、创建ClipData对象: 2、获取ClipData的信息: 3、ClipData…

事务提交后,异步执行

背景: 有个业务是这样的,先执行导入操作,导入提交后再异步执行其他业务,数据依赖导入数据。 1. 主方法 Transactional(rollbackFor Exception.class)public void testA() {long begin System.currentTimeMillis();BrandInfo …

Linux使用mount挂载

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 格式化分区 sudo mkfs -t ext4 /dev/mmcblk0p1 格式化分区 实际使用中推荐这个,它是 mkfs 命令的个变种,可以自动识别文件系统类型为 ext4,并使用 ext4 文件系统的默认参数来创建…