转载:https://baijiahao.baidu.com/s?id=1673723122020029798&wfr=spider&for=pc

UV贴图是用于轻松包装纹理的3D模型表面的平面表示。创建UV贴图的过程称为UV展开。

U和V指的是2D空间的水平轴和垂直轴,因为X,Y和Z已在3D空间中使用。一旦创建了多边形网格,下一步就是将其“展开”为UV贴图。现在要赋予网格生命并使它看起来更逼真(或风格化),就得添加纹理。但是,这没有3D纹理之类的东西,因为它们始终都是2D图像。

这就是UV映射的用处,因为它是将3D网格转换为2D信息以便可以在其周围包裹2D纹理的过程。起初这似乎是一个令人困惑的想法,但是这非常简单。如果以前曾经用纸做过一个立方体,那么只需完成相反的步骤即可!

但是,立方体是一个基本示例,并且随着网格变得越来越复杂,UV贴图也是如此。这可能会变得很繁琐,但这对3D工作流程至关重要。

即使您不打算对模型进行纹理处理,许多现代的实时引擎(例如,虚幻引擎4或Unity)也需要对您的素材进行UV解包才能进行一些轻度渲染。

既然已经概述了UV贴图的基本概念,我们就可以深入研究UV展开的中间部分,即接缝。接缝是使任何3D几何形状扁平化的不幸和不可避免的副作用。接缝是网格的一部分,必须进行拆分才能将3D网格转换为2D UV贴图。

UV展开始终是一种折中方案,可以使线框变形尽可能小,同时还要使接缝最小。就UV贴图而言,变形是必须更改多边形的形状和大小以适应平坦化过程的程度。太多的失真会影响模型的最终效果。

通过应用基本的方格纹理可以很容易看出这一点。如果未拉伸棋盘格图案,则可以避免展开时的变形。但是,这种仅将所有多边形分开的方法的缺点是产生的接缝数量。

左侧的多维数据集的UV接缝以绿色突出显示。您可以看到图案在边缘移动时没有对齐。在更复杂的网格中,这可能会成为问题,因此您需要练习并灵活地进行接缝放置。

这是一个实例,如果您在UV解包中严重扭曲多边形会发生什么。此多维数据集上的纹理与前面的示例没有什么不同,但是您可以看到它已被拉伸并变形。但是,缺少接缝确实意味着图案排成一行并围绕立方体的边缘,但是在这种情况下,付出的代价是不值得的。

 

显而易见的答案是在两者之间找到平衡。

在此图像中,您可以看到保留了棋盘格图案,并且我们在立方体的正面周围有一些不错的连续边。在练习和展开更多内容时,您将了解“隐藏”接缝的最佳位置是使它们不那么明显。

使接缝不那么明显的良好规则是:

使它们沿着通常不太明显的坚硬边缘

将它们隐藏在模型的其他部分后面。例如,如果解开头部,则将接缝放在头发所在的位置。

将它们隐藏在模型焦点下方或后面,这样人们就不太可能看到它们。

展开3D网格时要考虑的另一件事是UV重叠。

当您的UV贴图中有两个或多个多边形彼此重叠时,就是UV重叠。这意味着模型的这两个部分将显示相同的纹理信息,因为它们都占据相同的UV空间。通常要避免重叠UV,这样可以使纹理保持变化,而不会偶然导致纹理看起来不正确。也就是说,有时您可能会故意使用重叠的UV。如果纹理非常基本,那么您可能会在同一UV空间上具有多个网格部分来重复该纹理。

这项技术非常有用,因为它可以让您减小纹理大小,这意味着,如果您使用的是游戏引擎,通常它将运行得更流畅。当开发较弱的机器(如手机)时,这一点尤为重要。关于紫外线贴图需要了解的最后一件事是紫外线通道。UV通道允许同一对象具有多个UV贴图。对于游戏引擎而言,这非常重要。如本文前面所述,游戏引擎使用UV贴图烘焙照明信息。

这意味着绝对不会有任何重叠的UV,因为阴影信息将放置在模型的错误区域中,并且您通常会收到某种错误消息。如前所述,现在重叠的UV有时在游戏开发中是个好主意。

因此,折中方案是拥有2个紫外线通道。一种是带有紫外线信息的纹理,另一种是带有紫外线信息的照明。您做得越多,越容易,但是UV制图过程有很多细节。

希望您现在对UV映射有了更好地了解。这是一个足够简单的过程,乍一看似乎令人疑惑,但实际上很容易掌握。

