1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-04 17:04:49 +00:00
Commit Graph

105 Commits

Author SHA1 Message Date
Silc Lizard (Tokage) Renew
bf22eb25e3 Add IKModifier3D 2025-11-04 02:38:48 +09:00
Thaddeus Crews
9e96c7d9b8 Merge pull request #110378 from timothyqiu/rtl-preview
Make text-related nodes translation domain aware
2025-10-16 12:48:05 -05:00
Lukas Tenbrink
207e8c1b92 Remove compositor.h include from world_3d.h. 2025-10-08 11:25:23 +02:00
Thaddeus Crews
5935a32e32 Core: Cleanup headers in core/config
- `MainLoop` now forward-declared in `OS`
2025-10-06 09:20:56 -05:00
Thaddeus Crews
38af23a654 Merge pull request #89409 from aaronfranke/server-folders
Move server files into their subfolders
2025-10-03 12:01:00 -05:00
Thaddeus Crews
f745685f54 Merge pull request #110028 from zeux/simplify-prune
Enable component pruning during mesh simplification
2025-10-01 13:12:36 -05:00
Aaron Franke
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Aaron Franke
9fbf5808a0 Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
Thaddeus Crews
b9010edcfa Merge pull request #110951 from aaronfranke/const-arr-ref-text-bidi
Use const Array ref in `set_structured_text_bidi_override_options`
2025-09-30 18:35:20 -05:00
Thaddeus Crews
21fd4faf1b Merge pull request #107469 from Ivorforce/vector-localvector-explicit-span-conversions
Remove implicit conversions between `LocalVector` and `Vector`
2025-09-30 11:19:17 -05:00
Aaron Franke
1a7be001d2 Use const Array ref in set_structured_text_bidi_override_options 2025-09-26 14:31:38 -07:00
Arseny Kapoulkine
ccbece58d8 Enable component pruning during simplification
In addition to the regular edge collapse, we now allow the simplifier to
remove small isolated components. Components that are removed are below
the error threshold in size and as such should not noticeably contribute
to the overall rendering of the object.

This helps simplify topologically complex but small parts of larger
meshes and more comfortably reach the LOD targets.

In some cases, pruning can cause the last LOD to shrink to 0 triangles
which may prevent a slightly larger LOD from being used at the maximum
distance; in this case we retry simplification without pruning once.
2025-09-24 22:23:55 -07:00
Arseny Kapoulkine
e40436d527 Switch LOD generation to use iterative simplification
Instead of simplifying every LOD from the original down to an
increasing number of triangles, we simplify each LOD from the previous
LOD and stop when the simplification can't proceed further.

This has a few benefits:

- It's significantly faster; using sparse flag helps ensure that
  subsequent simplifications after the first one are increasingly
  cheaper.

- It results in higher quality attributes on generated LODs; attribute
  quadrics reduce the quality of attribute preservation the more they
  are accumulated, so recomputing them from intermediate geometry helps.

- It results in monotonic appearance: if a feature is reduced in a
  higher LOD, it will stay reduced or get reduced more significantly in
  lower LODs. This is not a significant problem right now, but can be
  helpful to ensure if the number of LODs increases or some newer
  features get enabled.
