Commit graph

3587 commits

Author SHA1 Message Date
Rémi Verschelde
54418ea659 Remove NO_THREADS fallback code, Godot 4 requires thread support
This also removes `OS::can_use_threads` from the public API since it's always
true.
2022-10-03 11:23:26 +02:00
clayjohn
3126619aa5 Update Instance flags in shaders to match instance flags in engine 2022-10-02 21:37:06 -07:00
David Snopek
ec5c4709bd Fix rendering in the WebXR emulator 2022-10-02 13:49:53 -05:00
Rafał Mikrut
2233624152 Remove usage of unitialized variables 2022-10-01 21:09:22 +02:00
clayjohn
06d0e56559 Default CanvasItem materials to not convert uniform colors to linear space.
The 2D renderer in Godot is totally in sRGB space so it is appropriate
to keep 2D uniform colors in sRGB space
2022-09-30 15:15:11 -07:00
Rémi Verschelde
166df0896c Fix typos with codespell
Using codespell 2.3-dev from current git.

And fix typo in `methods.py` for `vsproj=yes` option (still won't work
though).
2022-09-30 14:23:36 +02:00
Rémi Verschelde
67961d875d Merge pull request #66178 from clayjohn/double-precision-rendering
Emulate double precision for regular rendering operation when REAL_T_IS_DOUBLE
2022-09-30 09:59:45 +02:00
Rémi Verschelde
300befdc9e Merge pull request #66641 from timothyqiu/null-joint
Fix crash when executing `PhysicsServer2D.joint_clear`
2022-09-30 09:59:09 +02:00
Rémi Verschelde
fe40c52be8 Merge pull request #66638 from timothyqiu/rendering-null
Add various null checks in RenderingServer
2022-09-30 09:58:58 +02:00
Rémi Verschelde
7a0500d9a3 Merge pull request #66626 from danboo/fix-typo-run-debug-collisons
Fix typos - "collison" -> "collision"
2022-09-30 09:58:25 +02:00
Haoyu Qiu
8320e12ac1 Fix crash when executing PhysicsServer2D.joint_clear 2022-09-30 10:36:05 +08:00
Haoyu Qiu
ffdac72eaa Add various null checks in RenderingServer 2022-09-30 10:18:14 +08:00
danboo
eba8be6e45 Fix typo - "collison" -> "collision" 2022-09-29 13:56:26 -08:00
Rémi Verschelde
f5f4d9bf00 Merge pull request #66143 from DarkKilauea/nav-queries-agent
Update NavigationAgent to use query_path
2022-09-29 15:33:25 +02:00
Rémi Verschelde
6991e9b43d Merge pull request #66583 from bruvzg/constexpr
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:44:22 +02:00
Rémi Verschelde
315a71103e Merge pull request #66565 from clayjohn/canvas-lights
Clean up canvas light shader API.
2022-09-29 10:43:42 +02:00
bruvzg
ea1848ce0a
Use constexpr in the conditions with template parameters and sizeofs to suppress C4127 warnings. 2022-09-29 10:38:21 +03:00
Josh Jones
a2c53b881b Update NavigationAgent to use query_path
This paves the way for having agents respond to link traversal.
2022-09-28 23:01:12 -06:00
Rémi Verschelde
6b5880b765 Merge pull request #66568 from rburing/cylinder_support_is_dead
`GodotCylinderShape3D::get_supports`: delete dead code
2022-09-28 23:52:28 +02:00
Ricardo Buring
215c5458f5 GodotCylinderShape3D::get_supports: delete dead code 2022-09-28 21:37:37 +02:00
Rémi Verschelde
e5857bd6c7 Merge pull request #66548 from akien-mga/msvc-warnings-c4701-c4703
Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used
2022-09-28 20:47:50 +02:00
clayjohn
1a0890122f Clean up canvas light shader API.
Expose LIGHT_ENERGY and LIGHT_IS_DIRECTIONAL.
Add LIGHT_DIRECTION
2022-09-28 11:46:58 -07:00
Rémi Verschelde
85fe6ecc32 Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used 2022-09-28 17:05:34 +02:00
Rémi Verschelde
7ab01450cf Fix MSVC warning C4702: unreachable code
Part of #66537.
2022-09-28 16:46:48 +02:00
Rémi Verschelde
14e1f36e61 Merge pull request #66492 from bruvzg/gde_ts_underscr
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions.
2022-09-28 12:12:29 +02:00
bruvzg
8f5d56e04a
[GDExtension] Use function names with underscore for TextServer extension, add macros to generate wrappers for module functions. 2022-09-28 10:04:11 +03:00
Gabor Koncz
72203a4da4 Add Passthrough extension wrapper 2022-09-27 12:26:53 +02:00
Rémi Verschelde
7562932eb2 Merge pull request #66160 from dpalais/double_time
Use double instead of real_t type for time-related parameters and variables
2022-09-27 10:04:10 +02:00
Rémi Verschelde
b8870b91b5 Merge pull request #66466 from clayjohn/FXAA-fix
Take FXAA samples from half-pixel coordinates to improve quality
2022-09-27 09:58:22 +02:00
Rémi Verschelde
2ad63f68b3 Merge pull request #66370 from bitbrain/fix-light2d-blend-modes
Fix broken 2D light blending, addresses #49922
2022-09-27 09:57:44 +02:00
Rémi Verschelde
5ecaa676cc Merge pull request #66317 from clayjohn/debanding-bug
Move deband to end of tonemapping.
2022-09-27 09:54:45 +02:00
clayjohn
dbcc0fa2a6 Take FXAA samples from half-pixel coordinates to improve quality 2022-09-26 11:54:29 -07:00
Dave Palais
0c46068af0 Change time parameters and variables to double type
Addresses #65313
2022-09-26 13:52:54 -05:00
Yuri Rubinsky
84f2c68c84
Merge pull request #66440 from Chaosus/shader_completion_defines 2022-09-26 18:18:24 +03:00
Yuri Rubinsky
344aa610e3 Add defines to completion list in shaders 2022-09-26 16:04:19 +03:00
Rémi Verschelde
49fcf4ffad Style: Cleanup header guards for consistency
Fix file names for {Static,Lightmap}RaycasterEmbree.
2022-09-26 13:51:17 +02:00
Rémi Verschelde
5ae6379e5d Merge pull request #66394 from bitbrain/fix-unshaded-canvas-modulate
Fix Unshaded CanvasItem for Vulkan
2022-09-26 08:24:45 +02:00
Bastiaan Olij
56d6a13fd7 Make dependencies with shader includes in subfolders 2022-09-26 12:29:19 +10:00
Miguel Gonzalez Sanchez
125f0be8b7
do not apply modulate on canvas when unshaded is set 2022-09-25 12:13:46 +01:00
Mansur Isaev
efd4dc20a3 Add area_get_collision_layer and area_get_collision_mask 2022-09-25 14:34:35 +04:00
Miguel Gonzalez Sanchez
2047be4516
fix broken 2D light blending, addresses #49922 2022-09-24 20:13:12 +01:00
clayjohn
fe69fedc1a Move deband to end of tonemapping.
This avoids artifacts when using adjustments and color correction
2022-09-23 11:46:40 -07:00
Rémi Verschelde
006e345695
Merge pull request #65817 from bruvzg/typed_array 2022-09-23 10:24:46 +02:00
Rémi Verschelde
03410efa15 Merge pull request #66284 from clayjohn/particles-mem-bug
Properly initialize motion vectors offset when motion vectors are disabled
2022-09-23 09:45:48 +02:00
Rémi Verschelde
3a8e711e33 Merge pull request #66254 from bruvzg/macos_title
[macOS extend-to-title] Add scene/project name to the editor title, and fix window button placement.
2022-09-23 09:44:37 +02:00
clayjohn
aac8d5c406 Properly initialize motion vectors offset when motion vectors are disabled.
This fixes an uninitialized memory bug that caused particles to fail in non-LTO builds
2022-09-22 20:36:01 -07:00
bruvzg
163257d51b
[GDExtension] Implement support for typed arrays. 2022-09-22 23:31:27 +03:00
bruvzg
0dab11afa4
[macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL. 2022-09-22 23:09:56 +03:00
Rémi Verschelde
d1a155e3cd Fix various -Wmaybe-uninitialized warnings from GCC 12.2.1
Not sure why I didn't get those before, it may be due to upstream
changes (12.2.1 is a moving target, it's basically 12.3-dev), or simply
rebuilding Godot from scratch with different options.
2022-09-22 11:29:48 +02:00
Micky
c1b5b68eee Rename remaining "*_enable" to "*_enabled"
Material.`proximity_fade_enable` -> `proximity_fade_enabled`
Material.`set_proximity_fade` -> `set_proximity_fade_enabled`
(Material.`is_proximity_fade_enabled` is unchanged)

Area3D.`reverb_bus_enable` -> `reverb_bus_enabled`
(`set_use_reverb_bus` & `is_using_reverb_bus` are unchanged)

RDPipelineRasterizationState:
`depth_bias_enable` -> `depth_bias_enabled`
`set_depth_bias_enable` -> `set_depth_bias_enabled`
`get_depth_bias_enable` -> `get_depth_bias_enabled`

Bonus:
Area3D.`set_reverb_bus` -> `set_reverb_bus_name`
Area3D.`get_reverb_bus` -> `set_get_reverb_bus_name`
2022-09-21 22:47:46 +02:00
Rémi Verschelde
9521849da6 Merge pull request #62429 from smix8/navigation_path_query_4.x
Add NavigationPathQuery objects and NavigationServer query_path()
2022-09-21 13:25:48 +02:00
Rémi Verschelde
28e1dc6162 Merge pull request #65828 from rburing/body_state_sync_callable
make `body_set_state_sync_callback` take a `Callable`
2022-09-21 11:05:41 +02:00
clayjohn
27a3014f50 Emulate double precision for regular rendering operation.
We calculate the lost precision on the CPU and pass it into the GPU
so that it can calculate an error-corrected version of the vertex position
2022-09-20 23:40:01 -07:00
smix8
63dcb9aa80 Add NavigationPathQuery
Adds NavigationPathQueryParameters objects that can be used with NavigationServer.query_path() to query a customized navigation path.
2022-09-20 22:20:11 +02:00
bruvzg
0ed4cc6287
[macOS] Add an option to align window buttons in "extend to title" mode. 2022-09-20 12:55:59 +03:00
Rémi Verschelde
7da532275b Merge pull request #65541 from clayjohn/renderer-setting
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-20 09:43:59 +02:00
Rémi Verschelde
effddbcf12 Merge pull request #66065 from kidinashell/issue-59488
SpotLight3D's and OmniLight3D's Projector doesn't work
2022-09-19 22:02:17 +02:00
clayjohn
4a1c7de57c Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer). 2022-09-19 10:26:10 -07:00
Tobias Widner
422bacbfd1 Fix Vulkan: SpotLight3D's and OmniLight3D's Projector doesn't work 2022-09-19 17:18:45 +02:00
fabriceci
7a15ccfa7b Warn users when collisions are not supported 2022-09-19 16:51:41 +02:00
Rémi Verschelde
40a7fb238d Merge pull request #64728 from fabriceci/only-report-recovery-for-floor-snapping
Turn on recovery as collisions only for floor snapping
2022-09-19 15:39:55 +02:00
Rémi Verschelde
49891e4c2f Merge pull request #65915 from clayjohn/VULKAN-mobile-fog
Restore fog in vulkan mobile renderer.
2022-09-19 09:23:24 +02:00
fabriceci
10395f5df2 Turn on recovery as collisions only for floor snapping as this leads to unwanted behaviour for other surface than the floor. 2022-09-18 22:23:09 +02:00
clayjohn
2ecc8b9a73 Restore fog in vulkan mobile renderer.
The condition accidentally disabled fog whenever it was enabled
2022-09-16 09:18:11 -07:00
Rémi Verschelde
bda63e1b5a Merge pull request #65833 from JFonS/taa_fix_particles_errors
Fix error spam in the renderer when using GPUParticles3D
2022-09-16 11:59:00 +02:00
JFonS
b668268772 Fix error spam in the renderer when using GPUParticles3D
The flag INSTANCE_DATA_FLAG_MULTIMESH is used for both multimesh and particles instances, this commit adds a new INSTANCE_DATA_FLAG_PARTICLES flag to discriminate between them.

This flag will also be used in the future to properly support TAA in particles.
2022-09-16 09:44:22 +02:00
Rémi Verschelde
848668ed45 Merge pull request #65794 from Geometror/fix-canvas-backbuffer
Fix/restore BackBufferCopy
2022-09-16 09:20:04 +02:00
Clay John
95df3e7c88
Merge pull request #65800 from dsnopek/xr-resize-viewport-3
Fix XR rendering in 'opengl3' driver and expose true size via the Viewport node
2022-09-15 18:19:24 -07:00
Ricardo Buring
ff4e72a0bc PhysicsServer2D and PhysicsServer3D: make body_set_state_sync_callback take a Callable
Prefer Callable to a C-style callback. This is helpful for GDExtension.
2022-09-15 15:09:23 +02:00
Bastiaan Olij
02ea1de7d0 Extract shared scene data into a separate class 2022-09-15 12:09:57 +10:00
David Snopek
e82cd46a74 Fix XR rendering in 'opengl3' driver and expose true size via the Viewport node 2022-09-14 20:55:56 -05:00
Hendrik Brucker
e235bca995 Fix/restore BackBufferCopy 2022-09-15 02:36:39 +02:00
Rémi Verschelde
f11745d7f5
Merge pull request #65804 from clayjohn/octahedral-decode 2022-09-15 01:42:29 +02:00
clayjohn
ef4f968232 Decode octahedral compression when retreiving meshes 2022-09-14 15:48:03 -07:00
Rémi Verschelde
ecaa7b634e
Merge pull request #65322 from ceLoFaN/fix-dof-artifact-at-high-blur 2022-09-15 00:03:40 +02:00
Rémi Verschelde
6fd3f6a287
Merge pull request #65048 from rburing/solve_static_world_boundary_motion_2d 2022-09-14 23:13:35 +02:00
Rémi Verschelde
0a0843a67d
Merge pull request #65654 from JohanAR/emit_subparticle_from_start
Allow emit_subparticle from start function
2022-09-14 19:07:33 +02:00
Rémi Verschelde
957aa79ce0
Merge pull request #65789 from clayjohn/sky-update-bug
Clear last frame directional light buffer when number of lights changes.
2022-09-14 19:06:19 +02:00
Clay John
f709596631
Merge pull request #65418 from JFonS/taa_multimesh
Add motion vectors support for MultiMeshInstance
2022-09-14 09:06:27 -07:00
clayjohn
72d899702b Clear last frame directional light buffer when number of lights changes.
This ensures that the buffers don't go out of sync.
2022-09-14 08:30:35 -07:00
clayjohn
8fa76a5272 Move debanding into internal sky shader code so that it is applied after everything else.
This ensures that the debanding does not scale with exposure or any other effect.
2022-09-13 10:39:04 -07:00
Rémi Verschelde
22a09fef5d Merge pull request #65579 from ZuBsPaCe/fix-viewport-sibling-order
Sibling SubViewports must be rendered from top to bottom
2022-09-13 11:01:33 +02:00
Rémi Verschelde
b853110890
Merge pull request #65653 from Chaosus/shader_completion_fix 2022-09-13 10:44:41 +02:00
Rémi Verschelde
0f3f8509ec
Merge pull request #65738 from BastiaanOlij/fix_ssao_ssil_memory_leak 2022-09-13 10:25:11 +02:00
Bastiaan Olij
873366cb2d Fix uniform buffer being created every frame is SSAO and SSIL half_size is different 2022-09-13 17:49:32 +10:00
clayjohn
96b7cb66df Fix multiwindow support in GLES3 for X11, Windows, and MacOS.
Instead of updating all viewports, then blitting all viewports
to the backbuffer, then swapping all buffers, we run through
all viewports and render, blit, and swap backbuffer before
going to the next viewport.
2022-09-12 17:30:50 -07:00
Rémi Verschelde
79b21e96ad
Merge pull request #65544 from clayjohn/lambert-wrap
Apply energy conservation to LAMBERT_WRAP diffuse mode by dividing by PI
2022-09-12 20:42:27 +02:00
clayjohn
97be1fb7b6 Apply energy conservation to LAMBERT_WRAP and TOON diffuse modes by dividing by PI 2022-09-12 08:45:40 -07:00
jfons
74cdee4cb5 Add motion vectors support for MultiMeshInstance
Transparently handle changes in multimesh transforms so they get reflected in the motion vectors buffer.
2022-09-12 15:28:12 +02:00
Rémi Verschelde
f211869530
Merge pull request #65594 from clayjohn/SSR-dialectric 2022-09-12 14:23:04 +02:00
Bastiaan Olij
b519d7619c Fixed MSAA initialisation in clustered forward renderer 2022-09-12 11:07:51 +10:00
Yuri Rubinsky
e4a8646c19 Prevent duplicated hints in shader uniform completion 2022-09-11 15:21:43 +03:00
Johan Aires Rastén
ddfa214d89 Allow emit_subparticle from start function
emit_subparticle was previously only allowed from the process function
in a particle shader, which seemed like an unnecessary limitation.
2022-09-11 14:02:36 +02:00
clayjohn
65f0113bc6 Properly scale SSR reflection based on metallic value for dielectric materials 2022-09-09 16:52:02 -07:00
ZuBsPaCe
3d08678e13 Sibling SubViewports must be rendered from top to bottom
Sibling SubViewports must be rendered in the same order as in the Scene Tree, from top to bottom. _sort_active_viewports() reversed their order.
Fixes #65545
2022-09-09 17:50:14 +02:00
Ricardo Buring
7b84444393 PhysicsServer2DExtension and PhysicsServer3DExtension: bind all methods (really) 2022-09-09 14:35:01 +02:00
Yuri Rubinsky
d1be14a9cb
Merge pull request #65473 from Chaosus/shader_fix_completion 2022-09-07 21:23:39 +03:00
Rémi Verschelde
22b599819a Merge pull request #65475 from timothyqiu/bounds-check
Fix crash when executing `VisualShaderNodeParticleMeshEmitter.set_mesh` with headless Godot
2022-09-07 17:53:19 +02:00
Haoyu Qiu
eea02e50a7 Fix crash when executing VisualShaderNodeParticleMeshEmitter.set_mesh with headless Godot 2022-09-07 21:31:16 +08:00
Yuri Rubinsky
47145800a6 Remove shader_type from completion (when it does not need any more) 2022-09-07 16:19:36 +03:00