什么是UV贴图和展开?的更多相关文章

  1. 理解UV贴图

    一.理解UV贴图UVs是驻留在多边形网格顶点上的两维纹理坐标点,它们定义了一个两维纹理坐标系统,称为UV纹理空间,这个空间用U和V两个字母定义坐标轴.用于确定如何将一个纹理图像放置在三维的模型表面.本 ...

  2. 长图的展开与收起(Android)

    前言: 在app的文章中,经常会夹杂着一些特别长的长图.在阅读的时候需要滑动很久才能看图片下方的文字,因此对于长图只展示图片上面一部分,并且可以展开这个功能是很重要的. 效果: 基本思路: 利用sca ...

  3. [CG从零开始] 6. 加载一个柴犬模型学习UV贴图

    在第 5 篇文章中,我们成功加载了 fbx 模型,并且做了 MVP 变换,将立方体按照透视投影渲染了出来.但是当时只是随机给顶点颜色,并且默认 fbx 文件里只有一个 mesh,这次我们来加载一个柴犬 ...

  4. UV贴图类型

      凹凸贴图Bump Map.法线贴图Normal Map.高度贴图Height map.漫反射贴图Diffuse Map.高光贴图Specular Map.AO贴图Ambient Occlusion ...

  5. 3DMAX 多维材质及对应的UVW展开,UVW贴图

    多维材质说明 多维材质就是一个模型多个材质,(混合材质是多个材质混一起,跟这个貌似没关,比如地表草地,泥土等的混合操作) 作用: 比如一个模型就是需要两种材质,刀的金属刀身,木质刀柄,墙的一面是木板, ...

  6. uv纹理坐标设定与贴图规则

    1.什么是UV?   对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标.什么是UV?简单的说,就是贴图影射到模型表面的依据. 完整的说,其实应该是UVW(因为 ...

  7. blender--(凹凸贴图)................https://jingyan.baidu.com/article/9f63fb917c4becc8400f0ea8.html

    在blender中直接绘制模型凹凸纹理细节 听语音 | 浏览:32 | 更新:2018-02-20 11:18 1 2 3 4 5 6 7 分步阅读 在blender中为了表现更多的模型细节,我们会常 ...

  8. blender_(uv应用)................http://digitalman.blog.163.com/blog/static/23874605620174172058299/

    轻松学习Blender基础入门之九:UV-1 2017-06-21 14:24:49|  分类: Blender |举报 |字号 订阅     下载LOFTER 我的照片书  |   [前言]     ...

  9. 什么是UV?

    转自http://www.cnblogs.com/jenry/p/4083415.html 1.什么是UV?   对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV ...

  10. 【VR视频播放】解决Unity模型贴图反转的问题

    使用UV贴图网模型上贴的时候, 会出现图片反过来的情况. 根本原因是因为, 一般系统的屏幕坐标系(例如Android)是左上角为原点(0,0), 但是Unity的贴图是以左下角为原点(0,0) 方法有 ...

随机推荐

  1. 如何保证RabbitMQ的消息不会丢失?怎么保证RabbitMQ的可靠性?

    生产者: 原因: 由于网络原因导致消息发送失败,消息队列没有接收到生产者发送的消息,但生产者认为消息发送成功. 解决办法: transaction模式:事务模式:开启事务,发送消息,成功提交事务,失败 ...

  2. luogu 4886

    点分治好题 统计距离正常点分治统计即可,我们只需考虑何时达到最优 有两种情况: 第一:代价最大的询问两个端点在不同的两个子树中 因为这种情况下,无论根向那个子树移动都会等价地增加到达另一个端点的代价, ...

  3. 【JavaScript】JS写法随笔(三) JS联动设置元素默认值

    问题: 使用DOM获取元素后setAttribute("value", "1")在页面有修改此标签value的情况下,再次触发function发生不生效.无法修 ...

  4. c++学习3 转义字符

    一 "/"和某些字符的结合,产生新的字符就叫转义字符. '\0'==ASCII码值的"0". '\n'==换行符. '\t'==tab缩进符. '\a'==发出 ...

  5. 每日一题_1_x^n

    函数头为double power(double x,int n).在主函数中输入x.n并调用该函数求 (函数定义在主函数后面,在调用前做函数声明) 输出x^n 1 #define _CRT_SECUR ...

  6. MyBatis面试题汇总

    1.什么是Mybatis? Mybatis是对象关系映射一个框架,它内部封装了JDBC,开发的时候只要关注SQL语句本身,可以严格控制sql的执行性能,灵活,其二可以通过XML或者注解来配置映射信息 ...

  7. 冲刺总结-day7

    完成任务:前端设计 设计系统前端,利用html和css对登录页面和进入系统操作界面进行界面化设计,使系统看起来美观.简洁. 一.设计思路 利用HTML对整个网页页面进行布局和设计内容,使用CSS对每一 ...

  8. iview的表格 render

    view的表格   render 先看一下效果图   效果题 代码如下   render render:(h,params)=>{} //h指dom对象,params指当前每一行数据(param ...

  9. UDP与TCP ---FundeBug

    UDP 面向无连接 首先 UDP 是不需要和 TCP一样在发送数据前进行三次握手建立连接的,想发数据就可以开始发送了.并且也只是数据报文的搬运工,不会对数据报文进行任何拆分和拼接操作. 具体来说就是: ...

  10. MySql 字符串时间转换

    MySql中经常遇到字符串格式时间转换成时间类型的情况: SELECT STR_TO_DATE('Jul 20 2013 7:49:14:610AM','%b %d %Y %h:%i:%s:%f%p' ...