Thaddeus Crews
637239e979
Merge pull request #94193 from BastiaanOlij/buildin_includes
...
Add ability to include built-in include files
2024-12-05 14:12:23 -06:00
Thaddeus Crews
f5d82af1fd
Merge pull request #99136 from DarioSamo/light-compute-attenuation-skip
...
Improve performance of shader lighting code in Forward renderers.
2024-12-05 14:12:08 -06:00
Thaddeus Crews
a4c2e16c19
Merge pull request #100028 from clayjohn/rd-lights-array
...
Use a vector instead of an array in canvas shader instance buffer
2024-12-05 14:12:05 -06:00
clayjohn
e316739a13
Use a vector instead of an array in canvas shader instance buffer.
...
This avoids a pathological performance cliff on Adreno devices
2024-12-04 16:36:46 -08:00
Dario
fa7615be9e
Add specialization for directional light split blend and fog.
2024-12-03 15:12:46 -03:00
Thaddeus Crews
c58ae91efa
Merge pull request #99220 from Flarkk/fix_sss_reverse_z
...
Fix regression in SSS with reverse-z
2024-11-27 10:46:56 -06:00
Dario
0ce4c6dac3
Improve performance of shader lighting code in Forward renderers.
...
- Skip sampling shadows if attenuation is very small.
- Skip computing diffuse and specular light if attenuation and shadow are very small.
2024-11-27 12:20:31 -03:00
Florent Guiocheau
3376b9166b
Fix SSS with reverse-z
2024-11-26 10:51:22 +01:00
Bastiaan Olij
1bffefb346
Adding ability to include build-in include files (precursor to custom shader templates)
2024-11-24 08:47:45 +11:00
Thaddeus Crews
dcb59f0e7e
Merge pull request #99548 from Repiteo/style/clang-format-19-options
...
Style: Add 19.1.0 LLVM options to `.clang-format`
2024-11-22 14:54:29 -06:00
Thaddeus Crews
e8a4b45ce4
Style: Add 19.1.0 LLVM options to .clang-format
2024-11-22 09:24:32 -06:00
clayjohn
2b68c63a88
Mask out shadows on CanvasItems that don't have a matching item_shadow_mask
...
This restores the behavior from 3.x
2024-11-21 22:15:54 -08:00
Thaddeus Crews
8eee5066eb
Merge pull request #94981 from Chaosus/shader_fix_screen_uv_in_spatial_light
...
Allow `SCREEN_UV` to be used in light function of spatial shader
2024-11-21 17:56:45 -06:00
clayjohn
02efdb28dc
Unify y-flip behavior for sky in RD backends
2024-11-19 16:59:04 -08:00
Chaosus
a64b3fd3f8
Allow SCREEN_UV to be used in light function of spatial shader
2024-11-19 11:39:49 +03:00
clayjohn
2c158c386b
Normalize normal tangent and binormal before interpolating in the mobile renderer to avoid precision errors on heavily scaled meshes
2024-11-13 12:24:28 -08:00
Thaddeus Crews
edc60c63f1
Merge pull request #98701 from DarioSamo/rd-graph-improvements
...
Add dependency detection improvements to the render graph.
2024-11-04 21:51:58 -06:00
Dario
53099c56f0
Add multiple specialization constants to Forward+ and Mobile.
2024-11-04 14:35:40 -03:00
Dario
5216ef5f9c
Add dependency detection improvements to the render graph.
...
- Buffers changing their usage are no longer treated as write usage unless the API requires it.
- Draw lists are not treated as being dependent on each other if their regions do not intersect despite both being write commands.
- Particles were tweaked to use different unused buffers to reduce dependencies.
2024-11-01 09:46:52 -03:00
Stuart Carnie
0d1d945727
2D: Fix various issues and minor performance optimisations
2024-10-30 08:36:45 +11:00
Clay John
748f4079e3
Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebased
...
Add Swappy & Pre-Transformed Swapchain
2024-10-29 12:34:40 -07:00
Matias N. Goldberg
aaa0e2fddf
Add Swappy & Pre-Transformed Swapchain
...
- Adds Swappy for Android for stable frame pacing
- Implements pre-transformed Swapchain so that Godot's compositor is in
charge of rotating the screen instead of Android's compositor
(performance optimization for phones that don't have HW rotator)
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
Changes from original PR:
- Removed "display/window/frame_pacing/android/target_frame_rate" option
to use Engine::get_max_fps instead.
- Target framerate can be changed at runtime using Engine::set_max_fps.
- Swappy is enabled by default.
- Added documentation.
- enable_auto_swap setting is replaced with swappy_mode.
2024-10-28 18:55:37 -03:00
Dario
427ba09efc
Fix soft shadows by increasing the bit count for specialization constants.
2024-10-28 10:26:50 -03:00
Thaddeus Crews
c145e85011
Merge pull request #98226 from m-pranav-r/fix-volumetric-shadows
...
Fix incorrect depth comparison used to calculate volumetric fog shadowing
2024-10-21 16:39:11 -05:00
m-pranav-r
c12001a9dc
Fix incorrect depth comparison used to calculate volumetric fog shadowing
2024-10-16 14:55:41 +05:30
EnlightenedOne
cef515506b
Move preprocessor to end of line for iterator, remove redeclaration incompatible with ubershader method definitions
2024-10-14 22:19:16 +01:00
Dario
e2c6daf7ef
Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
...
- Implements asynchronous transfer queues from PR #87590 .
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
Patrick Owen
d720eb80e1
Clamp UV-coordinates to centers of outermost texels when configured to do so
...
In addition, fix region_filter_clip_enabled documentation to be consistent with AtlasTexture.xml, since that is the option whose behavior was fixed
2024-09-29 05:57:19 -04:00
Rémi Verschelde
285ebed828
Merge pull request #83360 from ywmaa/vertex_shading
...
Implement vertex shading
2024-09-29 00:46:48 +02:00
ywmaa
0a9ad8f9de
Implement vertex shading
...
This adds support in all backends, but the Compatibility renderer works the best.
Mobile and Forward+ can only support one directional light shader (the first in the tree)
While the Compatibility renderer supports any number of shadows.
Co-authored-by: Clay John <claynjohn@gmail.com >
2024-09-29 00:36:09 +02:00
clayjohn
4d635b7a3a
Combine texture and instance data into one uniform set in the 2D renderer
...
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com >
2024-09-27 11:05:46 -07:00
Rémi Verschelde
bfe74eca3b
Merge pull request #97428 from clayjohn/shadow-filter-jitter-rebase
...
Jitter shadow map dithering pattern across frames when TAA is enabled
2024-09-26 12:45:50 +02:00
Rémi Verschelde
991e6c92ab
Merge pull request #96923 from Repiteo/style/warning-admonition
...
Style: Add `WARNING:` as new comment admonition
2024-09-26 12:45:38 +02:00
Thaddeus Crews
32c83a228d
Style: Add WARNING: as new comment admonition
2024-09-25 09:44:42 -05:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
Rie
5efa6ba489
Fix incorrect Reinhard tonemap operator
2024-09-25 12:34:23 +02:00
Hugo Locurcio
0eb06da057
Jitter shadow map dithering pattern across frames when TAA is enabled
...
This improves shadow quality by reducing the visibility of the noisy
pattern caused by dithering.
This jittering also applies when FSR2 is enabled, as it provides its own
form of temporal antialiasing.
Co-authored-by: Clay John <claynjohn@gmail.com >
2024-09-24 15:52:07 -07:00
clayjohn
e75900e1ad
Calculate pixel snap in canvas space instead of world space
...
This ensures that you are actually snapping to pixels in the viewport and not an arbitrary amount
2024-09-20 17:43:33 -07:00
Thaddeus Crews
b37fc1014a
Style: Apply new clang-format changes
2024-09-20 08:09:48 -05:00
Stuart Carnie
a657ea42f1
2D: Add batching to RendererCanvasRenderRD
2024-09-12 05:26:06 +10:00
BlueCube3310
a89f4fa5a9
LightmapGI: Pack L1 SH coefficients for directional lightmaps
2024-09-05 22:46:58 +02:00
Rémi Verschelde
49ed6c558c
Merge pull request #86809 from clayjohn/TAA-disocclusion
...
Tune TAA disocclusion scale to avoid rejecting all samples during motion.
2024-09-03 16:13:26 +02:00
Rémi Verschelde
63a8548693
Merge pull request #96426 from clayjohn/RD-reflection-probe-roughness
...
Use non-linear mapping for ReflectionProbe mip levels to match sky
2024-09-03 11:43:52 +02:00
Rémi Verschelde
667778cf4d
Merge pull request #93448 from clayjohn/transmittance-fixes
...
Various fixes for transmittance effect
2024-09-03 11:42:57 +02:00
clayjohn
64f5443b14
Use non-linear mapping for ReflectionProbe mip levels to match sky
2024-09-01 01:40:42 -07:00
Chaosus
f538376c3b
Add CLIP_SPACE_FAR built-in to spatial shader
2024-08-27 08:48:46 +03:00
Rémi Verschelde
68d188d521
Merge pull request #95888 from clayjohn/Lightmap-SH-coefficients
...
Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
2024-08-25 20:18:18 +02:00
BlueCube3310
4aa145624e
LightmapGI: Fix shader data alignment after #89919
2024-08-21 21:37:13 +02:00
clayjohn
f4ccba7508
Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
...
Also remove the metallic option from directional lightmap as it is guaranteed to return negative numbers in many cases
2024-08-21 10:24:32 -07:00
Stuart Carnie
2d0165574d
Add Metal support for macOS (arm64) and iOS
2024-08-20 12:11:06 +02:00