Commit graph

381 commits

Author SHA1 Message Date
Hugo Locurcio 59c5c04e38
Allow using the 3D editor's View menu while previewing a camera
This is already allowed when using cinematic preview, but not
when previewing a Camera3D the usual way.

Many operations from the View menu still work while previewing
a camera, such as switching between debug draw modes and toggling
information panes.

(cherry picked from commit fab3d136e0)
2021-07-06 11:19:38 +02:00
Hugo Locurcio b268fdc980
Use Ctrl + G to toggle the 3D editor grid visibility by default
The 2D editor grid toggle shortcut has been changed to use
`KEY_MASK_CMD` for consistency. This means it will now use Cmd
on macOS instead of Ctrl.

(cherry picked from commit 2cc053c64b)
2021-06-29 14:02:23 +02:00
Hugo Locurcio dd70aea77c
Fix game camera override tooltips being swapped
Previously, the wrong tooltip was shown.

This also tweaks the tooltips' texts to be clearer and remove
references to "game" (since Godot is used for more than just games).

(cherry picked from commit d1c5dd5b68)
2021-06-17 12:47:54 +02:00
Hugo Locurcio f88dc1fd44
Fix editor constantly redrawing when freelook is active with still camera
The editor only needs to redraw when the camera is moving.

This helps preserver battery life on laptops when using freelook,
especially with the toggle mode (Shift + F).

(cherry picked from commit 21807f8d88)
2021-06-17 12:47:53 +02:00
jfons 2c400a7aae
Fix swapped front/rear directions in viewport rotation control.
(cherry picked from commit e70e33ddcf)
2021-05-21 12:55:25 +02:00
Rémi Verschelde 140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde b4af1eba0a
Style: Enforce use of bool literals instead of integers
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2021-05-04 16:39:13 +02:00
Rémi Verschelde a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
Rémi Verschelde 64a63e0861
Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 6e600cb3f0
Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
Rafał Mikrut 06976c3e84 [3.x] Fix crashes when using _input functions 2021-04-27 16:51:29 +02:00
Hugo Locurcio e2934a04e2
Allow Center Selection to work without any selection in 2D/3D editors
When there is no selection, the camera will center around the
world origin.

This helps people get back to the world center if they haven't added
any nodes yet.

(cherry picked from commit fc055e1993)
2021-04-26 13:15:28 +02:00
Aaron Franke 9b928cbd9e
Show a message when trying to zoom farther than the limit
(cherry picked from commit b8f66d58b6)
2021-04-12 00:23:43 +02:00
Haoyu Qiu 14cea66f23
Fixes Node3D rotation in select mode on macOS
(cherry picked from commit 879a290ed9)
2021-04-12 00:23:43 +02:00
Haoyu Qiu bfa5adb84f Fix 3D selection box size for Spatial 2021-04-11 19:01:37 +08:00
megalobyte 724a18cf72
Use double when setting the default step size
Casting it as a float was causing issues with the progress bar

(cherry picked from commit d0f3817876)
2021-04-05 12:01:18 +02:00
AndreaCatania bd5663e2cf
Fixes editor crash on closing
Fixes editor crash when the gizmo is destroyed and the `SceneTree` is already freed.

(cherry picked from commit 79f55fcded)
2021-03-31 12:47:54 +02:00
Hugo Locurcio fed17afe7d
Tweak the 3D editor grid default to not go below subdivisions of 1 meter
Small subdivisions aren't useful that often and make it difficult for
people to get a sense of scale in 3D.

(cherry picked from commit 3472c3f6ea)
2021-03-21 01:19:37 +01:00
jmb462 b73a97b110
Fix hardcoded Maya style navigation pan key modifier
ALT key modifier was hardcoded is node_3d_editor_plugin.cpp and didn't take editor settings into account.

Fix #46973

