* Changed another instance of ERR_FAIL_COND in the same file to
ERR_FAIL_NULL_MSG instead.
* Checked for potential access of the viewport pointer elsewhere in same
file.
Fixes#54098
Roughly based on https://github.com/godotengine/godot-proposals/issues/3375 (used format is slightly different).
* Implement bitwidth based animation compression (see animation.h for format).
* Can compress imported animations up to 10 times.
* Compression format opens the door to streaming.
* Works transparently (happens all inside animation.h)
Proper logic for changing physics state when disabled and disabled mode
is changed (it was unnecessarily making calls to re-initialize physics).
Extra error handling in soft body implementations to avoid crashes with
invalid mesh.
Update collision_object_3d.cpp
2d modified and UINT32 usage
Proper uINT32max usage
Change the unreacheable return value of shape_find_owner()
This reverts commit 5be98b81428169ba2dd5baecd00f1adfd9260e5c, reversing
changes made to efa3ff6b95.
Change the unreacheable return value of shape_find_owner()
changed from 0 to uint32_max"
This reverts commit c143bb099af2666454f82428a57f2721af60a84d.
Revert "changed from 0 to uint32_max""
This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65.
Revert "changed from 0 to uint32_max"
This reverts commit c143bb099af2666454f82428a57f2721af60a84d.
Revert "Revert "changed from 0 to uint32_max"""
This reverts commit c81d1073ec21b4cde4684a6dbd595f3359283bad.
Revert "changed from 0 to uint32_max"
This reverts commit c143bb099af2666454f82428a57f2721af60a84d.
Revert "changed from 0 to uint32_max""
This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65.
Revert "Revert "changed from 0 to uint32_max"""
This reverts commit 6dbd972aa5c4580d4f6270ead6c66eea18617f29.
Revert "changed from 0 to uint32_max""
This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65.
Revert "Revert "changed from 0 to uint32_max"""
This reverts commit b769ac2d11ad12f02a388d9dad17519f81d9c3b6.
Revert "Revert "Revert "changed from 0 to uint32_max""""
This reverts commit 1e8d84f7ec12da01c3153e08bb8609cf2c6fd58a.
Revert "Revert "Revert "Revert "changed from 0 to uint32_max"""""
This reverts commit 0dc17abefad6d540c18bba7b4df9d8c04e090d0c.
Change the unreacheable return value of shape_find_owner()
When switching the mesh at runtime, the physics server wasn't properly
updated with the new mesh. Now we keep track of the soft body mesh to
make sure everything is properly initialized on pre-draw.
Also cleaned a few things around private methods.
* New track type BLEND_SHAPE
* Blend shapes are imported via this new track type
* Processing is more optimized (no longer relies on variants)
* Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
* Promo: Fixed a small bug in gizmo updating in Node3D that affected performance
Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
* New plugin system to control the whole import workflow
* Can add options and run code at every import step (general, per node, mesh, animation, material etc.)
This constitutes a first version of these plugins. The ability to interact with the import preview dialog will likely be added later on.
We've had many issues with WebM support and specifically the libvpx library
over the years, mostly due to its poor integration in Godot's buildsystem,
but without anyone really interested in improving this state.
With the new GDExtensions in Godot 4.0, we intend to move video decoding to
first-party extensions, and this would likely be done using something like
libvlc to expose more codecs.
Removing the `webm` module means we can remove libsimplewebm, libvpx and
opus, which we were only used for that purpose. Both libvpx and opus were
fairly complex pieces of the buildsystem, so this is a nice cleanup.
This also removes the compile-time dependency on `yasm`.
Fixes lots of compilation or non-working WebM issues which will be linked
in the PR.
Fix some typoed names from the doc
Add _index to "index" parameters of *_shape_* signals, this is both in doc and in the template. This makes the code, signature and doc easier to understand
Add method to get Node from the _index params of those signals. This was not as easy to find as one would expect. Putting this information where it is needed will help.
* Animations and Skeletons are now pose-only.
* Rest transform is kept as reference (when it exists) and for IK
* Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
* `Animation.TYPE_TRANSFORM3D` track is gone.
* Added POSITION_3D, ROTATION_3D, SCALE_3D tracks.
* GLTF2, Collada, FBX importers will only import the track types found.
* Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed.
* AnimationPlayer and AnimationTree animate these tracks separately, only when found.
* Removed BakeReset code, is useless with these changes.
This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:
* Better compatibility with Autodesk products
* Better reusability of animations across models (including retargeting).
* Proper animation compression.
* etc.
*Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
Very low wait times behave in unpredictable ways depending on the
rendered frame rate. This is because the timeout signal is only emitted
once per rendered frame (or physics frame, depending on the timer's
process mode).
This allows for finer control over 3D rendering resolution.
Supersampling can also be performed by setting a 3D rendering
resolution above 1.0, which is useful for offline rendering or
for very high-end GPUs.
This property was intended to provide a way to have SSAO or VoxelGI
ambient occlusion with a color other than black. However, it was
dropped during the Vulkan renderer development due to the performance
overhead it caused when the feature wasn't used.
When packing a scene node which is not the root, errors where caused
by internal checks in is_editable_instance method.
This check can be safely made outside instead.
Added a parameter in test_body_motion to exclude attached objects from
collision, used to avoid collision with all TileMap tiles with moving
platform motion instead of just the one tile the character touches.
Same changes made in 3D for consistency, and handling potential similar
cases.
-Physics servers test body motion use a class to hold parameters instead
of multiple arguments to make it more readable and flexible since there
are many options
-Improved documentation for test body motion and kinematic collision
-Removed read-only properties for body motion results (not handled in
scripts, so they should be get_ methods only instead)