Commit Graph

2595 Commits

Author SHA1 Message Date
Micky d5a7c7818c Add autocompletion options for AnimatedSprite's other play methods 2024-01-03 01:33:08 +01:00
Micky ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
kobewi cb0a37f61a Only update particle velocity when it changes 2023-12-23 18:04:24 +01:00
Yuri Sizov 252c462a9d Merge pull request #85594 from addmix/camera3d-current-bug
Prevent `Camera3D.current` from being set to `true` automatically in the editor.
2023-12-19 20:33:00 +01:00
Nicholas Foo e7ee672120 Add getters to navigation servers
Add virtual functions and bind to navigation servers
Implement getters
Add documentation
2023-12-19 19:51:49 +01:00
Yuri Sizov 13dd72ce78 Merge pull request #85219 from dsnopek/light-bake-mode-no-gi-method
Remove GI methods in parentheses from light baking options
2023-12-19 13:01:40 +01:00
Yuri Sizov 4600acfc41 Merge pull request #85311 from miv391/add-change-guards-to-sprite2d
Add property change guards to Sprite2D, Sprite3D and AnimatedSprite2D
2023-12-18 18:17:49 +01:00
A Thousand Ships 0081a50e32 Prevent mapping areas with invalid IDs for `Area2D/3D`
This occurs when areas are created directly from the servers, and no
instance is linked.
2023-12-18 16:02:46 +01:00
Mika Viskari 5b9e67e0a5 Add property change guards to Sprite2D and AnimatedSprite2D 2023-12-16 20:25:35 +02:00
Yuri Sizov 1e86ce0b40 Merge pull request #85317 from miv391/fix-breaking-frame-index-in-sprites
Fix invalid `frame` index when Sprite2D's `hframes` or `vframes` has been changed
2023-12-16 17:49:38 +01:00
风青山 ea30aabfb1 Clear monitoring in `Area*` when its space changes to invalid
So that it can work properly when the space changes to valid again.

