Commit graph

2842 commits

Author SHA1 Message Date
Rémi Verschelde
46d384060e
Merge pull request #35901 from nathanfranke/pool-byte-array-subarray-exclusive 2021-12-07 14:00:59 +01:00
Rémi Verschelde
7ac9ea75cc
Rename VideoPlayer to VideoStreamPlayer for consistency
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.
2021-12-06 19:01:28 +01:00
Rémi Verschelde
4bce5e302e
Merge pull request #55602 from nekomatata/improve-rigidbody-contacts 2021-12-06 16:49:42 +01:00
Hugo Locurcio
89ec3d3bc7
Remove or make verbose some debugging prints
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).
2021-12-05 23:22:23 +01:00
PouleyKetchoupp
2273a78af1 Update space parameters in 2D and 3D
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
2021-12-03 12:01:38 -07:00
PouleyKetchoupp
5cbc7149a1 Improve RigidDynamicBody contacts in 2D and 3D
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.
2021-12-03 10:40:15 -07:00
Yuri Roubinsky
10b10ae1fa Fix ^= operator in shaders 2021-12-03 10:20:44 +03:00
Rémi Verschelde
892a5a72cd
Merge pull request #55474 from akien-mga/copy-operators-no-reference 2021-12-02 17:34:45 +01:00
Rémi Verschelde
1398436ab8
Merge pull request #53904 from ChristopheClaustre/bugfix_shader_compile_spirv_from_source 2021-12-02 10:07:35 +01:00
Rémi Verschelde
81b7418013
Merge pull request #55402 from TokageItLab/fixed-immediatemesh-minimum-aabb
Fixed minimum size of `AABB` in `ImmediateMesh` to draw only one vertex
2021-12-02 08:05:56 +01:00
Silc 'Tokage' Renew
ca2b7a87a5 Fixed minimum size of aabb in ImmediateMesh to draw only one vertex 2021-12-02 08:33:33 +09:00
Yuri Roubinsky
5ee73dc5a6 Fix shader crash when using existed constant name for struct 2021-12-01 18:11:45 +03:00
Yuri Roubinsky
a48c205191 Fix declaring array size twice in global shader constant 2021-12-01 16:44:25 +03:00
Yuri Roubinsky
5ba93619fa Allow using empty statements in the shader, added formatting warning 2021-12-01 11:52:25 +03:00
Rémi Verschelde
5643f5e616
Merge pull request #55490 from Chaosus/fix_shader_crash 2021-11-30 20:13:12 +01:00
Rémi Verschelde
bdd118e765
Merge pull request #55431 from Chaosus/shader_fix_constants 2021-11-30 19:40:52 +01:00
Yuri Roubinsky
be7c03779a Fix shader crash when assigning array to non-array in global constant 2021-11-30 21:28:55 +03:00
Rémi Verschelde
7da392bcc5
Don't return reference on copy assignment operators
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).
2021-11-30 16:26:29 +01:00
Yuri Roubinsky
5b4d8545ed Fix INDEX built-in in a process function of particle shader 2021-11-29 12:54:24 +03:00
Yuri Roubinsky
6e80e97b0f Fix built-in(PI, TAU, E) assignment to a global constant in a shader 2021-11-29 10:32:36 +03:00
Hugo Locurcio
36106dba3b
Remove unused struct fields in VoxelGIData
This reduces the struct size from 112 bytes to 96 bytes.
2021-11-28 23:09:51 +01:00
Hugo Locurcio
0beacf2ce8
Remove unused code in GI shaders 2021-11-28 22:58:54 +01:00
Hugo Locurcio
565f9c0448
Use 16-bit depth to improve dynamic VoxelGI performance
In a complex scene with several dynamic emissive objects, this
saves over 1 ms of GPU time on a GTX 1080 in 2560×1440.
2021-11-28 18:51:36 +01:00
Hugo Locurcio
989a7d9270
Allow disabling the depth prepass in the Vulkan Clustered backend
In scenes that have little to no overdraw, disabling the depth prepass
can give a small performance boost. Nonetheless, in most other scenarios,
the depth prepass should be left enabled as it improves performance
significantly.
2021-11-27 17:54:45 +01:00
Nathan Franke
dd30253cdc
PackedByteArray, Array slice end exclusive, rename subarray to slice 2021-11-26 22:13:12 -06:00
Yuri Roubinsky
0f1f002e74 Fix TIME using in custom functions of particle shader 2021-11-26 19:03:01 +03:00
Rémi Verschelde
4813abc6e7
Merge pull request #55311 from Chaosus/fix_uniform_array
Fix uniform array alignment to fix a bug
2021-11-26 08:25:14 +01:00
Rémi Verschelde
a5f878d884
Merge pull request #55325 from Calinou/fsr-use-warn-print 2021-11-26 00:14:23 +01:00
Rémi Verschelde
dc585e2050
Merge pull request #55313 from nekomatata/bounce-energy-stability 2021-11-25 23:07:28 +01:00
Rémi Verschelde
ca70756238
Merge pull request #55310 from Ev1lbl0w/fix_headless_window_errors 2021-11-25 22:52:55 +01:00
Hugo Locurcio
079ae6a03f
Use WARN_PRINT_ONCE() for FSR-related warning messages
`print_error()` should generally not be used directly. Also,
falling back is best done by printing a warning message instead
of an error message.
2021-11-25 22:47:11 +01:00
Yuri Roubinsky
43d999e346 Fix uniform array alignment to fix a bug 2021-11-25 23:38:08 +03:00
Hugo Locurcio
c73a51fd55
Remove disabled debug code in ClusterBuilderRD 2021-11-25 20:28:50 +01:00
PouleyKetchoupp
7032cf0637 Fix RigidDynamicBody gaining momentum with bounce
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.
2021-11-25 09:51:57 -07:00
Ricardo Subtil
11caecb755 Added more empty definitions for headless display server 2021-11-25 16:28:23 +00:00
Yuri Roubinsky
9b1f8f7a96 Revert "Pushes array of uniforms to first place in the buffer" 2021-11-25 16:13:19 +03:00
bruvzg
b7e6e50dd2
[macOS / iOS] Use non atomic operation to store facing bits on MoltenVK. 2021-11-25 12:43:45 +02:00
Rémi Verschelde
547c270777
Merge pull request #51679 from Je06jm/fsr
AMD FidelityFX Super Resolution
2021-11-24 22:34:48 +01:00
Rémi Verschelde
3e3300637e
Merge pull request #55281 from bruvzg/mvk_fog_volumes 2021-11-24 16:59:20 +01:00
bruvzg
5e0a034524
[macOS / iOS] Use storage buffers instead of unsupported images for the volumetric fog on MoltenVK. 2021-11-24 09:16:16 +02:00
Lightning_A
e078f970db Rename remove() to remove_at() when removing by index 2021-11-23 18:58:57 -07:00
Je06jm
20deb0917d Implemented AMD's FSR as a computer shader for upscaling 3D scenes 2021-11-23 14:16:03 -07:00
Yuri Roubinsky
c7043dbfdc Prevent return statement from using in block in shader main functions 2021-11-23 10:36:33 +03:00
Brennen Green
37993f0c0c Add wakeup() conditional if previous gravity was 0 2021-11-22 12:03:50 -05:00
Yuri Sizov
e85e6ec7fc Add methods to get position from column and line in TextEdit 2021-11-22 15:13:13 +03:00
Marcel Admiraal
1d1ceca6b4 Add area to moved list when changing monitorable,
and only remove area from query when deleting pair if it was monitorable.
2021-11-20 06:57:34 +00:00
Yuri Roubinsky
f4c0e90fd9 Allow passing non-variable constant to const function param in shaders 2021-11-19 12:14:13 +03:00
Rémi Verschelde
fa11b45961
Merge pull request #55084 from JFonS/fix_depth_prepass
Fix Depth-Prepass transparency mode
2021-11-18 17:39:46 +01:00
Rémi Verschelde
3f9c24a8d7
Merge pull request #55085 from JFonS/transparency_fixes
Fix transparency state initialization
2021-11-18 17:17:20 +01:00
jfons
4c4b6620a0 Fix Depth-Prepass transparency mode
Add mising bits of implementation and ensure depth-prepass objects are
only rendered in the transparency pass.
2021-11-18 12:49:46 +01:00
Rémi Verschelde
c6555cafa5
Merge pull request #55074 from nekomatata/fix-soft-body-gravity 2021-11-18 09:27:23 +01:00
PouleyKetchoupp
ea52c68337 Fix applied gravity on soft bodies
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.
2021-11-17 17:59:26 -07:00
PouleyKetchoupp
d630269593 Fix contact generation with backface collision disabled
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.
2021-11-17 17:57:02 -07:00
PouleyKetchoupp
43ff9ad86f Fix rest_info returning no result with high margin and low motion
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.
2021-11-17 11:47:30 -07:00
Rémi Verschelde
c30aa372ca
Merge pull request #55029 from clayjohn/VULKAN-SRGB
Add SHADER_IS_SRGB define to Vulkan renderer
2021-11-17 08:46:23 +01:00
clayjohn
358820c4b7 Fix SRGB conversions in Vulkan Renderer 2021-11-16 20:56:13 -08:00
Camille Mohr-Daurat
7d1b454b67
Merge pull request #55036 from nekomatata/bvh-fix-update
Fix physics BVH pairing for teleported or fast moving objects
2021-11-16 17:59:21 -07:00
PouleyKetchoupp
afb9e2d9b7 Fix physics BVH pairing for teleported or fast moving objects
Updating the broadphase to find new collision pairs was done after
checking for collision islands, so it was working in most cases due to
the pairing margin used in the BVH, but in case of teleported objects
the narrowphase collision could be skipped.

