
开发快照:Godot 4.6 dev 2
随着首个开发快照的发布,4.6 开发周期已不再局限于修复 Bug 的阶段。许多长期以来备受期待的功能与增强特性终于得以面世,本次快照共包含超过 300 项改进!伴随新特性的到来,也可能引入新的 Bug,因此尽早测试与反馈对于尽快发现回归问题至关重要。
封面插图来自《Upload Labs》,这是一款放置类游戏,玩家需要从零开始构建并优化自己的计算机系统。该游戏可在 Steam 上免费获取,并可在 YouTube 或 Discord 上关注其开发团队。
主要亮点
将 Godot 引擎构建为库
我们收到的最常见请求之一是希望能将 Godot 引擎构建为一个独立库(library)。过去我们并未积极推进这一方向,因为 Godot 的引擎范式是许多设计哲学的核心部分。然而,随着时间推移,我们越来越多地遇到需要在隔离上下文中访问 Godot的使用场景。
虽然目前我们尚未全面支持这一概念的完整集成,但 Gergely Kis 已经完成了一个可用的基础实现(GH-110863)。这个内部代号为 LibGodot 的功能现已提供对 GodotInstance 的基本支持,使其可作为特定工作流的入口点。
ObjectDB 性能分析工具
另一项来自技术型用户的高频需求是能够对 ObjectDB(Godot 对象系统的核心)进行性能分析。首次贡献者 Aleksander Litynski 完成了这一艰巨任务,为我们带来了 ObjectDB Profiler 工具(GH-97210)。
借助该工具,用户可以在调试会话期间对当前 ObjectDB 状态进行快照,并与其他时间点的快照进行对比。这些快照可在多种上下文中查看(详见原始 PR 说明),简而言之,查找或导出状态差异(diff)从未如此轻松!

改进的自动网格 LOD:组件裁剪(component pruning)
现有的网格简化器(mesh simplifier)仅支持边折叠(edge collapse),缺乏对网格组件本身的简化。Arseny Kapoulkine 修复了这一缺陷,使拓扑复杂的网格部分能更容易达到目标 LOD 水平(GH-110028)。

旋转可视化与捕捉(snapping)
Godot 4.6 的 3D 空间交互已有诸多改进,但以下两项尤为值得一提,因为它们实现了许多 3D 建模软件常见的功能。
首先,Robert Yevdokimov 扩展了 3D Transform 操作控件(gizmo),现在可在旋转操作时可视化当前旋转角度的增量(GH-108576)。该角度为非累积式,超过 360° 时会重置。
其次,来自 passivestar 的贡献为 3D 视图(Viewport) 添加了轨道捕捉(orbit snapping)(GH-111509)。在按住 Alt 并结束轨道平移时,视角将被捕捉到一个固定的 45° 偏移角度。这类似于切换到正交视图,但保留了轨道视角的灵活性,更适合进行细微的中间角度调整。
渲染:在色调映射(tonemapping)前混合辉光(blend glow),并将默认模式改为 screen
HDR(高动态范围)在现代显示设备中越来越常见,但实际软件支持仍稍显滞后。这主要是因为大多数程序基于 sRGB 设计,需要重新适配以支持 HDR。这一过程远非易事,而且往往对普通用户而言是“看不见”的改进。
Allen Pestaluky 打破了这一常态,他的 PR 不仅提升了所有用户的视觉效果,还为未来的 HDR 输出支持 打下了基础(GH-110671)。
第一项更改是在所有渲染方法与混合模式下(除 soft light 外)在色调映射之前混合辉光。此前该行为仅在兼容性渲染器中存在,现在已扩展到 Mobile 与 Forward+ 渲染器。
提前混合可使辉光效果更自然地过渡,避免后混合时出现的硬边与色相偏移。