Change `space` in advance to prevent disabled areas from being queried again.
2023-12-15 20:54:54 +01:00
Mika Viskari 484c5b5aff Fix invalid frame index when Sprite2D's hframes or vframes has been changed 2023-12-15 20:32:18 +02:00
Yuri Sizov 302e41c264 Merge pull request #82561 from ershn/fix_navigation_agents_is_target_reached_behavior
Make `target_desired_distance` affect the navigation of `NavigationAgent2D/3D`
2023-12-14 21:22:35 +01:00
bruvzg 575e1201cb [TextServer] Do not draw non-visual characters. 2023-12-12 12:17:10 +02:00
Yuri Sizov 44d544fc98 Merge pull request #85120 from dsnopek/gl-lightmap
OpenGL: Implement rendering of lightmaps
2023-12-08 15:23:27 +01:00
Yuri Sizov de5583c821 Merge pull request #83698 from BlueCube3310/curve-runtime-draw-improvement
Improve Curve3D debug drawing
2023-12-08 15:23:03 +01:00
David Snopek bfdcd8559b Fix overriding `CollisionObject3D::_mouse_enter()` and `_mouse_exit()` from GDExtension 2023-12-06 16:39:43 -06:00
David Snopek 749f60ee36 OpenGL: Implement rendering of lightmaps 2023-12-04 18:34:06 -06:00
Rémi Verschelde 4ce65c6190
Merge pull request #83816 from smix8/navobstacle_properties
Fix missing NavigationObstacle property updates in constructor
2023-12-04 23:00:02 +01:00
Rémi Verschelde 1389d8a23f
Merge pull request #83814 from smix8/navagent_properties
Fix missing NavigationAgent property updates in constructor
2023-12-04 22:59:38 +01:00
Rémi Verschelde 4bd5ffd669
Merge pull request #83812 from smix8/navregion_properties
Fix missing NavigationRegion property updates in constructor
2023-12-04 22:59:13 +01:00
Rémi Verschelde 9be2f25c57
Merge pull request #83802 from smix8/navlink_properties
Fix missing NavigationLink property updates in constructor
2023-12-04 22:58:49 +01:00
smix8 25bf20d7a5 Fix missing NavigationRegion property updates in constructor
Fixes missing NavigationRegion property updates in constructor.
2023-12-04 19:50:17 +01:00
addmix 5b5ac92de5 Prevent Camera3D.current from being set to true automatically in the editor. 2023-12-01 02:48:53 -07:00
Ershn fce16b6662 Make target_desired_distance affect the navigation of NavigationAgent2D/3D
When the target is reachable, stop the navigation only when the target is reached.
2023-11-29 23:48:54 +09:00
David Snopek ce488930ea Remove GI methods in parentheses from light baking options 2023-11-22 08:42:40 -06:00
Pedro J. Estébanez fe4850c0d0 Use mingw-std-threads in MinGW builds 2023-11-18 11:56:05 +01:00
Mikael Hermansson a3278c772e Fix transform sync in `RigidBody*D::_body_state_changed` 2023-11-15 01:45:45 +01:00
kobewi 4296f0a771 Fill remaining global scope constant descriptions 2023-11-13 15:17:10 +01:00
Mikael Hermansson 21a3ed1715 Fix transform changes in `_integrate_forces` being overwritten 2023-11-12 19:32:08 +01:00
Rémi Verschelde 28ada4582e
Merge pull request #82604 from Calinou/editor-camera3d-size-property-hint
Tweak Camera3D `size` property hint to make dragging more useful
2023-11-10 21:54:10 +01:00
rsburke4 f191330968 Node3D children using top_level in different position in-editor vs. runtime 2023-11-09 05:10:35 -05:00
Rémi Verschelde 5eb5a99379
Merge pull request #84165 from clayjohn/softbody-bug
Ensure SoftBody3D does not use compressed mesh format.
2023-10-30 10:19:43 +01:00
Rémi Verschelde e2c79bcb95
Merge pull request #82471 from SaracenOne/recache_bone_attachment
Reimport bone attachment fixes
2023-10-30 10:18:00 +01:00
clayjohn 1d9554103c Ensure SoftBody3D does not use compressed mesh format. 2023-10-29 22:45:47 +01:00
BlueCube3310 bd67e0a0bc Change dropdown type filter to Texture2D in certain nodes 2023-10-28 17:39:47 +02:00
Saracen 4b671eec0e Reimport bone attachment fixes:
Assign bone_idx to GLTF importer to fix serialization.
Notifies Skeletons and BoneAttachments when reimporting.
Removes usage of NOTIFICATION_NODE_RECACHE_REQUESTED
2023-10-27 20:34:01 +01:00
Rémi Verschelde 23b1f213a8
Merge pull request #81616 from bitsawer/fix_multimesh_voxelgi_bake
Fix VoxelGI MultiMesh and CSG mesh baking
2023-10-26 15:58:29 +02:00
Rémi Verschelde bf46ee144d
Merge pull request #77788 from gongpha/stop-posting-about-(re)importing-assets-whatever-dot-exr
Avoid reimporting lightmap textures every getter call
2023-10-26 15:57:46 +02:00
Rémi Verschelde 346459e9fb
Merge pull request #83986 from SaracenOne/skeleton_bones_renamed_check
Add method check for `_notify_skeleton_bones_renamed`.
2023-10-26 12:10:32 +02:00
Saracen d0e5bff542 Add method check for _notify_skeleton_bones_renamed. 2023-10-26 10:22:59 +01:00
Rémi Verschelde 79e9e201e8
Merge pull request #82415 from Calinou/reflectionprobe-fix-high-max-distance-rendering-2
Clamp ReflectionProbe Max Distance to 262,144 to fix rendering issues
2023-10-26 08:57:35 +02:00
bitsawer cbb39f4b6e Fix VoxelGI MultiMesh and CSG mesh baking 2023-10-25 16:37:47 +03:00
Hugo Locurcio e4d846378b
Fix LightmapGI taking editor-only and sky-only lights into account
These lights are not visible when running the project (or at all),
so they shouldn't affect the lightmap baking process.
2023-10-23 22:56:17 +02:00
smix8 618d9492d9 Fix missing NavigationObstacle property updates in constructor
Fixes missing NavigationObstacle property updates in constructor.
2023-10-23 05:10:58 +02:00
smix8 9640179f93 Fix missing NavigationAgent property updates in constructor
Fixes missing NavigationAgent property updates in constructor.
2023-10-23 04:27:49 +02:00
smix8 2f1668804c Fix missing NavigationLink property updates in constructor
Fixes missing NavigationLink property updates in constructor.
2023-10-23 01:43:55 +02:00
A Thousand Ships 72fccd82c5 [Audio] Fix pausing stream on entering tree
The paused notifications are only sent when pause status is changed,
this ensures that streams that are non-processing do not play when added
to the tree. Also ensures that the `process_mode` property applies
generally.
2023-10-22 22:35:32 +02:00
Kongfa Waroros c165f0cf2e Avoid reimporting lightmap textures every getter call 2023-10-22 16:32:08 +07:00
smix8 b7be45279d Solve race condition between AThousandShips and Akien
Solves race condition between AThousandShips and Akien.
2023-10-21 19:04:41 +02:00
Rémi Verschelde d2cd907e28
Merge pull request #83705 from smix8/agent_y_velocity_.4x
Fix NavigationAgent3D stored y-axis velocity and make it optional
2023-10-21 15:51:53 +02:00
Rémi Verschelde 0dc915b480
Merge pull request #83701 from smix8/obstacle_height_4.x
Fix NavigationObstacle3D height
2023-10-21 15:51:30 +02:00
Rémi Verschelde 918da63797
Merge pull request #82593 from smix8/navobstacle_debug_transform_4.x
Fix NavigationObstacle3D debug being affected by rotation and scale
2023-10-21 15:51:02 +02:00
BlueCube3310 982ce34a58 Improve Curve3D Debug Drawing 2023-10-21 11:56:05 +02:00
smix8 4771431b28 Fix NavigationAgent3D stored y-axis velocity and make it optional
Fixes NavigationAgent3D stored y-axis velocity and makes it optional.
2023-10-21 01:11:26 +02:00
smix8 b30b672649 Fix NavigationObstacle3D height
Fixes NavigationObstacle3D height.
2023-10-21 00:08:50 +02:00
Mikael Hermansson a977199a3c Fix unit suffixes for `Generic6DOFJoint` 2023-10-20 13:33:34 +02:00
Mathias d4ced2506d Fix unit suffix for HingeJoint3D's target velocity 2023-10-17 18:53:55 +02:00
Rémi Verschelde cbfa941061
Merge pull request #83365 from Malcolmnixon/fix-disabled-nav-region
Fix enabling NavigationRegion3D saved disabled
2023-10-16 13:00:35 +02:00
Malcolm Nixon 0646b230e4 Fix enabling NavigationRegion3D saved disabled
This PR fixes issue #83364 by always registering the region when it enters the tree, and instead using region_set_enabled to control whether its enabled. The same logical changes have been applied to NavigationRegion2D.
2023-10-14 23:17:57 -04:00
风青山 30904ed3bc Fix cannot update remote after disabling `use_global_coordinates` in `RemoteTransform2D`
Due to the optimization in `CanvasItem`, `global_transform` is only
updated when `get_global_transform()` is called, and then notify
`NOTIFICATION_TRANSFORM_CHANGED`. That is, in the case where
`global_transform` is not obtained, the notification will not be sent.

