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.rhkb.cn/news/137454.html

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

相关文章

iOS 17 Simulator Failed with HTTP status 400:bad request

升级 xcode 15 要 ios17 的 sdk 才能运行,但是更新这个 sdk 400 错误了 解决方案: 直接去官网下载开发者后台下载dmg文件,使用命令行快速安装即可 https://developer.apple.com/documentation/xcode/installing-additional-simulator-runti…

c++模板初阶

文章目录 前言一、泛型编程1、泛型编程2、函数模板2.1 函数模板的使用2.2 函数模板的实例化2.3 模板参数的匹配原则 3、类模板 前言 一、泛型编程 1、泛型编程 在学习了前面的c重载之后,我们写一个Swap函数用来交换不同类型的数据时,可以使用函数重载&…

Learn Prompt-Prompt 高级技巧:AutoGPT

AutoGPT 是一个由Toran Richards创建的流行开源项目。它利用GPT4作为大脑,结合langchain的链接思想,连接各种工具和互联网资源,来完成人类给予的任务。您只需要设定一个目标,AutoGPT就会自主规划并逐步执行任务。如果遇到问题&…

xyhcms getshell

下载xyhcms3.6.2021版本并用phpstudy搭建 function get_cookie($name, $key ) {if (!isset($_COOKIE[$name])) {return null;}$key empty($key) ? C(CFG_COOKIE_ENCODE) : $key;$value $_COOKIE[$name];$key md5($key);$sc new \Common\Lib\SysCrypt($key);$value $sc-…

Zabbix5.0_介绍_组成架构_以及和prometheus的对比_大数据环境下的监控_网络_软件_设备监控_Zabbix工作笔记

z 这里Zabbix可以实现采集 存储 展示 报警 但是 zabbix自带的,展示 和报警 没那么好看,我们可以用 grafana进行展示,然后我们用一个叫睿象云的来做告警展示, 会更丰富一点. 可以看到 看一下zabbix的介绍. 对zabbix的介绍,这个zabbix比较适合对服务器进行监控 这个是zabbix的…

PyTorch框架中torch、torchvision、torchaudio与python之间的版本对应关系(9月最新版)

随着python语言和pytorch框架的更新,torch\torchvision\torchaudio与python之间的版本对应关系也在不断地更新。 最新版本torch与torchvision对应关系如下: 稍旧版本torch与torchvision对应关系如下: 最新版本torch与torchaudio对应关系如下…

计算机竞赛 深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …

如何将视频进行分割?这几种分割方法了解一下

当我们将视频分成几段后,可以更好地组织和管理不同的片段,方便后续查找和使用。我们可以根据需要调整视频的长度和内容,满足不同的观看需求。此外,分段视频可以更好地适应不同的观看场景,可以更方便地分享和传播&#…

【网络协议】Http-上

Http请求结构: 结构图1: 实验解析请求报文: 1.在Edge浏览器上输入ip地址端口号文件资源,也就是下图中的120.XX.139.29:8888/A/B/c.html 2.我的程序接收到了一个没有有效载荷的http请求(呼应上面的结构图1),如下 GET …

三维模型3DTile格式轻量化在数据存储的重要性分析

三维模型3DTile格式轻量化在数据存储的重要性分析 三维模型3DTile格式轻量化在数据存储中占有重要地位。随着科技的不断发展,尤其是空间信息科技的进步,人们对于三维地理空间数据的需求日益增长。然而,这类数据通常具有大尺度、高精度等特点&…

pip pip3安装库时都指向python2的库

当在python3的环境下使用pip3安装库时&#xff0c;发现居然都指向了python2的库 pip -V pip3 -V安装命令更改为&#xff1a; python3 -m pip install <package>

C++跳坑记:位移超出范围的处理

在C编程中&#xff0c;数据类型的选择不仅影响内存占用和性能&#xff0c;还可以对某些操作的结果产生意想不到的影响。今天&#xff0c;我将分享一个关于C在不同变量类型下位移操作结果的发现。 位移操作是C中常见的对整数的高效操作之一。然而&#xff0c;我们可能会忽视一个…

交换机端口镜像详解

交换机端口镜像是一种网络监控技术&#xff0c;它允许将一个或多个交换机端口的网络流量复制并重定向到另一个端口上&#xff0c;以便进行流量监测、分析和记录。通过端口镜像&#xff0c;管理员可以实时查看特定端口上的流量&#xff0c;以进行网络故障排查、安全审计和性能优…

docker总结

Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…

VVICAPI接口解析,实现根据ID取商品详情

VVICAPI是一个虚构的API接口名称&#xff0c;我无法提供具体的VVICAPI接口解析。但是&#xff0c;我可以向您展示一般的API接口使用方法&#xff0c;以及如何根据ID获取商品详情的示例代码。 假设您有一个名为"VVICAPI"的接口&#xff0c;并且您已经获得了访问该接口…

go语言初学(备忘)

1、安装 2 路径配置 C:\Program Files\Go\bin 3新建一个工程 4、下载VSCode 并安装插件 创建一个调试文件 在main目录下新建一个test.go脚本 package main import "fmt" func main() { fmt.Println("Hi 1111") fmt.Println("testasdf") } 断点…

【使用Cpolar将Tomcat网页传输到公共互联网上】

文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境变量2.3 环境配置2.4 Tomcat运行测试2.5 Cpolar安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#…

SpringBoot3基础:最简项目示例

说明 本文建立一个最基本的SpringBoot3项目&#xff0c;依赖项仅包含 spring-web&#xff08;SpringMVC&#xff09;。 备注&#xff1a;SpringBoot3需要JDK17支持&#xff0c;配置方法参考&#xff1a; SpringBoot3项目中配置JDK17 项目结构图示 POM <?xml version&qu…

解决qml编译时出现错误ninja: build stopped: subcommand failed.

qml编译时出现错误ninja: build stopped: subcommand failed. 如下图&#xff1a; 解决这个编译错误其实很简单&#xff0c;我把Window写错了&#xff0c;写成了window, 如果有类似的报错&#xff0c;可以检查一下qml代码是否有问题。当然在Qt Creator里也没有错误提示&#x…

Redis 面试常见问答

本文出自&#xff1a;https://thinkinjava.cn 作者&#xff1a;莫那 鲁道 1. 什么是缓存雪崩&#xff1f;怎么解决&#xff1f; 一般而言&#xff0c;我们会利用缓存来缓冲对数据库的冲击&#xff0c;假如缓存无法正常工作&#xff0c;所有的请求便会直接发送至数据库&#xf…