UV映射技巧和窍门

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

有一个鲜为人知的主题是纹理映射。这始终是 3D 建模师想要处理的最后一部分,但它会让纹理艺术家发疯。

想象一下,你刚刚完成了你的最新作品:一个奇妙的、多肢的生物,里面有层层的网状细节。现在是时候创建 UV 了。但是,尽管它很漂亮,但你却创造了一个噩梦:没有一个基本的修饰符是有效的。完成纹理映射是一项全面的自定义工作。您必须为每个表面提供自己独特的映射,以消除任何扭曲。这意味着没有拉伸或剪切,并在整个角色上保持一致的像素密度。在执行此操作时,您还必须想出一个纹理艺术家可以理解的纹理贴图。当然,您需要及时完成所有这些工作才能赶上最后期限。欢迎来到纹理贴图的世界。

这篇论文的主要目标是为您提供书中关于UV映射的所有技巧,并提供在每种情况下使用的技巧和方法。此外,除了方法和技巧,我们还可以借助一些简便工具来帮助我们快速的实现UV贴图,如:GLTF 编辑器 -NSDT

基础知识

映射类型及其用途

平面的

平面映射是应用于对象的最基本的映射修饰符。它的工作原理是将纹理从一个方向投影到模型上。因此,它对墙壁和基本地形等物体很有用。但它不能有效地用于具有许多重叠表面的复杂对象,因为它通常会拉伸不直接面向投影地图的多边形。有几种方法可以解决这些问题,我们稍后将介绍这些方法。

盒子映射的工作原理是从六个侧面将所需的纹理投影到模型上。这在处理技术或建筑对象时非常方便,当您只需要快速映射对象中不太重要的部分时。不幸的是,它对于需要精确映射的有机对象不是很有用。箱子映射有用的情况的一个例子是货物集装箱上的小螺丝,或者工厂中的某些金属棒或格栅。当您开始处理需要特定映射的更复杂的对象时,它变得不那么有用。

球形

球面映射将球形图案中的纹理投影到对象上。太空迷喜欢使用这种技术来绘制小行星和行星,但它引起的一个副作用是球体映射的两极处的像素密度非常高。这会导致在绘制纹理时难以抵消的捏合效果。它有助于阻挡人头上的映射,但之后仍然需要进行重大调整。它开始在具有许多重叠部件的模型上失去用处。

圆柱

圆柱形映射比任何其他类型的映射使用更广泛。将纹理以径向图案向内投影,使其对于映射树干、手臂、躯干和腿部等对象非常有用。它对于阻止各种类型网格上的映射非常方便。但是之后仍然需要在UV编辑器中进行大量调整。与其他映射选项一样,它并非在所有情况下都有效。

收缩包装

我还没有看到有人使用此修饰符来映射对象。我还没有弄清楚它的目的或它到底是如何工作的,因为它似乎创造了一些任何技术中最无用的映射解决方案。我不建议将这种技术用于任何对象,如果有人确实发现了它的用途,请告诉我。我很好奇它如何才能付诸实践。

像素密度和拉伸

请务必确保贴图中像素大小的纵横比保持一致 - 没有什么比扭曲贴图更让纹理艺术家烦恼的了。留意纹理被拉伸或歪斜的区域。纹理艺术家需要担心的最后一件事是校正他的纹理以对抗任何扭曲的映射。当您使用的像素面积超过要求时,这也被认为是浪费。

映射接缝

接缝是由于网格形状而在映射中切割产生的伪影。你无法避免接缝,但你可以尽量减少它们的影响以及纹理艺术家修复它们所花费的精力。只需将接缝的顶点与纹理坐标的水平面或垂直平面上的映射中的相应连接对齐即可。这样,当纹理艺术家修复和隐藏接缝时,像素会在其中一个轴上对齐。对于技术对象,更容易摆脱接缝,因为它们往往非常零散,而且对象的性质允许这样做。但是对于有机网格,您应该通过使用准确、连续的映射来尽可能减少接缝的数量(我将在本文后面介绍)。另一种解决方案是使用一个好的 3D 绘画程序,例如 DeepPaint 3D。

