Age | Commit message (Collapse) | Author |
|
It's a player for `VideoStream` resources, just like `AudioStreamPlayer` is a
player for `AudioStream` resources.
Closes https://github.com/godotengine/godot-proposals/issues/3624.
|
|
|
|
The message about SpatialMaterial conversion was turned into a warning,
as it can potentially interfere with porting projects from Godot 3.x
(if there's a bug in the conversion code).
|
|
Clarified space parameters for contacts and added missing ones.
List of changes:
-Add contact bias to space parameters
-Add solver iterations to space parameters, instead of a specific
physics server function
-Renamed BODY_MAX_ALLOWED_PENETRATION to CONTACT_MAX_ALLOWED_PENETRATION
to make it consistent with other contact parameters
|
|
Changed the algorithm for solving contacts to keep previous contacts as
long as they are under the max separation threshold to keep contact
impulses more consistent and contacts more stable.
Also made 2D consistent with 3D and changed some default parameters:
-Contact bias is now 0.8 instead of 0.3 to avoid springy contacts
-Solver iterations are 16 instead of 8 by default for better stability
Performance considerations:
Tested with stress tests that include lots of contacts from overlapping
bodies.
3D: There's no measurable difference in performance.
2D: Performance is a bit lower (close to 10% slower in extreme cases)
The benefit for 2D physics to be much more stable outweighs the slight
decrease in performance, and this could be alleviated by changing the
algorithm to use jacobians for contact solving to help with cache
efficiency and memory allocations.
|
|
|
|
|
|
ChristopheClaustre/bugfix_shader_compile_spirv_from_source
|
|
Fixed minimum size of `AABB` in `ImmediateMesh` to draw only one vertex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this
can lead to confusing code and subtle bugs.
According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++
allows any arbitrary return type, so this is standard compliant.
This could be re-assessed if/when we have an actual need for a behavior more
akin to that of the C++ STL, for now this PR simply changes a handful of
cases which were inconsistent with the rest of the codebase (`void` return
type was already the most common case prior to this commit).
|
|
|
|
|
|
|
|
Fix uniform array alignment to fix a bug
|
|
|
|
|
|
|
|
`print_error()` should generally not be used directly. Also,
falling back is best done by printing a warning message instead
of an error message.
|
|
|
|
|
|
Bounce calculation now uses the previous frame's velocity, so it's
consistent with the actual motion of the bodies involved and not the
yet-to-be-applied forces.
When bounce is 1, using the current velocity was causing the new forces
(including gravity) to be taken into account, which lead to the bounce
velocity to be higher than the falling velocity at the moment of impact,
adding more and more energy over time.
|
|
|
|
|
|
|
|
AMD FidelityFX Super Resolution
|
|
|
|
volumetric fog on MoltenVK.
|
|
|
|
|
|
|
|
|
|
|
|
and only remove area from query when deleting pair if it was monitorable.
|
|
|
|
Fix Depth-Prepass transparency mode
|
|
Fix transparency state initialization
|
|
Add mising bits of implementation and ensure depth-prepass objects are
only rendered in the transparency pass.
|
|
|
|
Regression fix, gravity was accumulated between frames after some
changes around area gravity calculation.
Also got rid of unused member and method in soft body class.
|
|
Replaced the previous implementation for backface collision handling (in
test_axis function from SAT algorithm) with much simpler logic in the
collision generation phase with face shapes, in order to get rid of
wrong contacts when backface collision is disabled.
Now it just ignores the generated collision if the contact normal is
against the face normal, with a threshold to keep edge contacts.
Added a special case for soft bodies to invert the collision instead of
ignoring it, because for now it's the best solution to avoid soft bodies
to go through concave shapes (they use small spheres). This might be
replaced with a better algorithm for soft bodies later.
|
|
Apply the same logic as in test_body_motion to make sure the minimum
allowed depth doesn't filter out all contacts in this case.
|
|
Add SHADER_IS_SRGB define to Vulkan renderer
|
|
|