3D 纹理贴图基础知识

在线工具推荐: 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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

陈可之|三峡|《河水不犯井水的游戏》

《河水不犯井水的游戏》 尺寸:130x90cm 陈可之2007年绘 油画《河水不犯井水的游戏》是陈可之先生三峡系列作品之一,巧借古代传说,并具象化为螃蟹、乌龟、长江水,描绘了一幅和谐共生的画面。 画面右侧,蜿蜒宽阔的长江水…

内存函数的学习

额外知识点 第一个 假设c为int类型,(char)c之后,之后如果还用变量c的话,c依然为int类型。()强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …

Latex生成的PDF中加入书签/Navigation/导航

本文参考:【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客 (这篇文章写的真的太棒了!非常推荐) 题外话,我的碎碎念,这也是我如何提高搜索能力的办法:想在Latex生成的PDF中加入…

解决用Fiddler抓包,网页显示你的连接不是专用/私密连接

关键:重置fiddler的证书 在Fiddler重置证书 1、Actions --> Reset All Certificates --> 弹窗一路yes 2、关掉Fiddler,重新打开 3、手机删掉证书,重新下载安装。 (如果还不行,重新试一遍,先把浏览器…

用python对航空公司客户价值进行聚类分析

1.实验目的 1.会用Python创建KMeans聚类分析模型; 2.使用KMeans模型对航空公司客户价值进行聚类分析; 3.会对聚类结果进行分析 2.实验设备 Jupyter notebook 3.实验原理 4.实验内容 使用sklearn.cluester的KMeans类对航空公司客户数据进行聚类分析&…

Springboot+vue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的装饰工程管理系统,采用M&#xff08…

TSINGSEE青犀可视化视频云平台JT/T1078接入能力在智慧物流中的应用

一、引言 随着科技的快速发展和全球贸易的蓬勃发展,智慧物流成为了现代物流业的重要发展方向。智慧物流通过引入先进的信息技术,实现了物流过程的自动化、智能化和信息化,从而提高了物流效率和准确性。在这个过程中,JT/T1078接入…

天文观测与计算机技术:粉丝的视角

天文观测与计算机技术:粉丝的视角 在浩瀚无垠的宇宙中,每一颗星星都像是神秘的密码,等待我们去破译。作为天文观测的粉丝,我深知每一个美丽的星图背后都离不开计算机技术的支持。在这篇文章中,我将分享我对天文观测与…

蓝桥杯第二场小白入门赛(1~5)(对不起,我线段树太菜了)

1.模拟 2.贪心 3.二分 4.数论 5.数论 6.线段树&#xff08;线段树还是练少了...&#xff09; 1. 蓝桥小课堂-平方和 直接模拟&#xff0c;注意数据范围 #include <bits/stdc.h> using namespace std; #define LL long long #define pb push_back #define x first …

华清远见嵌入式学习——ARM——作业2

目录 作业要求&#xff1a; 现象&#xff1a; 代码&#xff1a; 思维导图&#xff1a; 模拟面试题&#xff1a; 作业要求&#xff1a; GPIO实验——3颗LED灯的流水灯实现 现象&#xff1a; 代码&#xff1a; .text .global _start _start: 设置GPIOEF时钟使能 0X50000…

【Linux驱动】字符设备驱动程序框架 | LED驱动

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;Hello驱动程序⚽驱动程序框架⚽编程 &#x1f3c0;LED驱动⚽配置GPIO⚽编程驱动…

【Linux C | 文件I/O】文件的读写 | read、write、lseek 函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

一个简单的 HTTP 请求和响应服务——httpbin

拉取镜像 docker pull kennethreitz/httpbin:latest 查看本地是否存在存在镜像 docker images | grep kennethreitz/httpbin:latest 创建 deployment&#xff0c;指定镜像 apiVersion: apps/v1 kind: Deployment metadata:labels:app: httpbinname: mm-httpbinnamespace: mm-…

[管理者与领导者-129]:很多人对高情商的误解,工程师要扩展自己的情商吗?工程师如何扩展自己的情商?

目录 前言&#xff1a; 一、什么是高情商&#xff1f; 1.1 什么是高情商 1.2 情商的五大能力 1.3 高情商的层次 1.4 对高情商的误解? 二、工程师需要发展自己的高情商吗&#xff1f; 三、工程师如何扩展自己的情商&#xff1f; 四、什么样的“高情商”的管理者令人讨…

攻防世界——Hello, CTF

运行可以发现这是输入型的flag &#xff08;re题目分为两类&#xff0c;一种你直接输入flag&#xff0c;还有一种就是你完成某个操作后&#xff0c;给你flag&#xff09; 可以发现关键字符串就是wrong 和 input 32位 IDA打开 进入直接进入字符串界面&#xff0c;发现关键字符…

使用Swift Package Manager (SPM)实现xcframework分发

Swift Package Manager (SPM) 是苹果官方提供的用于管理 Swift 项目的依赖关系和构建过程的工具。它是一个集成在 Swift 编程语言中的包管理器&#xff0c;用于解决在开发过程中管理和构建包依赖项的需求。 1、上传xcframework.zip到服务端 压缩xcframeworks成一个zip包&…

SqlServer数据取头取尾

SqlServer数据取头取尾 案列一&#xff1a; --表有以下字段和数据 DROP TABLE #temptable CREATE TABLE #temptable ( [SN] nvarchar(255), [STATUSCODE] int, [NAME] nvarchar(255), [STATUSDESC] nvarchar(255), [REASON] nvarchar(255), [RUNTIME] datetime, [END_TIME] d…

js 图片 手动上传,并回显

效果展示&#xff1a; 代码&#xff1a; <label for"avatarUpload"><div><img v-if"avatatImageUrl" :src"avatatImageUrl" class"avatar"><img v-else src"../../assets/images/account/avatar-upload.png…

60、UART任意时间缓冲打印信息--解决写代码调试时中断中打印信息问题

/********************************************************************** *file:UART任意时间缓冲打印信息–解决写代码调试时中断中打印信息问题 *author:残梦 *versions:V1.0 *date:2023.12.23 note: 方案&#xff1a;创建一个缓冲区&#xff0c;任意时间添加数据至缓冲区…

C++设计模式 #3策略模式(Strategy Method)

动机 在软件构建过程中&#xff0c;某些对象使用的的算法可能多种多样&#xff0c;经常改变。如果将这些算法都写在类中&#xff0c;会使得类变得异常复杂&#xff1b;而且有时候支持不频繁使用的算法也是性能负担。 如何在运行时根据需求透明地更改对象的算法&#xff1f;将…