Godot 4.4.3 现已可供下载。此版本包含错误修复和新功能。网页编辑器、XR编辑器和Android编辑器均可供测试使用。Godot 4.4.3 现已可供下载。此版本包含错误修复和新功能。网页编辑器、XR编辑器和Android编辑器均可供测试使用。

Godot 4.4 开发版 3:顶点着色、2D 批处理等功能

2025/12/08 02:15

我们带来了另一个重大开发更新,在过去几周内合并了超过330个提交!贡献者们继续开发令人惊叹的新功能,同时我们继续合并那些错过4.3截止日期的重要功能积压。综合结果是在短时间内压缩了大量优秀内容。

\ 本次发布中的许多更改是bug修复,这些修复将被向后移植到Godot 4.3并在4.3.1中发布!因此请充分测试此版本,以便我们对这些更改有信心,并尽快发布包含这些更改的4.3.1版本。

\ 请记住,虽然我们尽力确保每个开发快照都足够稳定以进行一般测试,但这本质上是预发布软件。请确保频繁备份,或使用版本控制系统(如Git),以防止项目在损坏或数据丢失的情况下受到影响。

\ 跳转到下载部分,立即试用,或继续阅读以了解此版本的更多改进。您还可以尝试此版本的Web编辑器XR编辑器Android编辑器(加入Android编辑器测试组以获取预发布版本)。


原始封面插图来自 Fogpiercer这是一款回合制卡牌对战游戏,您的牌组就是一列火车!它由Mad Cookies Studio使用Godot 4.3开发。您可以在Steam上将游戏加入愿望单,并在Twitter上关注开发者。

亮点

如果您错过了,请查看4.4 dev 1和dev 2发布说明,了解该快照中已有的一些关键功能概述,这些功能在dev 3中仍然可用于测试。

\ 以下是一些您可能会特别兴奋的亮点!

\

@export_tool_button注解

能够从工具脚本在检查器中创建按钮是一个备受期待的功能,许多贡献者自发地在GH-96290中实现了它:新贡献者jordi-star和Macksaur,以及维护者Ernest和Danil!

\ 这个新功能允许您通过@tool脚本更加灵活地创建开发工具。

\ 让我们看一个例子:

@tool extends Sprite2D # 使用可调用对象(也可以是本地函数)。 @export_tool_button("Toot", "Callable") var print_action = print.bind("toot") # 使用lambda。 @export_tool_button("随机颜色", "ColorRect") var color_action = func(): self_modulate = Color(randf(), randf(), randf())

\

大型项目场景启动的大幅优化

改进场景启动体验的工作并未放缓,这要归功于Hilderin的惊人贡献。此开发快照为大型项目的编辑器加载速度带来了巨大改进(GH-95678)。大型项目在加载时可以预期速度提升最多3倍,在执行任何扫描文件系统的操作时也有类似的加速效果。

顶点着色

此开发版本重新引入了期待已久的材质顶点着色选项(GH-83360),这要感谢贡献者ywmaa在Godot中实现的第二个主要功能,继Blender几何节点的导出支持之后。顶点着色主要用于实现早期PSX风格并优化在较旧和低端设备上的性能。

\ 您可以在现有的StandardMaterial3DORMMaterial3DShaderMaterial中启用顶点着色,或通过使用rendering/shading/overrides/force_vertex_shading项目设置在所有材质上强制启用它。

\

为RendererCanvasRenderRD添加批处理

在处理了早期快照中合并的Metal渲染后端之后,Stuart又承担了另一项令人印象深刻的渲染贡献:2D批处理!

\ 自4.0版本发布以来,批处理已在兼容性渲染器中实现。此版本通过在使用Forward+和Mobile后端时实现批处理(GH-92797),将相同的性能优势带给其他后端。现在所有后端的2D性能都可以相互媲美。

\ 批处理是一种性能优化,可以大幅减少场景中的绘制调用次数。批处理的好处在具有大量文本渲染或共享纹理的重复精灵的场景中特别明显(例如使用瓦片地图或制作弹幕游戏时)。

