PBR纹理的10种贴图

PBR 是基于物理的渲染的首字母缩写。它试图通过模拟材料如何吸收和反射光,以模仿现实世界中的光流的方式产生视觉效果。最近的游戏引擎由于其逼真的效果而越来越多地使用 PBR 纹理。对于实时渲染,它们被认为是真实世界场景的最佳近似值。
在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

为了创建效果,大多数渲染引擎都有其独特的工作流程。但是,PBR 纹理在不同的软件中创建相同的效果。因此,除了逼真的质量外,将项目导出到另一个软件变得简单。

PBR 纹理中使用了多个贴图:

  • Albedo:反照率
  • Normal:法线
  • Roughness:粗糙度
  • Metalness:金属度
  • Specular:镜面
  • Height:高度
  • Opacity:不透明度
  • Ambient Occlusion:环境光遮蔽
  • Refraction:折射
  • Emissive:自发光

最终产品由所有这些贴图组成。了解这些地图中的每一个完成的内容以获得最佳结果至关重要。掌握基础知识后,您可以调整设置以获得模仿真实世界条件的照片级逼真效果。

1. 反照率贴图

你的整个材质都是围绕反照率贴图构建的。您的图案是单一颜色或平面光图像。照明必须是平坦的。不应显示阴影,因为源照片照明可能与你的不同。阴影会在纹理中产生不规则性并使它们看起来不自然。反照率主要决定了纹理的颜色。在金属纹理中,它决定了材料反射的颜色。

2、法线贴图

在这里插入图片描述

法线贴图提供纹理深度。它使用复杂的计算模拟光线与物质表面相互作用的方式,以创建较小的凸起和凹痕。法线贴图不会更改你的基本几何图形。因此,在通过特定视角后,效果可能会减弱,尤其是在大幅上升或下跌时。

法线贴图的基色为浅紫色;这是法线贴图的底部,用于符号化多边形网格体的表面。由于法线贴图决定了光照与模型的交互方式,因此请尽量隐藏接缝。它们可以引起对接缝的注意。

3、粗糙度贴图

在这里插入图片描述

表面的粗糙度决定了它的粗糙度或光滑度。它们决定了光线在模型表面上的分布方式。粗糙的表面比光滑的表面在更多的方向上散射光线,导致更模糊而不是更清晰的反射。

值的范围是 0.0 到 1.0。当粗糙度等于 0.0 时,反射清晰,并且模型根本不会散射光线,从而在材质上产生更清晰、更明亮的反射和照明。当粗糙度等于 1.0 时,反射变得模糊。光线将更加分散在整个材料中。照明和反射更多地分布在模型上,但因此它们看起来要暗得多。例如,橡胶的粗糙度约为1.0,而闪亮塑料的粗糙度约为零。这些贴图是灰度的,白色表示最粗糙的表面,黑色表示光滑的表面。

4、金属度贴图

在这里插入图片描述

它是指表面反射其周围环境的程度。值的范围是 0.0 到 1.0。当金属度为0.0时,反照率颜色完全可见,材料似乎是塑料或陶瓷。当金属度为0.5时,它似乎是涂成金属的。当金属度达到1.0时,表面几乎失去了所有的反照率颜色,只反射环境。例如,当金属度为 1.0 且粗糙度为 0.0 时,表面类似于真实世界的镜子。

金属贴图同样是灰度,但最好坚持使用白色和黑色值,并利用粗糙度贴图来填充空白。反照率贴图将用作金属性贴图中黑色部分的漫反射颜色(纹理在光线接触时出现的颜色)。相反,白色将使用反照率颜色确定反射的颜色和亮度,材质的漫反射颜色将为黑色。在这种情况下,不再需要漫反射颜色,因为反射将为材料的该部分提供所有颜色和细节,从而将其变成黑色。

5、镜面贴图

在 PBR 中,镜面反射贴图可以使用完整的 RGB 颜色,这会影响你构建反照率的方式。有时使用镜面反射贴图代替金属性贴图。

如果要用金属贴图制作黄铜材质,请在反照率中将贴图的该部分涂成黄铜色调,以便反射使材质具有黄铜外观。相反,如果使用镜面反射贴图,则反照率的黄铜区域将完全为黑色,你需要将黄铜细节绘制到镜面贴图上才能达到相同的效果。这样做的好处是,你可以利用镜面贴图来更改非金属材质管理反射的方式,从而为你提供更大的自由和控制。缺点是很难准确管理您想要的结果。

6、高度贴图

在这里插入图片描述

法线贴图和高度贴图的相似之处在于它们都为底层网格体提供了次要细节。两者之间的主要区别在于,与法线贴图不同,高度贴图实际上将数据添加到 3D 网格并提高多边形计数。

