美文网首页何三思Unity Shader分享征服Unity3d
【Unity3D技术文档翻译】第3.6.2.3篇 UV重叠结果(

【Unity3D技术文档翻译】第3.6.2.3篇 UV重叠结果(

作者: 何三思 | 来源:发表于2018-08-01 08:26 被阅读8次
    Unity3D技术文档翻译

    上一章:【Unity3D技术文档翻译】第3.6.2.2篇 光照贴图接缝缝合(Lightmap seam stitching)

    本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Progressive Lightmapper】→【UV overlap feedback】

    UV重叠结果(UV overlap feedback)

    每张光照贴图都包含了一些图表(charts)。在运行时,Unity 将这些图表映射到网格表面,然后利用它们的光照数据计算最终的外观效果。由于 GPU 采样的工作方式,如果图表相互靠得太近,那么一个图表上的数据可能会渗透到另一个图表上。这通常会导致意料之外的锯齿、像素感,以及其他的图像效果(这些被称为人造效果)。

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

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

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

    决定图表的最佳布置和间隔比较困难,因为牵涉到一些参数设置(比如光照贴图分辨率、网格 UVs 和导入设置)。因此,Unity 提供了简单识别这些问题的功能,下面几部分将介绍这些内容。

    识别

    有三个方法识别重叠:

    • 看一眼 Unity 的 console 窗口。如果 Unity 检测出重叠的 UVs,它会打印一个附带受影响游戏对象列表的警告信息。

    • 在 Scene View 中开启 UV Overlap 绘制模式。当你开启该模式后,Unity 将为那些与其他图表纹素靠得太近的纹素添加红色高亮。如果你法线场景视图中有个人造效果,并且想要快速检查是否是 UV 重叠造成的,那么这个方法就很有用。

    使用了 UV Overlap 绘制模式(在左上角的下拉选项中选择)
    • 使用 Lighting 标签页中的 Object Maps。选中一个对象,进入 Lighting 标签页并选择 Object Maps。确保在下拉选项中选择了 Baked UV Overlap。在该视图中,有问题的纹素会被标记为红色。
    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 属性下更改光照贴图分辨率。
    和前面一样的网格,但是没有渗透的人造效果。

    如果本文对你有帮助的话,点个赞或者评论一下吧!

    下一章:【Unity3D技术文档翻译】第3.6.2.4篇 自定义光衰减(Custom fall-off))

    相关文章

      网友评论

        本文标题:【Unity3D技术文档翻译】第3.6.2.3篇 UV重叠结果(

        本文链接:https://www.haomeiwen.com/subject/qipzmftx.html