本文地址:https://blog.csdn.net/t163361/article/details/123909115
最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。
翻译说明:
教程翻译主要用谷歌翻译后,对特别不通顺的地方进行了微调。同时针对一些比较重要的地方保留了英语或英语和汉语同时存在的方式。
教程目录
中级 1 小时
摘要在本教程中,您将设置光照探针以照亮小对象,并缩短预计算时间。
既然您知道场景中图(Charts)的数量对预计算时间是有害的,那么您将能够通过选择从预计算中完全排除某些对象来大幅提高照明性能。 这将减少生成的图(Charts)数量。 但是你应该如何照亮这些物体呢?
探针照明是从场景接收间接照明的有效方法。 尽管探探针照明的物体不会对场景产生反射照明,但这通常不会产生明显的影响。 最适合探测照明的物体往往是较小的物体,无论如何对反射照明几乎没有影响。
探针照明是一种在游戏等实时渲染应用程序中近似光照的快速技术。它通常用于照亮游戏世界中的角色和其他非静态(动态)对象。探针照明在运行时非常高效,并且具有快速预计算的额外好处。
探针照明的工作原理是在 3D 空间中的特定点对入射照明进行采样,并使用称为球谐函数的数学函数在球体上编码此信息。这些系数具有较低的存储成本,然后可以在游戏过程中快速“解包”,并由场景中的着色器用于近似表面光照。在 Unity 中,此功能由 Light Probes 提供。
探针照明限制
使用探头照明有一些限制。一个这样的限制是很难在不增加这些特殊数字的顺序(大小)的情况下表示整个球面范围内的高频或斑点照明。不幸的是,随着精度的提高,成本会迅速增加,这意味着出于性能原因,您只能使用低阶球谐函数。
事实上,对于世界上的一个 3D 位置,您只能有一个球面的光照表示,这使得探测光照不适合表示可能会出现大量光照变化的非常大的对象的光照。
另一个限制是 - 由于球谐函数在球体上编码值 - 它们通常不适合大型平面物体或具有显着凹度的物体。
**注意:**如果您正在考虑对大型对象使用探针照明,Unity 手册提供了一些有关 Light Probe Proxy Volumes (LPPV) 的信息。
使用探针照明进行优化
尽管存在这些限制,但当与合适的较小凸面物体一起使用时,探测照明将以相对较低的成本产生合适的令人信服的结果。在本教程的后面部分,您将更深入地探索 Light Probes 的设置和布置。现在,您只需要知道可以通过在适当的地方使用探针照明来减少场景中的光照贴图图(Charts)的数量。
虽然将 Environment 组下的 GameObjects 设置为 Static 以进行照明设置非常有用,但在此父级下有许多对象可以作为探针照明的良好候选者。清除这些对象的静态标志将意味着 Unity 的预计算实时 GI 系统不再考虑它们,因此光照贴图图(Charts)的数量将减少。请记住:减少场景中图(Charts)的数量是提高预计算时间的关键。例如,小的、凸出的碎片物体是探针照明的完美案例。
回顾Environment游戏对象
让我们在 Hierarchy 窗口中检查 Environment游戏对象的子项。
如果您回顾归类为道具的对象,您会发现其中许多是小型碎片式对象和场景“装饰”,例如石头、水桶和木板。这些对象很多,其中许多相对较小的对象很难展开。获得没有失真的光照贴图 UV 很可能会导致大量 UV 壳(shells)。更多的 UV 壳(shells)需要额外的图表(Charts),更多的图表(Charts)意味着需要计算更多的光照贴图纹素,等等。
鉴于这些物体非常小,它们不太可能对场景中的间接照明做出太大贡献。同样,它们的大小意味着可以显示详细照明变化的表面积很小。这使得这些物体成为探针照明的绝佳候选者。由于减少了需要存储在内存中和在着色器中解码的光照贴图数量,不仅您的预计算时间会受益,而且运行时的性能也会得到改善。
要从预计算中删除道具GameObjects:
在 Hierarchy 视图中选择 Props 游戏对象。在 Inspector 中,禁用 Static 属性。当出现提示时,选择Yes, change children。非静态对象根据与附近探针的接近程度接收光照。通过将光照探针之间的空间划分为四面体体积(volumes),然后检查给定对象属于哪个四面体,可以决定从哪个探针中“读取”对象。为了制造这些四面体,必须放置(positioned)探针,以便它们创建 3D 体积(volume)或笼子。
探针照明在运行时相对便宜,并且可以快速进行预计算。但是,为了最大限度地提高性能,您在布置探针时确实需要小心。尽管设置起来更快,但密集的光探针网格排列可能会造成浪费,因为这些探针中的许多不会在当地照明条件下采样太多变化。
为了提高效率,更好的做法是在照明发生明显变化的区域周围以更大的密度布置探头。例如,这可能包括从光到阴影的过渡区域,或者可能存在由光反射产生的强烈颜色的区域。
让我们开始在场景中设置和布置Light Probe:
从 GameObject 菜单创建一个 Light Probe Group(顶部菜单:GameObject > Light > Light Probe Group)。现在您可以开始布置探针了。在 Hierarchy 中,选择新创建的 Light Probe Group。在 Inspector 中,选择 Light Probe Group 组件中的 Edit Light Probes。确定感兴趣的领域
花点时间确定场景中的感兴趣区域。在决定什么是照明感兴趣区域时,请寻找阴影区域,或者可能是地形材质颜色发生强烈变化的区域。请记住,您的目标是在整个场景中采样间接(或反射)照明。为了证明添加新探针的成本是合理的,您必须确保它对照明的一些明显变化进行采样。
如果您使用 Light Probes 对具有一般或一致照明的区域进行采样,那么当接收对象通过这些探针时,您不太可能看到太大的变化。与游戏优化的许多方面一样,您必须确保场景中包含的每个项目都提供一些收益。
复制并布置光照探针
要点亮您已确定的感兴趣区域:
要查看根据环境点亮的 Light Probe,您必须等待照明预计算完成。 如果在 Lighting 窗口中启用了 Auto Generate 模式,这将自动发生。 如果未启用自动生成模式,则必须通过导航到 Lighting 窗口(Window > Rendering > Lighting Settings)并选择 Generate Lighting 按钮来手动开始预计算。
一旦这个过程完成,你会注意到场景中的非静态游戏对象现在从Light Probes中读取信息,并且看起来与场景照明更匹配。要查看处于点亮状态的Light Probes,请在Hierarchy视图中取消选择Light Probe Group。
现在你已经在场景中设置了Light Probes,你可以在较小的“道具”对象上获得间接照明的视觉优势,而无需在预计算中添加额外的图表。
在本教程中,你使用了光照探针来减少场景中图表的数量。但是还有更多的事情要做——接下来,你将通过优化UV展开来减少剩余的图表数量。
相关知识
光照策略
室内植物光照需求优化策略.docx
AI+植物工厂+LED照明=?
UE4控制台命令有哪些,什么意思?
一种LED智能监控照明系统
智慧公共照明管理系统介绍
光照调控花卉传感器网络与精准栽培
根据自然光照自动调节室内照明的方法及实现
季节性挑战:消费品如何通过科学规划优化备货
鲜花供应链可持续发展优化
网址: 使用预计算实时全局光照优化照明 https://m.huajiangbk.com/newsview587202.html
上一篇: 每日一学29——Unity Li |
下一篇: 【一个案例带你熟悉D5渲染器】第 |