(cherry picked from commit 31077d875e)
2021-03-13 22:04:55 +01:00
hilfazer 84a9efcebc Prevent crash when clicking Mesh in MeshInstance when is scene root 2021-02-26 18:58:05 +01:00
trollodel 2da6d82f3b Allow CollisionObject to show collision shape meshes
Add an editor gizmo to CollisionObject.
CollisionShape no longer shows collision shapes directly.
2021-02-24 21:33:40 +01:00
hilfazer 28fa0f5d13 Prevent selecting hidden nodes in Canvas Item Editor 2021-02-20 20:30:16 +01:00
hilfazer 68438b4abc Prevent selecting hidden editable children in spatial editor 2021-02-18 12:36:52 +01:00
Aaron Franke 751036ff87
[3.2] Limit max zoom to 1/2 of far plane instead of 1/4 2021-02-14 18:17:35 -05:00
Tom Langwaldt 67d80e6f73 Fix swapped front/rear view
(cherry picked from commit f995d6cd17)
2021-02-05 09:26:09 +01:00
Hugo Locurcio c10c6cfad9
Add viewport resolution to the 3D editor's View Information pane
(cherry picked from commit 85ed695836)
2021-02-02 13:30:54 +01:00
jfons 16bbe8ddf4
3D editor grid improvements
This commit adds a view-dependant fade to the 3D viewport grid. It fades out
at steep view angles to hide the solid regions that appear far from the camera.
I also included a fade to hide the grid borders.

I added some improvements to the dynamic grid when the camera is in orthogonal mode.
It properly handles zoom now, and the grid center is now set to the intersection point
between the grid plane and the camera forward ray, keeping the grid
always visible.

(cherry picked from commit 73e62dffb9)
2021-02-02 13:30:50 +01:00
Hugo Locurcio 250f921522
Hide the rotation gizmo when editor cinematic preview is enabled
Cinematic preview enables the Camera3D preview automatically.

When previewing a Camera3D, the rotation gizmo isn't displayed as
it can't be used.

(cherry picked from commit fa1d853eeb)
2021-01-26 17:00:15 +01:00
jeffuntildeath 64cbff7e7d
Snap To Floor improperly offsets node
fix for issue #44282

AABB for collision geometry was being calculated based on parent nodes transform without consideration for collision geometries translation.
Also hopefully clarified logic for selecting starting point for ray cast

(cherry picked from commit 4f171afecc)
2021-01-13 16:17:07 +01:00
Rémi Verschelde 49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Hugo Locurcio 1062bedaaa
Add an editor setting for the 3D selection box color
A restart is required to apply the setting change.

(cherry picked from commit 8221037be0)
2020-12-29 16:02:03 +01:00
Hugo Locurcio 3addea0057
Move the brightness factor for highlighted 3D gizmos to a variable
See
8522ac7711 (r45230326).

(cherry picked from commit 507e9b12a4)
2020-12-29 16:02:00 +01:00
Marcus Brummer 9248ee39ca
Changed the rotation gizmo handle to use the active axis color
(cherry picked from commit ec97962261)
2020-12-29 16:02:00 +01:00
Hugo Locurcio 2753cc5264
Increase the default 3D manipulator gizmo opacity for better visibility
- Brighten gizmos when highlighted to make the difference between a
  non-highlighted and a highlighted gizmo more visible.
- Tweak the manipulator gizmo size property hint.

(cherry picked from commit 8522ac7711)
2020-12-29 16:01:59 +01:00
jeffuntildeath de7b5006cc
fix for snap to floor editor crash bug
fix for issue #44231: snap_selected_nodes_to_floor() results in an editor
crash when a child collisionshape has invalid shape object