在上图中,你可以看到网格在球体外边缘的脊处伸出。当你查看标准贴图时,会注意到边缘仍然是完美的圆形,这打破了深度感。高度贴图是一种灰度贴图,其中黑色表示网格的底部,白色表示网格的最高峰,灰色阴影表示介于两者之间的所有内容。高度贴图的好处是它们提供的细节量,从各个角度和任何照明条件下看起来都很完美。另一方面,对模型进行细分的必要性增加了渲染时间。因此,为了方便起见,首选法线贴图。

7、不透明度贴图

在这里插入图片描述

可以使用不透明度贴图使材质区域透明。如果你正在建造玻璃或低聚树枝或贴花,这一点至关重要。

它可以用于树木或贴花,如上图所示。你可以在单个多边形平面上构造一堆完整的叶子,并使用不透明度贴图使多边形的多余消失。然后可以对这些多边形进行分层,以创建需要很少处理能力的逼真树。

灰度不透明度贴图可用。白色是完全不透明的,而黑色是完全透明的。它们之间不同程度的半透明性由灰色的色调表示。0.0 是不透明的,而 1.0 是透明的。

8、环境光遮蔽贴图

在这里插入图片描述

环境光遮蔽为有缝隙的对象的遮挡部分添加阴影,使它们看起来更逼真。在渲染时,此贴图与反照率混合,以描述它对光线的反应。地图是灰度的,白色占据了大部分明部,而较暗的部分则处于阴影中,光线反应较少。遮挡值范围为 0.0 到 1.0,其中 0.0 表示完全黑暗(遮挡),1.0 表示无遮挡。

9、折射贴图

折射是光线在穿过固体、液体或气体时弯曲的过程,扭曲了通过透明物体(顾名思义)观察时的外观。正是这种现象使放大镜发挥作用,并导致物体在水下观察时看起来不同。这是材质工作流程的关键要素,因为所有透明材质在现实生活中都会引起折射,因此需要在CG工作中复制它以尽可能逼真。在大多数情况下,折射贴图本质上是一组常量值。无论如何,你不想折射光线的模型部分几乎肯定是不透明的,因此它们是否折射光线并不重要。

10、自发光贴图

这些贴图会使材质的某些元素看起来会散发出自己的光,从而可以在黑暗的地方看到它们。自发光有利于照亮小型 LED 或创建独特的条形照明效果。但是,如果应用太多,场景中的细节将被完全冲刷掉,场景将失去其活力。这些是完整的 RGB贴图。它们类似于反照率贴图,但它们用于光线。虽然自发光贴图可用于照亮整个场景,但它比添加传统照明要复杂得多。


原文链接:PBR纹理的10种贴图 — BimAnt

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

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

相关文章

JAVA 从入门到起飞 day8 面向对象01

1.面向对象的介绍 老师的讲解: 面向:就相当于拿找 对象:能干活的东西 面向对象编程:拿东西过来做对应的事 我的理解: 让我们通过一个比喻来了解 JAVA 中的面向对象思想。 想象一下你正在建一座房子: 1. **类&#…

Jmeter系列进阶-获取图片验证码(4)

安装工具 通过ocrserver工具识别图片验证码,解压后 .exe双击启动即可。 jmeter中使用 (1)HTTP请求获取验证码 (2)在获取验证码图片的接口下面添加监听器》保存响应到文件;如下图: &#x…

Qt/C++音视频开发51-推流到各种流媒体服务程序

一、前言 最近将推流程序完善了很多功能,尤其是增加了对多种流媒体服务程序的支持,目前支持mediamtx、LiveQing、EasyDarwin、nginx-rtmp、ZLMediaKit、srs、ABLMediaServer等,其中经过大量的对比测试,个人比较建议使用mediamtx和ZLMediaKit,因为这两者支持的格式众多,不…

【Linux环境】编译器 gcc/g++的使用