So we use `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` in this case. Use in
combination to prevent certain optimizations.

Same change for `RemoteTransform3D`, to prevent the same optimization
from being used in `Node3D` in the future.
2023-10-15 00:16:52 +08:00
Rémi Verschelde 135fa1ef5d
Merge pull request #83179 from clayjohn/tangents-sanitize
Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader
2023-10-13 22:17:02 +02:00
Dario a9a197d2dc Rewrite the GPU Lightmapper's indirect lighting logic to match Godot 3.5's CPU Lightmapper.
Port over the logic from Godot 3.5 for indirect lighting. This should fix many issues about indirect bounces causing more energy and improve the overall quality of the result.
2023-10-13 14:33:55 -03:00
clayjohn e3d31837eb Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader 2023-10-13 08:54:49 -06:00
Rémi Verschelde 55282ddc10
Merge pull request #79527 from QbieShay/qbe/particles-rework
Particle internal refactor and additions for more artistic control
2023-10-10 22:48:50 +02:00
QbieShay c228fe1a0d Particle internal refactor and additions for more artistic control
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
bitsawer 416ef5ad1b Fix VoxelGI bake memory leak 2023-10-09 12:27:03 +03:00
kleonc db6a8956b2 Make gizmo plugin handle SpriteBase3D instead of Sprite3D 2023-10-06 11:03:44 +02:00
clayjohn 51ed3aef63 Vertex and attribute compression to reduce the size of the vertex format.
This allows Godot to automatically compress meshes to save a lot of bandwidth.

In general, this requires no interaction from the user and should result in
no noticable quality loss.

This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.

Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
Rémi Verschelde 72cdb0b4c5
Merge pull request #82393 from jrouwe/body_changed_state
Fix performance regression in RigidBody2D/3D and PhysicalBone3D
2023-10-04 15:35:30 +02:00
bitsawer 12a2177967 Fix notification thread guards 2023-10-02 19:31:54 +03:00
Hugo Locurcio 14f40ec70e
Tweak Gravity Scale property hints to make dragging more useful
This also allows a more precise step.
2023-10-01 20:01:46 +02:00
Hugo Locurcio af73db3c6d
Tweak Camera3D `size` property hint to make dragging more useful
Values greater than the maximum can still be entered.
2023-10-01 03:49:17 +02:00
smix8 cbb9d21fd0 Fix NavigationObstacle3D debug being affected by rotation and scale
Fixes NavigationObstacle3D debug being affected by rotation and scale.
2023-09-30 22:35:38 +02:00
Yuri Sizov 7c23d4082b Merge pull request #82391 from warriormaster12/improve-skeleton_ik3D
Fix `SkeletonIK3D` editor preview when changing active node
2023-09-28 20:04:30 +02:00
Yuri Sizov 7ae0fa1083 Merge pull request #77496 from clayjohn/GLES3-shadows
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 20:03:53 +02:00
clayjohn cb7200b028 Implement 3D shadows in the GL Compatibility renderer 2023-09-28 09:39:26 +02:00
warriormaster12 ddf93f3f59 Make SkeletonIk3D node usable 2023-09-28 07:38:50 +03:00
Yuri Sizov aa82cccc41 Merge pull request #81659 from DarioSamo/nlm-denoiser
Replace OIDN denoiser in Lightmapper with a JNLM denoiser compute shader.
2023-09-27 19:08:01 +02:00
Rémi Verschelde 545d1c0adb
Merge pull request #82416 from Calinou/decal-fix-clamp-extents
Fix Decal clamping to positive values not being applied to RenderingServer
2023-09-27 09:21:58 +02:00
Hugo Locurcio a052d34129
Fix Decal clamping to positive values not being applied to RenderingServer
This means the Decal editor gizmo could be incorrect compared to the actual
rendering if you enter a negative value in the inspector.
2023-09-27 02:21:07 +02:00
Hugo Locurcio ce421da908
Clamp ReflectionProbe Max Distance to 262,144 to fix rendering issues 2023-09-27 02:19:59 +02:00
Hugo Locurcio fcbf7011cc
Make 3D editor gizmos and debug shapes ignore fog
This makes them easier to see in their intended colors in scenes with fog.
2023-09-27 00:54:57 +02:00
Jorrit Rouwe eff7f27c48 Fixed performance regression in godot 4.2 in RigidBody2D/3D and PhysicalBone3D
After change c118256865 the body state is synched 2x, but this is only needed if _integrate_forces is overridden.

