Commit graph

476 commits

Author SHA1 Message Date
lawnjelly
4ec07e8beb Optimize Editor _init_grid()
Use static `LocalVectors` instead of `PoolVectors` for temporaries.
2024-06-03 14:07:38 +01:00
lawnjelly
bdf0f78e07 Editor 3D view mesh stats
Similar to information window, add a small optional window to display face count and other stats.
2024-04-21 08:20:18 +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
lawnjelly
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
kleonc
0cde6800e7 Make gizmo plugin handle SpriteBase3D instead of Sprite3D 2023-10-06 10:43:07 +02:00
Haoyu Qiu
98803d4edd SpatialEditorPlugin should only handle Spatial 2023-08-03 09:41:48 +08:00
Haoyu Qiu
dd3bda9156 Fix OccluderPolyShape handles disappear after release click 2023-07-27 16:56:00 +08: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
65465f309c
Add a project setting to make the root viewport transparent
This allows creating a project with a transparent window without having
to write any script.
2022-12-18 00:38:05 +01:00
Rémi Verschelde
6963ba631e
Fix typos with codespell 2022-12-15 12:26:59 +01:00
Fredia Huya-Kouadio
0825859a94 Update the visibility logic for the spatial editor navigation controls 2022-12-13 16:17:22 -08:00
Fredia Huya-Kouadio
f1e6ecd3b5 Minor tweaks/polish to the navigation controls to prevent interference:
- Reduce controls size
- Enable opacity on hover to increase visibility
2022-12-02 23:33:14 -08:00
Alfred Reinold Baudisch
d3735d8b21
Cast dragged file extension name to lowercase, closes #68104
(cherry picked from commit 07e367cb0b)
2022-11-30 15:34:27 +01:00
Fredia Huya-Kouadio
cc59e18c9b Add navigation control to the spatial editor viewport for the Android editor 2022-11-16 05:17:21 -08:00
Haoyu Qiu
f32f4ec051 Improve dragging scene into 3D viewport 2022-11-01 18:58:16 +08:00
Haoyu Qiu
0025ab89c7 Fix spatial gizmo still active when node is deselected 2022-10-31 20:38:31 +08:00
Jummit
fd91b2dbb9 Keep Perspective menu open on selection
Makes the Perspective menu consistent with the View menu in the 3D
viewport. This allows for quicker inspection of the scene, and makes
missclicks more forgiving.