​👻内容专栏: Linux操作系统基础 🐨本文概括: 预处理、编译、汇编、链接、动静态库、gcc选项等。 🐼本文作者: 阿四啊 🐸发布时间:2023.9.13 背景知识 预处理(进行宏替换…

Mobpush与A/B测试:覆盖多应用场景下的精细化运营神器

在信息爆炸的移动应用领域,实现长效稳定的用户增长的关键在于能够和用户建立互信、持久的联系。而优质的推送内容不仅可以提高用户参与度和留存率,还有助于增加收入、改善用户体验,以及建立强大的用户社区。但千人一面的推送很难同时满足不同…

算法|Day51 单调栈2

LeetCode 503- 下一个更大元素 II 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述:给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 num…

Jmx协议远程连接java服务器

注意:本例里,我用的是jdk17 通常用jdk自带的jconsole,或者想要功能强大点的使用visualVM 需要java服务器在启动的时候加上以下参数 -Dcom.sun.management.jmxremote 启用jxm远程连接-Djava.rmi.server.hostname10.1.3.99 指定jxm监听地址&…

第一百四十天学习记录:工作相关:Qt5.14.2的安装

最近一段时间被新项目搞得心力憔悴。 加上需要调用一个同事的OpenCV库一直报错,后面发现是Qt版本不兼容的问题。 在尝试了在线安装Qt无果后,重新安装Qt,顺便回顾一下Qt的安装过程。 毕竟上一次安装Qt还是在2019年……之后的这4年工作电脑和家…

记录我在cmd里使用pip命令下载Python的包时碰见的两个错误

1、pip时报错:Defaulting to user installation because normal site-packages is not writeable 解决方法:在 pip install 后面加上 --user 即可,这个是权限不足引发的问题。如果还是不行则用镜像源,然后别忘了在镜像源的“inst…

欧科云链与HashKey Exchange达成合作,助力香港虚拟资产合规化

继8月10日 欧科云链 与 华为云 达成合作之后, 今天,欧科云链 又与 Hashkey Exchange 共同宣布正式达成合作! 这次与Hashkey达成合作,双方又将在Web3行业中谱写怎样的故事? 9月6日,欧科云链控股有限公司&…

利用优化算法提高爬虫任务调度效率

在大规模数据采集的场景中,高效的任务调度是关键之一。通过利用优化算法,我们可以提高爬虫任务的调度效率,加快数据采集速度,并有效利用资源。本文将为您介绍如何利用优化算法来优化爬虫任务调度,实现高效的批量采集。…

Buuctf web [SUCTF 2019]EasySQL

又是一道考察sql注入的题 1、起手试探 (主要看看输入什么内容有正确的回显) 1 0 1 1 # 发现只有在输入1的情况下有正常的回显,输入0或其他字符都没有回显,所以这题就要尝试堆叠注入了。 ps:(如果想尝试其他注入方法…

leetcode 2366. Minimum Replacements to Sort the Array(数组排序的最少替换数)

数组nums中的元素nums[ i ] 可以替换为任意两个数a, b, 前提是ab nums[ i ]. 把数组nums变为升序&#xff08;可以有相等&#xff09;数组需要多少次替换。 思路&#xff1a; 排序数组是左边的元素<右边元素&#xff0c;以右边元素为边界。 所以从右到左遍历数组&#xf…

PY32F003F18之定时器中断

PY32F003F18定时器有TIM1&#xff0c;TIM3&#xff0c;TIM14&#xff0c;TIM16和TIM17。其中TIM1为高级定时器&#xff0c;其它为通用定时器。见下表&#xff1a; 一、PY32F003F18定时器的工作模式&#xff1a; 1、边沿对齐模式 计数器工作在"边沿对齐模式" 设置&q…

List与ArrayList

目录 一、List及其使用 1.1 List的概念 1.2 常见接口的介绍 1.3 List的使用 二、线性表和顺序表 2.1 线性表 2.2 顺序表 三、ArrayList介绍 四、ArrayList的使用 4.1 ArrayList构造 4.2 ArrayList的常用方法 4.3 ArrayList的遍历 4.4 ArrayList的扩容机制 五、ArrayList的具…

字节一面:如何实现单行/多行文本溢出的省略样式?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;css是我们的必备技能&#xff0c;文本溢出问题也是我们经常遇到的问题&#xff0c;我们不仅只是处理这种情况&#xff0c;还要考虑他的…

024 - STM32学习笔记 - 液晶屏控制(一) - LTDC与DMA2D初始

024- STM32学习笔记 - LTDC控制液晶屏 在学习如何控制液晶屏之前&#xff0c;先了解一下显示屏的分类&#xff0c;按照目前市场上存在的各种屏幕材质&#xff0c;主要分为CRT阴极射线管显示屏、LCD液晶显示屏、LED显示屏、OLED显示屏&#xff0c;在F429的开发板上&#xff0c;…

【多线程】线程池 详解

线程池 详解 1. 线程池是什么2. 标准库中的线程池3. 实现线程池4. 面试题 1. 线程池是什么 虽然线程的创建和销毁的开销比较小, 但还是有的, 如果频繁的创建和销毁线程, 开销还是比较大的.解决: 线程池或者协程, 本文主讲线程池. 线程池: 把线程提前创建好, 放到池子里, 后面…

下载配置 maven并在 idea 上应用

目录 一 maven 定义 二 Maven特点 三 Maven仓库 四 安装配置maven 步骤一:准备安装包,解压 步骤二:配置maven的环境变量 步骤三:测试maven的环境变量是否配置成功 步骤四:配置maven本地仓库 步骤五:阿里云、腾讯镜像配置 步骤六:全局配置idea的maven路径 步骤七:创建…

命令行git联网失败,但是实际可以联网

最近下载代码的时候发现总是告诉我连不上github的网页&#xff0c;但是我自己通过浏览器又可以上网&#xff0c;找了半天发现这个方法可以。 记录下这个代理 打开git bash 执行以下命令&#xff1a; git config --global http.proxy http://127.0.0.1:7890 git config --glob…