找回密码
注册

QQ登录

独立游戏 >
独立动画 >
独立音乐 >

 L e t ’ s  G o ! L e t ’ s  D o ! L e t ’ s S h i n e !

...

从零开始学基于ARKit的Unity3d游戏开发系列 一

前言无可置疑的是,对绝大多数的中小游戏团队来说,目前Unity3d ...

新版Prefab的一些梳理

前言Unity的Prefab相信大家一定很熟悉了,但是用起来那叫个又爱 ...

《我叫MT4》游戏测评——简单地从交互设计的角度分析

1、进去游戏后,会先播放一段动画。这段CG做得很不错,镜头、人 ...

Unity导入模型出现多层UV问题解决

在做项目优化的时候发现,游戏中的模型占用了很高的内存,然后就 ...

Substance Painter入门学习笔记 -8 油桶制作

【前言】 上一篇介绍了油桶的制作,以及到SP中如何烘焙 ...

Substance Painter入门学习笔记 -7 日记本-3

【前言】 这篇继续研究SP功能,用它绘制前边制作的日记 ...

Substance Painter入门学习笔记 -5

【前言】 继续 【研究】 三、调整和做旧。 首先调整做旧弹体 ...

Substance Painter入门学习笔记 -4

【前言】 继续 Substance Painter 以下简称SP。 【研究】 第二 ...

Substance Painter入门学习笔记 -3

【前言】 前两篇粗略介绍了一下该软件的操作方法。这一篇 ...

作者: 九艺网
查看: 85|回复: 0
搜索

more +最新主题Download

more +社区更新Forums

more +随机图赏Gallery

 L e t ’ s  G o ! L e t ’ s  D o
从零开始学基于ARKit的Unity3d游戏开发系列
新版Prefab的一些梳理
《我叫MT4》游戏测评——简单地从交互设计

more +文章更新News

[翻译文档] 第3.6.2.3篇 UV重叠结果(UV overlap feedback)

[复制链接]
九艺网 发表于 2018-9-7 12:32:45 | 显示全部楼层 |阅读模式
查看: 85|回复: 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Progressive Lightmapper】→【UV overlap feedback】
UV重叠结果(UV overlap feedback)每张光照贴图都包含了一些图表(charts)。在运行时,Unity 将这些图表映射到网格表面,然后利用它们的光照数据计算最终的外观效果。由于 GPU 采样的工作方式,如果图表相互靠得太近,那么一个图表上的数据可能会渗透到另一个图表上。这通常会导致意料之外的锯齿、像素感,以及其他的图像效果(这些被称为人造效果)。


2464776-73fbb04ca779abbb.webp.jpg


由于图表的相互渗透而产生的人造图像效果


为了避免灯光渗透,图表之间就必须具有足够的空间。当 GPU 对一张光照贴图采样时,光照系统将对采样点周围最近的四个纹素(texels)进行采样,从而计算得出最终的采样值(假设使用的是双线性(bilinear)过滤)。这四个纹素被称为采样点的双线性“相邻纹素”。如果纹素相互重叠,就说明图表靠得太近了——即:一个图表上任意一点的相邻纹素,与另一个图表上任意一点的相邻纹素重叠了。在下图中,白色像素代表了图表的相邻纹素,而红色像素代表了重叠的相邻纹素。

2464776-9966c008afb0e60e.webp.jpg


红色像素代表了图表中重叠的相邻纹素


决定图表的最佳布置和间隔比较困难,因为牵涉到一些参数设置(比如光照贴图分辨率、网格 UVs 和导入设置)。因此,Unity 提供了简单识别这些问题的功能,下面几部分将介绍这些内容。
识别有三个方法识别重叠:
  • 看一眼 Unity 的 console 窗口。如果 Unity 检测出重叠的 UVs,它会打印一个附带受影响游戏对象列表的警告信息。
  • 在 Scene View 中开启 UV Overlap 绘制模式。当你开启该模式后,Unity 将为那些与其他图表纹素靠得太近的纹素添加红色高亮。如果你法线场景视图中有个人造效果,并且想要快速检查是否是 UV 重叠造成的,那么这个方法就很有用。


2464776-e48ec50f10ea029e.webp.jpg

使用了 UV Overlap 绘制模式(在左上角的下拉选项中选择)


  • 使用 Lighting 标签页中的 Object Maps。选中一个对象,进入  Lighting 标签页并选择 Object Maps。确保在下拉选项中选择了 Baked UV Overlap。在该视图中,有问题的纹素会被标记为红色。


2464776-0adcd3cc0d7ea5af.webp.jpg

Lighting 标签页中的 Object Maps


解决方案对于 UV 重叠,没有单一的解决方案,因为导致它的原因有很多。这里有一些最常用的解决方案以供参考:
  • 如果是 Unity 自动创建的光照贴图 UVs,那么你可以增加 Pack Margin。导航到 Mesh 的 import settings 窗口,确保 Generate Lightmap UVs 已被开启,然后展开 Advanced 属性,使用 Pack Margin 滑动条来增加该值。 这会增加图表间的间隔,进而减少重叠的可能性。然而,这同样会增加光照贴图所需的空间占用,因此要尝试应用足够避免人造效果的值,但是又不能太大。想要了解更多关于 Unity 自动创建光照贴图 UVs 的信息,请查看 Generating lightmapping UVs 一节。
  • 如果是你自己提供的光照贴图 UVs,你可以尝试使用你的模型打包工具来增加间隔。
  • 增加整个光照贴图的分辨率。缺点就是你的光照贴图可能变得非常大。你可以在 Lightmapper Settings 下的 Lighting 标签页下设置该属性。
  • 增加单个游戏对象的分辨率。这将只增加具有重叠 UVs 游戏对象的光照贴图分辨率。虽然可能性较小,这也可能会增加光照贴图的大小。你可以在游戏对象的 Mesh Render 中的 Lightmap Settings 属性下更改光照贴图分辨率。


2464776-54385fbd2e85573b.webp.jpg

和前面一样的网格,但是没有渗透的人造效果。



作者:何三思


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表