(cherry picked from commit e3ab344af9)
2022-08-24 17:52:15 +02:00
Rémi Verschelde
5b4e7a0693
Merge pull request #64071 from Calinou/3d-editor-remove-alt-fov-adjustment-3.x 2022-08-08 12:00:22 +02:00
foxydevloper
543e74a988 Improve tooltips for grouping/ungrouping nodes
(cherry picked from commit 1ff9a09e2c)
2022-08-08 09:40:48 +02:00
Hugo Locurcio
53f4ff243d
Remove FOV adjustment with Alt + mouse wheel in the 3D editor
This shortcut got in the way when using the Maya navigation scheme,
and also when using the slow freelook modifier (regardless of
navigation scheme).
2022-08-07 19:47:22 +02:00
Rémi Verschelde
ab7e2564f3
Merge pull request #63659 from PrecisionRender/add-shape-cast-3d
[3.x] Add `ShapeCast` and `ShapeCast2D` nodes
2022-08-06 00:33:29 +02:00
Rémi Verschelde
74de571827
Merge pull request #55626 from Calinou/3d-editor-drag-and-drop-auto-root-node-3.x 2022-08-05 19:38:45 +02:00
PrecisionRender
47a62e28ac [3.x] Add ShapeCast and ShapeCast2D nodes 2022-07-30 10:23:58 -05:00
Yuri Sizov
842c3a644f Use FlowContainer to handle toolbar overflow more gracefully 2022-07-20 17:22:36 +03:00
Hugo Locurcio
90cf6688f2
Automatically add root node when drag-and-dropping in 3D editor
This also uses correct capitalization scheme for 3D meshes that are
drag-and-dropped, like in the 2D editor.
2022-07-05 00:54:31 +02:00
Rémi Verschelde
80b82e4e66 i18n: Misc fixes translation strings
Adds some translator comments to solve some questions raised on Weblate.
2022-06-08 12:56:42 +02:00
bruvzg
dc6d8d6098
Backport Label3D node implementation and Sprite*3D material render priority. 2022-05-23 09:14:41 +03:00
Hugo Locurcio
aaf8424d7e
Use physical keys for numpad emulation in the 3D editor
This makes numpad emulation work on non-QWERTY keyboard layouts
more reliably.
2022-05-05 01:33:47 +02:00
Haoyu Qiu
d088128b43 Remove duplicate editor settings definitions 2022-04-27 15:26:46 +08:00
Hugo Locurcio
5f9c13b980
Improve display of freelook/zoom speed indicator bars in the 3D editor
- Use a different color for freelook and zoom speed bars.
- Use a shadow for the text to make it readable on any background.
2022-03-13 22:59:21 +01:00
Rémi Verschelde
ae036e823b
Merge pull request #58694 from Calinou/editor-frame-time-color-3.x 2022-03-10 21:11:17 +01:00
Hugo Locurcio
2e6a305b8f
Improve display for unsupported debug draw modes in GLES2
- Don't disable the Normal option as it technically can be chosen
  (it's the default).
- Use a text suffix in addition to the tooltip.
2022-03-05 22:03:39 +01:00
Hugo Locurcio
2893090a50
Color 3D editor FPS label depending on the performance level
This provides easier visual grepping.

Incindentally, this change will force constant editor redrawing whenever
the View FPS option is enabled in the 3D viewport settings. This is
required to get an accurate FPS display in 3.x.
Otherwise, the FPS counter shot all the way up to 145 FPS
whenever nothing was changing on screen (even if actual
performance was much lower).
2022-03-02 22:16:13 +01:00
Rémi Verschelde
e2287a201a
Merge pull request #58253 from mbrlabs/deselect-3x 2022-02-17 20:32:38 +01:00
Marcus Brummer
d9c99f64c1 Improved region-select in the 3D editor viewport
Enable region-select when dragging the mouse. Previously this was only possible when the mouse was not over a mesh.
2022-02-17 19:49:39 +01:00
Marcus Brummer
67b879edbd Deselect nodes in the 3D editor when pressing ESC 2022-02-17 19:43:35 +01:00
lawnjelly
f0af29346b ProjectSettings add dirty flag and project_settings_changed signal
Most frames there will be no change in project settings, and it makes no sense to read settings every frame in case of changes, as a large number of string compares are involved.

This PR adds a signal to ProjectSettings that can be subscribed to in order to keep local settings up to date with ProjectSettings.

In addition a function `ProjectSettings::has_changes()` is provided for objects outside the signal system (e.g. Rasterizers).
2022-02-09 11:20:25 +00:00
lawnjelly
8ea20f5fdd Add OccluderShapePolygon
Add OccluderShapePolygon, glue to Occluder and gizmos etc.
2022-02-01 11:31:06 +00:00
Rémi Verschelde
ede7e68ab6
Merge pull request #56620 from timothyqiu/left-right-palette-3.x 2022-01-18 16:38:26 +01:00
Rémi Verschelde
a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
Haoyu Qiu
37a38ece59 Allow showing both left and right side panels 2022-01-08 20:20:36 +08:00
Rémi Verschelde
791f454b17
Merge pull request #56364 from V-Sekai/preview_node_sanitize_3_x
Clean preview node of all nodes which are not derived from VisualInstances [3.x]
2022-01-04 17:20:49 +01:00
Rémi Verschelde
25369acff9
Merge pull request #51708 from Calinou/viewport-add-32bpc-color-depth 2022-01-04 14:30:24 +01:00
Hugo Locurcio
d6e7308b3f
Split 3D editor sensitivity freelook sensitivity into its own setting
This allows configuring orbit sensitivity and freelook sensitivity
independently from each other. Often, it's needed to use a lower
freelook sensitivity compared to the orbit sensitivity.

Also, when using a FOV scale lower than the default
(using Alt + mouse wheel), the mouse sensitivity is now scaled
to make it easier to use freelook to look at distant objects.
This does not affect orbiting and panning.
2022-01-03 22:36:42 +01:00
Rémi Verschelde
0aa7768b1e
Merge pull request #54207 from Calinou/3d-editor-add-quick-fov-adjust-3.x 2022-01-03 20:44:00 +01:00
SaracenOne
5935cee298 Clean preview_node of all none VisualInstances 2021-12-31 01:19:15 +00:00
Cory Petkovsek
3d20218dae Clears RIDs wherever they are freed by VisualServer or PhysicsServer and possibly reused. Fixes #53374 2021-12-10 02:31:30 +08:00
lawnjelly
3d981b8265 Add option to use handles to RID
Adds an option to compile an alternative implementation for RIDs, which allows checks for erroneous usage patterns as well as providing leak tests.
2021-12-06 14:43:34 +00:00
Ryan Roden-Corrent
d1df89a695
Clamp rotation for up/down orbiting shortcuts.
This prevents the viewport from going upside-down.

This was suggested at:
https://github.com/godotengine/godot/pull/51984#issuecomment-948614191:

> For 3.4, I think we can just clamp the angle value when using the
> camera orbiting shortcuts. We can investigate what to do with panning
> and freelook in 3.5 and 4.0.

(cherry picked from commit 3bd7c4f2a9)
2021-11-15 16:10:00 +01:00