2025-09-23 13:28:45 -07:00
Haoyu Qiu
172c80df67 Make text-related nodes translation domain aware
- Makes `is_layout_rtl()` translation domain aware
- Makes various text-drawing controls translation domain aware
- Makes translation preview use the project's fallback locale when disabled
2025-09-22 09:39:14 +08:00
Arseny Kapoulkine
92596e3f17 Regularize deformable objects to fix excessive errors post deformation
This significantly improves LOD quality for skinned objects, especially
if the skinned object geometry is very simple (e.g. planar or
cylindrical) in bind pose.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-09-19 08:45:57 -07:00
Lukas Tenbrink
abe3b481ae Make conversions from LocalVector to Vector explicit. 2025-09-16 21:41:28 +02:00
Aaron Franke
ba92af7d07 ImporterMesh: Validate triangle indices array size is a multiple of 3 2025-08-18 06:36:21 -07:00
Thaddeus Crews
e1e2277f5a Merge pull request #108530 from mihe/physics-debug-perf
Fix performance regression when rendering collision shapes
2025-07-15 08:04:25 -05:00
WhalesState
5eee6d22a0 Fix remaining physics and navigation disabling issues. 2025-07-12 17:12:42 +03:00
Mikael Hermansson
8634a8e234 Fix performance regression when rendering collision shapes 2025-07-11 20:52:58 +02:00
LuoZhihao
8ba4656ea3 Compile out editor-only logic within validate_property in games 2025-06-12 12:54:19 +08:00
Michael Alexsander
454e4f817c Make build profile project detection also set build options 2025-06-03 11:11:33 -03:00
Dario
5a30a7e7cd Add shader baker to project exporter.
Metal Support contributed by Migeran (https://migeran.com) and Stuart Carnie.

Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
Co-authored-by: Gergely Kis <gergely.kis@migeran.com>
2025-05-27 12:45:27 -03:00
Thaddeus Crews
274ed34ac4 Merge pull request #93836 from aaronfranke/capsule-mid-height
Add mid height property to CapsuleShape2D/3D
2025-05-23 09:46:13 -05:00
Arseny Kapoulkine
6190d412d3 Adjust LOD selection metrics to use attribute error
- Revert meshoptimizer patch; the metric used for LOD selection now
incorporates attribute error
- Since LOD selection is now aware of attribute deviation, we don't
need to use a higher normal weight
- To prevent normal creases from creating input triangles with very
large normal deviation, reduce default normal merge threshold
- Since we now use combined metric to select LODs, we never need LODs
with error>1 as these should not be selected if the mesh is visible.
2025-05-18 17:38:54 +03:00
Arseny Kapoulkine
9a8348cc2c Use vertex colors (if present) as attributes during simplification
When importing meshes with vertex colors, we will now supply them to the
simplifier as attributes with weight=1 (in addition to normals). This will
guide the simplification to preserve regions where vertex colors change.

For this change to take full effect, it is also necessary to respect the
full error when selecting LODs; this change does not do that yet, so there
are going to still be cases where vertex colors change abruptly during LOD
switch in a visible manner.
2025-05-15 21:48:12 +03:00
kobewi
34b485d62b Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
Aaron Franke
9f38cfe3ca Add mid height property to CapsuleShape2D/3D 2025-05-01 15:45:51 -07:00
lawnjelly
f8f350a32a Add GLOBAL_GET cached macros.
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-04-30 15:08:50 +01:00
Thaddeus Crews
dc9c34f0c6 SCons: Add enum conversion warning 2025-04-26 12:06:20 -05:00
clayjohn
6fede0b951 Optimize SkyMaterials by removing uses of acos and simplifying logic
The results looks almost the same and run much faster.
2025-04-17 22:50:11 -07:00
Thaddeus Crews
866d59d216 Merge pull request #105264 from clayjohn/primitive-mesh-optimize
Optimize PrimitiveMesh creation by avoiding CoW behavior and dynamic memory allocations
2025-04-14 19:39:46 -05:00
clayjohn
9b6f9e5701 Optimize PrimitiveMesh _create_mesh_array function by avoiding CoW behavior and dynamic memory allocations 2025-04-11 09:04:44 -07:00
Thaddeus Crews
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
A Thousand Ships
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
Yufeng Ying
7a1a970c25 size() <= 0 and size() < 1. 2025-04-02 19:18:44 +08:00
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Michael Alexsander
556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
Michael Alexsander
5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03:00
Yyf2333
22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Thaddeus Crews
f09ee0171a Style: Begin integrating simple .clangd fixes 2025-03-22 13:24:35 -05:00
Thaddeus Crews
c1b7865ae9 Merge pull request #103557 from aaronfranke/godot-version-defines
Rename version defines to `GODOT_VERSION_*` to match GDExtension godot-cpp
2025-03-13 08:57:42 -05:00
Aaron Franke
97ee05e9b7 Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
Yufeng Ying
bebe037abf Add ConstIterator to Dictionary. 2025-03-13 01:28:46 +08:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
Thaddeus Crews
bacf8d198d Merge pull request #101014 from BattyBovine/cs3d-separation-ray-fix-2
Prevent errors when drawing debug meshes with no mesh data.
2025-01-20 16:25:48 -06:00
Aarni Koskela
f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
BattyBovine
6dc6ad2b86 Prevent errors when drawing debug meshes when surface count is zero.
Adds a few checks to ensure a debug collision mesh contains mesh data before
attempting to add it to the gizmo draw list. This prevents errors when using
SeparationRayShape3D, which is only intended to draw a single line, and
contains no mesh data.

Closes #100665
2025-01-06 21:35:52 -05:00
Thaddeus Crews
df2b117ec2 Merge pull request #100317 from TCROC/fix-collision-shape-debug-color-breaks-gdextension
Fix collision shape debug color breaking GDExtension
2024-12-30 08:58:41 -06:00
A Thousand Ships
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00