Commit Graph

2307 Commits

Author SHA1 Message Date
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