虚幻引擎---材质篇

news2025/1/15 13:16:15

一、基础知识

  • 虚幻引擎中的材质(Materials) 定义了场景中对象的表面属性,包括颜色、金属度、粗糙度、透明度等等;
  • 可以在材质编辑器中可视化地创建和编辑材质;
  • 虚幻引擎的渲染管线的着色器是用高级着色语言(HLSL) 编写的;
  • 材质的节点图表被虚幻引擎解析并转换为HLSL以创建着色器;
  • 编译器把着色器代码转换为GPU硬件可执行的汇编语言指令
  • GPU硬件执行汇编指令把每个像素颜色输出到显示器。

二、材质属性

在虚幻引擎的内容浏览器的右键菜单中点击材质选项可以创建新的材质,双击该材质进入材质编辑器会看到一个基础节点,如下:材质基础节点

1. 基础颜色

节点的第一项是材质的基础颜色,也就是通过RGB通道计算得到的颜色。按住键盘的数字键3,在材质图表窗口的空白处点击鼠标左键,可以创建一个包含三个参数的节点,如图:RGB参数
XYZ分别对应RGB通道。把新节点连接到基础节点的基础颜色属性上,然后修改这三个值,视口中的材质球颜色就会发生变化。
基础颜色

2. 金属感

金属感(Metallic) 属性可以让材质看起来更接近金属质感。按住键盘的数字键1,在材质图表窗口的空白处点击鼠标左键,可以创建一个浮点数节点,如图:
浮点数节点
把浮点数节点连接到基础节点的金属感属性上,并调节浮点数值,即可从视口中观察到材质球的金属质感变化。数值越接近1,质感越接近金属,数值越接近0,则反之。
金属感

3. 粗糙度

粗糙度(Roughness) 是影响材质表面反射性质的属性。同样,创建一个新的浮点数节点连接到该属性上,调节浮点数值,即可观察材质球的粗糙度变化。数值越接近1,材质表面越接近镜面反射,越接近0,则漫反射越强。
粗糙度

4. 自发光颜色

自发光颜色 属性可以控制材质表面的发光颜色。调节的方式与基础颜色属性相似。颜色数值越大,发光越强,否则反之。
自发光颜色

三、PBR贴图

PBR(Physically-Based Rendering) 是一种基于物理的渲染和光照方式,是一个工作流程。在此理论基础之上构建的贴图被用于模拟现实中物体的外观、粗糙度、凹凸程度等等,以下是常用的贴图类型及其作用:

1. 基本颜色贴图

标识符:diff、D、Albedo
作用:记录材质表面的基本颜色信息。这是决定物体外观最直观的贴图,为材质提供基础的颜色和纹理

2. 粗糙度贴图

标识符:Rough、ROU
作用:记录材质表面的划痕、污渍等等磨损的效果。

3. 法线贴图

标识符:normal、nor、nrm
作用:记录材质表面的法线信息,并通过这些信息来模拟表面的凹凸感。法线贴图不会改变模型的几何形状,但能在视觉上产生类似的效果。

4. 置换贴图

标识符:displacement、disp、height
作用:这种贴图也可以使物体产生凹凸感。与法线贴图不同的是,它会让物体发生真实的形变,但不会破坏原来的模型。

5. 环境光遮蔽贴图

标识符:AO
作用:记录光线的遮蔽信息,用来模拟物体相互遮挡所产生的阴影。

6. 透明贴图

标识符:Translucency、opacity、alpha
作用:该贴图分为两种,透明度贴图和不透明度贴图。顾名思义,它们用于控制模型的各个部分的透明度。

四、使用贴图

在项目中添加初学者内容包,然后在内容浏览器中打开All/内容/StarterContent/Textures目录,即可看到虚幻引擎官方提供给我们的众多贴图。

1. 基础颜色贴图

从上述的目录中找到名为T_Rock_Basalt_D贴图,我们用它作为示例。

  • 创建一个新材质,双击打开材质编辑器;
  • 把贴图拖入图表区域,会看到一个新节点产生;
  • 把新节点连接到基础节点基础颜色属性上;
  • 材质球表面会同步出现贴图上的纹理,如图:基础颜色贴图
    在纹理上附着颜色的步骤如下:
  • 按住3键并点击鼠标左键创建三通道的常量节点;
  • 按住M键并点击鼠标左键创建乘法节点(Multiply)
  • 把贴图节点和常量节点分别连接到乘法节点的两个输入点
  • 把乘法节点的输出点连接到基础颜色属性上;
  • 修改常量节点的数值,可以看到在材质上同时存在纹理和颜色,如图:纹理着色
    粗糙度贴图的使用方式基本一致,只是以浮点数节点替换三通道节点。

2. 法线贴图

Textures目录中找到T_Rock_Basalt_N贴图,用它来演示法线贴图的用法,如下:

  • 以第一小节相同的方式创建浮点数节点、三通道节点和贴图节点;
  • 按住“L键”并点击鼠标左键创建线性插值(Lerp)节点
  • 三通道节点Z值修改为1.0,即呈现蓝色,然后把节点连接到Lerp节点的输入A
  • 贴图节点连接到Lerp节点的输入B
  • 浮点数节点连接到Lerp节点的输入Alpha
  • Lerp节点的输出连接到基础节点法线(normal) 属性上;
  • 修改浮点数节点的数值,即可看到材质球表面的凹凸感变化,如图:
    法线贴图

五、总结