Now it's done before checking for collision islands, so we can ensure
that broadphase pairing has been done at the same time as objects are
marked as moved so their collision can be checked properly.

This issue didn't happen in the Octree/HashGrid because they do nothing
on update and trigger pairs directly when objects move instead.
2021-11-16 14:51:37 -07:00
Hugo Locurcio
8fb7e622a6
Rename built-in SGN() macro to SIGN()
This matches the name of the GDScript function (except it's uppercase
here).
2021-11-16 20:40:49 +01:00
chris.clst
038be68649
Merge branch 'godotengine:master' into bugfix_shader_compile_spirv_from_source 2021-11-14 03:23:22 +01:00
Yuri Roubinsky
df3b42411d Fix broken light_compute in mobile renderer 2021-11-13 17:24:31 +03:00
Brian Semrau
716e15cd26 Fix multimesh still drawing when visible instances is zero 2021-11-12 21:51:14 -05:00
Aaron Franke
3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
jfons
dbf20f58a0 Fix transparency state initialization 2021-11-12 12:11:57 +01:00
Yuri Roubinsky
826e781bfa Fix default_texture_param in shader pipeline to support uniform arrays 2021-11-12 12:53:40 +03:00
Rémi Verschelde
13769aebe9
Merge pull request #54867 from Chaosus/shader_fix_light_albedo
Fix shader crashing when using `ALBEDO` or `ALPHA` in light function
2021-11-12 08:35:53 +01:00
Camille Mohr-Daurat
11e03ae7f0
Merge pull request #54810 from nekomatata/area-separate-override-modes
Separate space override modes for gravity/damping in Area
2021-11-11 15:11:21 -07:00
Brian Semrau
f123a79170 Make draw/compute lists threadsafe
Lock the rendering device while command buffers are in use
2021-11-11 13:55:09 -05:00
Yuri Roubinsky
a45ae7b1c7 Fix shader crashing when using ALBEDO or ALPHA in light function 2021-11-11 11:59:30 +03:00
PouleyKetchoupp
c3ae7ddedd Add raycast options to hit when starting inside / hit back faces
Makes the results consistent for all shape types with options to set
the desired behavior.
2021-11-10 17:43:35 -07:00
Rémi Verschelde
5cc0ad5393
Merge pull request #54783 from ator-dev/fix-override-exposure 2021-11-10 18:45:04 +01:00
PouleyKetchoupp
bfd0d33244 Fix errors in CharacterBody when floor is destroyed or removed
In all physics servers, body_get_direct_state() now silently returns
nullptr when the body has been already freed or is removed from space,
so the client code can detect this state and invalidate the body rid.