Adding this extra if increases the FPS by 2.5% in a heavy physics scene, see: https://github.com/godot-jolt/godot-jolt/discussions/611
2023-09-26 21:19:58 +02:00
Rémi Verschelde 571792cd9d
Merge pull request #81695 from bitsawer/fix_bone_attachment_signal
Fix BoneAttachment3D signal connection
2023-09-26 08:21:45 +02:00
Rémi Verschelde 538928b273
Merge pull request #81545 from bitsawer/fix_lightmap_gridmap_bake
Fix LightmapGI baking with GridMap
2023-09-26 08:20:29 +02:00
Dario 1b2b726502 Replace OIDN denoiser with a JNLM denoiser compute shader implementation. 2023-09-25 14:53:45 -03:00
Rémi Verschelde e4cfd4e26a
Merge pull request #82195 from AThousandShips/radian_fix
Replace `radians` range hint with `radians_as_degrees`
2023-09-25 17:18:38 +02:00
A Thousand Ships e45927b2f2 Replace `radians` range hint with `radians_as_degrees` 2023-09-25 08:50:19 +02:00
Rémi Verschelde 98747a9040
Merge pull request #78803 from EMBYRDEV/additional-mesh-import-options
Add layer, shadow and visibility range options to the Scene importer
2023-09-24 23:30:30 +02:00
Mikael Hermansson ee9f41a12d Fix bindings of `PhysicsServer3DRenderingServerHandler` 2023-09-20 12:24:32 +02:00
Rémi Verschelde 04d2aa61a3
Merge pull request #81641 from MewPurPur/bus-go-brrrr-2
Add a `bus_renamed` AudioServer signal
2023-09-17 14:47:29 +02:00
Rémi Verschelde f4d85d58f7
Merge pull request #80736 from Ughuuu/add-get-rid-to-joints
Expose the `get_rid` method of Joint2D and Joint3D
2023-09-17 14:47:04 +02:00
bitsawer 34574db5b9 Fix BoneAttachment3D signal connection 2023-09-15 17:35:12 +03:00
MewPurPur f29b6e73c2 Add a bus_renamed AudioServer signal 2023-09-15 13:02:03 +03:00
A Thousand Ships a29416e332 [Scene,Main] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-12 12:53:06 +02:00
Rémi Verschelde 5c43e4c1ef
Fix various typos with codespell
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
bitsawer 8c26da5460 Fix LightmapGI baking with GridMap 2023-09-11 15:15:40 +03:00
Dario 7dfb854556 Propagate error correctly when max texture size for lightmaps is too small.
Add error handling for BAKE_ERROR_LIGHTMAP_TOO_SMALL, which was previously ignored. Fixes #81453.
2023-09-11 09:14:39 -03:00
Yuri Sizov 58126e479c Introduce the concept of global theme contexts
This commit adds the default theme context, which replaces
the need to manually check the project and the default theme
all the time; simplifies related code.

It also adds framework for custom theme contexts, to be used
by the editor. Custom contexts can be attached to any node,
and not necessarily a GUI/Window node. Contexts do no break
theme inheritance and only define which global themes a node
uses as a fallback.

Contexts propagate NOTIFICATION_THEME_CHANGED when one of their
global themes changes. This ensures that global themes act just
like themes assigned to individual nodes and can be previewed
live in the editor.
2023-09-06 19:40:43 +02:00
Malcolm Nixon 22de1b31b5 Added XR tracking-state change signals
Add "pose_lost_tracking" signal to XRPositionalTracker.
Add "tracking_changed" signal to XRNode3D.
2023-09-03 12:17:16 -04:00
Rémi Verschelde b272d7ed58
Merge pull request #81067 from bitsawer/fix_voxelgi_exposure
Fix VoxelGI CameraAttributes exposure normalization handling
2023-08-29 12:46:20 +02:00
Rémi Verschelde ba1089689a
Merge pull request #80954 from bruvzg/sp_per_font
[Text Server] Store extra spacing of individual font variations.
2023-08-28 20:37:58 +02:00
bitsawer c73e1f0d22 Fix VoxelGI CameraAttributes exposure normalization handling 2023-08-28 13:25:34 +03:00
Dragos Daian f9435b6d72 Expose the get_rid method of Joint2D and Joint3D
update occurance of get_joint

Update documentation as per feedback.

update

