1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-30 16:26:50 +00:00
Commit Graph

4456 Commits

Author SHA1 Message Date
Rémi Verschelde
66a2ea4718 Merge pull request #98610 from Flarkk/fix_sphere_capsule
Fix normals of very large `SphereMesh` and `CapsuleMesh`
2024-12-14 18:25:17 +01:00
Thaddeus Crews
9ecdeb3723 Merge pull request #98747 from tetrapod00/standardize-renderer-strings
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
Alex Threlfo
a85b0279fd fix: space transformations in WorldPositionFromDepth visual shader node generation 2024-12-14 08:52:42 +11:00
Pedro J. Estébanez
4bfc6f8d70 Fix deadlock possibility in threaded load of materials 2024-12-13 12:49:10 +01:00
Florent Guiocheau
4c34813b32 Fix very large radius SphereMesh and CapsuleMesh normals 2024-12-13 09:26:59 +01:00
HP van Braam
6f7525c396 Improve Scene Tree editor performance
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.

Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.

In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.

We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.

SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.

There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.

This fixes #83460

I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.
2024-12-12 22:47:05 +01:00
Thaddeus Crews
42580089b8 Merge pull request #100280 from Calinou/basematerial3d-remove-texturesize
Replace `textureSize()` with a uniform in BaseMaterial3D for MSDF rendering
2024-12-11 17:35:43 -06:00
Thaddeus Crews
1c4d12db2b Merge pull request #99981 from dsnopek/fix-compositor-effects-gdextension
`CompositorEffect` should use `GDVIRTUAL_CALL()` so it works with GDExtension
2024-12-11 17:35:28 -06:00
Hugo Locurcio
3dfc832272 Replace textureSize() with a uniform in BaseMaterial3D for MSDF rendering
This uniform was already defined for other uses previously.

`textureSize()` is known to be slow on mobile platforms due to how
the drivers implement it there, so it's best avoided.
2024-12-11 15:44:06 +01:00
Rémi Verschelde
2153a60425 Revert "Avoid duplicating signals from scene instances into packed scenes"
This partially reverts commit 8a42e3d3ef.

Comment improvements and the test case were kept, with one part commented out.
2024-12-10 10:42:58 +01:00
Thaddeus Crews
e9679a28ff Merge pull request #91604 from nongvantinh/implement-7946
Save color palette as resources to reuse later
2024-12-09 14:33:29 -06:00
Thaddeus Crews
a607bca2fd Merge pull request #100024 from Ivorforce/optimize-string-single-char
Optimize string single char contains calls.
2024-12-09 14:33:24 -06:00
Lukas Tenbrink
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Hei
b4c6f9b3d9 Mend gaps in meshes caused by trigonometric funcs. 2024-12-06 17:10:12 +02:00
Nông Văn Tình
e6a49ab6ac Save color palette as resources to reuse later
Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
2024-12-06 20:16:06 +07:00
Danil Alexeev
8bf2afd341 Fix CollisionShape{2D,3D}.debug_color inconsistencies 2024-12-06 15:12:20 +03:00
Thaddeus Crews
b34a643404 Merge pull request #96346 from DeeJayLSP/qoa-opt
Use `qoa.c` and custom compress procedure
2024-12-05 14:12:15 -06:00
DeeJayLSP
afd68d785b Use qoa.c and custom compress procedure 2024-12-05 13:20:09 -03:00
Michael Alexsander
eb5839dcbb Add "At Start" mode for sub-emitter particles 2024-12-05 11:48:34 -03:00
Thaddeus Crews
53f59619e2 Merge pull request #99983 from MewPurPur/followup
Codestyle improvements in style_box_flat.cpp
2024-12-04 11:02:04 -06:00
Hugo Locurcio
b43c47d6dd Adjust StyleBoxFlat antialiasing to account for 2D stretch scale
This prevents the antialiasing feather from becoming too wide
at viewport sizes higher than the default, which can lead to blurry visuals.

