Unity预计算全局实时GI(六) - UV展开与减少光照图数量

由于现在我们已经从光照预计算中排除了合适的对象物体,我们可以进行减少剩余光照图表数量的工作了。

因为生成光照图表(Charts)是为了包裹静态网格渲染器(Static Mesh Renderer)的光照贴图的UV坐标,所以一个对象所需要光照图表的数量很大程度上取决于物体需要展开的UV Shell(一些片)数量。这就涉及到UV展开的问题,它需要保持几何面上贴图纹素扭曲度与所需足够覆盖贴图Shell数量之间的平衡。

Unity没有我们的介入,它复杂的展开算法也将经常会得到很好的结果;然而有些时候需要提供给我们一点指导,这对于我们理解自动展开算法背后的理论过程是很重要的。

考虑下面的阐述:


这样的UV展开不会变形,但需要多张UV Shell



用单一UV Shell所产生的结果,贴图变形很严重



比较理想的结果,单一UV Shell且贴图未变形

在上面的图片中,我们展示了三个不同的例子关于一个对象物体上的UV是怎么被映射或展开的。

在第一张图片中,我们可以看到一个大部分没有扭曲变形的结果。我们所使用的带有格子图案的纹理贴图以这种方式被映射:贴图的每一块在它所在的那一面都保持正方的形状。试想一下这个棋盘纹理贴图是一个光照贴图(一个光照应用于对象物体的图片),我们将会得到一个看上去视觉上正确并且没有扭曲的结果。然而,我们需要6个UV shell 去得到这个覆盖范围。结论就是,通过使用Unity的PRGI系统,我们将会得到六张光照图表。不管对象物体的尺寸大小,每个光照图表将会需要一个4*4的最小纹素,这意味着不管分辨率是多少这个对象物体都将会使用至少96个纹素。

在第二张图片中,我们有了一个不同的问题。对象物体的UV纹理坐标已经被映射,以及至于我们有了一个完整的覆盖所有面的UV shell。尽管就需要覆盖对象物体的光照图表的数量而言这将会是最佳的形式,但是它视觉上的效果已经被严重的扭曲了。我们很可能看到应用到物体表面的纹理贴图是扭曲的,对象物体上的各个表面在UV纹理空间也是重叠的 - 意味着如果我们引用了一张光照贴图,对象物体一面的光照可能会错误投射到相反面上。这

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SwordMaster8060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值