3D 纹理贴图基础知识

news2025/1/21 9:19:52
在线工具推荐: 3D数字孪生场景编辑器  -  GLTF/GLB材质纹理编辑器  -  3D模型在线转换  -  Three.js AI自动纹理开发包  -  YOLO 虚幻合成数据生成器  -  三维模型预览图生成器  -  3D模型语义搜索引擎

介绍

纹理贴图是创建模型时离不开的最后一块拼图。同样,如果没有纹理贴图的多样性,任何 3D 可视化或 3D 建模服务都无法提供出色的结果。

它们用于创建特殊效果、重复纹理、图案和精细细节,如头发、皮肤等。如果您有完整的网格和 UV 贴图,则简单地对其应用纹理不会产生结果。

您需要纹理贴图来定义 3D 模型的颜色、光泽度、发光度、透明度和许多其他特征属性。 GLTF 编辑器 -NSDT 是一款在线材质纹理贴图工具,您可以借助此工具完成3D模型的纹理贴图设置工作。

但首先要做的事情,我们将先熟悉 3D 建模中最常见的纹理贴图类型及其类别。

什么是纹理贴图?

纹理贴图本质上是将 2D 图像应用到 3D 对象的表面上,称为 UV 贴图,因此计算机可以在渲染期间在对象上生成该数据。

简单地说:纹理映射就像将图像包裹在对象周围,以将纹理的像素映射到 3D 表面。

它大大减少了创建复杂 3D 场景所需的多边形和闪电计算的数量。

什么是纹理映射

PBR 与非 PBR 建模

你甚至在完成网格之前就开始处理纹理,因为你必须始终牢记它。您为其创建模型的软件决定了您将使用哪些纹理贴图来添加细节

有 PBR 或非 PBR 材质的纹理贴图。两者都提供逼真的纹理,但一个非常适合游戏引擎,另一个用于营销和促销目的。

PBR 是基于物理的渲染的缩写,它使用精确的照明来实现逼真的纹理。虽然它出现在 1980 年代,但现在它已成为所有材料的标准。

使用 PBR 的最佳 3D 建模软件是 Unity、虚幻引擎 4、Painter、Substance 和即将推出的 Blender v2.8。

相反,非PBR也带来了令人惊叹的逼真效果,但价格要高得多。您需要使用更多的贴图和设置才能获得这些结果,即使纹理具有灵活性。

GLTF编辑器支持GLTF/GLB在线预览、材质编辑、重置原点、以及模型轻量化(将相同材质Mesh合并)。GLTF editor supports GLTF/GLB online preview, material editing, reset origin, and model lightweight (merging the same material Mesh)

GLTF 编辑器 -NSDT是使用非 PBR 纹理贴图的最常见应用程序。

话虽如此,如果您为游戏引擎创建 3D 模型,最好使用 PBR 纹理。不过,如果您追求促销目的,则可以使用非 PBR 纹理渲染模型。

专业提示:无论哪种方式,您都必须对模型进行UV展开,以便纹理按照您想要的方式映射到模型上,而不管使用何种纹理类型。

PBR 纹理贴图

不同纹理贴图指南

现在,由于 PBR 变得更加标准化并提供更多种类的纹理贴图,我们将从它们开始。

如前所述,将要放置到 3D 模型上的 2D 图像不足以获得结果。您可以使用多个纹理贴图来调整不同的选项,以增加模型的丰富性和微妙性。因此,每张地图负责不同的效果。

有以下纹理贴图:

1. 反照率

反照率纹理贴图是您在模型中使用的最基本的贴图之一,因为它们定义了模型的基本颜色,没有阴影或眩光。关于这一点,它们可以是要应用于对象的图案的平面光图像,也可以是单一颜色。

注意:为避免 3D 模型不一致,请确保照明是平坦的。闪电可能与源图像不同。它只会产生不必要的阴影。

反照率漫反射基本色彩映射表

反照率贴图

此外,它们通常用于遮蔽反射光,尤其是在金属纹理中。

2. 环境光遮蔽

地图比例尺:灰色 一 黑色表示阴影区域,白色 一 表示最亮的区域。

如果你正在寻找与反照率贴图相反的东西,但找不到它的名字,那就是环境光遮蔽贴图,通常被称为AO。AO 纹理贴图通常由 PBR 引擎与反照率相结合,以定义它对光的反应方式。

AO地图映射

AO贴图

用于通过模拟环境产生的阴影来提高对象的真实感。因此,阴影不是纯黑色,而是更逼真、更柔和,尤其是在光线较少的地方。

环境光遮蔽图

环境光遮蔽贴图

3. 正常

地图比例尺: RGB 值 一 绿色、红色和蓝色,对应于 X、Y 和 Z 轴。

