UV贴图和展开初学者指南
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎
介绍
这正是本文的主题——UV贴图——登上舞台的时候。大多数 3D 建模软件在创建网格时会创建 UV 布局。但是,这并不意味着您不需要对其进行编辑和调整以适应模型的要求。然后是UV贴图和解包,这是3D建模离不开的。
听起来很难?

尽管如此,这些概念听起来很复杂。实际上,它要简单得多,我们将证明这一点。
什么是UV贴图?
UV 贴图是 3D 对象表面的二维表示。它由与模型信息的顶点相对应的 UV 或纹理坐标构成。每个纹理坐标在 3D 空间中都有一个对应的点 - 顶点。因此,这些坐标用作标记点,用于定义纹理上的哪些像素对应于哪些顶点。

注意:UV 贴图中的 U 和 V 表示 2D 纹理的水平轴和垂直轴,因为 X、Y 和 Z 已经用于表示 3D 空间的这些轴。
UV 贴图对 3D 工作流程至关重要。因此,当您学习如何进行 3D 建模时,您不会错过它。尽管大多数应用程序在创建模型时都会创建 UV 布局,但不要依赖它来为您完成所有工作。
很多时候,您必须从头开始编辑甚至创建UV贴图。这称为UV展开。
UV 展开:元素
UV 展开是将 3D 几何体展开或展平为 2D 表示的过程,以便 3D 对象的每个多边形和面都绑定到 UV 贴图中的面。
不幸的是,当您对模型进行UV展开时,失真是不可避免的。多边形的大小和形状已经并将会发生变化,以适应展平过程。因此,您必须尽最大努力尽可能少地造成变形,同时将接缝保持在最低限度。
还有其他事情。
接缝
接缝是网格的一部分,您必须将其拆分,以便从 3D 网格中创建 2D UV 贴图。
如果您的纹理没有被拉伸并且对象有硬边,那么分割所有多边形似乎是一个完美的选择。但是,它只会以大量接缝的形式出现缺点。

(来源:YouTube)
有没有办法解决这个问题?
您可以减少接缝的数量,但代价是纹理扭曲,最终不会在对象周围流畅流动。

(来源:YouTube)
不要对自己太苛刻。几乎不可能使接缝不明显。相反,您可以通过遵循某些规则来学习隐藏它们:
- 将接缝隐藏在对象其他部分后面。
- 使用自动贴图投影工具从多个平面投影UV贴图。
- 使接缝遵循模型的硬边缘或切口。
- 将它们创建为位于模型焦点的下方或后面。
- 直接在 3D 应用程序中的纹理中绘制主题。
专业提示:使用UV编辑器创建UV贴图后,使用软件中的相应工具创建UV贴图的快照。它将为您的UV贴图拍照,并将其保存为首选的图像格式。然后,您将能够在 2D 绘画工具中将其导入并绘制到 3D 模型上。
重叠的 UV
当 UV 映射与 UV 重叠时,您将遇到的另一个陷阱。当您有两个或多个多边形占用相同的 UV 空间时,就会发生这种情况。相应地,重叠的 UV 是指这些多边形彼此叠加并显示相同的纹理。
UV 展开问题 – 重叠
通常,您必须避免重叠的 UV,以便纹理看起来正确且多样。但是,有时如果纹理太基本,您甚至可能会故意使用它来重复网格多个部分的纹理。
注意: 它可以减小纹理的大小,并在需要时使游戏引擎运行更流畅,尤其是当模型用于移动设备时。
UV通道
如果您的 3D 模型需要多个 UV 贴图,尤其是对于游戏引擎,您应该探索 UV 通道。
有时,您的模型可能不需要纹理贴图,但仍然需要用于光照烘焙的 UV 贴图。许多实时引擎,如Unity或虚幻引擎4,都需要它。在这种情况下,没有重叠UV的地方,因为阴影信息将应用于模型的错误部分。
或者,您可以使用 2 个 UV 通道,一个用于纹理的 UV 贴图,另一个用于照明的 UV 信息。
现在我们已经介绍了UV贴图的元素,是时候深入研究如何将其应用于对象了。
UV 映射投影类型
UV 展开是将 3D 模型转换为 2D 表示的过程,而 UV 贴图是将 2D 图像投影到 3D 表面上,以便将 2D 纹理包裹在其周围。
通常,它是通过部署不同UV贴图投影类型的投影技术完成的。它们通常基于简单的几何形状,这是一个很好的开始方式。
球面图
顾名思义,球面投影用于具有球形的物体上,以将纹理包裹在多边形网格周围。