In 2D, there is no change in behavior (just no more errors).

In 3D, the Bullet server returned a valid direct body state when the
body was removed from the physics space, but in this case it didn't
make sense to use the information from the body state.
2021-11-10 08:27:33 -07:00
ChristopheClaustre
cc39ba5509 rendering_device: if one compiles with at least on stage without sources, it was always returning an unusable bytecode (because errored) 2021-11-09 22:53:30 +01:00
PouleyKetchoupp
3d1c123d45 Separate space override modes for gravity/damping in Area
Also make inspector clearer for gravity point properties.
2021-11-09 10:29:24 -07:00
Rémi Verschelde
9444a3f01d
Merge pull request #54736 from Chaosus/shader_fix_uniform 2021-11-09 08:25:12 +01:00
Camille Mohr-Daurat
c6062cd93e
Merge pull request #54134 from nekomatata/body-center-of-mass-local
Expose local center of mass in physics servers
2021-11-08 18:44:51 -07:00
NHodgesVFX
dbe366a830 add more OpenGL attributes 2021-11-08 20:12:11 -05:00
PouleyKetchoupp
fc8c766ef9 Expose local center of mass in physics servers
Center of mass in body's local space is more useful than the transformed
one in some cases, like drawing its position for debug.

It's especially useful to get the generated local center of mass when
in auto mode (by default).

