Commit graph

1227 commits

Author SHA1 Message Date
trollodel 85a776ddcd Allow CollisionObject3D to show collision shape meshes
Add an editor gizmo to CollisionObject3D.
CollisionShape3D no longer shows collision shapes directly.
2021-02-24 18:50:13 +01:00
Aaron Franke 548de64742
Use a more specific type for Area2D/3D body signals 2021-02-24 00:05:54 -05:00
reduz d6a9cff8b7 Add preview Sun and Environment
* Adds both a preview sun and preview environment to the 3D editor.
* They are valid as long as a DirectionalLight3D and WorldEnvironment are not in the scene.
* If any is added to the scene, the respective preview is disabled.
* Changed WorldEnvironment to better handle multiple node versions.
* Added a function in SceneTree to get the first node in a group.
* Fixed button minimum size to also consider font height if no text is there, this broke with the TextSever PR.
2021-02-22 16:56:29 -03:00
Rémi Verschelde 0d1d719178 doc: Sync classref with current source
And fix various bogus bindings following previous PRs.
2021-02-19 14:39:14 +01:00
reduz 083aa9b95e Refactor Process Mode
Implements https://github.com/godotengine/godot-proposals/issues/1835#issuecomment-727186192

* PauseMode is now ProcessMode, containing the following states:
	```
	PROCESS_MODE_INHERIT, // same as parent node
	PROCESS_MODE_NORMAL, // process only if not paused
	PROCESS_MODE_PAUSE_ONLY, // process only if paused
	PROCESS_MODE_ALWAYS, // process always
	PROCESS_MODE_DISABLED, // never process
	```
* NOTIFICATION_PAUSED and NOTIFICATION_UNPAUSED are received effectively when the node is paused and unpaused (not any longer when pause mode is set in SceneTree).
* Renamed some nodes that used ProcessMode/process_mode to specify a callback type to ProcessCallback to avoid clashes.
2021-02-18 20:39:55 -03:00
Rémi Verschelde 310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
reduz 64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Angad Kambli 6b602d35f3 add null check in MeshInstance::_mesh_changed() 2021-02-18 16:51:39 +05:30
Rémi Verschelde 9d84e3b395
Merge pull request #46151 from ellenhp/fix_spatial_player_play
Fix a pop on play() in AudioStreamPlayer2D and 3D
2021-02-18 10:12:13 +01:00
Ellen Poe 5e1442ad55 Fix pops in play() of both spatial audio players 2021-02-17 19:09:42 -08:00
Rémi Verschelde f91c4c0899
Merge pull request #46124 from angad-k/cpu-particles-3d-fix
CPUParticles3D crash fix
2021-02-17 16:15:22 +01:00
Angad Kambli c97fffdc59 add null check in _update_particle_data_buffer()
add check to see if p_order is in range for CPUParticles3D::set_draw_order'
2021-02-17 20:29:14 +05:30
Jitesh c3be0c2c04 Add animation_finished signal and fix frame_changed signal for AnimatedSprite3D
Fixes #40301.
Fixes #45947.
2021-02-17 15:13:47 +01:00
Aaron Franke 7d9ad2b845
Use Vector3.UP as a default value for look_at's up vector 2021-02-16 18:33:23 -05:00
Rémi Verschelde c7444b033e
Merge pull request #46040 from ellenhp/fix_seek_playback_pos
Return setseek position if one exists in get_playback_position.
2021-02-16 12:19:09 +01:00
Rémi Verschelde 3f6295a1ed
Merge pull request #45855 from hoontee/fix-45718
Implement CollisionPolygon3D margin
2021-02-15 11:23:15 +01:00
Ellen Poe 15b8480b2c Return setseek position if one exists in get_playback_position. 2021-02-14 20:41:59 -08:00
Rémi Verschelde e9a25b8552
Merge pull request #45859 from Kayomn/master
Accomodate blend shape ranges of -1 to +1 for Vulkan
2021-02-12 09:26:14 +01:00
hoontee fbb1ef759c Implement CollisionPolygon3D margin 2021-02-11 11:58:37 -06:00
reduz 1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
Rémi Verschelde e8f73124a7
Merge pull request #45845 from qarmin/cppcheck_scene_2
Initialize class variables with default values in scene/ [2/2]
2021-02-10 20:06:12 +01:00
reduz 8b19ffd810 Make Servers truly Thread Safe
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread).
-RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault.
-Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory).
-3D physics server changed to be made multithread friendly.
-Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads.
-Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-10 13:21:46 -03:00
Kayomn ca945421a0 Accomodate blend shape ranges of -1 to +1 2021-02-09 23:09:54 +00:00
Rafał Mikrut 7961a1dea3 Initialize class variables with default values in scene/ [2/2] 2021-02-09 18:24:36 +01:00
Rémi Verschelde 74be478895
Merge pull request #45774 from revilo/fix-45694
Bugfix: Update transform of collision shape on NOTIFICATION_PARENTED …
2021-02-08 21:32:49 +01:00
Rafał Mikrut 003bb8e1a8 Initialize class variables with default values in scene/ [1/2] 2021-02-07 22:29:31 +01:00
Rafał Mikrut 1b8cbcf946 Fix nan errors when using VehicleBody 2021-02-07 21:08:09 +01:00
Oliver Dick f1432f2788 Bugfix: Update transform of collision shape on NOTIFICATION_PARENTED (fixes invalid transform of collision shape in cases where the node is not supposed to enter the scene tree) 2021-02-06 20:17:01 +01:00
reduz 8faf23b52b Simplify Volumetric Fog
-Always use temporal reproject, it just loos way better than any other filter.
-By always using termporal reproject, the shadowmap reduction can be done away with, massively improving performance.
-Disadvantage of temporal reproject is update latency so..
-Made sure a gaussian filter runs in XY after fog, this allows to keep stability and lower latency.
2021-02-06 15:08:21 -03:00
Rémi Verschelde 69152af45d doc: Don't bind argument names with p_ prefix
This prefix is used in the C++ codebase, not in the scripting API.
2021-02-04 14:45:06 +01:00
Rémi Verschelde 7185a7c3c2
Merge pull request #45496 from Chaosus/fix_particles
Fix particles not properly updated by their lifetime
2021-02-03 15:50:52 +01:00
Rémi Verschelde d2e1216504
Merge pull request #37547 from aaronfranke/tau
Use Math_TAU and deg2rad/etc in more places and optimize code
2021-02-01 20:55:25 +01:00
Rémi Verschelde 3375647818
Merge pull request #45564 from aaronfranke/physics-nodes-real_t
Use real_t in physics nodes
2021-02-01 20:48:16 +01:00
Rémi Verschelde 5525cd85c6
Merge pull request #45315 from RandomShaper/modernize_thread
Modernize Thread
2021-01-31 15:24:56 +01:00
Aaron Franke 9199a681de
Use real_t in physics nodes 2021-01-29 19:59:58 -05:00
Pedro J. Estébanez 99fe462452 Modernize Thread
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
kobewi 4d172f1fca Cache world in VisibilityNotifier3D to avoid crash 2021-01-27 21:02:33 +01:00
Yuri Roubinsky aefce8000d Fix particles not properly modified by their lifetime 2021-01-27 16:28:15 +03:00
Rémi Verschelde 8b8c630f60
Merge pull request #44814 from hoontee/fix-44714
Do not clear materials when setting mesh
2021-01-26 16:10:27 +01:00
reduz 6fe342478b Several GI related optimizations and fixes
-SDFGI direct light is done over many frames
-SDFGI Changed settings for rays/frame
-SDFGI Misc optimizations
-SDFGI Bug fix on probe scroll