在上图的术语中,“色调映射(Tonemapping)”指的是将高动态范围(HDR)图像映射到低动态范围(LDR)显示设备的过程,它通过压缩亮度范围来保持画面的层次感与细节,使图像在普通显示器上不会出现过曝或灰暗的现象,是现代渲染流程中的关键步骤之一。
而“Screen”则是一种常见的图像混合模式,其计算方式是 result = 1 - (1 - A) * (1 - B),能够产生柔和且明亮的叠加效果,常被用于实现辉光(Glow)或发光材质的视觉表现。在 Godot 4.6 中,开发团队将辉光默认混合模式从 “Soft Light” 改为 “Screen”,以获得更真实、自然的高亮融合效果。
“AgX” 是一种基于 ACES(Academy Color Encoding System)理念的高级色调映射曲线,它优化了传统 ACES 在高光和饱和区间的表现,使色彩过渡更平滑、对比更真实,并能在不同显示设备上保持一致的视觉感受。至于 “16.29 white”,这是 HDR 渲染管线中的“白点”参考值,表示在场景的线性亮度空间中,亮度达到 16.29 时被视为“白色”的曝光基准。它直接影响整体曝光与动态范围的压缩比例,决定了画面的亮度平衡与高光细节的保留程度。
补充说明:在现代渲染流程中,**原始场景(Original Scene)**指的是引擎在经过光照计算、材质着色与后期特效(如辉光、景深、体积雾等)整合之前生成的线性、高动态范围(HDR)图像。这一阶段的图像数据处于“物理正确”的线性空间中,像素值直接反映了光照强度与能量的真实比值,但这些数值通常超出显示设备所能呈现的范围,因此无法直接在屏幕上正确显示。
进入第二阶段,即色调映射前(Before Tonemapping),此时图像已应用了一部分后期效果,例如辉光混合(在 Godot 4.6 中采用了 Screen 模式)与曝光调节,但尚未经过色调映射算法的压缩。此阶段的图像仍然是线性 HDR 数据,亮度范围极广,亮部可能超过 1.0 的显示上限,暗部则可能低于可感知阈值。在这一阶段检查画面,有助于开发者判断各个通道(光照、阴影、反射)在数值空间中的表现是否合理。
最终,经过 色调映射后(After Tonemapping),引擎会使用指定的色调映射曲线(本例中为 AgX)将线性 HDR 颜色转换为显示器可输出的低动态范围(LDR)图像。这个过程不仅压缩亮度范围,还通过曲线调整模拟人眼的感光响应,使图像在视觉上更自然。白点参数 “16.29 white” 就是此转换的关键参考值,决定了在多大亮度处开始压缩高光。映射后的画面在视觉上对比更加协调,细节层次分明,并能在各种显示设备上保持一致的曝光与色彩表现。
第二项更改是将所有渲染器的默认辉光混合模式从 soft light 改为 screen。这同样与兼容性渲染器保持一致,其默认值是基于“先混合后色调映射”的逻辑设定的。
因此,为保持一致性,其他渲染器的默认行为也进行了相应调整。

此更改会导致视觉效果的变化,无法通过简单的设置还原原有行为。尽管如此,我们有信心这项调整在绝大多数情况下都是直接的视觉升级。但如果你的游戏使用了辉光(Glow),请务必注意这一变化。
其他改进
以下仅列出部分亮点更新:
- Core: 为
CowData添加reserve_exact并将增长因子改为 1.5x(GH-106039) - Core: 为
Array、Vector与String添加reserve函数(GH-105928) - Core: 为支持基础场景与实例化场景重构,添加唯一 Node ID(GH-106837)
- 文档: 移除 Jolt Physics 集成的实验性标签(GH-111115)
- 编辑器: 在嵌入式游戏窗口中添加游戏速度控制(GH-107273)
- 编辑器: 在 POT 生成时为文件位置添加源代码行号(GH-111419)
- 编辑器: 使输出面板中错误/警告的文件部分可点击(GH-108473)
- 编辑器: 重构编辑器停靠栏(GH-106503)
- 编辑器: 为内建脚本保存脚本状态(GH-93713)
- GDScript: 新增可选警告,当调用协程(coroutine)时未使用
await会提示(GH-107936) - GUI: 为
Control添加pivot_offset_ratio属性(GH-70646) - GUI: 在
RichTextLabel中选择超出可见区域的文本时自动滚动(GH-104715) - GUI: 当选中
MarginContainer时可视化其边距(GH-111095) - 导入: OBJ 导入支持 bump multiplier(法线缩放)(GH-110925)
- 网络: 新增 Core 层级的 UNIX 域套接字支持(GH-107954)
- 物理: 为
MeshInstance3D添加原始体转换选项(GH-101521) - 物理: 为
MultiMeshInstance2D添加 2D 变换插值(GH-107666) - 渲染: 为移动渲染方法添加材质去条带化(debanding)(GH-109084)
- 渲染: 在兼容性渲染器中实现运动矢量(motion vectors)(GH-97151)
- 渲染: 使
OpenXRCompositionLayer及其子节点在多线程渲染中保持安全(GH-109431)
共有 114 位贡献者 提交了 **323 项修复与改进,**本次构建基于commit **7864ac801。**您可以关注Godot Hub的Godot PR日报( https://pd.qq.com/s/cg2mfd19b )栏目,获取更及时的Godot引擎改进内容。本文翻译、修改自官网文章,未经授权禁止转载或使用。
文章版权声明:本文由[沫萝ㅤ]原创发布,版权所有。
未经书面授权,禁止任何单位及个人以任何方式进行转载、摘编、复制或建立镜像。违反上述声明者,将依法追究其相关法律责任。