在法线贴图中,RGB 值(绿色、红色和蓝色)用于在模型中创建凹凸和裂缝,以增加多边形网格的深度。R、G 和 B 指示基础网格在三个方向上的 X、Y 和 Z 轴,以确保更高的精度。

Normals 地图对象

法线贴图

此外,需要注意的是,法线贴图不会改变对象的基本几何体。他们只是使用复杂的计算来伪造带有灯光效果的凹痕或凸起

注意:由于法线贴图中使用了大量光线,因此您应该更好地隐藏对象的接缝,除非您希望清楚地看到它们。

法线贴图纹理

通过这种方法,这些凸起在某个观察点之后是不可见的,特别是如果它们被夸大了。但是,它允许在获取真实对象时保持较低的多边形计数。

所以,这是双赢的。

4.粗糙度

地图比例尺: 灰色一黑色代表最大粗糙度,白色一代表表面光滑。

粗糙度或光泽度纹理贴图是不言自明的贴图。因此,它定义了模型的平滑程度,具体取决于光线的反射方式。这张地图至关重要,因为不同的物体具有不同程度的粗糙度。就像,光线不会以同样的方式散射在镜子和橡胶上。

粗糙度贴图纹理

粗糙度贴图

因此,要以最佳方式将其反映在模型中,您必须调整粗糙度值。如果为零,则模型根本不会散射光。在这种情况下,闪电和反射会更亮。

另一方面,如果它已满,您的材料将获得更多的散射光。但是,照明和反射会显得更暗。

粗糙度图示例

5. 金属性

地图比例尺: 灰色一黑色表示非金属色,白色一表示全金属色。

这个很容易猜到。此纹理贴图定义对象是否由金属制成。金属反射光线的方式与其他材料不同,因此它可以对物体的最终外观产生影响。它可以轻松模拟真实材料,并与反照率图紧密相连。

虽然金属贴图是灰度的,但建议仅使用黑白值。

金属地图

金属贴图

在这种情况下,黑色表示贴图的该部分,使用反照率贴图作为漫反射颜色,使用白色 I 来定义反射的亮度和颜色,并将黑色设置为材质的漫反射颜色。

反射为材质提供了细节和颜色,因此在这种情况下,漫反射颜色无关紧要。

金属度分布图

金属度贴图

总的来说,金属地图提供了巨大的价值,但与反照率地图捆绑在一起会给使用它们带来一些限制。

6. 高度

地图比例尺: 灰色一黑色代表网格的底部,白色一代表峰顶。

要从普通纹理贴图更进一步,您必须使用高度贴图。它们为您提供最佳细节,在所有角度和不同的照明下看起来都同样出色

高度地图比例尺

高度贴图

高度图被认为是资源密集型的。它们不是伪造凹痕和凸起,而是实际修改模型的几何形状。在网格中添加小细节似乎没什么大不了的,直到您意识到更精细的细节是有代价的。

专业提示:如果您想在 Web 上使用高度纹理贴图,最好在导出 3D 模型时对其进行烘焙。

Height Map 对象

高度贴图会增加对象的多边形数量。对于高多边形建模来说可能没问题,但这些贴图仍然会减慢渲染时间。这就是为什么它只被高端游戏引擎使用,而其他人则更喜欢普通地图。

7. 镜面反射

地图比例:全RGB一绿、红、蓝(金属色不带反照率)。

金属度贴图的替代方案是镜面贴图,它提供了相同的效果,甚至更好。此纹理贴图负责对象反射的颜色和光量。如果要在非金属材料上创建阴影和反射,这一点很重要

在 PBR 纹理中,镜面反射会影响反照率从所需纹理中渲染的方式,并且可以为此使用全 RGB 颜色。

假设您想使用金属贴图创建黄铜材质。在这种情况下,您只需在反照率中将地图的该部分涂成黄铜色即可。材料会出现黄铜。

镜面贴图与金属性

镜面贴图和金属度贴图比较

相反,如果您使用镜面反射贴图,反照率的黄铜部分将是黑色的。在这里,您需要将黄铜细节绘制到镜面贴图上。结果会是一样的,一材质会出现黄铜。

虽然使用镜面贴图可以获得更大的灵活性,但该过程会增加此方法的复杂性

所以,这取决于你使用哪一个 金属性或镜面反射。

8. 不透明度

地图比例尺: 灰色一黑色定义透明,白色一不透明。

由于金属、木材和塑料不是模型中使用的唯一材质,因此了解不透明度纹理贴图非常重要。它允许您使模型的某些部分透明,尤其是在创建玻璃元素或树枝时。

不透明度贴图

使用不透明度贴图创建立方体

但是,如果您的物体是实心玻璃或由其他半透明材料制成,则最好使用不透明的常量值 0.0 和 1.0。一、透明。