对称映射和重叠

有时你会遇到模型 - 通常的角色模型 - 两边都相同(也称为双边对称)。在这种情况下,您可以通过映射模型的一侧,然后将其镜像到另一半,将映射时间缩短一半。

您可以使用的另一项优化是重叠映射坐标。例如,假设你有一个角色,他的背部有很多尖刺突出。您可以使用相同的纹理将所有这些尖峰全部重叠到同一区域,从而将它们映射到同一区域。对于实时角色,这为您节省了大量不必要的纹理分辨率,这些分辨率可以更好地用于其他地方,而不是单独映射每个尖峰。

平铺纹理

长期以来,平铺图形一直是节省内存和映射空间的最快方法之一。例如,可以在橡胶软管或油箱的胎面上使用重复图案。平铺纹理允许您使用较小的纹理区域并重复它,从而在实现逼真效果的同时保持像素密度。地形艺术家广泛使用平铺纹理,但他们使用混合贴图通过将其他平铺纹理相互混合来隐藏平铺图案。我们稍后将对此进行更深入的介绍。

高深

优化的UV布局

优化的UV布局与实时角色特别相关。简而言之,不要在纹理映射中浪费任何空间。由于整个纹理被加载到内存中,因此应尽可能多地使用纹理区域。为此,您应该缩放、旋转和移动那些 UV 映射的顶点位,直到您无法再节省一盎司的空间。把它想象成一个巨大的拼图,没有图片可以使用。您的工作是最大限度地提高像素分辨率,并尽可能少地留下未使用的空间。一个好的UV贴图模型可以使用高达90%的最终图片。如果模型的某些部分很少被看到,请将 UV 映射空间缩小到其原始大小的 50%,并将其塞入某个位置。

连续映射

连续纹理映射通常仅用于有机生物。使用这种方法,您可以尝试链接所有相关身体部位的映射,以减少接缝的数量。这通常涉及巧妙地变形和排列您尝试映射的网格的 UV 映射位。在下图中,您可以看到身体、腿和头部由一个映射区域组成。我还使用了对称性来节省纹理空间。这为纹理艺术家提供了更少的接缝,使他的生活更轻松。简而言之,您可以链接在一起的部件越多越好。然而,尝试用机械部件做到这一点几乎是不可能的:它通常会扭曲纹理。

在某些方面,为有机模型创建纹理贴图很容易,但它确实有其自身的缺陷。首先,在绘制有机生物地图时,您一定会遇到一些疯狂的形状。但幸运的是,由于模型的弯曲性质,您可以在映射中避免更多的翘曲。连续映射绝对是映射有机形状时应该使用的关键技术。密切关注你的接缝数量,并寻找将所有内容统一到一个连续的贴图中的方法,同时尽可能多地利用纹理空间——这本身就是一门艺术。

技术模型映射

技术对象实际上很容易绘制。困难的部分是为糟糕的纹理艺术家组织和优化布局。纹理艺术家得到的只是一个巨大的彩色拼图,他会花几个小时试图弄清楚每个部分的去向。

在映射技术形状时,需要遵循一些简单的规则:

映射不应失真。这是一个技术形状,因此请尽可能保持映射与原始多边形的真实性。

像素长宽比非常重要。没有人愿意涂上大量的小铆钉和螺栓,然后注意到它们在最终的网格上被压扁或拉伸。

方向至关重要。如果纹理艺术家需要将徽标放置在对象上某个位置的多个多边形上,请确保使这些多边形彼此成 90 度角。艺术家最不想做的就是将徽标旋转成奇怪的角度,使它们垂直或水平显示在最终网格上。

让它很容易弄清楚。它必须是一个功能图。因此,它必须有效地利用其空间,同时对于纹理艺术家来说仍然是可理解的。这确实是一种平衡行为。

考虑着色器效果的UV贴图

