Add 4.6-beta1 blog post#1221
Conversation
c957788 to
8c63135
Compare
| ### XR | ||
|
|
||
| TODO | ||
|
|
||
| And more: | ||
| - Add OpenXR 1.1 support ([GH-109302](https://github.com/godotengine/godot/pull/109302)). | ||
| - OpenXR: Add core support for Khronos loader ([GH-106891](https://github.com/godotengine/godot/pull/106891)). | ||
| - OpenXR: Add support for frame synthesis ([GH-109803](https://github.com/godotengine/godot/pull/109803)). | ||
| - OpenXR: Add support for spatial entities extension ([GH-107391](https://github.com/godotengine/godot/pull/107391)). |
There was a problem hiding this comment.
I think this overlaps significantly with dev5 so you can reuse the draft @BastiaanOlij wrote in #1217 and adapt it to the beta1 format.
There was a problem hiding this comment.
Yeah I think nothing much has changed since dev5. Would be nice to mention Valve Steam Frame controller support(godotengine/godot#113820)
There was a problem hiding this comment.
It would also be nice to talk about adding support for eye-tracked foveated rendering on Meta Quest Pro and Samsung Galaxy XR (godotengine/godot#112888)
| ### Rendering and shaders | ||
|
|
||
| TODO | ||
|
|
||
| And more: | ||
| - Add `white`, `contrast`, and future HDR support to the AgX tonemapper ([GH-106940](https://github.com/godotengine/godot/pull/106940)). | ||
| - Add material debanding for use in Mobile rendering method ([GH-109084](https://github.com/godotengine/godot/pull/109084)). | ||
| - Add methods to draw ellipses ([GH-85080](https://github.com/godotengine/godot/pull/85080)). | ||
| - Add Persistent Buffers utilizing UMA ([GH-111183](https://github.com/godotengine/godot/pull/111183)). | ||
| - Add ubershader support to material and SDF variants in Forward+ ([GH-109401](https://github.com/godotengine/godot/pull/109401)). | ||
| - Apply viewport oversampling to Polygon2D ([GH-112352](https://github.com/godotengine/godot/pull/112352)). | ||
| - Blend glow before tonemapping and change default to screen ([GH-110671](https://github.com/godotengine/godot/pull/110671)). | ||
| - D3D12: Greatly reduce shader conversion time & fix spec constant bitmasking ([GH-111762](https://github.com/godotengine/godot/pull/111762)). | ||
| - Implement a very simple SSAO in GLES3 ([GH-109447](https://github.com/godotengine/godot/pull/109447)). | ||
| - Implement motion vectors in compatibility renderer ([GH-97151](https://github.com/godotengine/godot/pull/97151)). | ||
| - Implement point size emulation in the forward shader for D3D12 ([GH-112191](https://github.com/godotengine/godot/pull/112191)). | ||
| - Make `OpenXRCompositionLayer` and its children safe for multithreaded rendering ([GH-109431](https://github.com/godotengine/godot/pull/109431)). | ||
| - Massively optimize canvas 2D rendering by using vertex buffers ([GH-112481](https://github.com/godotengine/godot/pull/112481)). | ||
| - Overhaul and optimize Glow in the mobile renderer ([GH-110077](https://github.com/godotengine/godot/pull/110077)). | ||
| - Overhaul screen space reflections ([GH-111210](https://github.com/godotengine/godot/pull/111210)). | ||
| - Refactor rendering driver copy APIs to fix D3D12 issues ([GH-111954](https://github.com/godotengine/godot/pull/111954)). | ||
| - Rewrite Radiance and Reflection probes to use Octahedral maps ([GH-107902](https://github.com/godotengine/godot/pull/107902)). | ||
| - TAA adjustment to reduce ghosting ([GH-112196](https://github.com/godotengine/godot/pull/112196)). | ||
| - Use half float precision buffer for 3D when HDR2D is enabled ([GH-109971](https://github.com/godotengine/godot/pull/109971)). | ||
| - Use re-spirv in the Vulkan driver to optimize shaders ([GH-111452](https://github.com/godotengine/godot/pull/111452)). |
There was a problem hiding this comment.
@clayjohn Would you have time to draft that section today?
The goal is to have the most important changes highlighted explicitly in paragraphs and with relevant videos/screenshots, and the rest just listed after "And more:".
We can reuse text/media from previous dev snapshots as needed.
There was a problem hiding this comment.
Not today no. But I could probably draft something tomorrow
|
While there's still sections which need their "and more" lists trimmed down and/or migrated to proper highlights, the remaining "TODO"s have all been dealt with by now, so this is technically ready for review |
JohnVeness
left a comment
There was a problem hiding this comment.
Changed a lot of present tense-isms - I'm afraid they just sound odd in this kind of article. But great work in general!
917327b to
706bb03
Compare
|
|
8a8f369 to
71f3800
Compare
5a50475 to
5357020
Compare
|
|
||
| [kisg](https://github.com/kisg) has laid out a foundation for building the engine as a standalone library: `LibGodot` ([GH-110863](https://github.com/godotengine/godot/pull/110863)). Through the new [`GodotInstance`](https://docs.godotengine.org/en/latest/classes/class_godotinstance.html) class, developers now have an entry point for specialized workflows that *absolutely require* accessing Godot as a library. | ||
|
|
||
| [Lukas Tenbrink](https://github.com/Ivorforce) has brought tracing profiler support to Godot ([GH-104851](https://github.com/godotengine/godot/pull/104851)). With this, engine developers will no longer need to manually integrate (and constantly re-integrate) profiling logic to the engine, as they are now officially integrated within the build system instead. There is currently support for [Tracy](https://github.com/wolfpld/tracy), [Perfetto](https://perfetto.dev/), and [Apple Instruments' signposts](https://developer.apple.com/documentation/os/recording-performance-data) ([GH-113342](https://github.com/godotengine/godot/pull/113342)). |
There was a problem hiding this comment.
Could be nice to embed @AdriaandeJongh's screen capture from https://bsky.app/profile/adriaan.games/post/3m7hwtpeeuk22 (with appropriate credit).
I seem to be able to download it from Bluesky with yt-dlp:
tracy-gdscript-profile.mp4.zip
@AdriaandeJongh If you're up to confirm that you're cool with us including it, that would be great.
cdbb2ab to
0c7ba4d
Compare
|
|
||
| Bastiaan additionally implemented support for [OpenXR Spatial Entities Extensions](https://www.khronos.org/blog/openxr-spatial-entities-extensions-released-for-developer-feedback), introduced to standardize obtaining and interacting with information about the user's real world environment ([GH-107391](https://github.com/godotengine/godot/pull/107391)). This brings support for [spatial anchors](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_spatial_anchor), [plane tracking](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_spatial_plane_tracking), and [marker tracking](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_spatial_marker_tracking) in a consistent and platform-independent manner. If you have the necessary equipment for it, Bastiaan has provided a [demo project](https://github.com/BastiaanOlij/spatial-entities-demo) to showcase this new functionality. | ||
|
|
||
| [dhoverb](https://github.com/dhoverb) took to supporting the extensions for offsetting density maps ([GH-112888](https://github.com/godotengine/godot/pull/112888)). This is a key feature enabling eye-tracked foveated rendering on devices that support this method. Currently, this has been tested on Meta Quest Pro and Samsung Galaxy XR headsets, but other headsets are expected to benefit from this change as well. |
There was a problem hiding this comment.
If we're doing human names:
| [dhoverb](https://github.com/dhoverb) took to supporting the extensions for offsetting density maps ([GH-112888](https://github.com/godotengine/godot/pull/112888)). This is a key feature enabling eye-tracked foveated rendering on devices that support this method. Currently, this has been tested on Meta Quest Pro and Samsung Galaxy XR headsets, but other headsets are expected to benefit from this change as well. | |
| [David Hover](https://github.com/dhoverb) took to supporting the extensions for offsetting density maps ([GH-112888](https://github.com/godotengine/godot/pull/112888)). This is a key feature enabling eye-tracked foveated rendering on devices that support this method. Currently, this has been tested on Meta Quest Pro and Samsung Galaxy XR headsets, but other headsets are expected to benefit from this change as well. |
There was a problem hiding this comment.
Oh my goodness, I merged JUST as you submitted these! We'll catch these in a followup
|
|
||
| [dhoverb](https://github.com/dhoverb) took to supporting the extensions for offsetting density maps ([GH-112888](https://github.com/godotengine/godot/pull/112888)). This is a key feature enabling eye-tracked foveated rendering on devices that support this method. Currently, this has been tested on Meta Quest Pro and Samsung Galaxy XR headsets, but other headsets are expected to benefit from this change as well. | ||
|
|
||
| dhoverb has also added support for the `XR_KHR_android_thread_settings` extension, which informs the XR runtime about threads used for rendering, game logic, or other purposes ([GH-112889](https://github.com/godotengine/godot/pull/112889)). This allows for better thread prioritization on AOSP devices that implement this extension. |
There was a problem hiding this comment.
| dhoverb has also added support for the `XR_KHR_android_thread_settings` extension, which informs the XR runtime about threads used for rendering, game logic, or other purposes ([GH-112889](https://github.com/godotengine/godot/pull/112889)). This allows for better thread prioritization on AOSP devices that implement this extension. | |
| David also added support for the `XR_KHR_android_thread_settings` extension, which informs the XR runtime about threads used for rendering, game logic, or other purposes ([GH-112889](https://github.com/godotengine/godot/pull/112889)). This allows for better thread prioritization on AOSP devices that implement this extension. |
| - Default glow blend mode has changed to `screen` and default glow levels have changed ([GH-110671](https://github.com/godotengine/godot/pull/110671) and [GH-110077](https://github.com/godotengine/godot/pull/110077)). | ||
| - Note: Glow blending now occurs before tonemapping and `softlight` glow blending has changed to always appear as it did when using HDR 2D on your Viewport. | ||
| - `Quaternion` now correctly initializes with identity under `Variant` ([GH-84658](https://github.com/godotengine/godot/pull/84658)). | ||
|
|
There was a problem hiding this comment.
| If you are planning to upgrade a project that previously imported 3D assets, we recommend checking the following two settings. | |
| - Make MeshInstance3D's skeleton default path depends on the Project Settings ([GH-112267](https://github.com/godotengine/godot/pull/112267)). | |
| - Change AnimationLibrary serialization to avoid using Dictionary ([GH-110502](https://github.com/godotengine/godot/pull/110502)). | |
| You can use the project upgrade tool to correct these items. | |
|  | |
|
|
||
| ### GUI | ||
|
|
||
| Michael has brought another new addition: the focus state logic for mouse and touch is now decoupled from keyboard and joypad ([GH-110250](https://github.com/godotengine/godot/pull/110250)). As we mentioned in the [4.6 dev 1 blog post](/article/dev-snapshot-godot-4-6-dev-1/), it's not uncommon for systems to deliberately stylize these two input groups separately, enabling granular control for toolmakers and UI designers. |
There was a problem hiding this comment.
Oh, sorry for not pointing this out before, but there's one extra thing: Controls that support keyboard input (basically just Line/TextEdit) will show focus by default in a running project.
This and the overall focus behavior can be changed with the gui/common/show_focus_state_on_pointer_event project setting.
Very much a templated start, as this serves more to consolidate everything merged with a feature/list label over the course of the 4.6 dev cycle. Not everything here will be given a dedicated highlight, nor necessarily a listing, but it's a rough start which can be expanded upon if desired. Area maintainers are encouraged to specify which parts warrant explicit paragraphs, and are welcome to provide their own writeups if so desired