Commit graph

4185 commits

Author SHA1 Message Date
Arseny Kapoulkine
0fde03c0e0 Optimize base and shadow meshes for cache
Previously, vertex cache optimization was ran for the LOD meshes, but
was never ran for the base mesh or for the shadow meshes, including
shadow LOD chain (shadow LOD chain would sometimes get implicitly
optimized for vertex cache as a byproduct of base LOD optimization, but
not always). This could significantly affect the rendering performance
of geometry heavy scenes, especially for depth or shadow passes where
the fragment load is light.
2024-08-16 07:36:12 -07:00
Rémi Verschelde
a778f7803c
Merge pull request #95529 from bruvzg/bmfont_match_h
[BMFont] Fix importing fonts with `Match char height` enabled.
2024-08-16 14:35:32 +02:00
Rémi Verschelde
1346aaf4e7
Merge pull request #95465 from jsjtxietian/remove-category-warning
Remove `missing a category` warning in visual shader node
2024-08-16 14:34:56 +02:00
Rémi Verschelde
60b0b5cd42
Merge pull request #95337 from kleonc/tile_set_editor_fix_transposed_polygons_editing
Fix polygon drawing for transposed tiles in `TileSet` editor
2024-08-16 14:33:37 +02:00
Rémi Verschelde
e43a328f8e
Merge pull request #95464 from tetrapod00/visual-shader-inspector-spatial-node3d-rename
Fix wrong name for Spatial shader mode in VisualShader resource inspector
2024-08-16 10:36:22 +02:00
Rémi Verschelde
5960555f9b
Merge pull request #94726 from BastiaanOlij/primitive_texel_size_update
Make primitive meshes react to texel size change
2024-08-16 10:34:35 +02:00
Rémi Verschelde
e58a7530aa
Merge pull request #93727 from zeux/raycast-opt
Disable normal raycaster for LOD generation by default
2024-08-16 10:34:03 +02:00
bruvzg
e7f215c2c4
[BMFont] Fix importing fonts with Match char height enabled. 2024-08-14 23:52:19 +03:00
jsjtxietian
c7249f41e9 Remove missing a category warning in visual shader node 2024-08-13 12:20:59 +08:00
tetrapod00
b9876b626d Change "Node3D" to "Spatial" in VisualShader resource 2024-08-12 21:04:13 -07:00
Rémi Verschelde
ece2e6d23b
Merge pull request #95377 from raulsntos/gdextension/expose-property-accessors/Animation
Make `Animation::capture_included` read-only
2024-08-12 14:10:37 +02:00
Raul Santos
415331f474
Make Animation::capture_included read-only
The `PROPERTY_USAGE_READ_ONLY` flag only makes the property read-only in the inspector, but the property also has the `PROPERTY_USAGE_NO_EDITOR` flag which means it won't show up in the inspector. So it does nothing, while still making it editable from scripting.

To make it read-only for scripting too, this PR removes the setter from the `PropertyInfo`. And since the `set_capture_included` method is now unused, it was also removed.
2024-08-10 18:53:45 +02:00
kleonc
6895f6f8cc Fix TileAtlasView bounds checks for transposed tiles 2024-08-09 19:26:02 +02:00
Rémi Verschelde
2edf9b95b3
AudioStreamPolyphonic: Implement stopping with sample playback
Fixes #94724.
2024-08-09 10:57:50 +02:00
bruvzg
5c8a8c57be
[Font] Add check for cyclic base font dependencies. 2024-08-03 00:00:11 +03:00
Bastiaan Olij
b9790cef47 Make primitive meshes react to texel size change 2024-07-26 13:54:11 +10:00
Rémi Verschelde
543e4388d5
Merge pull request #94682 from zeux/lod-uv-mirror
Fix LOD generation for meshes with tangents & mirrored UVs
2024-07-24 09:59:45 +02:00
Arseny Kapoulkine
18d6ae1161 Fix LOD generation for meshes with tangents & mirrored UVs
When UVs are mirrored in a mesh, collapsing vertices across the
mirroring seam can significantly reduce quality in a way that is not
apparent to the simplifier. Even if simplifier was given access to UV
data, the coordinates would need to be weighted very highly to prevent
these collapses, which would penalize overall quality of reasonable
models.

Normally, well behaved models with mirrored UVs have tangent data that
is correctly mirrored, which results in duplicate vertices along the
seam. The simplifier automatically recognizes that seam and preserves
its structure; typically models have few edge loops where UV winding is
flipped so this does not affect simplification quality much.

However, pre-processing for LOD data welded vertices when UVs and
normals were close, which welds these seams and breaks simplification,
creating triangles with distorted UVs.

