何三思Unity Shader分享征服Unity3d

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

2018-08-01  本文已影响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 提供了简单识别这些问题的功能,下面几部分将介绍这些内容。

识别

有三个方法识别重叠:

使用了 UV Overlap 绘制模式(在左上角的下拉选项中选择) Lighting 标签页中的 Object Maps

解决方案

对于 UV 重叠,没有单一的解决方案,因为导致它的原因有很多。这里有一些最常用的解决方案以供参考:

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

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

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

上一篇下一篇

猜你喜欢

热点阅读