当前位置: 首页 > news >正文

在 Unity 6 中使用APV为您的世界创建全局照明的新方法(一)

Unity 6 中推出的新照明功能让您能够更快速、更高效的完成对烘焙场景的照明工作,在本文中我们将与大家详细分享在 Unity 6 中应用自适应探针卷创建快速全局光照的更多细节与具体应用方法。由于内容比较丰富,我们将把内容分为三篇文章,以便大家更好阅读。

通过Unity 6中全新且强大的灯光烘焙架构 ,以及使用自适应探针卷(APV)创作灯光探针点亮环境的创新方法,您将享受到更简化的灯光创作流程。这将大大增强视觉效果,同时确保运行时的高性能。

1ac02ec22f6f4b0bf97b283a1ae37a47.jpeg

用全球照明点亮您的世界

如果您以前使用过预计算的照明数据,就会知道这个过程有多繁琐。光贴图的预计算过程可能需要很长时间;光贴图UV 需要编写,需要放置探针以便正确照亮动态对象,还需要处理大型纹理,这可能会给应用程序的运行内存带来沉重负担。

在Unity 6中,添加了一种新方法,让您可以通过自适应探针卷(APV)创建更高质量的光线探针照明环境,并对光线烘焙后台进行了基础性改进,以提高稳定性。

Adaptive Probe Volume(自适应探针体积)

自适应探针卷是一组光探针,Unity 会根据场景中的几何体密度自动放置这些探针,以建立烘焙的间接照明。

3e2376663a2ccd38ec67e8b6822505a0.jpeg

自适应探针卷会自动填充由 "砖块 "组成的三维结构。每块砖包含 64 个光探针,按 4 × 4 × 4 的网格排列。

由于 APV 具有自适应特性,它将在几何体较多的区域生成更密集的探针,而在物体密度较低的区域(如场景背景)则生成较少的探针。

自适应探针卷还为您提供了一整套强大的功能,用于创建美观的照明环境。

  • 为探针放置工作流程提供更简单的工作流程,为基于探针的间接漫射照明提供更快的迭代速度 。

  • APV每像素照明的质量比 Light Probe Groups高得多,方向性也比 Lightmaps好,因此整体照明质量极佳。

  • 与大气效果无缝集成,使 HDRP 中的体积雾和URP和HDRP中的 VFX 图形粒子等效果在间接光照下更加美观。

  • 通过天空遮蔽和照明场景,可实现视觉效果极佳的照明过渡,适用于实现日间光照和灯光开/关的情况。

  • 根据您对渲染管道和目标硬件的使用情况,提供更多对运行时性能优化的控制。

  • 运行流功能,使光探针数据能够从磁盘流向 CPU,以及从 CPU 流向 GPU。

  • 提供减少漏光的强大工具集。

08705d2bae8d647bdb16de5e1e17538d.jpeg

APV 与大气效果无缝集成,这意味着 HDRP 中的体积雾和 URP 与 HDRP 中的 VFX 图形粒子等效果现在可以通过间接照明美观地呈现。

以下是将 URP Oasis 场景转换为使用 APV 的方法

为了在本文中进行演示,我们将 URP 3D 示例场景从 2022 LTS 升级到了Unity 6 预览版和自适应探针卷功能。

a8e42c46c6f0e03be3d59e80455ce2ff.jpeg

绿洲 "场景从 2022 LTS 转换到 Unity 6,应用自适应探针卷进行间接照明。

使用自适应探头体积放置探头

APV 是一种基于体积的系统,可自动放置探针,无需手工放置。

通过 APV 的常规设置选项卡,您可以控制最小和最大探针间距等参数,从而根据周围的几何形状创建多个细分级别。默认情况下,密集区域将使用最高分辨率,而几何图形较少的区域将使用较低的密度级别。这种自动适应行为可确保高效的资源分配,并将重点放在最需要的地方。

ff8777a0fd204c2470f5c90e3451bf2d.jpeg

在 "照明窗口 "和 "自适应探针体积 "选项卡中,可以指定 APV 应使用的细分级别。

要自动生成探针,可以创建自适应探针卷。在工作时,您可以看到实时更新,无需烘烤即可预览测头位置。这些更新基于砖块和您之前定义的细分级别,然后根据附近几何体的距离进行调整。

37a1ac34638dfd9d84e2e50103c02b0f.jpeg

 实时更新调试模式有助于在烘焙前实时预览不同的探针。

生成照明

生成照明会预先计算所有照明数据,包括光探针,您可以在场景中直观地看到这些数据。使用砖块预览时,可以看到放置探针时应用的各种细分级别。

84fee064916366df156b5cc2d00d4194.jpeg

可使用渲染调试器显示探针和多个细分级别。

在下一篇文章中我们将继续为您介绍有关Unity 6 全局照明的全新应用方法,如果您对本文内容感兴趣请继续关注我们~

本文部分内容转自Unity官网Blog。

http://www.lryc.cn/news/506591.html

相关文章:

  • Win11安装安卓子系统WSA
  • 利用两种方式分别实现单例模式(懒汉式、饿汉式)
  • js分页功能
  • Ubuntu20.04 编译运行 ORBSLAM2_with_pointcloud_map(以RGBD Orbbec Astra+为例)保姆级教程
  • MyBatis(四)
  • 【从零开始的LeetCode-算法】3285. 找到稳定山的下标
  • Docker常用命令总结~
  • 浅谈怎样系统的准备前端面试
  • 如何配置防火墙提高服务器安全性
  • java集合-Map HashMap 源码解析
  • 案例分享|企查查的数据降本增效之路
  • 图书馆管理系统(四)基于jquery、ajax--完结篇
  • 什么是Modbus协议网关?
  • Docker 容器中启用 SSH 服务
  • Linux系统—利用systemd管控系统以及服务详解(十四)
  • 人工智能 AI 大模型研究设计与实践应用技术毕业论文
  • 已有 containerd 的情况下部署二进制 docker 共存
  • VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
  • vue+springboot+cas配置及cookie传递问题
  • 0009.基于springboot+layui的ERP企业进销存管理系统
  • ZYNQ初识2(zynq_7010)基于vivado,从PL端调用PS端的时钟
  • Android详解——ConstraintLayout约束布局
  • docker简单命令
  • 【linux】shell(36)-文件操作
  • c语言——数据结构【链表:单向链表】
  • ​Python 标识符是啥?​
  • 视频及JSON数据的导出并压缩
  • VScode使用教程(菜鸟版)
  • 【漏洞复现】Grafana 安全漏洞(CVE-2024-9264)
  • Android AOSP 源码中批量替换“phone“为“tablet“的命令详解