summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-14New and improved IK system for Skeleton3DTwistedTwigleg
This PR and commit adds a new IK system for 3D with the Skeleton3D node that adds several new IK solvers, as well as additional changes and functionality for making bone manipulation in Godot easier. This work was sponsored by GSoC 2020 and TwistedTwigleg Full list of changes: * Adds a SkeletonModification3D resource * This resource is the base where all IK code is written and executed * Adds a SkeletonModificationStack3D resource * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node * Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK * Each modification is in it's own file * Several changes to Skeletons, listed below: * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them. * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D * Added functions for getting the forward position of a bone * BoneAttachment3D node refactored heavily * BoneAttachment3D node is now completely standalone in its functionality. * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes * BoneAttachment3D now can be set either using the index or the bone name. * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility * BoneAttachment3D now shows a warning when not configured correctly * Added rotate_to_align function in Basis * Added class reference documentation for all changes
2021-08-14Merge pull request #51669 from KoBeWi/nextnextnextnextnextRémi Verschelde
Fix double Next Editor Tab
2021-08-14Merge pull request #51654 from RandomShaper/fix_spirv_msvc_debugRémi Verschelde
Upgrade spirv-reflect
2021-08-14Merge pull request #51657 from timothyqiu/view-nameRémi Verschelde
Fix i18n of 3D view name
2021-08-14Fix double Next Editor Tabkobewi
2021-08-14Upgrade spirv-reflectPedro J. Estébanez
2021-08-14Merge pull request #50998 from BastiaanOlij/single_bokeh_dof_rasterRémi Verschelde
Rewrote raster DOF shader to using BOKEH
2021-08-14Merge pull request #51656 from AndreaCatania/paged-allocator-initializerRémi Verschelde
The `PagedAllocator` can now allocate objects with non empty constructors.
2021-08-14Merge pull request #51660 from AnilBK/use-short-functionsRémi Verschelde
Use get_global_* functions instead of using transforms.
2021-08-14Merge pull request #50147 from aaronfranke/disable-node3dRémi Verschelde
Disable Node3D when compiling without 3D and fix disable_3d option
2021-08-14Use get_global_* functions instead of using transforms.Anilforextra
2021-08-14Merge pull request #51636 from Calinou/rename-lineshape2dRémi Verschelde
Rename LineShape2D to WorldMarginShape2D
2021-08-14Fix i18n of 3D view nameHaoyu Qiu
Make the full view name translatable as a whole instead of combining from sub-strings.
2021-08-14Add the possibility to initialize the classes allocated with the PagedAllocatorAndreaCatania
It uses the (`const T &&... p_args`) forward reference, to avoid copying the memory in case it's an rvalue, or pass a reference in case it's an lvalue. This is an example: ```c++ PagedAllocator<btShapeBox> box_allocator; btShapeBox* box = box_allocator.alloc( btVector3(1.0, 1.0, 1.0) ); ```
2021-08-14Rename LineShape2D to WorldMarginShape2DHugo Locurcio
The new name makes it more obvious that it acts as an infinite plane, and is consistent with its 3D counterpart (WorldMarginShape3D).
2021-08-13Merge pull request #51321 from pycbouh/docs-makerst-codestyleRémi Verschelde
Fix minor code style issues in the RST generator
2021-08-13Merge pull request #51642 from akien-mga/cleanup-use_single_quotesRémi Verschelde
2021-08-13Merge pull request #51585 from Paulb23/theme-update-optimisationRémi Verschelde
2021-08-13Merge pull request #50609 from bruvzg/te_block_caretRémi Verschelde
[TextEdit] Improve block/insert caret drawing.
2021-08-13Style: Cleanup code using `text_editor/completion/use_single_quotes`Rémi Verschelde
2021-08-13Merge pull request #51628 from timothyqiu/drag-property-pathRémi Verschelde
Allow dropping property path into script editor
2021-08-13Merge pull request #51630 from Chaosus/fix_completion_popup_sizeYuri Roubinsky
2021-08-13Only update TextEdit text cache when dirtyPaulb23
2021-08-13Move CodeEdit theme overrides into EditorThemePaulb23
2021-08-13Fix incorrect completion popup size of `CodeEdit`Yuri Roubinsky
2021-08-13[TextEdit] Improve block/insert caret drawing.bruvzg
2021-08-13Add bulk theme overrides to ControlPaulb23
2021-08-13Merge pull request #51619 from Chaosus/fix_dark_wordsRémi Verschelde
Fix incorrect word block colors in the inspector tooltip
2021-08-13Allow dropping property path into script editorHaoyu Qiu
2021-08-13Merge pull request #51025 from reduz/fix-directional-shadow-biasRémi Verschelde
Fix directional shadow bias
2021-08-13Disable Node3D when compiling without 3D and fix disable_3d optionAaron Franke
2021-08-13Issue template: Fix link to CONTRIBUTING.mdRémi Verschelde
Fixes #51623.
2021-08-13Fix incorrect word block colors in the inspector tooltipYuri Roubinsky
2021-08-13Merge pull request #51508 from AndreaCatania/mem-placementRémi Verschelde
Refactors the memnew_placement.
2021-08-13Merge pull request #51035 from foxydevloper/drag-drop-more-supportRémi Verschelde
Improve drag and dropping files into viewport by supporting more types
2021-08-13Merge pull request #49523 from foxydevloper/improve-shortcut-namingRémi Verschelde
Improve naming of a couple shortcuts
2021-08-13Merge pull request #50114 from Chaosus/vs_constantsRémi Verschelde
Few improvements for constants in visual shader
2021-08-13Merge pull request #51519 from Chaosus/vs_transform_operatorRémi Verschelde
Changed `TransformMult` node to `TransformOp` in visual shaders
2021-08-13Merge pull request #51582 from AnilBK/ustring-macro-replacementsRémi Verschelde
ustring: Replace macros with inline functions.
2021-08-13Merge pull request #51607 from aaronfranke/includesRémi Verschelde
Fix some unnecessary includes
2021-08-13Merge pull request #51587 from Calinou/use-unicode-multiplication-symbolRémi Verschelde
Use the Unicode multiplication symbol where relevant
2021-08-13Merge pull request #51597 from RandomShaper/input_bufferingRémi Verschelde
2021-08-13Merge pull request #51616 from bruvzg/cam_feed_ridRémi Verschelde
Add placeholder textures to ensure CameraTexture / CameraFeed always have valid RIDs.
2021-08-13Switch to input buffering on AndroidPedro J. Estébanez
Key, touch and joystick events will be passed directly from the UI thread to Godot, so they can benefit from agile input flushing. As another consequence of this new way of passing events, less Java object are created at runtime (`Runnable`), which is good since the garbage collector needs to run less. `AndroidInputHandler` is introduced to have a smaller cross-thread surface. `main_loop_request_go_back()` is removed in favor just inline calling `send_window_event()` at the most caller's convenience (i.e., leveraging the new `p_deferred`` parameter as appropriate). Lastly, `get_mouse_position()` and `get_mouse_button_state()` now just call through `Input` to avoid the need of sync of mouse data tracked on the UI thread.
2021-08-13Add project setting for agile input event flushingPedro J. Estébanez
If enabled, key/touch/joystick events will be flushed just before every idle and physics frame. Enabling this can greatly improve the responsiveness to input, specially in devices that need to run multiple physics frames per each idle frame, because of not being powerful enough to run at the target frame rate. This will only work for platforms using input buffering (regardless event accumulation). Currenly, only Android does so, but could be implemented for iOS in an upcoming PR.
2021-08-13Update AUTHORS and DONORS listRémi Verschelde
New contributors added to AUTHORS: @angad-k, @Bhu1-V, @Blackiris, @ellenhp, @fabriceci, @follower, @foxydevloper, @Geometror, @hilfazer, @hoontee, @Janglee123, @Razoric480, @SirQuartz, @theoway. Thanks to all contributors and donors for making Godot possible!
2021-08-13Add placeholder textures to ensure CameraTexture / CameraFeed always have ↵bruvzg
valid RIDs.
2021-08-13Add input buffering frameworkPedro J. Estébanez
Input buffering is implicitly used by event accumulation, but this commit makes it more generic so it can be enabled for other uses. For desktop OSs it's currently not feasible given main and UI threads are the same).
2021-08-13Improve input event accumulationPedro J. Estébanez
- API has been simplified: all events now go through `parse_input_event()`. Whether they are accumulated or not depends on the `use_accumulated_input` flag. - Event accumulation is now thread-safe (it was not needed so far, but it prepares the ground for the following changes). - Touch drag events now support accumulation.
2021-08-13Merge pull request #50767 from KoBeWi/no_head_no_saveRémi Verschelde
Don't save project on startup in no window mode