原文地址 Godot官网 《Godot 4.0 gets SDF based real-time global illumination》 作者 Juan Linietsky 6月28日

文章目录

  • SDFGI
  • 它能做什么
  • 如何使用
  • 它是如何工作的
  • 未来

Godot 4.0的开发正在稳步进行中,一种新的全场景全局光照技术(full-scene global illumination)已经加入到开发主分支。

SDFGI

SDFGI即有向距离场全局光照(Signed Distance Field Global Illumination)。这种技术将大量依赖有向距离场(一种基于欧几里德距离的网格有向距离函数表示法)去创建光照。

虽然该功能还没有开发完成,并且未来还会有很多质量和性能的提升,不过现在看起来已经足够满足一般需求了。

非常感谢Matias Goldberg提供的巨大帮助,感谢我们的赞助者持续提供的赞助,感谢Tim Sweeney(Epic Games的创始人)和Epic Games对我们的信任,并通过Epic Megagrant给予我们经济支持。这项新技术的开发完全基于MIT许可证,所以每个人可以将其使用在自己的引擎或游戏中。

它能做什么

SDFGI近似于动态实时光照贴图(dynamic real-time lightmap),但它不需要展UV也不需要使用其贴图。当开启SDFGI它会自动工作并对静态物体生成全局光照。它不需要光线追踪 。它可以运行在绝大多数最新的(以及几年前的)GPU上,甚至几年前的中档廉价CPU(SDFGI的开发和测试使用Geforce 1060,一直保持着60fps的帧率)。

光的更新是实时的,这意味着任何光照条件的变化都会导致结果的瞬间变化。动态对象只支持接受环境光,但他们不会贡献光照。一定程度的支持已在计划中,但是不会马上进行。

SDFGI也支持反射,无论是漫反射还是镜面反射,所以全PBR场景将不成问题。在下图中,你可以在棋盘格糙度图中看到二者:


SDFGI也支持自发光,所以带有自发光通道的材质也将会全面支持并提供场景光照。


SDFGI通常是不漏光的(leak free),这点和主流 VCT技术不同。对于每个串联(Cascade),只要其的厚度大于一个体素,光就不会穿透。

如何使用

先确认你的模型已经标记为Static Bake,然后在Environment(译者注:添加一个WorldEnvironment节点)中开启SDFGI,揍这么滴简单!

下面是一些可选项用于设置SDFGI:

  • 单元格大小(Cell Size):显示最邻近的串联的单元格大小。每个相邻串联会复制这个大小,它允许非常大的支持GI的视野距离。
  • 多次反弹(Multiple Bounces):开启反馈循环,可以模式光的多次反弹。
  • 环境光遮蔽(Occlusion):生成探头间的遮蔽信息,以避免墙之间的漏光。遮蔽一般来说工作良好,但你必须保证墙的厚度厚于一个体素。
  • 读取天空光(Read Skylight):允许天空贡献光照。
  • Y Scale:用水平细节补偿水平范围。在室内场景中非常有用。

还有一些新的调试模式可将SDFGI的工作过程可视化:

  • SDFGI 串联(SDFGI Cascades):将世界以SDF形式显示,它可以帮助理解什么是体素大小,这样你可以调整几何体以达到最适状态。
  • SDFGI 探头(SDFGI Probes):显示探头的位置(目前仅在串联附近),它可以帮助理解,几何体从何处读取光照。如果一个区域探头数量过少,可能会得到错误的环境光遮蔽结果。

它是如何工作的

即将写一篇专题介绍,敬请期待。

未来

Godot 4.0 不断进步,我们一定会开发出一个牛逼的游戏引擎,并且你依然会自由使用它,如同你自家的技术。如果你还不是我们的赞助人,请考虑赞助我们以帮助提高开发速度!