update

Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-08-27 00:34:47 +03:00
Yuri Sizov 6ab34005ad Extract editor scene tabs into their own component 2023-08-24 12:24:29 +02:00
bruvzg 5453503697
[Text Server] Store extra spacing of individual font variations. 2023-08-24 11:58:12 +03:00
Yuri Roubinski 7fcb91f077 Implement conversion from `CPUParticles` to `GPUParticles` (3D/2D) 2023-08-19 11:58:57 +03:00
Rémi Verschelde d81767495a
Merge pull request #80512 from mihe/global-basis
Add `global_basis` property to `Node3D`
2023-08-18 09:31:41 +02:00
Rémi Verschelde e6e79255ed
Merge pull request #77943 from aaronfranke/mass-dist
Add Mass Distribution, Deactivation, Solver inspector property groups
2023-08-17 12:26:59 +02:00
Rémi Verschelde 37d213b24e
Merge pull request #79972 from smix8/navgenerator_multithreading_4.x
Add multi-threaded NavMesh baking to NavigationServer
2023-08-17 11:22:11 +02:00
Mikael Hermansson 8be20c495c Add `global_basis` property to `Node3D` 2023-08-11 11:41:49 +02:00
Hugo Locurcio 49b6067aba Use StringName consistently to refer to the Master audio bus name 2023-08-07 18:06:17 +02:00
smix8 8686e84b44 Add multi-threaded NavMesh baking to NavigationServer
Adds multi-threaded NavMesh baking to NavigationServer.
2023-08-07 17:14:37 +02:00
Rémi Verschelde 7eb047a5ed
Merge pull request #79643 from smix8/navgenerator_4.x
Move navigation mesh baking to NavigationServer
2023-08-07 14:48:15 +02:00
Rémi Verschelde faaf27f284
Fix various typos with codespell
Also includes typo fixes from #79993, #80068, #80276, and #80303.

Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
Aaron Franke 49e0a01bf1
Add Mass Distribution, Deactivation, Solver inspector property groups 2023-08-06 21:26:33 -05:00
Yuri Sizov a56e960150 Merge pull request #71233 from PrecisionRender/barycentric-coords
Add ability to get face index and barycentric coordinates from raycast
2023-08-03 22:37:30 +02:00
smix8 744fa87da2 Move navigation mesh baking to NavigationServer
Moves navigation mesh baking to NavigationServer.
2023-08-03 19:49:07 +02:00
PrecisionRender af7f787c6e Add ability to get barycentric coordinates from ray 2023-08-02 15:16:44 -05:00
Yuri Sizov e810671116 Merge pull request #79977 from Owl-A/bugfix
Add state sync after call to `_integrate_forces` in `_body_state_changed`
2023-08-01 20:03:47 +02:00
Chinmay Awale c118256865 added state sync after call to _integrate_forces 2023-08-01 19:03:43 +05:30
smix8 69fad39cf5 Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
2023-07-26 01:20:15 +02:00
Yuri Sizov 182b94c86a Merge pull request #79465 from smix8/navregion_bake_deferred_4.x
Make NavigationRegion3D baking NavMesh on the main thread not finish deferred
2023-07-18 13:15:15 +02:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
Yuri Sizov 0f7625ab46 Merge pull request #76859 from HolonProduction/emission-finished-gpu
Add `finished` signal to GPUParticles
2023-07-14 18:50:56 +02:00
Yuri Sizov a91f0e6bca Merge pull request #76853 from HolonProduction/emission_finished
Add `finished` signal to CPUParticles
2023-07-14 18:50:51 +02:00
Yuri Sizov 177768a7e4 Merge pull request #79373 from KoBeWi/no_need
Convert some Callables to `callable_mp()`
2023-07-14 18:49:53 +02:00
Yuri Sizov 892bc5f966 Merge pull request #79330 from mihe/ray-cast-back-faces
Add `hit_back_faces` property to `RayCast3D`
2023-07-14 18:49:49 +02:00
smix8 bb5f16033d Make NavigationRegion3D baking NavMesh on the main thread not finish deferred
Makes NavigationRegion3D baking NavMesh on the main thread not finish deferred.
2023-07-14 16:15:14 +02:00
Yuri Sizov 4e66c4cdd9 Merge pull request #77191 from smix8/navigationregion_map_change_4.x
Add NavigationRegion function to change navigation map
2023-07-12 17:15:13 +02:00
kobewi edd23074a2 Convert some Callables to callable_mp() 2023-07-12 15:33:54 +02:00
HolonProduction a1c0d206e8 Add `finished` signal to CPUParticles 2023-07-12 13:45:02 +02:00
HolonProduction 5322e255ad Add `finished` signal to GPUParticles 2023-07-12 13:29:47 +02:00
Mikael Hermansson 273f7e1c57 Add `hit_back_faces` property to `RayCast3D` 2023-07-11 13:02:13 +02:00
Rémi Verschelde 7030ac555f
Merge pull request #79270 from clayjohn/particle-trails-error
Unify error condition for particles trail lifetime
2023-07-10 10:38:34 +02:00
clayjohn 78ecdb17f9 Unify error condition for particles trail lifetime 2023-07-10 10:17:27 +02:00
Rémi Verschelde e00dc3c719
Merge pull request #75806 from bcmpinc/issue-61174
Fix Camera3D `project_*` methods not accounting for frustum offset
2023-07-07 16:01:47 +02:00
Rémi Verschelde b8f28e287e
Merge pull request #78902 from nklbdev/Fix_wrong_type_casting_in_RenderingServer
Fix wrong type casting for octahedral tangents
2023-07-07 08:28:52 +02:00
Rémi Verschelde 2926ddec1c
Merge pull request #78939 from Scony/navi-crash-fix
Fix crash in `NavigationAgent3D`
2023-07-03 15:26:14 +02:00
Rémi Verschelde 813ff4b460
Merge pull request #78857 from smix8/navagent_pos_fix_4.x
Fix NavigationAgent position not always updating
2023-07-03 15:26:11 +02:00
Pawel Lampe fcbb521392 Fix crash in 'NavigationAgent3D', fixes #78910 2023-07-02 22:30:03 +02:00
nklbdev 1d16704faf Potencially fix nan's on octahedral tangents in RenderingServer 2023-07-01 18:46:52 +05:00
smix8 34bc410fb4 Fix NavigationAgent position not always updating
Fixes NavigationAgent position not always updating.
2023-06-30 00:18:26 +02:00
smix8 c912df9d05 Fix NavigationAgent continues avoidance velocity
Fixes NavigationAgent continues avoidance velocity.
2023-06-29 21:10:03 +02:00
Hannah Crawford 444e1a8e2c Add layer, shadow and visibility range options to Scene Importer. 2023-06-28 17:09:23 +01:00
Ricardo Buring 104da478a8 Fix CharacterBody3D get_position_delta()
Calculate the difference of global positions.
This also fixes get_real_velocity().
2023-06-26 23:15:57 +02:00
Rémi Verschelde c1ad74d4c3
Merge pull request #78579 from aaronfranke/col-poly-obj-name
Internally rename `parent` to `collision_object` in CollisionPolygon(2D/3D)
2023-06-23 00:06:09 +02:00
Aaron Franke 7c4921e794
Internally rename parent to collision_object in CollisionPolygon(2D/3D) 2023-06-22 14:06:05 -05:00
Rémi Verschelde cb73a6e9f9
Merge pull request #78490 from clayjohn/GLES3-particles-subemit
Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
2023-06-22 21:02:38 +02:00
Markus Sauermann 399bce02cf Fix 3D top_level resetting
There is no need to erase the top_level flag on EXIT_TREE.
During ENTER_TREE, `top_level = true` is not necessary, because it is
already set to true.
2023-06-22 18:58:29 +02:00
clayjohn 8a5af8183a Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-06-21 12:56:52 -07:00
Bauke Conijn 47e63bc55f Fix Camera3D project_* methods not accounting for frustum offset
This does not fix Camera3D::project_ray_normal().
Adds Camera3D::get_camera_projection() and exposes it to GDScript
2023-06-20 20:45:50 +02:00
Rémi Verschelde 243c8e0b40
Merge pull request #77465 from lyuma/ik_skeleton_reference_bug
SkeletonIK3D: Avoid holding hard pointers to Skeleton3D
2023-06-20 00:02:47 +02:00
Rémi Verschelde d63794d466
Merge pull request #77629 from GameDevLlama/bugifx/issue-50813
Fix non-functional Node3D `top_level` property
2023-06-18 16:30:42 +02:00
Christian Ringshofer 20e8189f5d Fix non functional Node3D op_level property
Fixes #50813.
2023-06-18 15:01:01 +02:00
smix8 ae9dd47d0c Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
Rémi Verschelde c6d9139f16
Merge pull request #78280 from raulsntos/path-follow-3d-clamp
Clamp `PathFollow3D` progress when not looping
2023-06-16 10:20:43 +02:00
Rémi Verschelde 6fb391bc23
Fix various typos with codespell
And ignore some false positives introduced by recent versions of codespell.
2023-06-16 08:45:35 +02:00
Raul Santos 0b4ec4027c
Clamp PathFollow3D progress when not looping 2023-06-15 16:59:14 +02:00
smix8 84647ab09e Add NavigationRegion function to change navigation map
Adds NavigationRegion function to change navigation map.
2023-06-15 12:04:57 +02:00
Rémi Verschelde 0da20d019e
Merge pull request #77412 from smix8/fix_threaded_navmesh_baking_4.x
Fix for threaded NavigationMesh baking under new thread guards
2023-06-15 10:49:58 +02:00
Rémi Verschelde b1d3070648
Merge pull request #77175 from smix8/region_refactor_4.x
Refactor NavigationRegion internals
2023-06-15 10:39:53 +02:00
smix8 4c970f1a67 Refactor NavigationRegion internals
Refactors NavigationRegion internals.
2023-06-15 09:52:14 +02:00
Hugo Locurcio f683230a8b
Tweak VehicleBody3D and VehicleWheel3D property hints
These property hints are better aligned with the documentation
and typical use cases, while still allowing values to go outside
those ranges (except for steering, where steering above 180° doesn't
make sense).
2023-06-15 07:45:55 +02:00
smix8 ee14b010ac Fix for threaded NavigationMesh baking under new thread guards
Fixes threaded NavigationMesh baking under new SceneTree thread guards that blocked the process.
2023-06-14 01:53:37 +02:00
Yuri Sizov 991f4d5183 Avoid error spam when (un)pausing GPUParticles out of tree 2023-06-12 18:18:51 +02:00
smix8 c1fc331b88 Update navigation obstacle API
Updates navigation obstacle API.
2023-06-12 14:26:45 +02:00
Ninni Pipping 0c16082e1e Use `get_node_or_null` when null checks are present
Avoids duplicate or unnecessary errors
2023-06-10 13:22:56 +02:00
Ninni Pipping dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
Rémi Verschelde da68c707f2
Merge pull request #78025 from lyuma/skeleton3d_rest_dirty
Skeleton3D: Only reset rest_dirty after ALL bone transforms have finished update
2023-06-09 11:07:42 +02:00
Lyuma c567d46a2f Skeleton3D: Only reset rest_dirty after ALL bone transforms have finished update 2023-06-08 19:23:14 -07:00
Aaron Franke ec09cff7f3
Internally rename parent to collision_object in CollisionShape(2D/3D) 2023-06-07 12:02:27 -05:00
Hugo Locurcio fc4ec42a09
Increase precision in particle damping properties in the editor 2023-06-07 15:26:02 +02:00
Rémi Verschelde 2a1bc05901
Merge pull request #77469 from lyuma/skeleton_ik_roll_fix
Fix for SkeletonIK3D interpolation and bone roll
2023-06-06 20:39:46 +02:00
Lyuma 9aa46bf3f5 Fix for SkeletonIK3D interpolation and bone roll
Fix bug in internal Basis::rotate_to_align function (also used with identity Basis in scene/resources/curve.cpp)
Use ChainItem children rather than local bone rest to determine IK bone roll to match Godot 3.x behavior
2023-06-05 20:44:45 -07:00
detomon ea80213eee Fix adding bones with the same name after calling Skeleton3D.clear_bones() 2023-06-05 11:55:09 +02:00
Lyuma 300aa06dba SkeletonIK3D: Avoid holding hard pointers to Skeleton3D 2023-05-25 03:23:24 -07:00
Silc Renew 42aa5398d9 Fix Pathfollow direction
Co-authored-by: aaronfranke <arnfranke@yahoo.com>
2023-05-24 17:37:00 +09:00
Rémi Verschelde 6f34a23439
Merge pull request #76082 from reduz/ability-to-look-at-in-model-space
Add the ability to look-at in model-space.
2023-05-24 08:46:53 +02:00
Juan Linietsky 5fdc1232ef Add the ability to look-at in model-space.
This is a much simpler attempt to solve the same problem as #76060, but without breaking any compatibility.