(cherry picked from commit 52f6e0b5ad)
2020-12-10 13:12:39 +01:00
Aaron Franke 4267f40e88
Fix trying to set grid visibility on an invalid instance
(cherry picked from commit 8c1d94ebae)
2020-12-09 13:04:07 +01:00
Rémi Verschelde 9df3d06d1f
Merge pull request #43897 from RandomShaper/fix_refl_probe_vis_3.2
Put misc. 3D tool visible instances on their own layer (3.2)
2020-12-03 13:29:36 +01:00
Aaron Franke 80c72a529f
Limit the zoom and freelook speed based on camera settings
(cherry picked from commit 896a297c1f)
2020-12-02 16:02:39 +01:00
Pedro J. Estébanez 08a46bbacd Put misc. 3D tool visible instances on their own layer
This makes that visible stuff invisible to ReflectionProbes, whose preview in the editor shouldn't involve them.
2020-11-26 20:08:30 +01:00
jfons bdc6f2fd95
Fix binding of default value in EditorSpatialGizmoPlugin::get_material()
It was commented for some reason I can't remember.

(cherry picked from commit e6949dae72)
2020-11-26 09:38:47 +01:00
Aaron Franke b9641efc5c
Update the 3D grid when the "View Grid" checkbox is changed
(cherry picked from commit 71d1909b39)
2020-11-19 17:15:28 +01:00
Hugo Locurcio 4b1de5be45
Add a dynamic infinite grid to the 3D editor
- The grid is now infinite, it follows the camera.
- The grid is now dynamic, if you zoom in and out, the grid subdivides,
  expands, and fades.
- You can now enable grid planes for the XY and YZ planes. Only the flat
  XZ plane is enabled by default. Each plane is independently dynamic
  of the others.
- The default grid size has been increased to 200, and the maximum
  has been increased to 2000. At 1000, the grid mostly looks edgeless.
- If you set the division level max and min to the same value then
  the grid does not expand or subdivide, but instead stays the same size
  and just follows the camera. Also, if these values are the same,
  the bias value does nothing.
- If you want to have Blender-like behavior, set max to 1, min to 0,
  and set the bias to a really low value. You may also wish to increase
  the grid size if you have a small bias.

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2020-11-17 10:16:53 +01:00
Hugo Locurcio ed3f0a3950
Improve the 3D editor selection box appearance
- Draw two boxes slightly offset from each other to give the illustion
  of a thicker outline.
- Decrease the offset compared to the 3D node's AABB to give a more
  accurate representation of its size.
- Make the box fully visible instead of only displaying the corners.
- Draw a x-ray version of the box that's more translucent, but visible
  through walls. This helps make the box more visible while still
  having a sense of depth.
- Use an orange color similar to the 2D editor.
2020-11-09 21:55:56 +01:00
Rémi Verschelde c43b2ab603
Merge pull request #42942 from Calinou/add-viewport-debanding-3.2
Add a debanding property to Viewport for GLES3
2020-10-30 11:47:57 +01:00
Marcus Brummer 69b99ba9cb Improve rotation gizmo
Hide the back sides of the rotation gizmo circles and add a white
outline for better visualization of the rotation "sphere".

This is a 3.2 backport of @JFons work on the master branch; all credit
goes to him.
2020-10-22 22:05:50 +02:00
Hugo Locurcio 2dbc329704
Add a debanding property to Viewport for GLES3
It can be enabled in the Project Settings
(`rendering/quality/filters/use_debanding`). It's disabled
by default as it has a small performance impact and can make
PNG screenshots much larger (due to how dithering works).

As a result, it should be enabled only when banding is noticeable enough.

Since debanding requires a HDR viewport to work, it's only supported
in the GLES3 backend.
2020-10-20 19:07:15 +02:00
Hugo Locurcio af45c97652
Add fast approximate antialiasing (FXAA) to Viewport
This backports FXAA from the `master` branch.

Co-authored-by: Clay John <claynjohn@gmail.com>
2020-10-20 14:54:52 +02:00
David Sichma f601e15b92
aabb change updates bounding box
spatial editor will now update the bounding box if aabb or transform
changes

(cherry picked from commit 7701889048)
2020-10-19 16:09:57 +02:00