着色器是游戏世界中一个受欢迎的变化。约翰·卡马克(John Carmack)真正引入了这个概念,他的艺术家充分利用了它。《雷神之锤 3》的角色和环境从着色器的使用中受益匪浅。从层叠的瀑布等作弊效果,到《末影地带》中贯穿机甲装甲外层的能量模式,着色器为世界各地的艺术家开辟了一系列新的视觉可能性。要实现这些效果,您所要做的就是遵循一些基本的映射规则。

例如,你想创建一条流动的河流,包裹着挡路的物体。您所要做的就是确定水流向哪个方向,然后定向和扭曲您的地图以帮助实现这一目标。下图说明了效果的映射和最终外观。我所做的只是拉直了更弯曲的区域,这样当应用着色器时,它看起来就像是在障碍物周围流动。

同样的规则也适用于坦克履带和滚滚浓烟等东西,这些东西是在《自由战士》中用多边形而不是粒子创建的。游戏只是使用了一个简单的滚动纹理,模型的映射是以利用它。

将细节纹理与分层材料混合在一起

细节纹理是混合在另一个纹理上的纹理,其程度取决于您与对象的距离。这样做的好处是,你可以欺骗很多微观细节,而实际上不必使用大量图像。例如,假设您有一面大小为 256x256 像素的砖墙,另一面大小为 128x128 的砖墙。较小的一个将用于细节纹理。通常,当你开始真正靠近墙壁时,它开始看起来模糊不清,但是当较大的纹理与较小的细节纹理结合使用时,当你靠近时会逐渐淡出,它会给人一种更详细的错觉。