在虚幻引擎中,可以自由的创建各种材质。通过修改材质球的各项属性,可以改变材质的基础颜色、金属感、粗糙度、凹凸感等等。同时,使用类型多样的贴图可以达到更高级的效果,如附着纹理、改变模型各部分的透明度等等。

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

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

相关文章

基于Matlab计算机视觉的车道线识别与前车检测系统研究

随着自动驾驶技术的发展,车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开,旨在通过处理交通视频数据,实时检测车辆所在车道及其与前车的相对位置,从而为车道…

vue.js学习(day 19)

自定义创建项目 ESlint 代码规范 代码规范错误 手动修正 自动修正 settings.json {"emmet.triggerExpansionOnTab": true,"editor.fontSize": 25,// 当保存的时候,eslint自动帮我们修复错误"editor.codeActionsOnSave": {&qu…

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理:定时器溢出,产生系统复位信号;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构(对比) IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

医疗挂号|基于springBoot的医疗挂号管理设计与实现(附项目源码+论文+数据库)

目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存…

lobeChat安装

一、安装Node.js version > v18.17.0 二、下载 cd F:\AITOOLS\LobeChat git clone https://github.com/lobehub/lobe-chat.git (下载要是失败就手动下:https://codeload.github.com/lobehub/lobe-chat/zip/refs/heads/main) npm install …

电子应用设计方案-38:智能语音系统方案设计

智能语音系统方案设计 一、引言 智能语音系统作为一种便捷、自然的人机交互方式,正逐渐在各个领域得到广泛应用。本方案旨在设计一个高效、准确、功能丰富的智能语音系统。 二、系统概述 1. 系统目标 - 实现高准确率的语音识别和自然流畅的语音合成。 - 支持多种语…

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…

数字逻辑——二进制

目录 1 信息与编码 1.1 什么是信息? 1.2 什么是编码? 2 数制和码制 2.1 数制 3 一些基本概念 3.1 位(bit) 3.2 字节(byte) 3.3 数据量的大小表示符号 4 二进制 4.1 二进制简介 4.2 二进制的…

初识TCP(编写回显服务器)

目录 初识TCP(编写回显服务器)TCP相关的API服务器代码实现客户端代码实现部分代码解释注意事项效果展示 初识TCP(编写回显服务器) TCP相关的API ServerSocket : 这是socket类,对应到网卡,但是…

ElasticSearch7.x入门教程之全文搜索聚合分析(十)

文章目录 前言一、指标聚合1、统计最大值:Max Aggregation2、统计最小值:Min Aggregation3、统计平均值:Avg Aggregation4、求和:Sum Aggregation5、Cardinality Aggregation6、基本统计:Stats Aggregation7、高级统计…

【Linux】DNS服务配置

DNS DNS是什么 DNS是Domain Name System的缩写,即域名系统。它是一种用来将域名转化为IP地址的系统。在互联网中,每个网站都有一个唯一的IP地址,但是人们更习惯使用简单易记的域名来访问网站。DNS的作用就是将这些域名转化为对应的IP地址,使得人们可以通过域名来访问网站…

第31天:安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测

时间轴: 演示案例: 打包器-WebPack-使用&安全 第三方库-JQuery-使用&安全 打包器-WebPack-使用&安全 参考:https://mp.weixin.qq.com/s/J3bpy-SsCnQ1lBov1L98WA Webpack 是一个模块打包器。在 Webpack 中会将前端的所有资源…

开发者如何使用GCC提升开发效率Opencv操作

看此篇前请先阅读 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144216351?spm=1001…

使用PaddlePaddle实现线性回归模型

目录 ​编辑 引言 PaddlePaddle简介 线性回归模型的构建 1. 准备数据 2. 定义模型 3. 准备数据加载器 4. 定义损失函数和优化器 5. 训练模型 6. 评估模型 7. 预测 结论 引言 线性回归是统计学和机器学习中一个经典的算法,用于预测一个因变量&#xff0…

图像处理网络中的模型水印

论文信息:Jie Zhang、Han Fang、Weiming Zhang、Wenbo Zhou、Hao Cui、Hao Cui、Nenghai Yu:Model Watermarking for Image Processing Networks 本文首次提出了图像处理网络中深度水印问题,将知识产权问题引入图像处理模型 提出了第一个深…

全面UI组件库Telerik 2024 Q4全新发布——官方宣布支持.NET 9

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供最完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Ken…

计算机毕业设计hadoop+spark民宿推荐系统 民宿数据分析可视化大屏 民宿爬虫 民宿大数据 知识图谱 机器学习 大数据毕业设计

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

工业—使用Flink处理Kafka中的数据_ChangeRecord1

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30

【Android】从事件分发开始:原理解析如何解决滑动冲突

【Android】从事件分发开始:原理解析如何解决滑动冲突 文章目录 【Android】从事件分发开始:原理解析如何解决滑动冲突Activity层级结构浅析Activity的setContentView源码浅析AppCompatActivity的setContentView源码 触控三分显纷争,滑动冲突…

消息中间件-Kafka2-3.9.0源码构建

消息中间件-Kafka2-3.9.0源码构建 1、软件环境 JDK Version 1.8Scala Version 2.12.0Kafka-3.9.0 源码包 下载地址:https://downloads.apache.org/kafka/3.9.0/kafka-3.9.0-src.tgzGradle Version > 8.8Apache Zookeeper 3.7.0 2、源码编译 打开源码根目录修改…