Commit Graph

459 Commits

Author SHA1 Message Date
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
Hugo Locurcio b31f6f78a3
Display 2 decimals instead of 1 in editor frametime labels
When comparing different graphics settings or optimizations,
this makes precise measurements and frametime comparisons easier.

This also makes the editor FPS display use `pad_decimals()`
for consistency with the implementation in `master`.
2021-11-09 17:20:59 +01:00
Hugo Locurcio 4d35049dc7
Add keyboard shortcuts for grouping and locking nodes, change grid toggle
- Locking nodes can now be done by pressing Ctrl + L, and unlocking with
  Ctrl + Shift + L.
- Grouping nodes is now done by pressing Ctrl + G, and ungrouping with
  Ctrl + Shift + G (similar to Inkscape).
- Toggling the grid is now done by pressing the `#` key
  (also similar to Inkscape). This change was needed as Ctrl + G
  now groups selected nodes.

Different shortcuts are used for the lock/unlock and group/ungroup
actions, so that the shortcuts are idempotent.
2021-11-08 23:38:54 +01:00
Rémi Verschelde 42d385b312
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
Hugo Locurcio a094e5dcdf
Implement Alt + Mouse wheel to adjust FOV in the 3D editor viewport
This allows for quicker FOV adjustments compared to using the View menu.
2021-10-25 00:39:50 +02:00
Haoyu Qiu bd39b8649e
Update view name after processing orbit view shortcuts
(cherry picked from commit 392d529247)
2021-10-23 11:52:20 +02:00
Ryan Roden-Corrent 76255d89af
Implement camera orbiting shortcuts.
Fixes godotengine/godot-proposals#2051.
Relates to godotengine/godot-proposals#1215.

Implements shortucts for adjusting the camera rotation in 15-degree
increments, similar to Blender.

I did not add corresponding menu entries for these, as I didn't feel
like they would be too useful from a menu, and didn't want to make the
menu too long.

(cherry picked from commit cb15ec20bb)
2021-10-18 11:24:37 +02:00
Hugo Locurcio 52b16f0984
Increase object snapping distances in the 3D editor
- Increase drag-and-drop snapping to 50 units
  (from 10 units).
- Increase Snap Object to Floor maximum height to 500 units
  (from 20 units).
- Increase Snap Object to Floor negative margin to 1 unit
  (from 0.2 units).

(cherry picked from commit 7a3d0b79b4)
2021-10-15 12:51:42 +02:00
Rémi Verschelde d4b2db5c3a
Merge pull request #51438 from timothyqiu/selection-box-sep-3x 2021-10-05 13:55:36 +02:00
Haoyu Qiu 4b611c4518 Fix 3D view name typo 2021-09-22 10:31:48 +08:00
Hugo Locurcio da68feb0ca
Print a warning if a 3D editor gizmo has no name defined
Unnamed gizmos should be avoided, so this should help editor plugin
authors resolve issues with gizmo naming if they forgot to override
the function.

(cherry picked from commit e5406ba952)
2021-09-21 17:15:01 +02:00
Rémi Verschelde 8ea1ad6725
Merge pull request #52772 from Calinou/editor-default-enable-doppler-3.x 2021-09-21 11:30:03 +02:00
Rémi Verschelde 7d852bd98a
Merge pull request #52377 from Calinou/tweak-3d-inertia-3.x
Tweak the 3D editor inertia defaults for better responsiveness (3.x)
2021-09-20 15:41:43 +02:00
Hugo Locurcio 4914b57222
Enable Doppler preview in the 3D editor by default
This makes setting up AudioStreamPlayer3D nodes for Doppler playback
a bit easier.

- Move AudioStreamPlayer3D's Doppler Tracking property outside a group
  since the group only had 1 property, which resulted in unnecessary
  folding in the inspector.
- Put the AudioStreamPlayer3D Playing and Autoplay properties higher up
  in the inspector since these are likely to be modified often.
2021-09-17 18:51:09 +02:00
Hugo Locurcio 7922c262f6
Display a editor gizmo icon for Listener
The icon was present in `editor/icons/`, but it was never implemented
in the editor gizmos code.

This also removes some unused gizmo drawing code (overridden methods
that are no longer called anywhere).
2021-09-16 23:37:12 +02:00
Krystof Klestil 5e2450cae6 Fix issues with scaling 3D Objects
When scaling 3D objects the distance form them is not considered. Allowing for finer contorl. Overscaled objects no longer break the gizmo.
2021-09-15 08:40:41 +02:00
Hugo Locurcio 543c14336d
Tweak the 3D editor inertia defaults for better responsiveness
The default orbit sensitivity was decreased to account for this change.
Rotational inertia (orbit + freelook) was disabled by default due to
known issues.

This also removes the need for separate manipulation inertia settings,
as the default settings are more responsive.
2021-09-10 22:17:04 +02:00
kobewi 6611d24e74 Include locked nodes on selection list 2021-08-18 13:27:33 +02:00