Godot 4.0中的基于有向距离场SDF(Signed Distance Field)的实时全局光照技术相关推荐

  1. 神经网络辐射场NeRF、实时NeRF Baking、有向距离场SDF、占用网络Occupancy、NeRF 自动驾驶

    1 NeRF原理 2 NeRF加速 Plenoxels KiloNeRF Instant NGP TensoRF 3 SDF + NeRF 4 Occupancy + NeRF 5 NeRF应用简介 ...

  2. Unity 5 中的全局光照技术详解

    简介 全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算. ...

  3. [sig16]《使命召唤》中的全局光照技术

    Treyarch是<使命召唤:黑色行动>系列的开发商,使命召唤系列的成功不必细说,treyarch也是一个在技术上很有探索的公司,在<使命召唤:黑色行动>1中率先使用基于物理的 ...

  4. 使用内存数据库的.NET Core 3.0中基于身份(Identity-Based)的身份验证

    目录 介绍 背景 先决条件 创建Web应用程序的步骤 第1步 第2步 第3步 第4步 第5步 第6步 运行您的应用程序 总结 下载源9.5 MB 介绍 身份验证是根据系统或用户的身份确定或给予其个人访 ...

  5. asp.net core 2.0 web api基于JWT自定义策略授权

    JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...

  6. .NET Core 3.0中的Cookie身份验证

    目录 介绍 先决条件 创建Web应用程序的步骤 集成Cookie身份验证 Startup.cs文件的代码更改 将User.cs文件添加到Model文件夹 使用新的操作方法更新HomeControlle ...

  7. KlayGE 4.0中Deferred Rendering的改进(四):GI的神话

    转载请注明出处为KlayGE游戏引擎 上一篇解决了透明物体的渲染问题:本文将挑战另一个实时渲染的神话,实时全局光照(GI). 实时全动态GI 目前direct lighting在游戏中日趋成熟,比较前 ...

  8. 在AX4.0中使用C#脚本的实现

    在AX4.0中使用C#脚本的实现 1,虽然ms收购了ax,但是在ax低版本(ver<=4.0)中,还没有办法直接使用ms现在主推的.net技术. 通常的做法是现在AX中天津.net的引用,然后才 ...

  9. (二十)unity shader之——————基于物理的渲染技术(PBS):下篇(PBS技术拓展:全局光照、伽马校正、HDR)

    前面两篇文章我们介绍了PBS实现的数学和理论基础,和standard shader的原理和实现,还有一些其他的渲染相关的unity技术.其中有些概念和技术没有讲的很详细,现在对这些重要的概念进行更深入 ...

最新文章

  1. 4、变量和方法被static和final两个关键字修饰,为什么这么做?
  2. 【浅谈数据结构】《数据结构》Data Structure
  3. TCGA免疫浸润评价数据库,TIMER 2.0 使用指南
  4. HDU 4912 Paths on the tree(LCA+贪心)
  5. MongoDB副本集、分片集的伪分布式部署(保姆级教程)
  6. (计算机组成原理)第七章输入和输出系统-第三节:I/O接口
  7. Vue (响应式原理-模拟-4-Dep)
  8. 先发不一定制人:美韩5G网络体验差遭吐槽
  9. abb变频器dp适配器说明书_国产变频器与西门子和ABB的差距大吗?
  10. LUNA16_Challange数据预处理1
  11. nodejs总结之redis模块
  12. 目标检测(二十二)--R-FCN
  13. 论文笔记_S2D.09-2018-ECCV_从RGB和稀疏感知估计深度
  14. android java程序中调用shell命令
  15. 新版淘宝宽屏轮播代码带缩略图
  16. 鸟哥私房菜linux就该这么学-学习记录
  17. 中标麒麟操作系统了解的指令
  18. 实验1 JavaEE开发环境配置与基础练习(JSP)
  19. 快速去除word中的软回车(向下箭头)
  20. python123期末四题编程题 -无空隙回声输出-文件关键行数-字典翻转输出-《沉默的羔羊》之最多单词

热门文章

  1. XCode 延时函数等
  2. Cowboy 源码分析(十一)
  3. VS2013+Ceres编译教程 Win7系统
  4. 2022年安全员-B证考试试题模拟考试平台操作
  5. 解决 用 Nginx 处理 跨域问题
  6. c语言机票座位预定系统_c语言编写~~~机票座位预订系统
  7. 领存!专注为军工业提供计算、存储、加密以及数据安全的系统服务
  8. 【企业微信实现免密登录以及发送消息(企业内部应用)】
  9. C#编程,输入里程数和耗油量,计算每升的里程数,程序中使用异常处理器,当输入的里程数或耗油量无法转换成double值时处理FormatException。
  10. vue3 项目中 watch 各种不触发