* Adds a description of what model space is in the Vector3 enums (MODEL_* constants). This has the proper axes laid out for imported 3D assets.
* Adds the option to `look_at` using model_space, which uses Vector3.MODEL_FRONT as forward vector.

The attempt of this PR is to still break the assumption that there is a single direction of forward (which is not the case in Godot)
and make it easier to understand where 3D models are facing, as well as orienting them via look_at.
2023-05-24 10:10:24 +09:00
Artyom Lunchenkov f645eee62e Improve Skeleton3D::find_bone() performance 2023-05-23 21:02:46 +06:00
Yuri Sizov ca8bbf24ae
Merge pull request #77194 from lyuma/pose_global_no_override
Fix get_bone_pose_global_no_override()
2023-05-18 18:55:00 +02:00
Lyuma 565803ce3d Fix get_bone_pose_global_no_override() 2023-05-18 03:14:45 -07:00
Pedro J. Estébanez 50cf3d6966 Optimize threading-sensitive node data for single-threaded processing 2023-05-17 02:04:41 +02:00
Rémi Verschelde 59c19a7172
Merge pull request #75250 from bruvzg/lbl_rtl_jst_flags
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification.
2023-05-16 10:48:45 +02:00
Rémi Verschelde 8cfa19a078
Merge pull request #77000 from reduz/make-more-base-nodes-thread-safe
Make more base nodes thread safe
2023-05-16 00:31:56 +02:00
bruvzg 9163d8c336
Expose TextServer justification flags to Label, Label3D, TextMesh and RTL. Add flags to control last/single line justification. 2023-05-15 19:23:54 +03:00
Juan Linietsky 0a9f72d5a8 Make more base nodes thread safe
Ongoing work to make more of the base nodes thread safe.
2023-05-15 16:54:10 +02:00
kleonc d3d84d90de Fix AnimatedSprite3D autoplay warning 2023-05-13 13:10:38 +02:00
Rémi Verschelde cc48827e4a
Merge pull request #76946 from AThousandShips/shadow_warning
Enable shadow warnings and fix raised errors
2023-05-12 10:04:09 +02:00
smix8 f986b52b3c Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
2023-05-11 18:46:34 +02:00
Ninni Pipping 71ee65dc57 Enable shadow warnings and fix raised errors 2023-05-11 16:00:59 +02:00
smix8 7e1a261cc6 Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
2023-05-11 07:38:16 +02:00
Rémi Verschelde 5271186f2f
Merge pull request #75901 from reduz/refactor-node-processing
Refactor Node Processing to allow Scene Multithreading
2023-05-10 12:46:44 +02:00
smix8 a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
Juan Linietsky 98c655ec8d Refactor Node Processing
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.