细节纹理还有另一个用途,它需要一些编程来为游戏引擎创建像素着色器。使用着色器,您可以在模型上同时使用最多三个不同的细节纹理,使用顶点颜色或额外的纹理来定义混合。您可以使用图片中的 RGB 颜色值来定义混合,并且每个颜色值都与您在游戏材质系统中定义的一个细节纹理一致。这允许从一个细节纹理平滑混合到另一个细节纹理,因为它检查了 RGB 级别。(当然,黑色根本不会出现。下图显示了将细节纹理与颜色映射表结合使用时的颜色示例和最终结果。

而脸部本身的最后弯曲:

Renier 的纹理映射过程

不,我将解释我在 3ds max 中为 UV 映射对象开发的方法。习惯它需要一些工作,但一旦你习惯了它,你可能再也不会以同样的方式映射对象了。

把它想象成给动物剥皮,然后剥皮,把它放在地上,然后涂漆。为了开始这个过程,我克隆了对象,然后在3ds max中手动将其拆开。然后我组织它并对其应用映射,将其保存到一个单独的文件中。最后,我选择原始对象并从克隆版本加载映射数据。这是对该过程的概述,现在让我更详细地解释一下。

要跟踪的事情

保持相同的多边形计数。 对象的多边形计数需要与克隆对象的原始对象相同。进行最终焊接时,请确保不会意外删除或合并任何多边形。否则,您的映射将无法加载,您需要重新执行。定期保存,并在每次保存之前密切关注该多边形计数。

分离到同一对象。 将模型分解为要映射的所需部分时,请确保将其分离到同一对象。否则,您将删除多边形,并且对象的映射将变得无效,并且您将无法将其加载回原始网格。

克隆对象

克隆对象。 第一步是从原始对象创建克隆。记下其多边形计数并将其放在一边以备后用。接下来,隐藏原始网格,因为你不想编辑它 - 你将把克隆的网格拆开,你不想改变原始网格。

对对象进行碎片化。 由于这是一个对称网格,因此没有理由同时映射两侧。因此,在克隆网格之前,请删除头部的右侧。只需映射一侧并将其映射镜像到另一侧即可。

现在,网格已准备好进行映射。隐藏原始网格,开始拆解克隆。在下面的图片中,你可以看到我已经隔离了耳朵、嘴巴内侧和帽子的前部区域,这是第一个要切割的区域。

这个过程的美妙之处在于,在拆解模型时,您可以使用所有建模工具。只需选择一个您希望多边形面对的视口,然后开始拆开网格,将多边形排列成所需方向,如下图所示。

正如你所看到的,我开始分离多边形,并使它们尽可能地面向视口。这确保了我绘制的所有对象的准确像素密度。确保您在此过程中没有删除任何多边形。

接下来我们转到脸部。在下图中,我突出显示了我计划拆分的部分:

我开始将它们彼此分离,以最佳角度将它们朝向视口。我只是密切关注我的多边形计数,以确保我没有删除任何内容,然后保存场景以防我的电脑崩溃。

如下图所示,网格非常碎片化。不过,这不是问题——我最终会处理好这件事。

现在一切都已分离并布局良好,我们可以开始组织它了。我保持 1x1 的布局纵横比,因为该模型将用于实时游戏图形。在移动一些多边形后,最终结果是:

重新组装拼图。 现在它已经组织好了,是时候再次将多边形焊接在一起了。这个过程很简单,不需要太多时间。只需在合并顶点时注意多边形计数即可。经过一些焊接后,这是最终结果。现在是时候将映射转移到最终对象了。

传输映射。 选择网格并将平面贴图应用于模型。现在它已具有映射,请应用 UNWRAP 修饰符。这是我用来加载和保存模型映射的修改器。单击并保存网格的映射。

保存和加载映射。 接下来,取消隐藏原始模型并对其应用另一个 UNWRAP 修改器。单击“加载”,然后将克隆模型中的映射应用到最终网格上。单击“编辑映射”以检查映射是否正确加载。

如果一切顺利,您就拥有了一个具有精确映射的模型。

享受您新映射的模型!

转载:UV映射技巧和窍门 (mvrlink.com)

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

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

相关文章

.NET 6中如何使用Redis

1、安装redis Redis在windows平台上不受官方支持,所以想要在window安装Redis就必须去下载windows提供的安装包。安装地址:https://github.com/tporadowski/redis/releases 2、在NueGet安装包 3、在appsettings.json文件里面添加Redis相关配置信息 &quo…

第11章 GUI Page480~486 步骤二十七 “脏数据”与“新文档”状态维护

wxMyPainterFrame类定义中声明新的成员: 增加一个全局变量,初始化新成员: 先实现TrySaveFile() SaveFile()暂时为空实现 增加两个新的私有成员方法: wxMyPainterFrame类中,修改了“_items”的几个地方 ① 鼠标抬起时…

uniapp中使用tmt-calendar字体的颜色如何修改

tmt-calendar这个插件市场下载的组件默认的眼色为深蓝,如下图 然后能够动态修改这些颜色的参数也很限制,就想着从源代码上面去修改, 但是本人在项目的src/components这个目录下找了很久没有找到 又去node_modules目录下寻找也没有找到&#…

嵌入式——循环队列

循环队列 (Circular Queue) 是一种数据结构(或称环形队列、圆形队列)。它类似于普通队列,但是在循环队列中,当队列尾部到达数组的末尾时,它会从数组的开头重新开始。这种数据结构通常用于需要固定大小的队列,例如计算机内存中的缓冲区。循环队列可以通过数组或链表实现,…

【深度学习】优化器介绍

文章目录 前言一、梯度下降法(Gradient Descent)二、动量优化器(Momentum)三、自适应学习率优化器 前言 深度学习优化器的主要作用是通过调整模型的参数,使模型在训练数据上能够更好地拟合目标函数(损失函…

Fiddler工具 — 9.命令行和状态栏

1、命令行 命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令。 这一系列内置的函数用于筛选和操作会话列表中的session(会话)。 虽然它不是很显眼,但用好它,会让你的工作效率…

python 函数中字典的修改会影响函数外字典的值

def modify_dict(d):d[key] new valueprint(函数中字典d的位置,id(d))# 创建一个字典 original_dict {key: old value} print(函数外字典的位置,id(original_dict))# 调用函数来修改字典 modify_dict(original_dict)# 输出原始字典的值,可以看到它已经被修改了 pr…

致远OA getAjaxDataServlet XXE漏洞复现(QVD-2023-30027)

0x01 产品简介 致远互联-OA 是数字化构建企业数字化协同运营中台,面向企业各种业务场景提供一站式大数据分析解决方案的协同办公软件。 0x02 漏洞概述 致远互联-OA getAjaxDataServlet 接口处存在XML实体注入漏洞,未经身份认证的攻击者可以利用此漏洞读取系统内部敏感文件…

基于Spark个性化图书推荐系统

介绍 该系统基于Spark,结合了协同过滤算法和个性化推荐技术,实现了一款个性化的书籍推荐系统。 在该系统中,用户可以通过登陆注册后进入系统,查找和筛选自己喜欢的图书信息,同时也能够获得基于用户历史浏览、评分等数…

【PostgreSQL在线创建索引(CIC)功能的锁分析以及使用注意】

前一篇文章提到了普通创建索引会阻塞DML操作 PostgreSQL创建索引的锁分析和使用注意 而PostgreSQL里可以使用create index concurrently 在线创建索引(CIC)功能,降低创建索引在表上申请的锁的级别,ShareUpdateExclusiveLock级别的锁和RowExclusiveLock…

解决Qt Creator中文乱码的问题

方法1 使用QStringLiteral()包裹中文字符串 QString str1"中文测试!"; QString str2QStringLiteral("中文测试!");方法2 #if _MSC_VER > 1600//MSVC2015>1899,MSVC_VER14.0 #pragma execution_character_set("utf-8&qu…

第二百五十四回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"如何给图片添加阴影"相关的内容,本章回中将介绍自定义Radio组件.闲话休提,让我们一起Talk Flutter吧…

7个Pandas绘图函数助力数据可视化

大家好,在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。但是,生成图表将数据在数据帧中可视化,通常比仅仅查看数字更有帮助。 Pandas具有几个绘图函数,可以使用它…

Java面向对象综合练习(拼图小游戏),用java图形化界面实现拼图小游戏

1. 设计游戏的目的 锻炼逻辑思维能力利用Java的图形化界面,写一个项目,知道前面学习的知识点在实际开发中的应用场景 2. 游戏的最终效果呈现 Hello,各位同学大家好。今天,我们要写一个非常有意思的小游戏 —《拼图小游戏》 我们…

【机器学习】循环神经网络(三)

四、序列预测问题 循环神经网络实现的序列到序列的映射(Recurrent Neural Network based Sequence-to-Sequence Mapping)是一种使用循环神经网络来将一个序列数据映射到另一个序列数据的方法,它可以用于机器翻译、文本摘要、对话生成等任务。…

多国管理中心多语言区块链源码一元夺宝程序仿趣步奕跑/原生计步器/原生人脸识别

前后台分开的,后台是TP3.2的框架了,应该是比较老的程序了。 目前把整体UI 改版黄色系风格,集成了一元夺宝程序,用户数据同步趣步,效果看起来很棒,另外加入股票走势图(K线图)&#xf…

使用即时设计绘制原型设计方便吗?和Axure RP相比怎么样?

对于原型设计,APP 和 Web 都是一样的,因为产品原型是用来确定需求的工具。我们使用这种工具的目的是为了快速迭代,从而深入挖掘和筛选产品的需求。 绘制原型,最重要的原则是:快速、清晰! Axure 工具的优缺…

“单项突出”的赢双科技IPO加速,比亚迪是最强助力?

近日,新能源汽车核心部件供应商赢双科技首次递表科创板,其凭借旋转变压器产品就坐稳了新能源车企主要供应商的地位,从核心业务及业绩情况来看,赢双科技不愧为“单项冠军”。 据悉,赢双科技本次IPO拟募资8.47亿元&…

css中有哪些方式可以隐藏页面元素?区别?

面试官:css中,有哪些方式可以隐藏页面元素?区别? 一、前言 在平常的样式排版中,我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的 但实际上每一种方法都有一丝轻微的…

短视频矩阵系统+无人直播源码+视频批量分发----开发实践

核心技术 1. AI自动直播: 智能系统通过丰富可定制的文案库, 拥有有料有趣的灵魂。不仅能自动语音讲解内容,还可以在直播中和用户灵活互动。直播中可将团购商品同话术自动上下架。 2. AI剪辑 可一键智能批量成片,也可跟着模板剪…