-GIProbe was not working, got it to work again
-GIProbe dynamic objects were not working, fixed

-Added a half size GI option.
2021-01-24 19:29:07 -03:00
Rémi Verschelde b23f1a8d3e
Merge pull request #45267 from HipsterPenguin/BugFixing
Fixed 6DOF set/get check for the path starting with joint_constraints
2021-01-20 17:51:08 +01:00
reduz 099dee35f4 Added GPU based cluster builder
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19 23:31:06 +01:00
HipsterPenguin 6bf46cf70f Fixed 6DOF set/get check for the path starting with joint_constraints
New code checks whether or not property has joint_constraints as the first part of its path.
2021-01-19 06:40:06 -06:00
Rémi Verschelde b4020d3c27
Merge pull request #45197 from nekomatata/improved-raycast-node-render-debug
Improve Raycast3D render debug
2021-01-15 16:50:57 +01:00
Rémi Verschelde 8cd11032fb
Merge pull request #38562 from Calinou/3d-light-size-property-hint
Tweak the 3D light size property to only allow reasonable values
2021-01-15 16:21:53 +01:00
Rémi Verschelde fa5ead4db7
Merge pull request #42713 from madmiraal/fix-42614
Update area-body_shape_entered-exited signal documentation.
2021-01-15 13:00:23 +01:00
PouleyKetchoupp 9e660475a7 Improve Raycast3D render debug
Fix Raycast3D node render debug not showing in editor camera preview.

Use dynamic mesh update to change the ray on-the-fly without too much
extra cost when collision debug is enabled.

Fixes #43571
2021-01-14 15:52:01 -07:00
Marcel Admiraal 95020d3e38 Fix not clearing a Joint3D with only a B node when removing the B node 2021-01-13 18:58:05 +00:00
Rémi Verschelde 0b409d89d0
Merge pull request #45136 from akien-mga/clang-format-11
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13 16:10:44 +01:00