Physics Server BODY_PARAM_CENTER_OF_MASS:
Now always returns the local center of mass, instead of setting a local
center of mass and getting a transformed one.
This causes compatibility breaking, but it makes more sense for the
parameter to be consistent between getter and setter.

Direct Body State:
There are now two properties, because both of them can be useful in
different situations.
center_of_mass: relative position in global coordinates (same as before)
center_of_mass_local: position in local coordinates
2021-11-08 16:17:57 -07:00
Rémi Verschelde
5968653662
Merge pull request #46721 from bruvzg/custom_word_break_punct 2021-11-09 00:13:59 +01:00
Rémi Verschelde
d9a74fd07f
Merge pull request #54372 from bruvzg/text_edit_ui 2021-11-09 00:13:25 +01:00
Dominic-ATOR
d7a4187b05 Implement CameraEffects override_exposure 2021-11-08 21:14:56 +00:00
Rémi Verschelde
e87687a6d0
Merge pull request #54486 from ibrahn/thread-work-pool-lazier 2021-11-08 13:39:39 +01:00
Yuri Roubinsky
bbfa5f29c7 Pushes array of uniforms to first place in the buffer to prevent bug 2021-11-07 23:30:09 +03:00
clayjohn
0eff109a21 Added SSIL post processing effect 2021-11-06 12:43:19 -07:00
Brian Semrau
dc11e73bf0 Rename AABB get_area to get_volume 2021-11-05 18:22:42 -04:00
Camille Mohr-Daurat
70c82d9d3d
Merge pull request #54642 from BoilingFusion/master
Fix the volume calculation for cylinders
2021-11-05 15:08:57 -07:00
Rémi Verschelde
13aaa73124
Merge pull request #54573 from nekomatata/query-parameters 2021-11-05 21:52:39 +01:00
Julian Adamse
03903fdeec Fix the volume calculation for cylinders 2021-11-05 20:49:14 +01:00
Brian Semrau
ac24070056 Use Callable in RS::request_frame_drawn_callback 2021-11-05 01:59:38 -04:00
PouleyKetchoupp
acbd24ea84 Use parameter classes instead of arguments for all physics queries
Same as what is already done for shape queries, applied to point and ray
queries. Easier to document and more flexible to add more parameters.

Also expose intersect_point method to script in 3D.
Remove intersect_point_on_canvas in 2D, replaced with a parameter.
2021-11-04 11:44:39 -07:00
Hugo Locurcio
c012fbc8b2
Rename PROPERTY_USAGE_NOEDITOR to PROPERTY_USAGE_NO_EDITOR
This is consistent with other constants that include `NO`,
such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03 23:06:17 +01:00
rafallus
770e3a8e51 Use Callable in Area monitor callback 2021-11-01 21:53:17 -06:00
Brian Semrau
4a1c28460e Fix materials not updating when texture replaced/deleted 2021-11-01 15:33:59 -04:00
Ibrahn Sahir
151d2e34ca ThreadWorkPool no longer starts worker threads if given zero work. 2021-11-01 19:19:25 +00:00
Camille Mohr-Daurat
a57de3b818
Merge pull request #37880 from nekomatata/rigid-body-damping-override
Improved RigidDynamicBody linear/angular damping override
2021-11-01 11:24:01 -07:00
Rémi Verschelde
02ae47154c
Merge pull request #54356 from Chaosus/shader_fix_matrix_autocompletion 2021-11-01 14:06:04 +01:00
Rémi Verschelde
d86b680e07
Merge pull request #54480 from timothyqiu/texture-replace 2021-11-01 12:56:05 +01:00
Haoyu Qiu
10818cfc10 Fix memory leak when using CurveTexture.set_texture_mode 2021-11-01 18:57:59 +08:00
Rémi Verschelde
210e6cc167
Merge pull request #54459 from rxlecky/fix-multimesh-buffer-overflow-53603 2021-11-01 11:18:11 +01:00
SeleckyErik
6b04f08b28 Fix multimesh buffer overflow in RendererStorageRD 2021-10-31 18:48:51 +01:00
Rémi Verschelde
1aef3a42b2
Merge pull request #54448 from CakHuri/treshold-to-threshold
Repair mistyped of 'threshold' on several files.
2021-10-31 18:32:18 +01:00
Rémi Verschelde
16dc607f8a
Merge pull request #54307 from Calinou/add-opengl-renderer-squash
Add OpenGL renderer (squashed)
2021-10-31 18:30:38 +01:00
M. Huri
4052d85d05 Repaired mistyped of 'threshold' on several files. 2021-10-31 22:11:42 +07:00
Clay John
8a10bb7d0d
Use OpenGL 3.3 core profile instead of compatibility profile
- Rename OpenGL to GLES3 in the source code per community feedback.
  - The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
  - The renderer can still be changed in the Project Settings or using
    the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
