summaryrefslogtreecommitdiff
path: root/scene/3d
AgeCommit message (Collapse)Author
2021-07-01Use PROPERTY_USAGE_NONE instead of 0 for no property usageAaron Franke
Also use const more often.
2021-07-01Merge pull request #50040 from reduz/fix-renderingserver-bindingsRémi Verschelde
Clean up RenderingServer and its bindings
2021-07-01Clean up RenderingServer and its bindingsreduz
* Rewrote bindings for RenderingServer. * They are now all up to date. * Several unused methods and deprecated features were cleaned up.
2021-06-30Import mesh colors in 8BPP.reduz
* Colors were imported as 16BPP (half float) * Far most common use cases only require 8BPP * If you need higher data precision, use a custom array, which are supported now. **WARNING**: 3D Scenes imported in 4.0 no longer compatible with this new format. You need to re-import them (erase them from .godot/import)
2021-06-30Merge pull request #49834 from nekomatata/physics-disable-modesRémi Verschelde
Add support for controlling physics nodes' behavior when disabled
2021-06-30Merge pull request #50014 from reduz/remove-immediateRémi Verschelde
Deprecate ImmediateGeometry
2021-06-30Deprecate ImmediateGeometryreduz
* Removed entirely from RenderingServer. * Replaced by ImmediateMesh resource. * ImmediateMesh replaces ImmediateGeometry, but could use more optimization in the future. * Sprite3D and AnimatedSprite3D work again, ported from Godot 3.x (though a lot of work was needed to adapt them to Godot 4). * RootMotionView works again. * Polygon3D editor works again.
2021-06-30Merge pull request #50009 from reduz/fix-suffixes-and-degreesRémi Verschelde
Fix editor suffixes and degrees conversion
2021-06-30Add support for controlling physics nodes' behavior when disabledPouleyKetchoupp
New property disable_mode to set different behaviors: Remove: remove from physics simulation MakeStatic: change body mode to static (doesn't affect area and soft body) KeepActive: do nothing Extra change: Handle disable/enable node state with specific notifications, in order to differentiate global pause from disabled nodes.
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30Merge pull request #49901 from nekomatata/move-and-collide-fix-slideRémi Verschelde
Fix move_and_collide causing sliding on slopes
2021-06-29Merge pull request #49719 from LightningAA/rename-node-is-ancestor-ofRémi Verschelde
Rename `is_a_parent_of()` to `is_ancestor_of()`
2021-06-28Fix move_and_collide causing sliding on slopesPouleyKetchoupp
Make sure the direction of the motion is preserved, unless the depth is higher than the margin, which means the body needs depenetration in any direction. Also changed move_and_slide to avoid sliding on the first motion, in order to avoid issues with unstable position on ground when jumping. Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-06-27Increase the default ReflectionProbe extents to Vector3(10, 10, 10)Hugo Locurcio
On top of having a more realistic size out of the box, this matches the default VoxelGI extents for better usability.
2021-06-21Rename `is_a_parent_of()` to `is_ancestor_of()`Lightning_A
2021-06-20Use mouse and joypad enums instead of plain integersAaron Franke
Also MIDIMessage
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-19Use double-sided material for RayCast3DHugo Locurcio
This makes RayCast3Ds visible if the camera is fully inside one (e.g. a RayCast3d parented to the current Camera3D).
2021-06-18Merge pull request #49475 from nekomatata/kinematic-collision-ridRémi Verschelde
Expose collider RID in 2D/3D kinematic collision
2021-06-17Add PROPERTY_USAGE_NONE and use itAaron Franke
2021-06-16Rename VisibilityNotifierXD to VisibleOnScreenNotifierXDreduz
* Renames for 2D and 3D * Class name was confusing, given both 2D and 3D have a "visible" property that is unrelated to actual on-screen visibility. * New name makes it clear that this is about visibility on screen.
2021-06-16Refactor VisibilityNotifier3Dreduz
* This is the 3D counterpart to #49632 * Implemented a bit different as 3D works using instancing After merged, both 2D and 3D classes will most likely be renamed in a separate PR to DisplayNotifier2D/3D.
2021-06-14Merge pull request #48287 from aaronfranke/camera-is-frustumRémi Verschelde
2021-06-14Merge pull request #49458 from JFonS/fix_unwrap_xformRémi Verschelde
Rename get_parent_spatial() to get_parent_node_3d()
2021-06-14Add is_position_in_frustum to Camera3DAaron Franke
2021-06-14Merge pull request #48847 from JFonS/vis_depsRémi Verschelde
Implement visibility range and dependencies
2021-06-14Rename get_parent_spatial() to get_parent_node3d()jfons
Renames get_parent_spatial() to get_parent_node3d() and changes its implementation. Before it was not returning a correct pointer if the node wasn't added to a SceneTree. Now it uses the same implementation as CanvasItem, which will be correct even for nodes outside a SceneTree.
2021-06-14Implement visibility range and dependencies.jfons
This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`, `visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`. Together they define a range in which the GeometryInstance3D will be visible from the camera, taking hysteresis into account for state changes. A begin or end value of 0 will be ignored, so the visibility range can be open-ended in both directions. This commit also adds the `visibility_parent` property to 'Node3D'. Which defines the visibility parents of the node and its subtree (until another parent is defined). Visual instances with a visibility parent will only be visible when the parent, and all of its ancestors recursively, are hidden because they are closer to the camera than their respective `visibility_range_begin` thresholds. Combining visibility ranges and visibility parents users can set-up a quick HLOD system that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes for far away groups (i.e. cities, woods).
2021-06-14Fixed error spam when XR mode is not enabled and a missed setting renameBastiaan Olij
2021-06-13Merge pull request #48207 from BastiaanOlij/multiview_stereoscopicRémi Verschelde
Add stereoscopic rendering through multiview
2021-06-13Add stereoscopic rendering through multiviewBastiaan Olij
2021-06-12Fixed a bunch of connection errors in TextureEditorPluginYuri Roubinsky
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-09Expose collider RID in 2D/3D kinematic collisionPouleyKetchoupp
Can be useful to access the colliding body information for bodies created with the physics server directly.
2021-06-08Use degrees instead of rad for floor_max_angle property in CharacterBodyPouleyKetchoupp
2021-06-07Rename CollisionObject3D input_event signal position and normal parametersMarcel Admiraal
2021-06-05Rename GI Classesreduz
* GIProbe is now VoxelGI * BakedLightmap is now LightmapGI As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-04Linear velocity cleanupPouleyKetchoupp
CharacterBody has a linear_velocity property to replace the argument in move_and_slide. StaticBody handles reporting linear/angular velocity correctly when kinematic motion is used (in 3D, used in vehicle and navigation).
2021-06-04Safe margin cleanupPouleyKetchoupp
Safe margin property on CharacterBody only, used as argument in move_and_collide. Removed kinematic_safe_margin in 3D physics server, not really useful and now harmonized with 2D.
2021-06-04Support for kinematic_motion in StaticBodyPouleyKetchoupp
Does the same thing as simulate motion from RigidBody in Kinematic mode, and CharacterBody (previously KinematicBody). Added support for constant linear/angular velocity with kinematic_motion in StaticBody, which moves the body in physics. Updated documentation for StaticBody and CharacterBody to describe their functionalities more accurately.
2021-06-04More explanatory names for RigidBody modesPouleyKetchoupp
MODE_DYNAMIC instead of MODE_RIGID MODE_DYNAMIC_LOCKED instead of MODE_CHARACTER No more special case for sleeping behavior for MODE_DYNAMIC_LOCKED (MODE_CHARACTER was forcing the body not to sleep, which is redundant with can_sleep and wasn't done in Bullet).
2021-06-04Properties for move_and_slide and remove move_and_slide_with_snapPouleyKetchoupp
- snap property to replace move_and_slide_with_snap() - floor_max_angle, stop_on_slope, infinite_inertia, max_slides, up_direction properties to replace arguments from move_and_slide() - up direction now defaults to Vector3.UP and Vector2.UP
2021-06-04KinematicBody split between new CharacterBody and PhysicsBodyPouleyKetchoupp
PhysicsBody now has methods move_and_collide/test_move and needed properties for these methods: safe margin, locked axes (3D only). Moved collision_exceptions from StaticBody to PhysicsBody for 3D (same as 2D, and conforms to documentation). RigidBody doesn't have test_motion method anymore, it's now redundant with PhysicsBody.test_move.
2021-06-04Disable Skeleton3D when compiling without 3DAaron Franke
Make animation code not depend on Skeleton3D or even Node3D
2021-06-04Rename Node3D's property translation to positionMarcel Admiraal
2021-06-03Merge pull request #38430 from aaronfranke/transform3dRémi Verschelde
2021-06-03Merge pull request #38224 from Calinou/increase-audiostreamplayer3d-unit-sizeRémi Verschelde
Increase the default AudioStreamPlayer3D unit size to 10
2021-06-03Rename files and the exposed name for Transform3DAaron Franke
2021-06-03Rename Variant TRANSFORM to TRANSFORM3DAaron Franke
Also _transform to _transform3d