Pedro J. Estébanez
99fe462452
Modernize Thread
...
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
Aaron Franke
cb9fc117d1
Use real_t in physics code
2021-01-28 18:15:42 -05:00
Aaron Franke
a3e3bf8227
Make hex_to_int and bin_to_int handle the prefix automatically
...
Also add BinToInt to C#
2021-01-28 07:43:53 -05:00
Rémi Verschelde
fb01d057af
doc: Sync classref with current source
2021-01-28 11:26:37 +01:00
Winston Yallow
9684bc40df
Correctly expose transform as 3D transform
2021-01-27 14:57:01 +01:00
Gordon MacPherson
86c7faa169
Fix zero scaling and material mappings being mapped to wrong fields
...
- fixes scale values of 0.0013 (det == 0.00004) not rendering, they should render even at small values, but not at zero like the editor grid plugin supplies zero exactly.
- fixes node_3d_editor_plugin visibility bug when scale is zero
- fix culling with small scaling values - which are still valid to be rendered like 0.00004
note: grid is still not fixed, it has det == 0 issues but this fixes one of them.
2021-01-26 19:48:18 +00:00
reduz
280f334f81
Reorganize RenderingDevice barriers
...
-Removed sync to draw, now everything syncs to draw by default.
-Fixed many validation layer errors.
-Added support for VkImageViewUsageCreateInfo to fix validation layer warnings.
-Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
2021-01-26 10:24:12 -03:00
clayjohn
7323cbab4b
Add named resources and debug labels in RenderDoc
2021-01-25 20:04:13 -08:00
reduz
51d8e32c93
Implement shadow meshes
...
-When importing, a vertex-only version of the mesh is created.
-This version is used when rendering shadows, and improves performance by reducing bandwidth
-It's automatic, but can optionally be used by users, in case they want to make special versions of geometry for shadow casting.
2021-01-25 15:03:15 -03:00
reduz
a9beb7aa8c
Shadow map rendering optimization
...
-All shadow rendering is done with raster now (no compute)
-All shadow rendering is done by rendering directly to the shadow atlas
-Improved how buffer clearing is done to optimize the above.
-Ability to set shadows as 16 bits.
2021-01-24 20:17:28 -03:00
reduz
6fe342478b
Several GI related optimizations and fixes
...
-SDFGI direct light is done over many frames
-SDFGI Changed settings for rays/frame
-SDFGI Misc optimizations
-SDFGI Bug fix on probe scroll
-GIProbe was not working, got it to work again
-GIProbe dynamic objects were not working, fixed
-Added a half size GI option.
2021-01-24 19:29:07 -03:00
clayjohn
561de937b1
Use Interleaved gradient noise for shadow samples
2021-01-21 07:47:01 -08:00
Rémi Verschelde
a9b151c664
Merge pull request #44668 from clayjohn/VULKAN-downsample
...
Use cubemap downsampler for reflection mipmaps
2021-01-20 20:41:47 +01:00
reduz
099dee35f4
Added GPU based cluster builder
...
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19 23:31:06 +01:00
reduz
7008e3c6ea
Shader optimizations to reduce VGPR usage and increase occupancy
2021-01-19 23:31:02 +01:00
Sean LaPlante
17ac012728
Fixes #45025 - Protects _last_mix_time and _last_frame_time with the AudioDriver lock() and unlock() methods
2021-01-16 13:10:05 -05:00
Rémi Verschelde
011d201046
Merge pull request #43923 from madmiraal/fix-43588
...
Fix cast_motion sometimes failing
2021-01-14 20:44:19 +01:00
Rémi Verschelde
0b409d89d0
Merge pull request #45136 from akien-mga/clang-format-11
...
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13 16:10:44 +01:00
Rémi Verschelde
af878716f2
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-12 19:32:53 +01:00
Yuri Roubinsky
ef941a6500
Renamed `emit_particle` to `emit_subparticle` shader function
2021-01-12 09:41:08 +03:00
Yuri Roubinsky
fcc5d67b03
Fix shader uniform instances compilation
2021-01-11 17:46:33 +03:00
Rémi Verschelde
a33dc4274c
Merge pull request #45066 from Chaosus/shader_fix_uniform_crash
...
Prevent editor crash due to modify the order of non-instance shader uniforms by instance uniforms
2021-01-11 14:58:55 +01:00
Yuri Roubinsky
289cc89a39
Prevent crash due to assigning incorrect order of instance uniform
2021-01-10 10:52:30 +03:00
Yuri Roubinsky
fdfddbdc3c
Fix LIGHT compilation for canvas shader
2021-01-09 23:22:59 +03:00
Aaron Franke
1d5042c9e2
Use Math_TAU and deg2rad/rad2deg in more places and optimize code
2021-01-09 03:47:14 -05:00
Marcel Admiraal
7653b8cc1e
Fix multiple issues with one-way collisions
...
For RigidBodies, uses the collision normal determined by relative motion
to determine whether or not a one-way collision has occurred.
For KinematicBodies, performs additional checks to ensure a one-way
collision has occurred, and averages the recovery step over all collision
shapes.
Co-authored-by: Sergej Gureev <sergej.gureev@relex.fi>
2021-01-07 09:22:39 +00:00
reduz
cdb216f4e4
Added ability to visualize native shaders
2021-01-06 09:40:09 -03:00
reduz
446618cf94
Change the light attenuation formulas.
...
-Much better looking, physically based.
-Almost negligible extra cost.
2021-01-05 14:44:05 -03:00
reduz
77bc3e9ac3
Threaded optimizations to cull and render
...
-Reorganize thread work pool for rendering
-Fixes to make secondary command buffers to work (disabled because they need more testing)
2021-01-05 08:50:18 -03:00
reduz
5d2a1d7892
Rewrite render code to be more cache and thread friendly.
2021-01-05 08:50:18 -03:00
reduz
9a2f18f8e7
Reorganize renderer code.
...
So it can hopefully be made more cache efficient afterwards.
2021-01-05 08:50:18 -03:00
Rémi Verschelde
00f5ea2ed2
Merge pull request #44842 from clayjohn/VULKAN-SSAO-2
...
SSAO renames and move push constant binding
2021-01-04 23:03:54 +01:00
Hendrik Brucker
ec6fc059b7
fix inconsistent normal map shader variable naming
2021-01-04 14:08:01 +01:00
Rémi Verschelde
a408622c06
Merge pull request #44530 from clayjohn/VULKAN-framebuffer-error
...
Use basic uniform set for depth prepass
2021-01-04 09:34:27 +01:00
clayjohn
0015260c4b
SSAO cleanup and fixes
2021-01-03 21:32:22 -08:00
Muller-Castro
31dd07ba30
Typo correction
...
simple typo correction
2021-01-02 02:27:12 -03:00
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
...
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
K. S. Ernest (iFire) Lee
dff1d8d7b0
Expose gltf2 eight weights.
2020-12-29 05:28:00 -08:00
Marcel Admiraal
b4a190e0bc
Consistently use normal_map
2020-12-29 08:04:19 +00:00
Rémi Verschelde
6cebb8c117
Merge pull request #44586 from madmiraal/rename-stepify
...
Rename Math::stepify to snapped
2020-12-28 21:46:43 +01:00
Rémi Verschelde
058f3fe069
Merge pull request #44149 from madmiraal/rename-tangent-orthogonal
...
Rename Vector2.tangent() to Vector2.orthogonal()
2020-12-28 16:00:12 +01:00
Marcel Admiraal
b743a2ef3c
Rename Math::stepify to snapped
2020-12-28 13:01:30 +00:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +00:00
Rémi Verschelde
1f7d6ba736
Merge pull request #44715 from clayjohn/VULKAN-SSAO-cleanup
...
Cleanup leftover functions from adding SSAO
2020-12-27 10:53:23 +01:00
Yuri Roubinsky
ef4e625918
Merge pull request #44705 from Chaosus/shader_fix_array_postinit
...
Fix using post-init shader array constructors
2020-12-27 08:26:31 +03:00
clayjohn
34cfe1cc40
Cleanup leftover functions from adding SSAO
2020-12-26 16:33:07 -08:00
reduz
548524152e
Rewrite culling to be more cache/thread friendly.
...
-Uses a single array with all data
-Massive performance improvement
-Does not support threads yet, but code is now thread friendly
2020-12-26 19:11:33 -03:00
Yuri Roubinsky
bc0e8e7a21
Fix using post-init shader array constructors
2020-12-27 01:07:24 +03:00
Yuri Roubinsky
fb16b1e39b
Merge pull request #44436 from Chaosus/shader_const_switch
...
Added support for constants in shader `case` and array size declaration
2020-12-27 00:55:45 +03:00
Marcel Admiraal
d7c3a41363
Remove all elements from monitored_bodies and monitored_areas when processed
2020-12-26 09:27:42 +00:00
clayjohn
28d0f8a455
Use cubemap downsampler for reflection mipmaps
2020-12-24 16:39:17 -08:00
Juan Linietsky
545c894614
Merge pull request #44656 from reduz/cull-fixes-and-optimizations
...
Cull fixes and optimizations
2020-12-24 14:01:19 -03:00
Rémi Verschelde
ecda989c85
Merge pull request #44649 from lyuma/bone_aabb_blendshapes
...
Fix blendshapes and calculation of bone_aabbs
2020-12-24 17:20:07 +01:00
reduz
1bebb2ba05
Cull fixes and optimizations
2020-12-24 12:18:28 -03:00
lawnjelly
6d687de9b8
Fix BVH to world_aabb, and call update
...
The calls to the BVH need to use the world space AABB, rather than local space for it to work. Also, update was not being called which is required to update the AABB as objects move.
2020-12-24 11:19:50 +00:00
Rémi Verschelde
6063af6788
Merge pull request #44641 from reduz/get-frame-setup-time
...
Add API to get frame setup time on CPU
2020-12-24 10:07:54 +01:00
Lyuma
d976003b16
Fix blendshapes and calculation of bone_aabbs
...
Blendshapes without a skeleton already worked.
However, due to a faulty ERR_FAIL_COND, it was impossible to create a mesh with both bones and blendshapes.
This also fixes an assumption that all surfaces reference the same number of bones as surface 0.
2020-12-24 00:01:07 -08:00
clayjohn
3a8c99a10b
Use basic uniform set for depth prepass
2020-12-23 20:23:51 -08:00
Juan Linietsky
3fdf4bfe71
Merge pull request #44623 from reduz/rewrite-renderer-indexer
...
Replace Octree by DynamicBVH in cull code
2020-12-24 00:20:45 -03:00
reduz
7219f37cb5
Add API to get frame setup time on CPU
...
Needed for benchmarks
2020-12-24 00:13:52 -03:00
reduz
f910e9f70c
Bind viewport measure functions
2020-12-23 20:40:19 -03:00
reduz
83058597cf
Replace Octree by DynamicBVH in cull code
...
-Much greater pairing/unpairing performance
-For now, using it for culling too, but this will change in a couple of days.
-Added a paged allocator, to efficiently alloc/free some types of objects.
2020-12-23 19:31:30 -03:00
Rémi Verschelde
c4c211c3b7
Merge pull request #44605 from madmiraal/rename-control-margin
...
Rename Control margin to offset
2020-12-23 18:24:00 +01:00
Marcel Admiraal
4b8b803931
Rename Control margin to offset
2020-12-23 06:25:56 +00:00
Rémi Verschelde
8ad0ff8ae5
Merge pull request #44487 from bruvzg/ctl_fixes_2
...
[CTL] Fix RTL scrolling and tabs selection.
2020-12-23 01:15:29 +01:00
Rémi Verschelde
6e43c68e40
Merge pull request #44182 from clayjohn/ASSAO
...
Replace SAO with ASSAO as Godot's new SSAO
2020-12-22 11:27:25 +01:00
clayjohn
44f8922305
Port ASSAO to Godot to replace SAO
2020-12-21 23:08:59 -08:00
Rémi Verschelde
1a04dcc324
Merge pull request #44566 from madmiraal/fix-redefined-default-parameter
...
Ensure default value in _render_shadow is the same as parent
2020-12-21 12:07:04 +01:00
bruvzg
cc4d6eb7f6
Improve fill aligned text hit testing.
2020-12-21 11:57:35 +02:00
Marcel Admiraal
efea408d23
Ensure default value in _render_shadow is the same as parent
...
Use double instead of int for the p_lod_distance_multiplier default value in
RendererSceneRenderForward::_render_shadow to match parent default value in
RendererSceneRenderRD::_render_shadow
2020-12-21 09:36:20 +00:00
Marcel Admiraal
fdf92ca298
Rename XRPositionalTracker methods
...
Renames:
- set_type() -> set_tracker_type()
- set_name() -> set_tracker_name()
- get_tracks_orientation() - `is_tracking_orientation()
- get_tracks_position() -> `is_tracking_position()
- get_hand() -> get_tracker_hand()
- set_hand() -> set_tracker_hand()
2020-12-21 06:32:53 +00:00
bruvzg
7d5a8ea0e9
Always include space characters (including tabs and other space-like chars) into selection rectangles.
2020-12-21 07:49:26 +02:00
Rémi Verschelde
bccbd4be90
Merge pull request #44261 from madmiraal/rename-trackerhand-enums
...
Rename TrackerHand enums
2020-12-21 00:26:44 +01:00
Exxion
583ab9ce7a
Fixes collisions in Godot 3D physics
2020-12-19 21:52:33 -05:00
Rémi Verschelde
e9d12f9e4e
Merge pull request #44521 from madmiraal/rename-rect2-clip
...
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19 21:32:14 +01:00
Rémi Verschelde
2797c2a74c
Merge pull request #33207 from Calinou/increase-camera-default-zfar
...
Increase the default Camera Zfar to 4000
2020-12-19 15:32:32 +01:00
Hugo Locurcio
7ae487d2bb
Increase the default Camera Zfar to 4000
...
This makes it possible to view far away objects without
having to tweak any settings. This results in a more usable
editor when working on large-scale levels.
This change should have no impact on performance, but note that
Z-fighting will be visible at a distance. This can be made less
visible by increasing the Znear value (however, doing so will cause
nearby surfaces to disappear).
This change was also applied to the editor, but it will only
apply to newly created scenes.
This also changes the default camera settings in the glTF importer
to match the Camera node's defaults.
2020-12-19 14:52:44 +01:00
reduz
666d5f3431
Fix error spam on wrong attachment
...
-For now, disable reading from depth this was always broken, needs to be fixed later
-Give better error showing binding and set when this happens.
2020-12-19 10:18:08 -03:00
Marcel Admiraal
2df9a8ccad
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19 12:59:08 +00:00
reduz
7bf90c7888
Improved shadow rendering efficiency
...
-Do not bind attributes that are not needed
-Improve a bit more how meshoptimizer interacts with Godot
2020-12-18 19:47:32 -03:00
reduz
d2302f53d6
Implement automatic LOD (Level of Detail)
...
-Happens on import by default for all models
-Just works (tm)
-Biasing can be later adjusted per node or per viewport (as well as globally)
-Disabled AABB.get_support test because its broken
2020-12-18 15:48:03 +01:00
Rémi Verschelde
c7b53c03ae
SCons: Add explicit dependencies on thirdparty code in cloned env
...
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.
So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).
This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
2020-12-18 10:29:34 +01:00
Yuri Roubinsky
fe4c8e387b
Added support for constants in shader `case` and array size declaration
2020-12-17 11:51:18 +03:00
Rémi Verschelde
9e49dbda2a
Merge pull request #44360 from bruvzg/ctl_punct_word_break
...
Add word breaks on punctuation characters.
2020-12-17 09:02:01 +01:00
reduz
bf77016c8a
Reimplement skeletons and blend shapes
...
Uses compute shaders, which only once, on demand, and all in parallel.
2020-12-16 14:32:04 -03:00
Rémi Verschelde
92d4deedaa
Merge pull request #44286 from clayjohn/VULKAN-fixes
...
Fixes to recent Vulkan errors
2020-12-15 23:20:29 +01:00
Marcel Admiraal
9bc62bf449
Remove Generic6DOFJoint precision property
2020-12-15 10:14:48 +00:00
Rémi Verschelde
ddbdafbcf1
Merge pull request #44112 from winterpixelgames/PR-more-deterministic-and-reliable-2d-physics
...
make 2d constraint solving more deterministic by solving in push order
2020-12-15 08:45:30 +01:00
bruvzg
06ae77a320
Add word breaks on punctuation characters.
2020-12-14 11:36:13 +02:00
bruvzg
c1d261fdb0
[Complex Text Layouts] Add variable fonts support.
2020-12-13 18:43:39 +02:00
clayjohn
775e3db2e1
Fixes to recent Vulkan errors
2020-12-10 22:47:53 -08:00
Rémi Verschelde
9263f8eb4b
Image: Rename PVRTC{2,4} to PVRTC1_{2,4}, drop COMPRESS_PVRTC2
...
We haven't had a proper implementation for COMPRESS_PVRTC2 (which is PVRTC1 2-bpp) in years,
so let's drop it instead of keeping a compress type which doesn't work.
The other enum values were renamed to clarify that our PVRTC2 and PVRTC4 are respectively
PVRTC1 2-bpp and PVRTC1 4-bpp. PVRTC2 2-bpp and 4-bpp are not implemented yet.
2020-12-10 23:14:04 +01:00
Marcel Admiraal
e40ab06599
Rename TrackerHand enums
...
Renames:
TRACKER_LEFT_HAND -> TRACKER_HAND_LEFT
TRACKER_RIGHT_HAND -> TRACKER_HAND_RIGHT
2020-12-10 10:30:45 +00:00
Rémi Verschelde
114f97ff11
Merge pull request #44128 from KoBeWi/ 🧹
...
Cleanup unused engine code
2020-12-09 13:01:50 +01:00
Tomasz Chabora
2c048ea164
Cleanup unused engine code
2020-12-09 12:12:36 +01:00
bruvzg
644f739660
Static analyzer fixes:
...
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +02:00
Rémi Verschelde
c0e6962aa0
Merge pull request #44164 from madmiraal/g6dof-use-default-copy
...
Fix inconsistent Joint3DSW copy constructor and assignment declarations
2020-12-08 09:41:27 +01:00
reduz
2748b9a10d
Add support for low-end 3D rendering.
...
-Reduce number of uniform sets from 6 to 4.
-Remove features in low end mode, in order to reduce the number of texture units fit to 16.
2020-12-07 20:50:57 -03:00
Marcel Admiraal
c013361bdc
Fix inconsistent Joint3DSW copy constructor and assignment declarations
2020-12-07 16:29:58 +00:00
bruvzg
0ef483e9a9
[Complex Text Layouts] Performance optimizations.
2020-12-07 08:53:02 +02:00
Marcel Admiraal
a24c38d1a8
Rename Vector2.tangent() to Vector2.orthogonal()
2020-12-06 18:16:06 +00:00
Rémi Verschelde
744ab88884
Merge pull request #36382 from aaronfranke/unhide-the-hidden
...
Unhide hidden members by renaming them and rebind Mesh enums
2020-12-05 13:19:30 +01:00
Yuri Roubinsky
245d4af10c
Frees CanvasShaderSDF reference (prevents warning at startup)
2020-12-05 11:28:44 +03:00
Jordan Schidlowsky
043b6c2d93
make 2d constraint solving more deterministic by solving in push order
2020-12-04 22:23:12 -06:00
Aaron Franke
5dddf4377a
Rename RD texture "type" to "texture_type"
...
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
2020-12-04 19:34:50 -05:00
Aaron Franke
19bdd01438
Rename RD uniform "type" to "uniform_type"
...
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
2020-12-04 19:34:50 -05:00
Aaron Franke
888deca827
Rename XR get_type and get_name
...
Now called get_tracker_type and get_tracker_name
2020-12-04 18:59:02 -05:00
Rémi Verschelde
14660ee399
Merge pull request #44080 from akien-mga/doc-sync
...
doc: Sync classref with current source
2020-12-05 00:50:29 +01:00
reduz
2787ad65be
RenderingServer reorganization
2020-12-04 18:39:46 -03:00
Rémi Verschelde
1a001ad964
doc: Sync classref with current source
...
And fixups:
- Add missing bindings in RenderingServer
- Remove duplicate ArrayMesh enum bindings (they're in Mesh already)
- Remove redundant _unhandled_key_input binding in Control (it's in Node
already)
2020-12-04 22:28:08 +01:00
Rémi Verschelde
1287ea63c1
Merge pull request #44084 from vnen/float-is-real
...
Rename TYPE_REAL to TYPE_FLOAT
2020-12-04 14:26:22 +01:00
George Marques
02f60812ed
Rename TYPE_REAL to TYPE_FLOAT
...
To be consistent with the naming everywhere else.
2020-12-04 09:47:26 -03:00
reduz
e93b2242c2
Reorganize rendering server.
...
-Made RenderingServerScene abstract, allowing reimplementation
-RenderingServerRaster -> RenderingServerDefault, but this class is going away soon.
2020-12-03 19:01:01 -03:00
reduz
70f5972905
Refactored Mesh internals and formats.
...
-Changed how mesh data is organized, hoping to make it more efficient on Vulkan and GLES.
-Removed compression, it now always uses the most efficient format.
-Added support for custom arrays (up to 8 custom formats)
-Added support for 8 weights in skeleton data.
-Added a simple optional versioning system for imported assets, to reimport if binary is newer
-Fixes #43979 (I needed to test)
WARNING:
-NOT backwards compatible with previous 4.x-devel, will most likely never be, but it will force reimport scenes due to version change.
-NOT backwards compatible with 3.x scenes, this will be eventually re-added.
-Skeletons not working any longer, will fix in next PR.
2020-12-02 13:07:59 -03:00
Yuri Roubinsky
d980278d81
Fixed crash in canvas_item_add_polyline if color arr has incorrect size
2020-11-30 11:05:55 +03:00
Rémi Verschelde
ef2d1f6d19
Merge pull request #42761 from fire/color-grading-3d
...
Environment brightness, contrast, saturation restore with 3d LUT.
2020-11-28 23:07:52 +01:00
clayjohn
076908bed9
Environment brightness, contrast, saturation restore with color correction.
...
Allow gradients and 2d images.
Use shader versions for LUT in tonemap
Co-authored-by: alex-poe <3957610+CptPotato@users.noreply.github.com>
Co-authored-by: QbieShay <cislaghi.ilaria@gmail.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2020-11-28 07:37:49 -08:00
Yuri Roubinsky
4a3588a51a
Merge pull request #43828 from Chaosus/restore_line_antialiasing
...
Restored antialiased lines by emulation using triangle strips
2020-11-28 11:32:16 +03:00
Rémi Verschelde
94341ac547
Merge pull request #42987 from clayjohn/VULKAN-sky-only
...
Add sky_only setting to DirectionalLight3Ds
2020-11-28 09:07:09 +01:00
Rémi Verschelde
a6751e6c58
Merge pull request #41100 from bruvzg/ctl_text_server_interface
...
[Complex Text Layouts] Implement TextServer interface.
2020-11-28 09:03:15 +01:00
Yuri Roubinsky
3ec972fc95
Restored antialiased lines by emulation using triangle strips
2020-11-27 20:45:59 +03:00
Marcel Admiraal
356a2b7235
Fix cast_motion sometimes failing
...
- Fixes Godot physics failing when the cast Shape is inside of, or
already colliding with another Shape.
- Fixes Bullet physics failing when there is no motion.
- Ensures Godot and Bullet physics behave the same.
- Updates the documentation to exclude the caveats for the failures and
differences.
2020-11-27 15:33:00 +00:00
reduz
1bcf3c305b
Implement signed distance fields for 2D shaders
2020-11-26 10:49:50 -03:00
bruvzg
493da99269
[Complex Text Layouts] Implement TextServer interface. Implement Fallback TextServer.
2020-11-26 13:55:26 +02:00
Jordan Schidlowsky
8150f07a0b
fix for two incorrectly bound texture formats
2020-11-19 14:20:29 -06:00
Nick Swoboda
bce3e2c3f6
Check uniform set validity before freeing
2020-11-18 16:53:11 -08:00
Aaron Franke
02161aad5a
Remove empty lines around braces with the formatting script
2020-11-16 23:38:11 -05:00
Rémi Verschelde
d7176e9040
Merge pull request #42167 from madmiraal/fix-42108
...
Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.
2020-11-16 09:32:48 +01:00
Rémi Verschelde
a78d96086f
Fix new transform to pixel snapping logic
...
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2020-11-15 10:52:15 +01:00
Rafał Mikrut
925ae37d8d
Remove Attempted to free invalid ID error
2020-11-10 14:22:41 +01:00
Rémi Verschelde
dd851d8f91
Merge pull request #43333 from YeldhamDev/global_rate_scale_min
...
Disallow setting the AudioServer's 'global_rate_scale' to a value equal or inferior to 0
2020-11-10 09:32:56 +01:00
Rémi Verschelde
9d2e8f2f27
Variant: Rename Type::_RID to Type::RID
...
The underscore prefix was used to avoid the conflict between the `RID` class
name and the matching enum value in `Variant::Type`.
This can be fixed differently by prefixing uses of the `RID` class in `Variant`
with the scope resolution operator, as done already for `AABB`.
2020-11-09 16:29:04 +01:00
reduz
127458ed17
Reorganized core/ directory, it was too fatty already
...
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Hugo Locurcio
7b8fd6ba9e
Fix "unifom" typo in RasterizerStorageRD method
2020-11-06 18:12:00 +01:00
Michael Alexsander
d7f2c31a05
Disallow setting the AudioServer's 'global_rate_scale' to a value equal or inferior to 0
2020-11-05 08:44:53 -03:00
Rémi Verschelde
424cd00f8b
doc: Sync classref with current source + fixup some bindings
...
Includes various changes triggered by the refactoring of method bindings.
2020-11-04 15:38:26 +01:00
reduz
f123981a96
Implement DirectionalLight2D
...
Also separated Light2D in PointLight2D and DirectionalLight2D.
Used PointLight2D because its more of a point, and it does not work
the same as OmniLight (as shape depends on texture).
Added a few utility methods to Rect2D I needed.
2020-11-04 10:03:01 -03:00
Marios Staikopoulos
e5d7c7d5fc
Alpha Hash and Alpha2Coverage Implementation
2020-11-02 20:11:20 -08:00
reduz
0e6664539d
Refactor pixel snapping.
...
-Rename pixel_snap to snap_2d_to_vertices
-Added snap_2d_to_transforms which is more useful
Fixes #41814
Solves proposal https://github.com/godotengine/godot-proposals/issues/1666
Supersedes #35606 , supersedes #41535 , supersedes #41534
2020-10-30 08:57:32 -03:00
reduz
8ab9b39707
Implement CanvasGroup and CanvasItem clipping
...
-Allows merging several 2D objects into a single draw operation
-Use current node to clip children nodes
-Further fixes to Vulkan barriers
-Changed font texture generation to white, fixes dark eges when blurred
-Other small misc fixes to backbuffer code.
2020-10-28 18:53:32 -03:00
Rémi Verschelde
6c173e2f7f
Merge pull request #43058 from clayjohn/VULKAN-FXAA-bug
...
[4.0]Remove extra exposure multiply in FXAA
2020-10-25 00:35:12 +02:00
clayjohn
8e3e9e3755
Remove extra exposure multiply in FXAA
2020-10-24 13:00:39 -07:00
reduz
84d734da0e
Refactored 2D shader and lighting system
...
-Removed normal/specular properties from nodes
-Create CanvasTexture, which can contain normal/specular channels
-Refactored, optimized and simplified 2D shaders
-Use atlas for light textures.
-Use a shadow atlas for shadow textures.
-Use both items aboves to make light rendering stateless (faster).
-Reorganized uniform sets for more efficiency.
2020-10-24 15:57:25 -03:00
Rémi Verschelde
d05c7da1aa
Merge pull request #42949 from DavidSichma/shaderglobals
...
Shader globals bugfixes
2020-10-22 09:53:49 +02:00
clayjohn
6299575250
Add sky_only setting to DirectionalLight3Ds
2020-10-21 23:28:08 -07:00
Yuri Roubinsky
433183147e
Fix textureSize & texelFetch shader compilation errors
2020-10-21 17:45:40 +03:00
David Sichma
5d33cd94c8
Shader globals bugfixes
...
- shader globals editor displays properties correctly
- fixed some errors how globals were transferred
2020-10-21 01:34:25 +02:00
Hugo Locurcio
195540ab90
Remove unused `#define` from the tonemap shader
...
It was a leftover from an earlier version of the debanding PR
which used a simpler (but less effective) algorithm.
2020-10-20 19:59:50 +02:00
Rémi Verschelde
7d4921db1a
Merge pull request #42915 from Yetizone/negative_lights_behavior
...
tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positive
2020-10-19 23:50:49 +02:00
Rémi Verschelde
cf3a4cb091
Merge pull request #42913 from Calinou/debanding-fix-brightness
...
Fix debanding slightly brightening the whole viewport
2020-10-19 23:18:24 +02:00
Yetizone
ffc4151f29
tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positive
...
Color values can become negative in the case of negative lights which
leads to undesired behaviour.
2020-10-20 00:08:44 +03:00
Hugo Locurcio
15d033e25f
Fix debanding slightly brightening the whole viewport
...
Thanks to Mikkel Gjoel on Twitter for the tip :)
2020-10-19 22:53:28 +02:00
reduz
dd0b097e44
Fix invalid buffer updates in SDFGI
2020-10-19 17:39:09 -03:00
Rémi Verschelde
7480a7d178
Fixup method binding from #42910
2020-10-19 22:23:36 +02:00
Juan Linietsky
5d120f9ffb
Merge pull request #42046 from Chaosus/fix_default_texture
...
Fix setting the default texture to shader
2020-10-19 15:50:21 -03:00
Juan Linietsky
85ebf40b6c
Merge pull request #38097 from Calinou/add-viewport-debanding
...
Add a debanding property to Viewport
2020-10-19 14:15:44 -03:00
Juan Linietsky
53d5a252bb
Revert "Replace SAO implementation with MSSAO"
2020-10-18 19:27:51 -03:00
Juan Linietsky
d98261ab8f
Merge pull request #42077 from clayjohn/MSSAO
...
Replace SAO implementation with MSSAO
2020-10-18 18:34:43 -03:00
Juan Linietsky
6e5f137c01
Merge pull request #41415 from clayjohn/VULKAN-shader-overrides
...
Add FOG, RADIANCE, and IRRADIANCE shader overrides
2020-10-18 18:33:41 -03:00
Juan Linietsky
e799a2ba45
Merge pull request #42201 from clayjohn/Vulkan-new-glow
...
Optimize Glow with local memory
2020-10-18 18:32:36 -03:00
clayjohn
366ee46774
Replace SAO implementation with MSSAO
2020-10-18 13:15:51 -07:00
clayjohn
f46932feab
Add FOG, RADIANCE, and IRRADIANCE shader overrides
2020-10-18 12:06:51 -07:00
Yuri Roubinsky
d0f85b9321
Fix setting the default texture to shader
2020-10-18 21:59:37 +03:00
clayjohn
63a34b93aa
Optimize Glow with local memory
2020-10-18 11:37:12 -07:00
Juan Linietsky
4467412c9f
Merge pull request #38949 from puchik/ssr-fix-cutoff
...
Continue tracing screen space reflection after encountering sky
2020-10-18 14:45:33 -03:00
Rémi Verschelde
d9e5c355e5
Merge pull request #41418 from clayjohn/Vulkan-aerial
...
Add aerial perspective to fixed fog
2020-10-18 17:32:19 +02:00
reduz
ee06a70ea6
Refactor MethodBind to use variadic templates
...
Removed make_binders and the old style generated binders.
2020-10-18 12:28:44 +02:00
clayjohn
8c21c26fb5
Add aerial perspective to fixed fog
2020-10-17 10:53:07 -07:00
Hugo Locurcio
4357506e64
Fix "fixed" fog drawing in front of volumetric fog with a sky background
...
This closes #42820 .
Co-authored-by: Clay John <claynjohn@gmail.com>
2020-10-15 21:59:08 +02:00
Rémi Verschelde
e927f54170
Merge pull request #42804 from RandomShaper/fix_fft_window
...
Fix application of window in FFT
2020-10-15 13:21:33 +02:00
Hugo Locurcio
b44de3c6b1
Fix typo in soft shadow quality project settings hints
2020-10-15 10:31:35 +02:00
Pedro J. Estébanez
257ba4a7fb
Fix application of window in FFT
2020-10-15 01:57:17 +02:00
Yuri Roubinsky
1dbfd4c3e8
Merge pull request #42763 from Chaosus/shader_emit_autocompletion
...
Fix autocompletion for emit_particle in shader editor
2020-10-13 16:01:37 +03:00
Yuri Roubinsky
6914597026
FIx autocompletion for emit_particle in shader editor
2020-10-13 14:12:51 +03:00
Rafał Mikrut
84a1817a75
Fixes leaks with shader and material
2020-10-12 18:06:47 +02:00
Rémi Verschelde
d22791c271
doc: Sync classref with current source
2020-10-12 10:58:02 +02:00
unknown
1d3aec4230
Free a SortShader and a ParticlesCopyShader
2020-10-12 13:25:24 +05:30
reduz
26f5bd245c
Implement GPU Particle Collisions
...
-Sphere Attractor
-Box Attractor
-Vector Field
-Sphere Collider
-Box Collider
-Baked SDF Collider
-Heightmap Collider
2020-10-09 13:25:47 -03:00
Rémi Verschelde
e9ff08692c
Merge pull request #42548 from pezcode/lights-metallic
...
Add METALLIC to light() built-ins
2020-10-09 14:41:53 +02:00
clayjohn
bde2f9b46b
Return proper texture view format for decals
2020-10-03 22:56:00 -07:00
Pablo Escobar
1300fc7307
Add METALLIC to light() built-ins
2020-10-04 04:16:16 +02:00
Marcel Admiraal
7e44682c03
Fix how Line2D obtains the other object's supports
...
Measure the distance from the line against the rotated object, not the
rotated line, when obtaining the object's supports against a line.
2020-10-03 12:59:34 +01:00
John Pennycook
8d3afa985b
Make YSort stable
...
Keeps track of the order in which items are collected by
_collect_ysort_children, and uses that order to break
ties between items with similar Y positions.
2020-09-27 10:58:54 -07:00
Rémi Verschelde
9a463cb1d6
Merge pull request #42263 from Faless/js/servers_no_threads
...
Ignore thread models when compiling with NO_THREAD
2020-09-23 11:50:23 +02:00
Fabio Alessandrelli
f3c6ac1d71
Ignore thread models when compiling with NO_THREAD
...
The thread model option for physics (2D) and rendering (single-unsafe,
single-safe, multithread), was causing crashes/locks when set as
multithreaded and exported for a platform that does not support threads
(namely HTML5).
This commit ensures that when threads support is not available, that
option is ignored, and the equivalent of "single-unsafe" is always used
instead.
2020-09-23 11:24:01 +02:00
Rémi Verschelde
7b3759a94e
Merge pull request #42130 from clayjohn/RenderingDeviceHack
...
Expose local RenderingDevice creation to RenderingServer
2020-09-23 10:41:58 +02:00
Yuri Roubinsky
53740c69df
Forbids varying declaration in particles and sky shaders
2020-09-22 10:35:52 +03:00
Rémi Verschelde
3e78963bb9
Fix typos with codespell
...
Using codespell 1.17.1.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 13:44:25 +02:00
Marcel Admiraal
41209efa7f
Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.
2020-09-18 10:43:31 +01:00
Rémi Verschelde
2d9b409103
Merge pull request #41528 from keegano/physics-fix-wrap-angle
...
Wrap angles to (-pi, pi) in momentum calculation.
2020-09-17 16:32:53 +02:00
bruvzg
6a14c72b12
Add window click-through support.
2020-09-17 12:36:18 +03:00
clayjohn
40159244cd
expose local RenderingDevice creation to RenderingServer
2020-09-16 21:11:39 -07:00
Haoyu Qiu
38147da819
Fixes crash when saving scene
2020-09-13 16:15:46 +08:00
Lyuma
2f888d2987
Fix ATTENUATION and implement SHADOW_ATTENUATION.
2020-09-10 15:45:56 -07:00
clayjohn
fbff7d424b
Set repeat in all 3 dimensions in 3d textures
2020-09-09 17:59:51 -07:00
reduz
a674da4eec
Implement 3D textures as import and resource format.
2020-09-09 13:50:21 -03:00
Marcel Admiraal
08bedf68ff
Clarify comparison precedence when enabling or disabling back buffer.
2020-09-07 11:00:00 +01:00
Rémi Verschelde
53d83c4575
Merge pull request #41781 from AnilBK/fix-typo
...
Fixed Some typos.
2020-09-07 08:31:51 +02:00
reduz
d0bddf53c5
Implement manual particle emission and particle sub emitters.
2020-09-06 10:29:27 -03:00
Yuri Roubinsky
b1351fe781
Fix crash regression in the shader function validation
...
introduced in #41780
2020-09-05 13:49:50 +03:00
Yuri Roubinsky
ab9978697e
Improve messages in shader function validation
2020-09-05 13:19:38 +03:00
Anilforextra
5705e0d309
Fixed Some typos.
2020-09-05 14:31:56 +05:45
Rémi Verschelde
696849f73a
Merge pull request #41761 from madmiraal/fix-assignment-operators
...
Ensure assignment operators return by reference to avoid unnecessary copies.
2020-09-04 13:00:17 +02:00
Rémi Verschelde
6a03aed5a4
Merge pull request #40958 from clayjohn/VULKAN-shadow-noise
...
Improve the quick hash function for all GPUs
2020-09-04 10:53:01 +02:00
Marcel Admiraal
ce263c4ff6
Ensure assignment operators return by reference to avoid unnecessary copies.
2020-09-04 09:18:19 +01:00
bruvzg
80b8eff6aa
[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.
2020-09-03 19:56:24 +03:00
Rémi Verschelde
2a8531cc56
Merge pull request #41456 from nekomatata/x11-fix-popups
...
Popup fixes for X11 display server
2020-09-03 00:09:19 +02:00
Yuri Roubinsky
2a00c868de
Fix particles shader to use built-ins
2020-09-02 22:54:41 +03:00
Juan Linietsky
f5f27bacdb
Re-Implement GPU particles on master.
...
-No new features yet
-Unlike godot 3.x, sorting happens using GPU
2020-09-02 21:37:11 +02:00
Rémi Verschelde
23ce1dbfd5
Merge pull request #41668 from clayjohn/GLOW-HQ
...
Add high quality glow mode
2020-09-01 21:04:07 +02:00
JFonS
8ab510a130
Fix typo in SDF jumpflood shader
2020-09-01 14:40:59 +02:00
clayjohn
8da3c739bf
Add high quality glow mode
2020-08-31 23:16:41 -07:00
Rémi Verschelde
30d31101c2
Merge pull request #41605 from clayjohn/VULKAN-glow
...
Fix recent glow regressions
2020-08-31 12:58:15 +02:00
clayjohn
d069cc9cf2
Fix recent glow regressions
2020-08-29 11:27:43 -07:00
TwistedTwigleg
0205eef96b
Fixed 2D physics regression that causes RigidBody2D nodes to spin uncontrollably when colliding
2020-08-28 14:16:12 -04:00
Yetizone
118a7bc53f
rasterizer_rd.cpp: Correct small typo
2020-08-27 12:44:18 +03:00
Keegan Owsley
e148338d42
Wrap angles to (-pi, pi) in momentum calculation.
...
Fixes a bug that causes KinematicBody2Ds to produce too much angular
momentum when rotating beyond 180 degrees.
2020-08-26 08:25:28 -07:00
PouleyKetchoupp
2b49cb0b73
Re-apply "Fixes for windows in X11 tiling WMs"
...
From PR #38727 which was reverted in #41373 because of regressions in Ubuntu
with Gnome.
Co-authored-by: Lorenzo Cerqua <lorenzocerqua@tutanota.com>
2020-08-22 18:42:42 +02:00
Juan Linietsky
4e52c75a98
Merge pull request #41345 from clayjohn/VULKAN-sky-fog
...
Add fog to sky shaders
2020-08-20 09:50:52 -03:00
clayjohn
9d341acf2d
Add fog to sky shaders
2020-08-19 22:58:14 -07:00
Juan Linietsky
9c5c1635b2
Revert "Fixes for windows in X11 tiling WMs"
2020-08-19 12:37:59 -03:00
Hugo Locurcio
8891579068
Add a debanding property to Viewport
...
It can be enabled in the Project Settings
(`rendering/quality/screen_filters/use_debanding`). It's disabled
by default as it has a small performance impact and can make
PNG screenshots much larger (due to how dithering works).
It will also slightly brighten the scene's dark areas.
As a result, it should be enabled only when banding is noticeable enough.
This closes #17006 .
2020-08-14 23:12:33 +02:00
Juan Linietsky
6a5ecfdef1
Restored fog (non volumetric).
...
Uses a simpler and more intuitive implementation based on density.
Its less flexible than before, but its easier to get nice results.
2020-08-13 22:09:22 -03:00
Juan Linietsky
079ca220e1
Added volumetric fog effect.
2020-08-13 11:28:45 -03:00
clayjohn
cf07a58a5f
Improve the quick hash function for all GPUs
2020-08-01 17:48:40 -07:00
Markus Sauermann
8335f00949
Wake up RigidBody 2D after applying torque
2020-08-01 14:36:24 +02:00
Brian Semrau
63dfe79fbe
Fixed next_pass materials not being drawn
2020-07-28 10:51:41 -04:00
Aaron Franke
56e2c6c704
Make all String float conversion methods be 64-bit
2020-07-27 18:38:53 -04:00
Rémi Verschelde
c845e20add
Revert "Allow Area2D and 3D mouse events without a collision layer"
...
This reverts commit 7eebb06b55
.
2020-07-27 22:45:01 +02:00
Rémi Verschelde
b19b896e06
Merge pull request #40487 from nekomatata/virtual-keyboard-enter-fixes
...
Fix Return key events in LineEdit & TextEdit on Android
2020-07-26 20:25:53 +02:00
PouleyKetchoupp
8c05dadcff
Fix Return key events in LineEdit & TextEdit on Android
...
Depending on the device implementation, editor actions could be
received with different action ids or not at all for multi-line.
Added a parameter to virtual keyboards to properly handle single-line
and multi-line cases in all situations.
Single-line:
Input type set to text without multiline to make sure actions are sent.
IME options are set to DONE action to force action id consistency.
Multi-line:
Input type set to text and multiline to make sure enter triggers new lines.
Actions are disabled by the multiline flag, so '\n' characters are
handled in text changed callbacks.
2020-07-26 20:06:07 +02:00
Rémi Verschelde
3842e8c465
Merge pull request #38727 from Riteo/tiling-wm-issues-tests
...
Fixes for windows in X11 tiling WMs
2020-07-26 17:41:28 +02:00
Juan Linietsky
acf32e87d5
Fixes RenderingServer crashes reported by #39951
...
Supersedes #40026
2020-07-23 07:58:23 -03:00
Lorenzo Cerqua
d670a49612
DisplayServer: separate window showing into another function
...
When creating a window, Godot would first register it to the WM(show it) and then set its flags.
This works fine on a floating WM, but on tiling WMs as soon as a window gets registered
the WM immediately acts on the window by scaling it up and treating it as a generic window,
being registered without any special flags.
This commit separates the showing of the window into another function and calls it after the most important flags are set,
making windows with special flags(eg. all popups) work again on tiling WMs.
Fixes #37930
2020-07-23 07:58:10 +02:00
Juan Linietsky
ee7c98da7c
Refactor light clustering
...
Move from high end to shared, so all renderers use clustering.
2020-07-22 20:39:51 -03:00
Rémi Verschelde
a5fb445121
Merge pull request #40450 from asmaloney/spelling
...
Fix spelling & grammar in comments, docs, and messages
2020-07-21 22:14:04 +02:00
Andy Maloney
4dda62f591
Fix spelling & grammar in comments, docs, and messages
2020-07-21 15:17:23 -04:00
Andy Maloney
8b949918b1
Fix spelling of a var, a struct, and message output
2020-07-17 12:02:06 -04:00
Rémi Verschelde
c8523038cc
Merge pull request #40268 from DanielZTing/master
...
Fix cancel/OK button order on macOS
2020-07-15 09:21:04 +02:00
Yuri Roubinsky
1a5cafebc9
Merge pull request #40389 from Chaosus/fix_shader
...
Fix some incorrect conversions which lead to crash in shaders
2020-07-15 08:49:59 +03:00
Yuri Roubinsky
01950553f2
Fix some incorrect conversions which lead to crash in shaders
2020-07-14 21:04:12 +03:00
Juan Linietsky
13e0385702
Properly pass safe margin on initialization.
...
Fixes jitter.
2020-07-14 10:19:58 -03:00
Rémi Verschelde
9678a41b19
Merge pull request #40272 from clayjohn/VULKAN-time-slicing
...
Add incremental update mode to sky
2020-07-11 10:00:39 +02:00
clayjohn
a54f93c169
Add incremental update mode to sky
2020-07-11 00:10:15 -07:00
Rémi Verschelde
d0cea291d2
Merge pull request #40193 from KoBeWi/dem_pikks
...
Allow Area2D and 3D mouse events without collision layer
2020-07-11 00:26:56 +02:00
Rémi Verschelde
21e1ff4bb0
Merge pull request #40266 from Chaosus/fma_fix
...
Enables 'fma' for GLES2
2020-07-11 00:18:50 +02:00
Daniel Ting
9605fc54c7
Fix cancel/OK button order on macOS
...
The macOS platform convention regarding button order is cancel on left,
OK on right.
2020-07-10 15:10:11 -05:00
Yuri Roubinsky
3eeb272b2e
Enables 'fma' for GLES2
2020-07-10 22:21:22 +03:00
Rémi Verschelde
dcd11faad3
Merge pull request #40253 from madmiraal/add-override-keywords
...
Add override keywords.
2020-07-10 21:04:23 +02:00
Yuri Roubinsky
ecb5f7ea23
Added 'fma' function to shader language
2020-07-10 19:58:03 +03:00