bruvzg
3f33e1d7d6 Add functions for getting name and font style from dynamic and bitmap fonts.
Add font selection toolbar editor plugin.
2021-10-31 12:40:58 +02:00
Rémi Verschelde
d6f972fad4
Merge pull request #54403 from briansemrau/fix-small-fogvolume
FogVolume don't dispatch compute with zero-dimension groups
2021-10-31 09:12:10 +01:00
Brian Semrau
8f75ad4df2 Don't use Texture image caches if they are rendered to 2021-10-30 13:34:39 -04:00
Rémi Verschelde
6b0b1a4c04
Merge pull request #54405 from JFonS/fix_instance_index
Fix instance index in forward clustered shader
2021-10-30 14:22:22 +02:00
Brian Semrau
346e497959 Disallow compute dispatch with zero dimensions. 2021-10-30 02:39:25 -04:00
clayjohn
4d1d2b3900 Weight glow samples to reduce fireflies 2021-10-29 21:41:57 -07:00
jfons
6db13d3231 Fix instance index in forward clustered shader 2021-10-30 02:53:09 +02:00
Hugo Locurcio
ce97ddbcb1
Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3
- Use lowercase driver names for the `--rendering-driver`
  command line argument.
2021-10-30 02:05:49 +02:00
lawnjelly
e3491a3744
Add GLES2 2D renderer + Linux display manager
First implementation with Linux display manager.

- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).

Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
Yuri Roubinsky
4da0de0085 Fix error spammed to output if FogVolume is setted to scene 2021-10-29 23:24:01 +03:00
Yuri Roubinsky
a6ddfecc9f Fix crash when opening a converted FogMaterial 2021-10-29 14:18:38 +03:00
clayjohn
1b2cd9f251 Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28 22:02:23 -07:00
Yuri Roubinsky
04a2053f9b Removed incorrect autocompletion of matrixes in shader 2021-10-28 20:21:18 +03:00
Rémi Verschelde
f7d852b532
Merge pull request #54350 from akien-mga/clang-format-dont-align-operands 2021-10-28 17:10:52 +02:00
Rémi Verschelde
e2deec67b9
Merge pull request #54222 from JFonS/instance-fade 2021-10-28 16:05:55 +02:00
Rémi Verschelde
3a6be64c12
clang-format: Various fixes to comments alignment from clang-format 13
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 15:43:36 +02:00
Rémi Verschelde
3b11e33a09
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
bruvzg
63f3051154 Implement TextServer strip_diacritics function. 2021-10-28 10:12:57 +03:00
Joan Fons
95bc9c40d9 Fix shadow disabling on mobile renderer 2021-10-26 15:37:22 +02:00
PouleyKetchoupp
daf7dcac7a Improved RigidDynamicBody linear/angular damping override
Damping values are now non-negative.

Add new properties linear_damp_mode and angular_damp_mode to set the way
RigidDynamicBody and PhysicalBone (2D & 3D) use damping values.
It can now be Combine (default) to add to the default/areas, or Replace
to override the value completely (current behavior).
2021-10-25 18:22:12 -07:00
reduz
d03b7fbe09 Refactored Node3D rotation modes
* Made the Basis euler orders indexed via enum.
* Node3D has a new rotation_order property to choose Euler rotation order.
* Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis

Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations.
The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
2021-10-25 14:34:00 -03:00
jfons
c46d1ea2b2 Fix shadow disabling settings
Fixes the SHADOW_CASTING_SETTING_OFF setting in
GeometryInstance3D and the "shadows_disabled" render
mode in spatial materials, which were not working
before.
2021-10-25 16:11:32 +02:00
JFonS
c571e4a7f4 Implement distance fade and transparency
The built-in ALPHA in spatial shaders comes pre-set with a per-instance
transparency value. Multiply by it if you want to keep it.