This is adjusted to account for the 2D scale factor returned on the root
Window, so it takes both the `canvas_items` scaling and
`content_scale_factor` into account.
2024-12-04 01:07:25 +01:00
Thaddeus Crews
42eb4fbc07 Merge pull request #93831 from what-is-a-git/wav-runtime
Add runtime file loading to `AudioStreamWAV`
2024-12-03 14:40:42 -06:00
Thaddeus Crews
70ff57b5f3 Merge pull request #99716 from DarioSamo/material-dirty-updates
Restore dirty list for BaseMaterial3D but don't use it on resource loader.
2024-12-03 14:40:41 -06:00
MewPurPur
08a8f430f4 Codestyle improvements in style_box_flat.cpp 2024-12-03 22:03:53 +02:00
David Snopek
ca12f350db CompositorEffect should use GDVIRTUAL_CALL() so it works with GDExtension 2024-12-03 12:57:56 -06:00
what-is-a-git
707f1038c3 Add runtime file loading to AudioStreamWAV 2024-12-02 20:03:53 -05:00
Rémi Verschelde
fa264115ce Merge pull request #98664 from bruvzg/ts_reset_subpixel_shift
[TextServer] Reset subpixel shift on blank glyphs.
2024-12-02 17:20:07 +01:00
Rémi Verschelde
e6125ef51b Merge pull request #98763 from AThousandShips/more_sname_uses
Use `SceneStringName` in more places
2024-12-02 15:50:44 +01:00
A Thousand Ships
af56d6e8e8 Use SceneStringName in more places 2024-12-02 14:39:16 +01:00
rune-scape
d58b2e879f Get rid of easily removable uses of const_cast 2024-12-01 17:50:13 -08:00
Rémi Verschelde
5e87bdae74 Merge pull request #98605 from bruvzg/lbl_mult_para
[Label] Handle text as multiple independent paragraphs.
2024-11-29 22:46:42 +01:00
Rémi Verschelde
7f5ffdf787 Merge pull request #98541 from ydeltastar/zero-multi-fix
Fix `MultiMesh` errors in editor and resource duplication
2024-11-29 22:46:38 +01:00
Rémi Verschelde
5d9ffb7d1c Merge pull request #97365 from aaronp64/vector_compose_input_defaults
Keep existing `VectorCompose` input values when setting vector type
2024-11-29 22:46:05 +01:00
Rémi Verschelde
ab08876e5c Merge pull request #89566 from AThousandShips/range_val_fix
Fix some invalid `int` property ranges
2024-11-29 22:45:35 +01:00
Rémi Verschelde
5d462ee4c5 Merge pull request #67857 from anvilfolk/extended-curve
Extend Curve to allow for domains outside of [0, 1].
2024-11-29 22:45:19 +01:00
cixil
8a42e3d3ef Avoid duplicating signals from scene instances into packed scenes 2024-11-29 18:29:08 +01:00
Thaddeus Crews
c5cd7c66ee Merge pull request #85443 from smix8/gridmap_castshadows
Add ShadowCastingSetting to MeshLibrary / GridMap items
2024-11-27 10:47:10 -06:00
Thaddeus Crews
21542298aa Merge pull request #99743 from clayjohn/material-texture-mask
Use Vector4 for texture mask in BaseMaterial to avoid converting to and from Plane
2024-11-27 10:47:03 -06:00
Dario
34a19f07a4 Restore dirty list for BaseMaterial3D but don't use it on resource loader. 2024-11-27 10:37:19 -03:00
ze2j
97e0b43faa Add ArrayMesh::surface_remove 2024-11-27 13:46:15 +01:00
clayjohn
9e34e45480 Use Vector4 for texture mask in BaseMaterial to avoid converting to and from Plane 2024-11-26 21:43:46 -08:00
smix8
612981c1ea Add ShadowCastingSetting to MeshLibrary / GridMap items
Adds ShadowCastingSetting to MeshLibrary / GridMap items.
2024-11-27 01:06:21 +01:00
Thaddeus Crews
04786f0ee8 Merge pull request #97824 from TokageItLab/retarget-modifier
Add RetargetModifier3D for realtime retarget to keep original rest
2024-11-26 13:04:47 -06:00
Jamie Greunbaum
0fc082e1ee Add CollisionShape3D custom debug colours
This allows changing the display colour of a CollisionShape3D node on a per-shape basis.
It also adds the ability to display a solid coloured preview of a CollisionShape3D.

Closes https://github.com/godotengine/godot-proposals/issues/906
2024-11-26 16:28:13 +01:00
A Thousand Ships
f6ea6cdb67 Fix some invalid int property ranges
* `HeightMapShape3D` had ranges configured for `float` instead of `int`
* Particles had `amount` that used `exp` which is not supported, added
  note
2024-11-23 19:17:29 +01:00
Thaddeus Crews
7faad0cc7a Merge pull request #97388 from tetrapod00/visualshader-linear-srgb
VisualShader: Add LinearToSRGB and SRGBToLinear to ColorFunc node
2024-11-22 14:54:47 -06:00
Thaddeus Crews
cef0c3548e Merge pull request #99498 from carsonetb/mesh-gen-optimization
Optimize mesh generation by preventing unneeded shape recalculations
2024-11-22 14:54:18 -06:00
Carson Bates
c874e284eb Optimize mesh generation by preventing unneeded shape recalculations
Co-authored-by: Sequoia Haynes <supersequoia11@gmail.com>
2024-11-21 19:49:21 -08:00
Chaosus
a64b3fd3f8 Allow SCREEN_UV to be used in light function of spatial shader 2024-11-19 11:39:49 +03:00
Thaddeus Crews
8e324c4589 Merge pull request #86195 from GreenCrowDev/curve3d_close
Add `closed` property to `Curve3D`
2024-11-18 09:23:38 -06:00