Make it more obvious to newcomers how this demo works so they can
replicate it in their projects.
Change the text to point to how this is working.
Add Editor Descriptions to make it clearer how this is setup.
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
- Increase physics ticks per second to 120, so that UI interactions feel
smoother and have lower input lag. This happens since input is governed
by the physics tick due to the use of physics picking.
- Add a placeholder to the LineEdit and select a default option in the OptionButton.
Physics picking requires that the SubViewport has a consistent state
of the mouse-enter/exit notifications.
Godot V4.3 was changed in comparison to V4.2, so that it now requires
this additional step.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
This leads to code that is easier to understand and runs
faster thanks to GDScript's typed instructions.
The untyped declaration warning is now enabled on all projects
where type hints were added. All projects currently run without
any untyped declration warnings.
Dodge the Creeps and Squash the Creeps demos intentionally don't
use type hints to match the documentation, where type hints haven't
been adopted yet (given its beginner focus).
- Move all demo projects that don't require Forward+/Mobile-only features
to the Compatibility rendering method. This improves performance significantly
on low-end devices and ensures visuals are identical to a web export
of the demo.
- Set deadzone on all inputs to 0.2 for better gamepad usability.
- Remove reliance on `default_env.tres` to use built-in Environment
resources in the main scene instead (which follows the preview environment
workflow).
- Remove notices pointing to GDNative or VisualScript, since both were
removed in 4.0.
- Various bug fixes and usability tweaks to 10+ demos.
* Remove unnecessary use of `self`
* Connect to signals directly over `connect("name")`
* Use `call_deferred` on callables over `call_deferred("name"))`
* Emit signals directly over `emit_signal("name"...)`
Rework GUI in 3D Demo to handle mouse events via
Physics Picking instead of in _unhandled_input.
This brings several benefits:
- Correctly handle cases, where the 3D-GUI is located behind other
collision objects.
- Proper passive hovering support
This allows also to make simplifications in the code, because
3D-mouse position no longer needs to be calculated manually.
All demos were opened with Godot 4.2.1, with the mesh format
upgraded for 3D demos.
The 3D antialiasing demo now uses Extra Cull Margin on the last
object to prevent it from disappearing too early when the camera
rotates (due to its use of shader-based animation).
A GLES2-specific tweak is now documented for the GUI in 3D demo.
This also tweaks shadow quality and performance to find a better
balance and result in smoother shadows, including when using GLES2
(thanks to the use of PCF13 shadow filter mode).
In demos that allow falling back to GLES2, ETC1 texture import
is enabled to allow exporting to Android or HTML5 without having
to tweak anything.
- Use 4× MSAA for a better visual appearance.
- Use "3D Without Effects" framebuffer allocation when possible
for better performance.
- Disable Glow in the 3D Kinematic Character demo for better
performance. Increase the DirectionalLight strength to compensate.
- Use a non-linear attenuation for the OmniLight in the
Window Management demo (and increase its range to compensate).
* Made the whole block a separated scene to demonstrate it can work across multiple instances.
* Dropped the Area.input_event and did everything manually with raycasting.
* Made quad_mesh_size automatically pick the quad size, avoiding the extra setup.
* Changed from PlaneMesh to QuadMesh. Now everyting can start with 0 rotation.
* The function will keep handling input when the mouse is outside of the area to avoid orphan clicks, but stop when the click is released.
* Changed some variable and function names to make sense with the code changes.
* Added an extra function to deal with billboard mode. But is not perfect, specially with scaling and Y-billboard + camera tilting.
A vertical FOV of 74 degrees is roughly equivalent to a 90 degree
horizontal FOV on a 4:3 display (~106.26 degrees on 16:9), which
is the typical default FOV used in PC games.