The transparency value of any given GeometryInstance3D is affected by:
   - Its new "transparency" property.
   - Its own visiblity range when the new "visibility_range_fade_mode"
     property is set to "Self".
   - Its parent visibility range when the parent's fade mode is
     set to "Dependencies".

The "Self" mode will fade-out the instance when reaching the visibility
range limits, while the "Dependencies" mode will fade-in its
dependencies.

Per-instance transparency is only implemented in the forward clustered
renderer, support for mobile should be added in the future.

Co-authored-by: reduz <reduzio@gmail.com>
2021-10-25 11:39:34 +02:00
jfons
88d9914519 Fix state inconsistencies in visibility dependencies. 2021-10-25 11:37:53 +02:00
Rémi Verschelde
b2ab5cb504
Merge pull request #54045 from ConteZero/primary_clipboard_linux_fix_warning 2021-10-23 19:13:34 +02:00
ConteZero
8c48b4a7e0 Fix primary clipboard warning 2021-10-23 15:50:01 +02:00
Camille Mohr-Daurat
d47481f190
Merge pull request #54124 from Uxeron/CenterOfMassRotationFix
Fix physics body rotating incorrectly around it's center of mass
2021-10-22 12:58:18 -07:00
Rémi Verschelde
f7e6ebcdb1
Merge pull request #54131 from nekomatata/fix-2d-body-center-of-mass-auto 2021-10-22 21:34:35 +02:00
Uxeron
2275e26476 Fix physics body rotating incorrectly around it's center of mass 2021-10-22 21:23:54 +03:00
PouleyKetchoupp
0a04602835 Fix RigidDynamicBody2D auto center of mass calculation
Should be changing the local center of mass, which is then transformed
into `center_of_mass`.
It was causing the center of mass to be always in (0,0) by default with
multiple shapes.
2021-10-22 11:08:53 -07:00
Rémi Verschelde
3bebbcacdb
Merge pull request #53992 from Calinou/hard-shadow-mapping-allow-dithering 2021-10-22 19:34:09 +02:00
Rémi Verschelde
9f7218eb69
Merge pull request #54088 from madmiraal/remove-unimplemented-methods 2021-10-22 12:59:32 +02:00
Rémi Verschelde
fe3d62f2dc
Merge pull request #54110 from nekomatata/fix-rigid-body-update-collision-layer 2021-10-22 12:06:30 +02:00
PouleyKetchoupp
d804c34285 Fix RigidDynamicBody collision update after changing collision layer/mask
Changing the collision layer of a sleeping body was not triggering area
updates correctly.

Bodies need to be active for collision to be checked against already
overlapping bodies and areas.

Neighbors need to be activated too in order to handle the case where a
static body is modified (it can't be activated directly but paired
bodies need to check their collision again).

In 3D, moved the call to wakeup() from the physics server to
GodotBody3D::_shapes_changed to make it consistent with 2D and also
handle the case where shapes are modified (_shapes_changed is called in
both this case and collision layer changes).
2021-10-21 17:36:58 -07:00
Yuri Roubinsky
bbcf8ac672
Merge pull request #54082 from Chaosus/fix_shader_crash 2021-10-21 21:19:24 +03:00
Marcel Admiraal
87a4ba492e Remove unimplemented methods 2021-10-21 18:44:25 +01:00
Rémi Verschelde
836f86688f
Merge pull request #54053 from nekomatata/fix-soft-body-disable-mode
Fix SoftDynamicBody3D crash when setting disable mode
2021-10-21 19:33:01 +02:00
Yuri Roubinsky
57fd362fe1 Prevent shader crash when passing constant expression to textureGather 2021-10-21 19:46:05 +03:00
Hugo Locurcio
e87ec8ec17
Add Soft Very Low shadow quality mode for 3D
This can be used to improve 3D shadow rendering quality at little
performance cost. Unlike the existing Hard setting which is limited
to variable shadow blur only, it works with both fixed blur and
variable blur.
2021-10-21 18:34:26 +02:00
Yuri Roubinsky
cacfb22365
Merge pull request #54063 from Chaosus/shader_fix_spatial_samplers 2021-10-21 19:12:43 +03:00
PouleyKetchoupp
e6f7235ffb Fix SoftDynamicBody3D crash when setting disable mode
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.
2021-10-21 08:56:12 -07:00
Rémi Verschelde
194b72821d
Merge pull request #54011 from nekomatata/center-of-mass-2d-transform 2021-10-21 11:41:56 +02:00
Yuri Roubinsky
9142df46b3 Fix built-in texture samplers passing for spatial shader mode 2021-10-21 12:32:32 +03:00
Yuri Roubinsky
5a354aaf6d Prevent a rendering crash and error spam for uniform texture array 2021-10-20 21:30:27 +03:00
Rémi Verschelde
da98357e6e
doctool: Fix differences between headless and Vulkan rendering backends
Fixes #53913.
2021-10-20 17:48:50 +02:00
Rémi Verschelde
8748247d6f
Merge pull request #53702 from ConteZero/primary_clipboard_linux 2021-10-20 16:35:04 +02:00
Bastiaan Olij
6794b6f10b Fix double _get_tracking_status declaration 2021-10-20 17:39:08 +11:00
PouleyKetchoupp
c1577e5a3f Fix 2D center of mass not updated from transform
Same logic as what was done in 3D, applied to 2D center of mass.