This is the first steps towards implementing https://github.com/godotengine/godot-proposals/issues/6424.
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
2023-05-09 19:17:51 +02:00
RedworkDE 8e7afec479 Fix various errors when running the unit tests
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-05-09 18:40:56 +02:00
Max Hilbrunner 03dfae4208
Merge pull request #76004 from mashumafi/wait-nav-region-thread 2023-05-05 13:50:09 +02:00
mashumafi a93a2e519d Wait for navigation baking to finish before destruction 2023-05-02 21:05:47 -04:00
VolTer 818d57b5b4 Light3D show scaling warning immediately 2023-05-01 02:55:17 +02:00
Samuele Panzeri 4aaa2e6477 Fix wait for thread not started 2023-04-27 20:28:22 +02:00
Samuele Panzeri a2be742f97 Fix editor lock on sdf collision bake on error 2023-04-19 11:00:11 +02:00
Rémi Verschelde b5b371cf7c
Merge pull request #70332 from aaronfranke/rigid-body-units
Improve some units in RigidBody nodes
2023-04-18 23:38:20 +02:00
Yuri Sizov 8f113c6532
Merge pull request #72749 from aaronfranke/area-priority
Make Area physics priority consistently int and allow negative numbers
2023-04-18 14:21:06 +02:00
Aaron Franke 87bd8d2dcf Make Area physics priority consistently int and allow negative numbers 2023-04-18 13:50:20 +02:00
smix8 4490a3303b Fix NavigationMesh debug visuals for non-triangulated meshes
Fixes NavigationMesh debug visuals for non-triangulated meshes.
2023-04-16 23:31:54 +02:00
Aaron Franke a83ce0b104
Improve some units in RigidBody nodes 2023-04-15 22:03:24 -05:00
clayjohn 821917ba9f Use angle_rand to calculate base_angle in particles process material 2023-04-13 15:10:47 -07:00
smix8 1549aeaef8 Add Mesh ConvexDecompositionSettings wrapper
Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
2023-04-07 22:39:25 +02:00
smix8 aadf33efd8 Fix NavigationObstacles not being added to avoidance simulation
Fixes NavigationObstacles not being added to avoidance simulation.
2023-04-06 16:32:49 +02:00
Aaron Franke dd0eb1ab47
Change VehicleWheel3D suspension travel to use meters internally 2023-04-03 12:34:05 -07:00
Rémi Verschelde b237df8cea
Merge pull request #75326 from smix8/navigationagent_expose_parameters_4.x
Expose NavigationAgent path postprocessing and pathfinding algorithm options
2023-04-03 16:02:21 +02:00
Brennen Shaughnessy 2d16fe681d Fixed property hint for platform layers on 3D physics body 2023-03-31 19:40:45 -04:00
Yuri Sizov 1222d35cdd
Merge pull request #75398 from newobj/issue-75218
Update GPUParticles2D/3D speed scale on ENTER_TREE
2023-03-28 16:34:58 +02:00
Brian Long 4652fbd09e Update GPUParticles2D/3D speed scale on ENTER_TREE
Fix for https://github.com/godotengine/godot/issues/75218

Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.
2023-03-27 13:24:59 -07:00
Yuri Sizov 2659fc1a34
Merge pull request #75266 from rburing/shapecast2d_disconnect
Port robust signal (dis)connection to `ShapeCast2D`
2023-03-27 13:08:58 +02:00
smix8 6e324bb341 Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
2023-03-25 21:37:18 +01:00
Ricardo Buring 5bed055cdd Port robust signal (dis)connection to ShapeCast2D
Ported from ShapeCast3D.
2023-03-24 09:23:03 +01:00
Adam Scott fd1dfdb960 Set VehiculeWheel3D `suspension_travel` default value to a resonable one 2023-03-18 16:33:33 -04:00
smix8 0b8798a995 Fix NavigationAgent3D debug path duplicated points
Fixes duplicated points in NavigationAgent3D debug path.
2023-03-16 09:19:04 +01:00
Rémi Verschelde 449e658583
Merge pull request #74555 from RedworkDE/cpuparticles3d-update-buffer-overrun
Fix buffer overrun in `CPUParticles3D` in `precision=double` builds
2023-03-08 08:58:11 +01:00
RedworkDE 89980dd9c9 Fix buffer overrun in CPUParticles3D 2023-03-07 15:46:51 +01:00
Johan Aires Rastén 007b488a5c Fixed incorrect ERROR message when setting new PrimitiveMesh
If calling set_mesh with a PrimitiveMesh that has pending update, the
_mesh_changed function would be called twice. The first time before
set_base had been called, which could lead to an ERROR message about
trying to set an invalid surface override material.
2023-03-04 10:48:47 +01:00
Rémi Verschelde a2ecbb7c37
Merge pull request #73749 from fabriceci/expose-apply-floor-snap
Exposes the apply_floor_snap function to allow manual snap
2023-03-03 11:03:42 +01:00
clayjohn c69b14e96e Add warnings for unsupported features in mobile and gl_compatibility backends 2023-02-26 12:28:02 -08:00
smix8 5d1a6e9b12 Fix ShapeCast3D add and remove exception functions
Fixes that ShapeCast3D would accept any parameter object and silently return when it was not a CollisionObject3D.
2023-02-23 23:45:16 +01:00
fabriceci 1381e6da4f Exposes the apply_floor_snap function to allow a snap to be made regardless of velocity. 2023-02-22 14:08:32 +01:00
PrecisionRender e713c270ea Fix crash when reparenting SoftBody3D with pinned points 2023-02-20 12:12:58 +01:00
Albin 82b90c0e08 Remove visual limit for damping in CPUParticles
Issue #56324 notes that you may can't set the damping property of
CPUParticles2D to anything more that 100 in the editor inspector
while you may set it to anything in code, this is considered a bug and
changed in this commit
2023-02-19 12:47:34 +01:00
Rémi Verschelde 9583c20171
Merge pull request #70515 from stmSi/fix-hanging-audio-pitch-scale
Fix hanging if audiostream's pitch_scale is NaN
2023-02-17 14:06:55 +01:00
Rémi Verschelde db9007aef4
Merge pull request #73428 from smix8/navigation_tweak_agent3d_4.x
Tweak NavigationAgent3D defaults
2023-02-17 09:56:49 +01:00
clayjohn 76093d6a03 Only include emission when enabled in material during VoxelGI bake 2023-02-16 14:29:17 -08:00
smix8 8be4af38e4 Tweak NavigationAgent3D defaults
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
2023-02-16 14:26:39 +01:00
Rémi Verschelde 953383328a
Merge pull request #73229 from smix8/navlink_global_positions_4.x
Add NavigationLink helper functions for global positions
2023-02-16 11:02:17 +01:00
smix8 d87f124768 Add NavigationLink helper functions for global positions
Adds helper functions to set the links start and end position with global positions or get them as global positions.

Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
2023-02-14 21:56:58 +01:00
Hugo Locurcio 8b1de103a8
Clamp Decal size to positive values
This prevents using negative size, while also preventing
error messages from being spammed if one of the decal's dimensions
is set to exactly 0.
2023-02-13 22:01:49 +01:00
Rémi Verschelde a90bbc3544
Merge pull request #72225 from MinusKube/shaped_text_invalidated_bug
Mark dirty flags when shaped texts are invalidated
2023-02-13 09:13:27 +01:00
Rémi Verschelde c3a04f71fd
Merge pull request #73136 from clayjohn/LightmapGI-exr
Set Default compression to VRAM uncompressed for LightmapGI
2023-02-12 10:35:58 +01:00
clayjohn 340c3b84fd Set Default compression to VRAM uncompressed for LightmapGI
This increases the speed to be near instant and removes the perceived lightmap bake speed regression

