Commit graph

1394 commits

Author SHA1 Message Date
lawnjelly
d80b206643 Physics Interpolation - refactor client interpolation pump
* Move client interpolation pump to earlier in the iteration before 3D physics synced
* Allow `get_global_transform_interpolated()` to prime the client interpolation inside a physics tick
2024-06-19 08:44:33 +01:00
lawnjelly
0b30d77384 Physics Interpolation - refactor Camera and fix get_camera_transform()
* Moves 3D Camera interpolation scene side.
* Automatically switches `get_camera_transform()` to report interpolated transform during `_process()`.
* Fixes `ClippedCamera` to work with physics interpolation.
2024-06-09 12:08:27 +01:00
lawnjelly
7130c1bebc Physics Interpolation - Fix VisualInstance::set_instance_use_identity_transform()
The logic for updating the `VisualServer` with the transform was the wrong way around.
2024-05-27 19:02:42 +01:00
Rémi Verschelde
1869243644
Merge pull request #88807 from lawnjelly/portals_fix_enter_tree_order
[3.x] Portals - defer setting active in `VisualServer` until enter tree
2024-04-19 10:24:37 +02:00
lawnjelly
ea68c2bfab
Merge pull request #88946 from lawnjelly/fix_physics_on_floor_body
[3.x] Fix physics `on_floor_body` crash
2024-04-16 15:02:00 +01:00
Haoyu Qiu
43862fbf44 Store ObjectID instead of pointer for KinematicCollision owner 2024-04-15 12:32:17 +08:00
Rémi Verschelde
ae7dfd1f13
Merge pull request #85437 from lawnjelly/lod_scene_side
[3.x] Discrete Level of Detail
2024-03-08 17:53:58 +01:00
lawnjelly
9a9dccbaa2 Fix physics on_floor_body crash
Physics body previously stored the RID of a collision object and accessed it on the next frame, leading to a crash if the object had been deleted.
This PR stores the ObjectID in addition to the RID, and checks the object still exists prior to access.
2024-02-28 07:54:00 +00:00
lawnjelly
788567987a Portals - defer setting active in VisualServer until enter tree
`set_portal_active()` was being called loading packed scenes prior to entering the tree, visual server portals had not been fully created at this point hence the call was being ignored with an error flagged.
This PR defers the call until after entering the tree.
2024-02-25 10:11:06 +00:00
Ansraer
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
lawnjelly
1b5fa74e39 Discrete Level of Detail
Add scene side discrete level of detail.

New node `LOD` for UI, and `LODManager` within `World` for automatically updating child visibilities based on distance from cameras.
2024-02-10 18:54:25 +00:00
Ansraer
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
Rémi Verschelde
e96ebf9218
Merge pull request #61568 from lawnjelly/merge_node
[3.x] Add MergeGroup node to simplify merging Meshes at runtime
2024-02-07 09:49:45 +01:00
Rémi Verschelde
dc776e46b6
Merge pull request #60246 from Calinou/directional-light-add-fade-start-3.x
[3.x] Backport DirectionalLight `fade_start` property
2024-02-07 09:49:21 +01:00
Rémi Verschelde
5eeb4f220d
Merge pull request #87713 from lawnjelly/portal_include_in_bound
[3.x] Portals - include in bound and special cases in start room
2024-02-07 09:41:22 +01:00
Rémi Verschelde
862d63e9f7
Merge pull request #81559 from matorin57/3.x-backport-finished-singal-GPU-particles
[3.x] Backport "Add `finished` signal to GPUParticles"
2024-02-07 09:39:49 +01:00
lawnjelly
7f3800ece2 Portals - include in bound and special cases in start room
* Re-introduces a property for portals to decide whether they are included in room bounds during room conversion.
* Adds a special case for portals that extend into the start room, which may be caused by level design inaccuracies.
2024-01-31 09:22:33 +00:00
lawnjelly
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
lawnjelly
5e0b298d50 Portals - Improve conversion logging
Logging is now allowed in any TOOLS build (rather than just in the editor), but still prevented in final exports.
Logging can be switched off via project settings.
Autoplacement is now logged.
2024-01-29 14:21:22 +00:00
Aaron Franke
ab9ed3245d
[3.x] Add "position" as an alias for "translation" in Spatial 2023-12-05 17:25:48 -06:00
Hugo Locurcio
4fefb136ea
Backport DirectionalLight fade_start property to 3.x
- Implement shadow fading when using the Orthogonal shadow mode
  (like in `master`).

This allows customizing the distance at which directional shadows
start to fade away. Shadow fading will also always start at the same
distance now, regardless of the current shadow mode in use.

This is useful for enclosed levels to prevent shadows from fading
at all with a well-tuned maximum distance.