Also did some minor cleanup in 3D and fixed center of mass transform
during the first frame after teleporting a dynamic body.
2021-10-19 16:22:30 -07:00
Rémi Verschelde
244faf5588
Merge pull request #53972 from zedutch/fix-shader-time-update
Fix shaders using `TIME` not continuously updating
2021-10-19 16:37:55 +02:00
Rémi Verschelde
85a8939fa2
Merge pull request #53790 from briansemrau/remove-distant-shadowy-void 2021-10-19 15:17:09 +02:00
Bastiaan Olij
96b707215d Add support for returning the play area from XRInterface 2021-10-19 21:17:04 +11:00
Rémi Verschelde
4387f9645b
Merge pull request #52940 from groud/toast_notification 2021-10-19 09:57:13 +02:00
Rémi Verschelde
483df71120
Merge pull request #53980 from nekomatata/rename-godot-physics-classes 2021-10-19 08:24:02 +02:00
Rémi Verschelde
723b988fde
Merge pull request #52210 from BastiaanOlij/enhance_xr_trackers 2021-10-19 08:11:32 +02:00
Rémi Verschelde
fbd701a128
Merge pull request #53960 from Klowner/audioserver-startplaybackstream-potential-leak 2021-10-19 08:09:45 +02:00
PouleyKetchoupp
cc39dca9f7 Rename Godot Physics classes from *SW to Godot*
Also moved MT physics server wrappers to the main servers folder, since
they don't have to be implementation specific.
2021-10-18 17:01:10 -07:00
Robin Arys
0e31465a59 Fix shaders that use TIME do not force editor to continuously update 2021-10-18 22:53:20 +02:00
Haoyu Qiu
2200544141 Validate enum range in RendererViewport::viewport_get_render_info 2021-10-18 22:58:38 +08:00
Mark Riedesel
61ab63a4be fix potential memory leak of AudioStreamPlaybackBusDetails in AudioServer::start_playback_stream() 2021-10-18 10:47:11 -04:00
ConteZero
838c9d37b4 Added primary clipboard for Linux 2021-10-18 14:01:06 +02:00
Yuri Roubinsky
26a26d6657 Fix errors on quitting from an empty project 2021-10-18 14:24:03 +03:00
bruvzg
7c4fbc31a6 [TextServer] Use round instead of floor for hex code box size calculation to better match font size. 2021-10-18 11:02:49 +03:00
Bastiaan Olij
5d1ea92daf Rework XR positional trackers 2021-10-17 12:12:20 +11:00
mennomax
b4eeeb315a
Swap args of Plane(point, normal) constructor
Now (normal, point)
2021-10-15 20:49:42 -05:00
Brian Semrau
c4513d5add Rename RD::free binding to free_rid 2021-10-15 15:35:05 -04:00
Rémi Verschelde
5a276443bd
Merge pull request #53815 from Chaosus/fix_wireframe_render_mode 2021-10-15 16:19:36 +02:00
Yuri Roubinsky
31ad85881d Fix wireframe render mode 2021-10-15 06:53:52 +03:00
Brian Semrau
e9f1b0a0b2 Remove incorrect fog height density remapping 2021-10-14 16:09:45 -04:00
Brian Semrau
4fefd7cddd Fix several issues with directional shadows
- Internally disable blend splits in orthogonal directional shadow mode
- Fix soft shadows ignoring fade and blend_splits
- Fix soft shadow edge stability
2021-10-14 11:44:32 -04:00
Gilles Roudière
0587e5e018 Implement toast notifications in the editor 2021-10-14 13:30:54 +02:00
Brian Semrau
a62e240260 Fix the height fog effect 2021-10-14 04:08:39 -04:00
Yuri Roubinsky
e9b7ffd1fa Added few more built-ins to shader language 2021-10-13 20:27:36 +03:00
Rémi Verschelde
88463c3eee
Merge pull request #53712 from CakHuri/nullptr
Replace NULL with nullptr
2021-10-12 22:30:43 +02:00
M. Huri
033dc4dbef Replaced NULL with nullptr 2021-10-12 20:20:19 +07:00
Aaron Franke
7e51e4cb84
Fix some LGTM errors of "Multiplication result converted to larger type" 2021-10-12 00:17:27 -05:00
Yuri Roubinsky
db2ee03fff Fix shader crash on using METALLIC and ROUGHNESS built-ins in light func 2021-10-11 13:35:53 +03:00
Rémi Verschelde
b47580a7a4
Merge pull request #53641 from DeeJayLSP/audio_pitch_fix 2021-10-11 09:22:49 +02:00
Douglas Leão
39a90751dc Allow AudioStreamPlayer(2D) to provide pitch_scale on playback 2021-10-10 18:52:29 -03:00
Rémi Verschelde
09b0293fad
Merge pull request #53066 from Chaosus/shader_funcs 2021-10-10 21:37:07 +02:00
Joan Fons
8ab7ca4b32 Fix auto LOD generation for blendshapes. 2021-10-09 20:31:28 +02:00
Rémi Verschelde
5ae569560d
Fix missing argument names in bindings
While at it, tweak some boolean setters to use `p_enabled` for the bool.