We now take tangent frame sign into account when the input model has
tangent data, and only weld vertices when the sign is the same.
2024-07-23 16:35:46 -07:00
Silc Lizard (Tokage) Renew
88e590c9d3 Add approx comparing methods to Animation, use them on time comparison 2024-07-24 01:18:06 +09:00
Rémi Verschelde
962c2512c3
Merge pull request #94611 from Chaosus/vs_fix_texture_warning
Fix warning printing for `VisualShaderNodeTextureParameter`
2024-07-22 14:13:20 +02:00
David Trallero
67ece3dc63
Fix polyphonic audio streams with id > 1 cannot be stopped or changed (MSVC mis-optimization) 2024-07-22 14:08:02 +02:00
Yuri Rubinsky
7c9afbc139 Fix warning printing for VisualShaderNodeTextureParameter 2024-07-22 11:22:27 +03:00
Rémi Verschelde
caa1b6d991
Merge pull request #94498 from Chaosus/vs_fix_connection_bug
Fix internal connection count decreased if visual shader node removed
2024-07-18 15:38:27 +02:00
Rémi Verschelde
72e434bad4
Merge pull request #94497 from Chaosus/vs_rotation_by_axis
Few fixes for `VisualShaderNodeRotationByAxis`
2024-07-18 15:38:24 +02:00
kobewi
10da06a32c Fix empty region in AtlasTexture 2024-07-18 15:31:59 +02:00
Yuri Rubinsky
14c36b733c Fix internal connection count decreased if visual shader node removed 2024-07-18 11:40:02 +03:00
Yuri Rubinsky
cf70cb57ee Few fixes for VisualShaderNodeRotationByAxis 2024-07-18 11:10:36 +03:00
Rémi Verschelde
c77c41df88
Merge pull request #94362 from smix8/navpoly_unref_fix
Fix NavigationPolygon not updating consistently on rebakes
2024-07-17 11:44:09 +02:00
smix8
9dd05964d5 Fix NavigationPolygon not updating consistently on rebakes
Fixes that NavigationPolygon did not update in all cases because the internal NavigationMesh was not always unref and freed which blocked creating a new mesh later if nothing else freed it.
2024-07-14 22:01:11 +02:00
Yuri Rubinsky
92aa01f937 Add few new outputs to the visual shaders 2024-07-12 17:12:22 +03:00
bruvzg
847aadee02
[Editor] Update font preview directly instead of invalidating property list. 2024-07-05 12:48:39 +03:00
Rémi Verschelde
4d984b6369
Merge pull request #93930 from Arnklit/short-animation-length-bezier-handle-fix
Clamp bezier handle length to half the length of animation
2024-07-04 17:12:22 +02:00
Rémi Verschelde
af55caff36
Merge pull request #93723 from KoBeWi/bandaid.tscn
Speed up scene group scanning for text scenes
2024-07-04 17:12:06 +02:00
Kasper Frandsen
7c6f32ddbf Clamp bezier handle length to half the length of animation 2024-07-04 13:41:12 +01:00
Arseny Kapoulkine
a13a64eacd Disable normal raycaster for LOD generation by default
Normal raycaster makes LOD generation process >2x slower and often
generates normals that look significantly worse compared to what the
simplifier comes up with by default. This was likely different before
last meshoptimizer upgrade, as the attribute metric was not functioning
properly, but now it looks like it's doing more harm than good.

This change makes it disabled by default but keeps an easy option to
re-enable it per mesh using LOD parameters for now until we get more
confidence and can remove the code outright.

Because the long term plan would be to disable this feature entirely,
the scripting API isn't changed, and it's just off-by-default there with
no way to re-enable.
2024-07-02 10:18:15 -07:00
kleonc
88b29539f7 Fix AtlasTexture::draw_rect flipping for non-zero margin 2024-07-01 21:22:25 +02:00
kobewi
b83c64faac Speed up scene group scanning for text scenes 2024-06-29 21:30:38 +02:00
Yuri Rubinsky
72c7e51905 Use PackedVector4Array instead of float array for vec4 array uniform 2024-06-28 13:34:43 +03:00
Pedro J. Estébanez
c1391489e3 GDScript: Enhance handling of cyclic dependencies 2024-06-26 17:44:32 +02:00
Rémi Verschelde
022b5a1f54
Merge pull request #93426 from smix8/poly_good_locking
Fix thread-use causing navigation polygon data corruption
2024-06-22 16:22:14 +02:00
Hugo Locurcio
281e0e6a5b
Allow BaseMaterial3D height/dither fade to work with Compatibility rendering
Compatibility is based on OpenGL ES 3.0, so the height shader
(including deep parallax) and distance fade dither modes work
just fine with no adjustments required.
2024-06-22 00:57:22 +02:00
smix8
eba3acadac Fix thread-use causing navigation polygon data corruption
Fixes navigation polygon  data corruption caused by thread-use that changed vertices or polygons while the navigation polygon was processed, e.g. by server region sync, navmesh baking or user thread updates.
2024-06-21 12:58:03 +02:00
Rémi Verschelde
04a530f91f
Merge pull request #93407 from smix8/lock_this_geometry_up
Fix thread-use causing navigation source geometry data corruption
2024-06-21 10:14:38 +02:00
smix8
fd727ab994 Fix thread use causing navigation mesh data corruption
Fixes navigation mesh data corruption caused by thread use that changed vertices or polygons while the navigation mesh was processed, e.g. by server sync or baking.
2024-06-21 09:39:16 +02:00
smix8
d4722b9e1f Fix thread-use causing navigation source geometry data corruption
Fixes navigation source geometry data corruption caused by thread-use that changed vertices or indices while the source geometry data was used in a parsing process or read from by the navmesh baking.
2024-06-21 08:06:14 +02:00
maski
734fab7f20
Improve SurfaceTool::generate_tangents UV error message
Fixes #92395.
2024-06-20 16:13:12 +02:00
Pedro J. Estébanez
e6d930b31f AnimatedTexture: Fix crash when loaded from a thread 2024-06-19 09:54:01 +02:00
Adam Scott
52fa4f05f3
Add samples playback support 2024-06-18 11:06:31 -04:00
Yuri Rubinsky
537316098f Fix bugs in visual shader varyings 2024-06-16 16:58:46 +03:00
Yuri Rubinsky
99fa6ee6c4 Fix incorrect preview port in visual shader 2024-06-14 12:31:34 +03:00