The default fade start value (0.8) results in fading happening later
in the distance compared to the previous behavior, where fading started
from the last shadow split distance (0.6 in PSSM 4 Splits and
0.1 in PSSM 2 Splits).
2023-11-20 12:41:55 +01:00
kleonc
0cde6800e7 Make gizmo plugin handle SpriteBase3D instead of Sprite3D 2023-10-06 10:43:07 +02:00
Rémi Verschelde
5f9cbe514d
Merge pull request #75468 from Ansraer/four_is_overkill
[3.x] Add support for 3 dir shadow splits
2023-10-01 22:50:57 +02:00
DESKTOP-UT43QTQ\Garrigan-Desktop
2a319ab6fc Backporting #76859 to 3.x
Co-authored-by: HolonProduction <holonproduction@gmail.com>
2023-09-12 09:45:23 -05:00
lawnjelly
5162efbfe9 2D Fixed Timestep Interpolation
Adds support to canvas items and Camera2D.
2023-08-01 16:07:48 +01:00
Maganty Rushyendra
7958ceaab8
Fix overwriting of Spatial's local transform
Modifies when 'DIRTY_LOCAL' flag is set to prevent a transform applied
using `set_transform` to be overwritten by previous calls to change the
node's rotation, translation or scale.

Fixes #43130.
2023-06-19 16:18:51 +02:00
lawnjelly
6f8e632848 Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 09:51:44 +01:00
Ansraer
54bc6a300e add support for 3 dir shadow splits 2023-03-29 13:40:17 +02:00
smix8
c7a92f68a1 Add error messages for collision exception functions
Adds error messages to collision exception functions when used with the wrong object/node instead of failing silently.
2023-02-24 00:36:30 +01:00
Rémi Verschelde
89788cdcc2
Merge pull request #70514 from stmSi/fix-editor-hanging-audio-pitch-scale-nan
[3.x] Fix hanging if audiostream's pitch_scale is NaN
2023-02-17 12:15:27 +01:00
smix8
b5213cceac Fix navigation related nodes not propagating parent class config warnings
Fixes that navigation related nodes do not propagate config warnings from their parent classes.
2023-01-30 16:26:42 +01:00
lawnjelly
5a0cb54b3a Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
2023-01-24 14:05:48 +00:00
Haoyu Qiu
d16a1c7579 Make CollisionShape selection box use shape AABB 2023-01-13 18:19:26 +08:00
Rémi Verschelde
abf5f72073
Merge pull request #70717 from Calinou/particles-tweak-animation-offset-property-hint-3.x
Tweak particles animation offset property hint to allow more precise values (3.x)
2023-01-11 11:57:38 +01:00
Rémi Verschelde
1426cd3b3a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Hugo Locurcio
717cbbd6e7
Tweak particles animation offset property hint to allow more precise values 2022-12-29 22:17:47 +01:00
stmSi
28e1fc4af9 Fix Editor hanging if audiostream's pitch_scale is NaN 2022-12-24 12:34:22 +06:30
smix8
17e6d76de6 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.

(cherry picked from commit 194c1c44e0)
2022-12-18 10:32:04 +08:00
kobewi
9499ebecee Add vector value linking
Co-authored-by: redlamp <244062+redlamp@users.noreply.github.com>
(cherry picked from commit 5553e27fe8)
2022-12-18 10:32:04 +08:00
Wilson E. Alvarez
6a8bae4e35
Do not fire VisibilityNotifier screen_entered and screen_exited signals in the Editor 2022-12-13 10:29:28 -05:00
Rémi Verschelde
2c714f19e5
Merge pull request #65453 from timothyqiu/agent-target-3.x
[3.x] Make NavigationAgent `target_location` a property
2022-12-12 16:07:25 +01:00
bruvzg
efa6b01c97
[TextMesh, 3.x] Fix auto-translation and ignore control chars. 2022-12-04 23:11:28 +02:00
hare_ware
4150749698
Fix Skeleton3D falsely assuming all physical bones will be children of their first bone
(cherry picked from commit 913f57f695)
2022-11-30 15:34:26 +01:00
dzil123
85811c2b99 [3.x] BakedLightmap add null bake_end_function check 2022-11-28 00:30:17 -08:00
Hugo Locurcio
4c26cac0e6
Improve collision exception error messages for easier understanding 2022-11-19 17:37:42 +01:00
Haoyu Qiu
3acc0779a4 Fix error when having BoneAttachment before PhysicalBone 2022-11-14 08:36:12 +08:00
kleonc
3e373c4eec Add ShapeCast2D/3D::get_collider_rid method 2022-11-02 15:20:13 +01:00
Haoyu Qiu
78981d2e0a Make NavigationAgent target_location a property 2022-10-31 20:46:38 +08:00
Haoyu Qiu
456c0ecda6 Remove leading spaces from enumerator name hints 2022-10-08 15:23:46 +08:00
Rémi Verschelde
90f6baf26c Merge pull request #66155 from KoBeWi/animat3d_diff
[3.x] Don't store frame of playing AnimatedSprite
2022-10-03 13:58:28 +02:00