9. 折射

地图比例:常量值。

反射和折射图

应用于对象的折射贴图和反射贴图

物体的材料定义了光线如何从它身上反射。光线会相应地影响物体看起来是否足够真实。这对于某些表面(如玻璃和水)尤为重要,因为它们会影响穿过它们的光的速度。

因此,光在通过气体或液体时会弯曲,这称为折射。这就是为什么某些东西在通过透明物体观察时看起来会失真的原因。折射在现实生活中对此做出了贡献,折射纹理贴图有助于在 3D 空间中复制它。

10. 自发光

地图比例:全RGB。

3ds Max 中的自发光贴图

3d Max 自发光

与物体可以反射“外部”光一样,它也可以发出一些光,在黑暗区域也可以看到。这就是最后一个完整的 PBR 纹理贴图 1 自发光或自发光颜色贴图 1 发挥作用的地方。

它用于创建一些 LED 按钮或模拟建筑物发出的光。基本上,它就像一张反照率图,但是为了光。

专业提示:虽然您可以使用自发光贴图照亮整个场景,但它可以消除 3D 模型的真实感。在这种情况下,最好使用传统照明。

非 PBR 纹理贴图

由于非 PBR 纹理贴图没有标准化或通过各种 3D 建模软件使用,因此有相当多的纹理贴图需要涵盖。

扩散性

漫反射贴图等同于反照率贴图。它们不仅定义了物体的基本颜色,而且被软件用来对反射光进行着色。这实际上就是漫反射贴图与反照率的区别。

漫反射贴图不是使用平面光制作的,而是使用阴影信息为周围的对象着色。你几乎不会注意到它,但它会让你的 3D 对象更加逼真。

碰撞

地图比例尺: 灰色 a 黑色表示几何形状的最低点,白色 a 表示最高点。

凹凸贴图类似于普通的 PBR 贴图,但在这种情况下更基本。它们是资源密集度最低的,并使用简单的算法来改变 3D 模型的外观。

与法线贴图不同,它们不使用 RGB 来指示空间的三维空间。相反,它们利用向上或向下方向工作的灰度贴图,其中黑色是几何图形的最低点,白色是最高点。

但是,有一个缺点。凹凸纹理贴图最适合平面,因为在圆形物体及其边缘上伪造几何图形是摇摇欲坠的。

这种不准确性是比例尺偏向法线贴图的原因。

反射

最后,反射贴图等同于 PBR 工作流程中的光泽度/粗糙度贴图。它们通常是一个常量值,用于定义对象应投射反射的位置。

注意:除非使用不同的材质,否则整个对象上都可以看到反射。

总结

GLTF 编辑器 是一个功能强大、易于使用的在线3D模型编辑和查看工具,它支持多种格式的3D模型导入并将模型导出为GLB格式,除了可以对3D模型进行基本属性的修改之外,还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说,GLTF 编辑器 是一个非常有用的工具,可以帮助他们更方便地处理3D模型。

转载:3D 纹理贴图基础知识 (mvrlink.com)

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

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

相关文章

Go自定义PriorityQueue优先队列使用Heap堆

题目 分析 每次找最大的,pop出来 然后折半,再丢进去 go写法 go如果想用heap,要实现less\len\swap\push\pop 但可以偷懒,用sort.IntSlice,已经实现了less\len\swap 但由于目前是大根堆,要重写一下less 因此&#xff…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)ChannelMap 模块的实现

(三)ChannelMap 模块的实现 这个模块其实就是为Channel来服务的,前面讲了Channel这个结构体里边它封装了文件描述符。假如说我们得到了某一个文件描述符,需要基于这个文件描述符进行它对应的事件处理,那怎么办呢&…

【Web】面向小白的CTF中搭docker常用命令

目录 准备 搭建容器 有docker-compose 无docker-compose 只给tar包 查看容器各项信息 销毁容器 最近总有师傅问docker怎么搭,一个一个回比较麻烦,干脆写一篇文章。 准备 你需要准备一个安装了docker的vps,还要一个终端管理工具&…

测试开发体系介绍——测试体系介绍-L2

目录: 被测系统架构与数据流分析 开源项目 LiteMall 系统架构:开源项目 Mall 的系统架构:如何快速了解一家公司的架构统一建模语言 UML推荐工具梳理业务流程:使用思维导图分析功能点:使用时序图分析数据流:使用活动图分析测试用例…

如何使用 NFTScan NFT API 在 Base 网络上开发 Web3 应用

Base 是 Coinbase 使用 OP Stack 开发的最新以太坊第 2 层(L2)网络,用于解决以太坊等主要区块链面临的可扩展性和成本挑战。Coinbase 将其描述为“安全、低成本、对开发人员友好的以太坊 L2,旨在将下一个 10 亿用户带入 Web3”。B…