\ 我们计划对RD后端的批处理进行进一步改进,这应该使其比兼容性后端更快。请关注后续开发版本的更新!

调试器中的表达式求值器(REPL)

表达式求值器在底部面板中添加了一个新标签,允许您在断点处停止时使用脚本的本地状态评估表达式。许多用户熟悉这种来自其他REPL调试器的工作流程。

\ 这个功能已经开发了一段时间,最近完成并合并(GH-97647),感谢Oğuzhan、Erik和Tomek将其推向终点。

为所有分析器实现自动启动

用户的一个常见抱怨是,他们需要在启动游戏后返回编辑器才能启用分析器。这使得测量加载场景的前几秒钟的性能变得困难,对开发者来说总体上是一种麻烦。

\ Hendrik引入了一个复选框,允许您设置分析器在运行引擎时自动启动并立即捕获有价值的分析数据(GH-96759)。

为动画添加标记

标记允许您创建动画的子区域,可以跳转到这些区域,或者在不播放整个动画的情况下循环播放。

\ 动画树内部也支持标记,您可以轻松选择动画标记进行循环或开始播放。

\ 有关更多详细信息,请查看拉取请求GH-91765,这是ChocolaMint对Godot的首批贡献之一!

Linux相机支持

以前,Godot仅支持在macOS和iOS设备上访问设备相机。pkowal1982长期运行的拉取请求GH-53666最终被合并,并增加了对Linux平台的支持,允许开发者从游戏内访问连接的相机。

如果其他渲染驱动程序不受支持,则回退到OpenGL 3

目前,当尝试在不支持Vulkan、D3D12或Metal的设备上使用Forward+或Mobile后端运行Godot时,引擎会向用户提供操作系统警报,通知他们不支持所需的图形API,需要使用兼容性后端重试。这个警报对用户来说已被证明是令人困惑的,打开场景的过程最终变得繁琐。

\ 现在通过GH-97142,SheepYhangCN的首次贡献,当其他后端不可用时,引擎将自动回退到使用OpenGL(兼容性后端)。这应该为老旧设备的用户提供最流畅的体验。

\ 由于兼容性后端的外观可能与其他后端不同,游戏开发者可能不希望Godot自动回退。在这种情况下,他们可以禁用rendering/rendering_device/fallback_to_opengl3项目设置以避免回退,而只有OpenGL设备的用户将收到硬件不受支持的通知。

更多内容!

这里有太多令人兴奋的变化无法一一列出,但以下是精选:

  • 2D:修复粉色GradientTexture2D(GH-94744)。
  • 2D:修复多边形节点丢失其UV工具栏的问题(GH-96466)。
  • 3D:PathFollow3D默认立即更新变换(GH-96140)。
  • 动画:当贝塞尔曲线属性或贝塞尔编辑器更改时实时更新AnimationPlayer(GH-96753)。
  • 音频:修复WAV文件末尾的一帧溢出(GH-96768)。
  • 音频:使用LocalVector存储数据以优化AudioStreamMp3(GH-97026)。
  • 构建系统:CI:更新clang-format预提交钩子至19.1.0(GH-97483)。
  • 核心:为Array方法的find和rfind添加可调用支持(GH-95449)。
  • 核心:修复在GDScript中线程加载后无法在C#中使用ResourceLoader的问题(GH-92888)。
  • 核心:添加翻译域(GH-95787)。
  • 核心:WorkerThreadPool:重新设计与ScriptServer的交互(GH-96959)。
  • 核心:StringName:修复空哈希(GH-96586)。
  • Dotnet:生成强类型方法以引发信号事件并修复事件可访问性(GH-68233)。
  • 编辑器:修复具有较大细分值的PlaneMesh的MeshInstance3D装饰重绘性能(GH-96934)。
  • 编辑器:修复启动时重新打开不存在场景的错误(GH-97028)。
  • GDExtension:GDExtension:允许类名为Unicode(GH-96501)。
  • GDScript:修复GDScript二进制令牌非确定性问题(GH-96855)。
  • GDScript:修复Dictionary.merge()类型验证(GH-96864)。
  • GDScript:修复类型化字典的operator[](GH-96797)。
  • GUI:GraphEdit:改进点状网格性能(GH-96910)。
  • GUI:修复TabContainer最小尺寸(GH-97132)。
  • 导入:为Betsy添加BC1压缩支持(GH-95915)。
  • 导航:修复AStar2D、AStar3D、AStarGrid2D在目标被禁用/实体时即使使用allowpartialpath选项也不返回路径的问题(GH-94246)。
  • 物理:将Godot Physics 2D移入模块;添加虚拟2D物理服务器(GH-95261)。
  • 物理:将Godot Physics 3D移入模块;添加虚拟3D物理服务器(GH-95252)。
  • 物理:在GodotArea3D::removesoftbodyfromquery()中添加被遗忘的getspace()检查(GH-97130)。
  • 移植:修复项目管理器在i3上抢夺焦点的问题(GH-96829)。
  • 渲染:使用到AABB表面的距离计算网格LOD,而不是使用支持(GH-92290)。
  • 渲染:修复BaseMaterial3D折射位于材质前方的对象的问题(GH-93449)。
  • 渲染:修复不正确的Reinhard色调映射运算符(GH-93324)。
  • 渲染:使用时间累积来提高阴影质量(GH-97428)。
  • 渲染:修复regionfilterclip_enabled以避免插值精灵表的精灵出血(GH-97602)。
  • 视觉着色器:为Remap节点添加向量操作(GH-97314)。
  • 第三方:mbedTLS:启用TLS 1.3支持(GH-96394)。
  • XR:修复从Android编辑器启动XR应用程序(GH-96868)。

