【UE】材质描边、外发光、轮廓线

news2024/11/18 9:24:58

原教学视频链接:

ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili

步骤

1. 首先新建一个材质,这里命名为“Mat_outLine”

在此基础上创建一个材质实例

2. 在视口中添加一个后期处理体积

设置后期处理体积为无限范围

点击添加一个数组

选择“资产引用”

将刚创建的材质实例拖入

3. 打开材质“Mat_outLine”

修改材质域为“后期处理”

修改 可混合位置 为 “色调映射前”

4. 新建一个材质函数,这里命名为“MF_GETKERNEL”

打开材质函数“MF_GETKERNEL”,添加一个输入表示宽度

输入类型设置为“函数输入标量”

 

设置一个默认值

 

获取当前像素在屏幕的位置作为中心点

 输出命名为中心点

通过“SceneTexelSize”函数获取像素大小,也就是1/屏幕像素(每个像素占屏幕像素的比例)

通过如下节点实现向右偏移1个像素单位

添加两个输出分别用于输出左右点的坐标

乘-1得到左边的坐标

通过相同的方法计算出上下两个点的坐标

5. 回到材质“Mat_outLine”中 ,调用上一步创建的材质函数

通过深度的不连续性,计算出物体的边缘,添加“SceneTexture”节点

场景纹理ID设置为“场景深度”

由于深度值比1大因此看到的是一片白

接下来通过卷积计算出物体的边缘(就是中心点乘4再减去相邻像素的和):

 

我们对该节点的输出引脚重新排序

 

6. 回到材质函数“MF_GETKERNEL”中,重新设置每个输出节点的排序优先级,从上到下为0~4

如下标注的地方之前连错了,改一下:

设置完后记得保存、应用

 7. 回到材质“Mat_outLine”中,做如下连接,此时可以看到物体的边缘都是大于1的值

看到乱闪现象是因为深度差太大,我们把值限制到0~1范围内即可

用场景深度是会影响整个场景的,所以把函数的场景深度改为自定义深度,这样就能针对某一个物体描边了

8. 回到视口中,选中需要显示轮廓的物体,勾选“渲染自定义深度通道”

9.  回到材质“Mat_outLine”中,通过如下节点获取场景本来的颜色

可以看到此时轮廓线已经显示出来了

10. 接下来给轮廓线上个色

在材质中添加一个四维向量参数,用于调整轮廓线颜色

将宽度也设置为参数

11. 打开材质实例“Mat_outLine_Inst”

我们可以通过参数控制轮廓线的宽度和颜色

12.  此时我们可以显示物体的轮廓了,但是也只是外轮廓,其他的边无法显示,如果想显示更多轮廓就需要加一层法线的边缘检测

打开材质“Mat_outLine”,复制一份如下节点

将宽度连上

 将“SceneTexture”节点的场景纹理ID改为“场景法线”

将结果连接到自发光颜色

应用、保存后, 此时可以在视口中可以观察法线的分布

法线有RGB三个值,我们取最大的值用

把计算后的值与深度值相加

通过“step”节点,剔除小于0.4的部分(超过0.4输出为1,小于0.4输出为0)

由于我们只想显示外轮廓,因此这里设置为0.95

添加一个参数用于控制轮廓发光的强度(默认值为1,值越大越亮)

 

13. 打开材质实例,我们可以通过参数“发光强度”来控制外轮廓的发光强度

14. 此时还存在一个问题,就是如果取消勾选“渲染自定义深度通道”还是会显示法线轮廓

15. 为了解决上述问题,打开材质“Mat_outLine”,复制一份基于深度的边缘检测节点

取核中最小的值

用计算出的值和10^7作比较,如果小于10^7则不显示外发光

此时我们就可以通过勾选“渲染自定义通道”来设置是否显示轮廓线了

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

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

相关文章

如何将JACOCO应用到企业实战中~测试过招,只需6点

1、下载 jacoco 官网:https://www.jacoco.org/jacoco/index.html 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及…

Win10右键 nvidia rtx desktop manager 怎么删除(最新)

在更新了最新的 nvidia后原来的隐藏鼠标右键菜单后不行了,新方法如下: 步骤一:在键盘“WINR”键同时操作下,启动运行框,在框内输入“regedit”,打开深度系统win7 的注册表编辑器。 步骤二:为防…

Spring学习|Bean的作用域、自动装配Bean、注解实现自动装配、Spring注解开发

Bean的作用域 单例模式(Spring默认机制) 原型模式:每次从容器中get的时候,都会产生一个新对象! Bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bean装配属性! 在Spring中有三种装配的方式 1.在xml中显示的…

在字节跳动和拼多多干了5年测试,熬夜总结出来的划水经验....

先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入字节,之后跳槽到了拼多多,一直从事软件测试的工作。之前没有实习经历,算是5年的工作经验吧。 这5年之间完成了一次晋升,换了一家公司,…

java八股文面试[数据库]——MySQL死锁的原因和处理方法

1) 表的死锁 产生原因: 用户A访问表A(锁住了表A),然后又访问表B;另一个用户B访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须等待用户B释放…