Also renames `draw_minimap()` to `set_draw_minimap()`.
2021-10-09 00:20:10 +02:00
Hugo Locurcio
73c6e19acc
Allow any floating-point value as a 3D rendering scale option
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.
2021-10-08 18:22:10 +02:00
Rémi Verschelde
96767c18f8
Merge pull request #53527 from Chaosus/shader_array 2021-10-08 12:37:05 +02:00
Yuri Roubinsky
b1ac3e256f Allow declare the shader arrays with a size defined before identifier 2021-10-08 10:28:31 +03:00
Rémi Verschelde
a6c4de49e1
Merge pull request #53523 from Calinou/remove-occlusion-color 2021-10-07 22:26:10 +02:00
Hugo Locurcio
265bae824f
Remove unimplemented Environment.ambient_light_occlusion_color property
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.
2021-10-07 17:47:52 +02:00
Hugo Locurcio
bcf4a56c74
Replace references to VisualServer in code comments with RenderingServer
VisualServer no longer exists in the `master` branch.
2021-10-07 15:49:41 +02:00
Yuri Roubinsky
e707391fb8 Fix shader crash when passing array to index expression 2021-10-07 10:48:32 +03:00
Yuri Roubinsky
410cab4c61
Merge pull request #53491 from Chaosus/shader_fix_texture_array_uniforms 2021-10-07 10:00:12 +03:00
Rémi Verschelde
149e10da1c
Merge pull request #53504 from clayjohn/VULKAN-sky-bug
Remove bogus sky error check
2021-10-07 08:09:01 +02:00
Rémi Verschelde
3f94a5ebe7
Merge pull request #51115 from clayjohn/VULKAN-SSAO-radius
Move assignment of SSAO radius push constant
2021-10-07 08:04:17 +02:00
clayjohn
23dc490f40 Remove bogus sky error check 2021-10-06 22:04:56 -07:00
Yuri Roubinsky
b5028da5c0 Fix regression which prevents using texture array uniforms 2021-10-06 22:31:07 +03:00
Yuri Roubinsky
be6f36a66d Add missing shader built-ins 2021-10-05 20:50:26 +03:00
Rémi Verschelde
08eee3a669
Merge pull request #53425 from Chaosus/shader_fix 2021-10-05 13:06:32 +02:00
Yuri Roubinsky
7c07ae4c50 Fix shader crash when passing array.length to functions
and similar cases
2021-10-05 12:49:59 +03:00