更新日志

136位贡献者为这个新快照提交了332项改进。查看我们的交互式更新日志,了解自上一个4.4-dev2快照以来的完整更改列表。

\ 此版本基于提交f4af8201b构建。

下载

下载Godot 4.4 dev3

\ 标准版本包括对GDScript和GDExtension的支持。

\ .NET版本(标记为mono)包括对C#以及GDScript和GDExtension的支持。

  • 另请参阅C#平台支持。

\ 虽然引擎维护者尽最大努力确保每个预览快照和候选版本都是稳定的,但这本质上是预发布软件。请确保频繁备份,或使用版本控制系统(如Git),以防止项目在损坏或数据丢失的情况下受到影响。

已知问题

  • 打开编辑器时会打印"尝试使用未初始化的RID"错误(GH-97694)。这是一个无害的错误,不会对您的项目产生明显影响。

\ 每次发布我们都接受会有各种已报告但尚未修复的问题。请查看GitHub问题跟踪器获取已知bug的完整列表。

错误报告

作为测试者,如果您在使用此版本时遇到问题,我们鼓励您提交错误报告。请先使用相关关键词通过搜索功能检查GitHub上的现有问题,以确保您遇到的bug尚未被发现。

\ 特别是,任何可能导致项目回归的更改都非常重要,需要报告(例如,如果某些在之前的4.x版本中正常工作的功能,但在此快照中不再工作)。

支持

Godot是一个非营利、开源游戏引擎,由数百名贡献者在空闲时间开发,以及少数全职或兼职开发人员,这些开发人员是由Godot社区的慷慨捐赠雇佣的。非常感谢所有为项目贡献时间或财务支持的人!

\ 如果您想在财务上支持该项目并帮助我们确保未来的招聘,您可以使用由Godot基金会管理的Godot开发基金平台。还有其他几种您可能认为更合适的捐赠方式。


Clay John

\ 也发布于此处

\ 照片由Denys Nevozhai在Unsplash上提供

免责声明: 本网站转载的文章均来源于公开平台,仅供参考。这些文章不代表 MEXC 的观点或意见。所有版权归原作者所有。如果您认为任何转载文章侵犯了第三方权利,请联系 [email protected] 以便将其删除。MEXC 不对转载文章的及时性、准确性或完整性作出任何陈述或保证,并且不对基于此类内容所采取的任何行动或决定承担责任。转载材料仅供参考,不构成任何商业、金融、法律和/或税务决策的建议、认可或依据。