ZooInspector

一、在window,使用我们先打开Zookeeper,目录bin下的zkServer.cmd,把Zookeeper运行起来 ​编辑https://img.111com.net/attachment/art/187687/5f0c25fbe580c.png 二、可以使用目录bin下的zkCli.cmd,查询Zookeeper数据的方式,但是…

大模型浪潮席卷!和鲸科技入选创业邦“2023值得关注的125家AIGC企业”榜单

为以专业视角发掘现阶段积极探索 AIGC 技术和应用的企业,对接企业与场景,推动技术落地,创业邦于近日发布了“2023 值得关注的 125 家 AIGC 企业”榜单,和鲸科技凭借旗下 ModelWhale 数据科学协同平台在承载气象大模型的构建与应用…

企业怎么选择广告片的投放途径

TVC广告片和宣传片都是常见的企业营销工具,每种形式都有各自的特点和适用场景。选择哪种形式更适合企业投放,取决于多个因素,包括目标受众、营销目标、预算和信息传递需求等。接下来由深圳TVC广告片制作公司老友记小编从以下几个方面介绍它们…

【Python报错解决方案】DeprecationWarning: `np.float` is a deprecated

报错amoconda libsite-packages sklearn linear model least ngl.py30: Deprecationmarming: mp.float is a deprecated alias for the builtinfloat , To silence this warning, wse flat by itself. Doing this will not modify amy behavior and is safe. If you specifical…

机器学习基础算法--回归类型和评价分析

目录 1.数据归一化处理 2.数据标准化处理 3.Lasso回归模型 4.岭回归模型 5.评价指标计算 1.数据归一化处理 """ x的归一化的方法还是比较多的我们就选取最为基本的归一化方法 x(x-x_min)/(x_max-x_min) """ import numpy as np from sklea…

python超详细基础教程:元组和集合

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 元组和集合是Python中的基本类型 python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一,元组 元组(tuple)由小括号、逗号和数据对象构成的集合,各个项通过逗号…

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试 相关交叉编译包和摄像头测试程序已上传:https://download.csdn.net/download/qq_42952079/88282608 将zbar和opencv下的lib库文件拷贝到开发板的lib目录下,将camera可执行文件拷贝到开发板目录下…

解锁前端Vue3宝藏级资料 第四章 VUE常用 UI 库 1 ( element-plus,Ant ,naiveui,ArcoDesign)

现在常用的前台UI 分别是以下几种,我们将从中间选择介绍几个主流的UI的用于后台的系统搭建与开发。 Ant Design Vue element-plusnaiveuiArcoDesignBootstrap Vue Buefy Chakra UI Framevuerk Oruga Tachyons Tailwind CSS NutUI Vant Vuetify.js第一章 Vue3项目创建…

[machine Learning]推荐系统

其实严格来说推荐系统也是一种监督学习,我们需要根据已有数据进行预测,但是这种训练数据不是单纯的输入和输出问题,所以被归类为"超越监督学习"的一种? 今天去旁听了隔壁专业的机器学习课程,感觉自己的知识确实不是很系统,所以后面会找个机会把前面的代码给补充上.…

【肝素··】

Recent advances in the management of venous thromboembolism Korean J Hematol 2010;45:8-13 Serpin Structure, Mechanism, and Function-2002 糖胺聚糖 凝血 Fibrinolysis | Detailed Pedia

2023百度云智大会:科技与创新的交汇点

​ 这次的百度云智大会,可谓是亮点云集—— 发布了包含42个大模型、41个数据集、10个精选应用范式的全新升级千帆大模型平台2.0,发布首个大模型生态伙伴计划,而且也预告了文心大模型4.0的发布,大模型服务的成绩单也非常秀&#x…

文件重命名不再繁琐:MetaRename for Mac帮你简化重命名流程

文件重命名是我们在日常使用电脑时经常需要进行的一项任务。但是,有时候我们需要批量重命名文件,并且希望在新文件名中添加一些特定的信息,比如日期、时间、序号等。这时候,使用MetaRename for Mac可以帮助你轻松完成任务。 Meta…

手写Spring:第7章-实现应用上下文

文章目录 一、目标:实现应用上下文二、设计:实现应用上下文三、实现:实现应用上下文3.1 工程结构3.2 Spring应用上下文和Bean对象扩展类图3.3 对象工厂和对象扩展接口3.3.1 对象工厂扩展接口3.3.2 对象扩展接口 3.4 定义应用上下文3.4.1 定义…

Python数据分析实战-将dataframe某列的值分成不同区间并计算每个区间的频数(附源码和实现效果)

实现功能 将dataframe某列的值分成不同区间并计算每个区间的频数 实现代码 import pandas as pd# 创建dataframe data {Name:[Tom1, Jack1, Steve1, Ricky1, Tom2, Jack2, Steve2, Ricky2],Score:[78,60,59,42,88,34,69,142]} df pd.DataFrame(data) print(df)# 定义区间和…

Linux 部署1Panel现代化运维管理面板远程访问

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、…