MFC 自定义压缩,解压缩工具

界面效果如下: 对外提供的接口如下: public: void setCallback(zp::Callback callback, void* param); bool open(const zp::String& path, bool readonly false); bool create(const zp::String& path, const zp::String& inputPath)…

医保购药小程序:智能合约引领医疗数字革新

在医疗领域,医保购药小程序通过引入智能合约技术,为用户提供更为高效、安全的购药体验。本文将通过简单的智能合约代码示例,深入探讨医保购药小程序如何利用区块链技术中的智能合约,实现医保结算、购药监控等功能,为医…

mysql索引合并index-merge

1.简单创建表并创建Index age sid CREATE TABLE st (id bigint(20) NOT NULL AUTO_INCREMENT,age int(11) DEFAULT NULL,name varchar(100) DEFAULT NULL,sid bigint(20) DEFAULT NULL,PRIMARY KEY (id),KEY idx_age (age),KEY idx_sid (sid) ) ENGINEInnoDB AUTO_INCREMENT8 …

关于“Python”的核心知识点整理大全34

目录 第13 章 外星人 13.1 回顾项目 game_functions.py 13.2 创建第一个外星人 13.2.1 创建 Alien 类 alien.py 13.2.2 创建 Alien 实例 alien_invasion.py 13.2.3 让外星人出现在屏幕上 game_functions.py 13.3 创建一群外星人 13.3.1 确定一行可容纳…

KubePi JWT 默认密钥权限绕过漏洞复现(CVE-2023-22463)

0x01 产品简介 KubePi 是一款简单易用的开源 Kubernetes 可视化管理面板。 0x02 漏洞概述 KubePi 存在权限绕过漏洞,攻击者可通过默认 JWT 密钥获取管理员权限控制整个平台,使用管理员权限操作核心的功能。 0x03 影响范围 KubePi <= 1.6.2 0x04 复现环境 FOFA: ti…

Ubuntu 常用命令之 ifconfig 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 ifconfig 是一个用于配置和显示 Linux 内核中网络接口的系统管理命令。它用于配置&#xff0c;管理和查询 TCP/IP 网络接口参数。 ifconfig 命令的参数有很多&#xff0c;以下是一些常见的参数 up&#xff1a;激活指定的网络接口…

基于Javaweb的线上招聘问答系统的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

MSVC,cin,后一个输入影响前一个输入的情况

现象&#xff1a; 这是由于输入的name超过了她的最大长度,超过的那部分覆盖了operation中的内容

leecode题解Golang版本-300-最长递增子序列

前言 开设专栏主要是为了能够记录自己刷题过程中的所思所想&#xff0c;以便能够在未来开发工作中能够快速温习并应用。如果文章能够带给大家一些启发&#xff0c;那便是意外之喜了。 题目描述 leecode-300 最长递增子串 给你一个整数数组 nums &#xff0c;找到其中最长严格…

C++11并发与多线程

C11并发与多线程 1. 线程是进程中的实际运作单位 并发&#xff1a;两个或者更多的任务&#xff08;独立的活动&#xff09;同时发生&#xff08;进行&#xff09;&#xff1a;一个程序同时执行多个独立的任务 进程&#xff1a;一个可执行程序运行起来了&#xff0c;就叫创建了…

RocketMQ系统性学习-RocketMQ高级特性之消息大量堆积处理、部署架构和高可用机制

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…

MATLAB遗传算法工具箱的三种使用方法

MATLAB中有三种调用遗传算法的方式&#xff1a; 一、遗传算法的开源文件 下载“gatbx”压缩包文件&#xff0c;解压后&#xff0c;里面有多个.m文件&#xff0c;可以看到这些文件的编辑日期都是1998年&#xff0c;很古老了。 这些文件包含了遗传算法的基础操作&#xff0c;包含…

TrustZone之与非安全虚拟化交互

到目前为止&#xff0c;我们在示例中忽略了非安全状态中可能存在的虚拟化程序。当存在虚拟化程序时&#xff0c;虚拟机与安全状态之间的许多通信将通过虚拟化程序进行。 例如&#xff0c;在虚拟化环境中&#xff0c;SMC用于访问固件功能和可信服务。固件功能包括诸如电源管理之…

C语言数据结构-----常用七种排序介绍、分类、实现及性能比较

前言 ①排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 ②稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#…

Guava的TypeToken在泛型编程中的应用

第1章&#xff1a;引言 在Java世界里&#xff0c;泛型是个相当棒的概念&#xff0c;能让代码更加灵活和类型安全。但是&#xff0c;泛型也带来了一些挑战&#xff0c;特别是当涉及到类型擦除时。这就是TypeToken大显身手的时候&#xff01; 作为Java程序员的咱们&#xff0c;…