We need to investigate the speed and quality issues with BPTC and re-enable compression when we can
2023-02-11 16:26:09 -08:00
Haoyu Qiu 65223e98de Strip name prefix of navigation agent debug properties in the inspector 2023-02-11 16:34:08 +08:00
Haoyu Qiu a40ccc2d7e Improve some editor strings for localization 2023-02-09 19:32:02 +08:00
Rémi Verschelde d69809cab6
Merge pull request #72947 from DarkKilauea/nav-fix-avoidance-callback
Fix missing avoidance updates when using same velocity
2023-02-09 10:13:35 +01:00
Josh Jones 097f8a5fdb Fix missing avoidance updates when using same velocity
When using avoidance, if you set the same velocity for the agent, you won't get an update from the avoidance system.

This changes both the `set_target_position` and `set_velocity` setters to always accept user provided values, even if they are the same. This ensures that repathing and avoidance logic is always run when the user expects.
2023-02-08 23:18:53 -08:00
smix8 820b841fcb Fix NavigationAgent debug functions bindings in release builds
Fixes that certain NavigationAgent debug functions bindings were not available in release builds.
2023-02-08 21:49:04 +01:00
Markus Sauermann 826e54fa73 Some code simplifications
1. `number_width` isn't used later
2. `return_type` is used only once
3. AudioServer::get_singleton()->get_channel_count() always returns a channel_count of 1 or larger
4. negative `aa->backward` conditional
5. `current_canvas` == `find_world_2d()->get_canvas()`
6. identical if `render_shadows`
2023-02-07 14:30:16 +01:00
Josh Jones 20fdfd466b Improve consistency of NavigationAgent setters 2023-02-02 22:51:37 -08:00
Rémi Verschelde e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
Rémi Verschelde 64f0dad2dc
Merge pull request #70446 from akien-mga/meshoptimizer-4a287848f
meshoptimizer: Sync with upstream commit 4a287848f
2023-02-01 07:40:23 +01:00