Godot 4.0中的基于有向距离场SDF(Signed Distance Field)的实时全局光照技术
原文地址 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)的实时全局光照技术相关推荐
- 神经网络辐射场NeRF、实时NeRF Baking、有向距离场SDF、占用网络Occupancy、NeRF 自动驾驶
1 NeRF原理 2 NeRF加速 Plenoxels KiloNeRF Instant NGP TensoRF 3 SDF + NeRF 4 Occupancy + NeRF 5 NeRF应用简介 ...
- Unity 5 中的全局光照技术详解
简介 全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算. ...
- [sig16]《使命召唤》中的全局光照技术
Treyarch是<使命召唤:黑色行动>系列的开发商,使命召唤系列的成功不必细说,treyarch也是一个在技术上很有探索的公司,在<使命召唤:黑色行动>1中率先使用基于物理的 ...
- 使用内存数据库的.NET Core 3.0中基于身份(Identity-Based)的身份验证
目录 介绍 背景 先决条件 创建Web应用程序的步骤 第1步 第2步 第3步 第4步 第5步 第6步 运行您的应用程序 总结 下载源9.5 MB 介绍 身份验证是根据系统或用户的身份确定或给予其个人访 ...
- asp.net core 2.0 web api基于JWT自定义策略授权
JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...
- .NET Core 3.0中的Cookie身份验证
目录 介绍 先决条件 创建Web应用程序的步骤 集成Cookie身份验证 Startup.cs文件的代码更改 将User.cs文件添加到Model文件夹 使用新的操作方法更新HomeControlle ...
- KlayGE 4.0中Deferred Rendering的改进(四):GI的神话
转载请注明出处为KlayGE游戏引擎 上一篇解决了透明物体的渲染问题:本文将挑战另一个实时渲染的神话,实时全局光照(GI). 实时全动态GI 目前direct lighting在游戏中日趋成熟,比较前 ...
- 在AX4.0中使用C#脚本的实现
在AX4.0中使用C#脚本的实现 1,虽然ms收购了ax,但是在ax低版本(ver<=4.0)中,还没有办法直接使用ms现在主推的.net技术. 通常的做法是现在AX中天津.net的引用,然后才 ...
- (二十)unity shader之——————基于物理的渲染技术(PBS):下篇(PBS技术拓展:全局光照、伽马校正、HDR)
前面两篇文章我们介绍了PBS实现的数学和理论基础,和standard shader的原理和实现,还有一些其他的渲染相关的unity技术.其中有些概念和技术没有讲的很详细,现在对这些重要的概念进行更深入 ...
最新文章
- 4、变量和方法被static和final两个关键字修饰,为什么这么做?
- 【浅谈数据结构】《数据结构》Data Structure
- TCGA免疫浸润评价数据库,TIMER 2.0 使用指南
- HDU 4912 Paths on the tree(LCA+贪心)
- MongoDB副本集、分片集的伪分布式部署(保姆级教程)
- (计算机组成原理)第七章输入和输出系统-第三节:I/O接口
- Vue (响应式原理-模拟-4-Dep)
- 先发不一定制人:美韩5G网络体验差遭吐槽
- abb变频器dp适配器说明书_国产变频器与西门子和ABB的差距大吗?
- LUNA16_Challange数据预处理1
- nodejs总结之redis模块
- 目标检测(二十二)--R-FCN
- 论文笔记_S2D.09-2018-ECCV_从RGB和稀疏感知估计深度
- android java程序中调用shell命令
- 新版淘宝宽屏轮播代码带缩略图
- 鸟哥私房菜linux就该这么学-学习记录
- 中标麒麟操作系统了解的指令
- 实验1 JavaEE开发环境配置与基础练习(JSP)
- 快速去除word中的软回车(向下箭头)
- python123期末四题编程题 -无空隙回声输出-文件关键行数-字典翻转输出-《沉默的羔羊》之最多单词
热门文章
- XCode 延时函数等
- Cowboy 源码分析(十一)
- VS2013+Ceres编译教程 Win7系统
- 2022年安全员-B证考试试题模拟考试平台操作
- 解决 用 Nginx 处理 跨域问题
- c语言机票座位预定系统_c语言编写~~~机票座位预订系统
- 领存!专注为军工业提供计算、存储、加密以及数据安全的系统服务
- 【企业微信实现免密登录以及发送消息(企业内部应用)】
- C#编程,输入里程数和耗油量,计算每升的里程数,程序中使用异常处理器,当输入的里程数或耗油量无法转换成double值时处理FormatException。
- vue3 项目中 watch 各种不触发