球面投影类型(来源:YouTube)
圆柱图
可以完全封闭且在圆柱体内可见的对象(如腿或手臂)使用圆柱投影类型进行映射。

球面投影类型(来源:YouTube)
平面图
如果 3D 对象非常简单且相对平坦,则平面投影是将 UV 贴图投影到其上的最佳选择。否则,如果模型过于复杂,平面投影将导致重叠的UV并扭曲纹理。

平面投影类型(来源:YouTube)
我们刚才提到的所有投影类型也是如此。一旦开始 3D 角色建模或任何其他类型的复杂网格建模,您会发现这些投影类型不是很有用。
尽管如此,您仍然可以完全控制 UV 贴图,因为您可以将不同的投影类型应用于网格的每个面以获得更好的效果。此外,您也可以选择某些软件为您提供的一些高级功能。
UV映射的最佳软件

当您掌握UV贴图时,您会发现一些基本功能不足以达到您的目标结果。这时,使用软件是最佳选择,如:
- GLTF 编辑器 -NSDT 不仅可以设置3D模型纹理贴图,还可以设置模型的几何原点、以及对有相同材质属性的mesh进行合并,实现模型轻量化,是一款不可多得的实用型在线模型编辑工具。
结论
UV贴图是一项需要了解的关键技能,因为它可以让您将纹理平滑地过渡到模型上。此外,它不仅是模型的扁平化拓扑,而且是地图烘焙的基础。
因此,在创建模型时,您必须牢记贴图,因为糟糕的UV贴图会使即使是最好的3D对象看起来也很糟糕。虽然UV贴图是一组概念和术语,一开始可能会让你感到困惑,但随着时间的推移,它开始变得越来越简单。希望本指南能帮助您更接近更好地理解UV贴图。
转载:UV贴图和展开初学者指南 (mvrlink.com)
相关文章:
UV贴图和展开初学者指南
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 这正是本文的主题——UV贴图——登上舞台的时候。大多数 3D 建…...
解密Path环境变量
解密Path环境变量 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入探讨程序开发中不可或缺的一项关键技术——“path环境变量”。无论…...
git撤销提交到本地的commit
有些时候,当我们提交代码到本地后,突然发现因为某些原因需要撤销提交本地的代码。 就比如我,因为代码写错了分支,已经提交到本地了,而我需要取消,并且还要把代码搞得另外的分支上。 提交前: …...
使用Adobe Acrobat Pro DC给pdf文件填加水印
前言 GPT4的官方售价是每月20美元,很多人并不是天天用GPT,只是偶尔用一下。 如果调用官方的GPT4接口,就可以按使用量付费,用多少付多少,而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…...
解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题
目录 问题: 尝试 问题得到解决 我的解释 问题: 最近游戏要上线,发现一个现象,部分机型在启动的时候闪退或者黑屏,概率是5%左右,通过Bugly只有个别机型才有这个现象,其实真实情况比这严重的多…...
SpringBoot默认配置文件
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot默认配置文件 📚个人知识库: Leo知识库,欢迎大家访问 1.前言☕…...
Flink构造宽表实时入库案例介绍
1. 安装包准备 Flink 1.15.4 安装包 Flink cdc的mysql连接器 Flink sql的sdb连接器 MySQL驱动 SDB驱动 Flink jdbc的mysql连接器 2. 入库流程图 3. Flink安装部署 上传Flink压缩包到服务器,并解压 tar -zxvf flink-1.14.5-bin-scala_2.11.tgz -C /opt/ 复…...
【Kubernetes】K8s 查看 Pod 的状态
K8s 查看 Pod 的状态 [rootk8s-master1 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-3 1/1 Running 2 (34m ago) 14hNAME:Pod 的名称。READY:代表 Pod 里面有几个容器,前面是启动的,后面…...
Linux系统操作命令
Linux管理 在线查询Linux命令: https://www.runoob.com/linux/linux-install.htmlhttps://www.linuxcool.com/https://man.linuxde.net/ 1.Linux系统目录结构 Linux系统的目录结构是一个树状结构,每一个文件或目录都从根目录开始,并且根目…...
大模型学习与实践笔记(五)
一、环境配置 1. huggingface 镜像下载 sentence-transformers 开源词向量模型 import os# 设置环境变量 os.environ[HF_ENDPOINT] https://hf-mirror.com# 下载模型 os.system(huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-…...
100个GEO基因表达芯片或转录组数据处理之GSE126848(003)
写在前边 虽然现在是高通量测序的时代,但是GEO、ArrayExpress等数据库储存并公开大量的基因表达芯片数据,还是会有大量的需求去处理芯片数据,并且建模或验证自己所研究基因的表达情况,芯片数据的处理也可能是大部分刚学生信的道友…...
1. Presto基础
该笔记来源于网络,仅用于搜索学习,不保证所有内容正确。文章目录 一、presto基础操作二、时间函数0、当前日期/当前时间1、转时间戳1)字符串转时间戳 (推荐)2)按照format指定的格式,将字符串str…...
ChatGPT可以帮你做什么?
学习 利用ChatGPT学习有很多,比如:语言学习、编程学习、论文学习拆解、推荐学习资源等,使用方法大同小异,这里以语言学习为例。 在开始前先给GPT充分的信息:(举例) 【角色】充当一名有丰富经验…...
20240111在ubuntu20.04.6下解压缩RAR格式的压缩包
20240111在ubuntu20.04.6下解压缩RAR格式的压缩包 2024/1/11 18:25 百度搜搜:ubuntu rar文件怎么解压 rootrootrootroot-X99-Turbo:~/temp$ ll total 2916 drwx------ 3 rootroot rootroot 4096 1月 11 18:28 ./ drwxr-xr-x 25 rootroot rootroot 4096 1月…...
YOLOv5改进 | 检测头篇 | ASFFHead自适应空间特征融合检测头(全网首发)
一、本文介绍 本文给大家带来的改进机制是利用ASFF改进YOLOv5的检测头形成新的检测头Detect_ASFF,其主要创新是引入了一种自适应的空间特征融合方式,有效地过滤掉冲突信息,从而增强了尺度不变性。经过我的实验验证,修改后的检测头在所有的检测目标上均有大幅度的涨点效果,…...
第十三章 接口测试(笔记)
一、接口测试分类 内部接口:测试被测系统各个子模块之间的接口,或者被测系统提供给内部系统使用的接口 外部接口: 1.被测系统调用外部的接口 2.系统对外提供的接口 接口测试重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错…...
Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问
Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问 前言1、创建仓库2、开启 gh-pages页面功能3、访问测试 前言 写博客文章时,图片的上传和存放是一个问题,使用小众第三方图床,怕不稳定和倒闭&…...
Airtest-Selenium实操小课②:刷B站视频
1. 前言 上一课我们讲到用Airtest-Selenium爬取网站上我们需要的信息数据,还没看的同学可以戳这里看看~ 那么今天的推文,我们就来说说看,怎么实现看b站、刷b站的日常操作,包括点击暂停,发弹幕,点赞&#…...
Linux chmod命令详解
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令 Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)…...
求幸存数之和 - 华为OD统一考试
OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 给一个正整数列nums,一个跳数jump,及幸存数量left。运算过程为:从索引为0的位置开始向后跳,中间跳过 J 个数字,命中索引为 J+1 的数字,该数被敲出,并从该点起跳,以此类推,直到幸存left个数为止。…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
