Commit Graph

138 Commits

Author SHA1 Message Date
lawnjelly
115f4dce55 Sphere occluders (portals and general use)
Add framework for supporting geometrical occluders within rooms, and add support for sphere occluders.
Includes gizmos for editing.

They also work outside the portal system.
2021-08-17 09:02:06 +01:00
lawnjelly
770d9f8220 Portals - add gizmo handles for editing portals and rooms
Gizmo handles are added for much more user friendly editing of portals and room bounds.
2021-08-06 07:53:22 +01:00
lawnjelly
cb39b3d77c Portals - Gizmo colors added to editor settings
Make the portal and room gizmo colors user definable.
2021-07-26 20:09:22 +01:00
lawnjelly
44f9a0f961 Portals - fix autolink sprawling, refine logs
It turned out the new autolinking feature was linking portals AFTER the static meshes had been added to rooms in the PortalRenderer. This meant that large meshes weren't being sprawled across these portals. The fix involves doing the autolinking BEFORE adding the static meshes.

Fixes a bug in the warning for portals being in the wrong direction, they should have only been checkout for outgoing portals. This was resulting in erroneous warnings.

Also the room conversion logs are refined to be more compact and informative.

A warning icon is also added in the gizmo for portals where autolink fails.
2021-07-15 13:04:05 +01:00
lawnjelly
eb6f98ec55 Portal occlusion culling
Adds support for occlusion culling via rooms and portals.
2021-07-14 11:43:23 +01:00
AndreaCatania
eb3ddbc050
Remove early return from gizmo intersect_ray
Remove early returns from `EditorNode3DGizmo::intersect_ray` that is preventing to have gizmos that use Mesh collision + Segment collision + Icon.

(cherry picked from commit 2c12297ee1)
2021-06-29 14:02:22 +02:00
Hugo Locurcio
a6a6ad5c08
Add custom debug shape thickness and color options to RayCast
This backports the improved RayCast debug drawing functionality
from the `master` branch.

`ArrayMesh.clear_surfaces()` was also backported from the `master`
branch and exposed because the new debug drawing code requires it.
2021-06-19 06:01:25 +02:00
Hugo Locurcio
7c8a8d9bf5
Remove the 3D camera gizmo icon
The gizmo icon obstructed the line-based camera gizmo, which made it
difficult to see the actual camera orientation.

This also removes the unused SpatialStreamPlayer gizmo icon.
2021-06-16 07:03:11 +02:00
Rémi Verschelde
80e1585a6e
Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.

(cherry picked from commit c1c76850cb)
2021-06-07 12:06:59 +02:00
Morris Tabor
ba396caefc Replace QuickHull with Bullet's convex hull computer.
The code is based on the current version of thirdparty/vhacd and modified to use Godot's types and code style.

Additional changes:
- backported and extended PagedAllocator to allow leaked objects
- applied patch from https://github.com/bulletphysics/bullet3/pull/3037
2021-05-22 08:16:43 +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
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
PouleyKetchoupp
13258baf4c Fix PhysicalBone gizmo not showing
The new CollisionObject gizmo used for custom shapes was used with
higher priority due to alphabetical order and was preventing physical
bones from being displayed in the editor.
2021-03-22 10:35:11 -07:00
PouleyKetchoupp
987c3462fe Fix pinned vertices in SoftBody editor gizmo
The wrong vertices could be highlighted/selected due to generating a
debug triangle mesh to gather points, which can modify the order of
vertices.
2021-03-11 18:27:48 -07: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
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
Rémi Verschelde
8d93303483
Merge pull request #37863 from ExpiredPopsicle/culling5
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
Kiri Jolly
bac44ee19f Fixed false positives in the culling system.
This fixes numerous false positives coming out of the culling system.

AABB checks are now a full separating-axis check against the frustum, with the points of the frustum being compared to the planes of the box just as the points of the box were being compared to the planes of the frustum. This fixes large objects behind the camera not being culled correctly.

Some systems that used frustums that were (sometimes mistakenly?) unbounded on one or more side have been modified to be fully enclosed.
2020-04-28 17:14:06 -07:00
jfons
add8d1b9df Update Joint gizmos automatically
(cherry picked from commit 3e77b6d49d)
2020-04-23 11:07:32 +02:00
Rémi Verschelde
4faaf6089a Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
Haoyu Qiu
ce9453ecf4 Prevent negative zero shown in SpotLight gizmo 2020-01-20 09:08:18 +08:00
Rémi Verschelde
a18909f945 doc: Sync classref with current source 2020-01-03 15:09:09 +01:00
Ignacio Etcheverry
bca64e3b6f Fix missing DEFVAL in some EditorSpatialGizmo methods
This was a regression from ac18665c88,
which changed the C++ method signature but forgot to update the method bind.
2020-01-02 18:07:23 +01:00
Rémi Verschelde
c0ece451e3
Merge pull request #34720 from Calinou/light-gizmo-color-by-light
Tint 3D light gizmos using the light's color
2020-01-02 13:59:10 +01:00
Rémi Verschelde
3e649f8cba
Merge pull request #34665 from timothyqiu/camera-fov
Clamps fov/size for Camera gizmo
2020-01-01 11:37:28 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Hugo Locurcio
ac18665c88
Tint 3D light gizmos using the light's color
This makes navigation more convenient in the 3D viewport, especially
when using the unshaded display mode.
2020-01-01 00:54:25 +01:00
Haoyu Qiu
cbb8930813 Clamps fov/size for Camera gizmo 2019-12-29 11:39:04 +08:00
PouleyKetchoupp
06e4a3aa75 Fixed errors in JointSpatialGizmoPlugin when selecting a joint with unset nodes
Fixes #34122
2019-12-05 19:27:57 +01:00
JFonS
1f623c5a2b Fix broken gizmo interaction when Node is scaled 2019-11-13 12:22:08 +01:00
Emmanuel Barroga
29690f6aec Fixes concaveshape not selecting in viewport
This PR resolves the issue of ConcaveShapes not being selectable in the Viewport.
2019-10-11 03:42:36 -07:00
Rémi Verschelde
edf9055b7f
Merge pull request #32325 from SaracenOne/add_mesh_bindings_fix
SpatialEditorGizmo add_mesh bindings fix
2019-09-25 20:46:58 +02:00
Rémi Verschelde
076dc9803a
Merge pull request #32119 from Calinou/unify-axis-colors
Use the same axis colors consistently in the 2D and 3D editors
2019-09-25 13:03:47 +02:00
Saracen
fcef45006e SpatialEditorGizmo add_mesh bindings fix 2019-09-25 09:30:25 +01:00
Hugo Locurcio
0feff49375
Improve the AudioStreamPlayer3D gizmo
This adds more lines to the emission angle cone to give a better
feel of depth in the 3D world.
2019-09-24 22:41:02 +02:00
Ignacio Etcheverry
97143e60c1 Fix wrong defval in EditorSpatialGizmo.add_mesh method bind
The type of the parameter 'skeleton' was changed from 'RID' to 'SkinReference', yet the default value remained 'RID()'.
2019-09-24 15:12:27 +02:00
Rémi Verschelde
159470df08
Merge pull request #32275 from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
Juan Linietsky
d81ddaf33e Added skin support and simplified APIs to override bone position. 2019-09-18 19:46:32 -03:00
Hugo Locurcio
bfa246cda8
Improve the 3D light gizmos
OmniLight and SpotLight gizmos were tweaked to better represent
their depth in the 3D world.

The default light gizmo color was changed to match the gizmo
icon color closely.
2019-09-17 06:01:21 +02:00
Hugo Locurcio
c2bcc3f700
Use the same axis colors consistently in the 2D and 3D editors 2019-09-13 14:08:41 +02:00
Hugo Locurcio
a350fd4a57
Draw 3D collision shape/raycast gizmos in grayscale when disabled
This makes them easier to distinguish from their enabled counterparts,
as is already done in the 2D editor.
2019-08-21 15:32:51 +02:00
Cameron Reikes
345fcb96a2 Add particles icon to CPUParticles 2019-08-08 16:28:01 -07:00
Hugo Locurcio
0ce59bf6dd
Implement snapping for most 3D gizmos 2019-07-03 12:26:01 +02:00
qarmin
3c154eb93b Remove unnecessary code and add some error explanations 2019-07-01 12:59:42 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde
5c66771e3e
Merge pull request #29283 from qarmin/fix_some_always_same_values
Remove always true/false values
2019-06-20 21:10:10 +02:00
qarmin
072e40368e Fix always true/false values 2019-06-20 16:59:48 +02:00