Bastiaan Olij
d09ad714bf
Fixing artifacts in SSR
2022-10-04 23:47:13 +11:00
Rémi Verschelde
e5aa5eb806
Merge pull request #66780 from dsnopek/webxr-emulator-fix
...
Fix rendering in the WebXR emulator
2022-10-04 12:21:27 +02:00
Bastiaan Olij
02b0c22e38
Moving SSEffects settings into class
2022-10-04 11:03:36 +11:00
Bastiaan Olij
ddc4ae1175
Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method.
2022-10-04 11:03:32 +11:00
Yuri Rubinsky
a2c32590ee
Fix global uniform crash at editor startup
2022-10-03 15:06:20 +03: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
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
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
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
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 sizeof
s to suppress C4127 warnings.
2022-09-29 10:38:21 +03: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
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
Yuri Rubinsky
344aa610e3
Add defines to completion list in shaders
2022-09-26 16:04:19 +03: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
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
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
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
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
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
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
Logan Lang
e61d8b6f53
enabled ambient_light_disabled render mode flag
2022-09-19 17:12:32 -05: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
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
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
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
ecaa7b634e
Merge pull request #65322 from ceLoFaN/fix-dof-artifact-at-high-blur
2022-09-15 00:03:40 +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
Yuri Rubinsky
d1be14a9cb
Merge pull request #65473 from Chaosus/shader_fix_completion
2022-09-07 21:23:39 +03: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
Rémi Verschelde
5062aafc2d
Merge pull request #64417 from aaronfranke/has-space
...
Replace AABB/Rect2/Rect2i has_no_* methods with has_* methods
2022-09-06 17:00:44 +02:00
ceLoFaN
e844b95eaf
Fix DoF artifacting at high blur amounts
2022-09-05 21:38:40 +03:00
Aaron Franke
817ae95667
Replace AABB has_no_volume with has_volume
...
Also replace has_no_surface with has_surface
2022-09-04 23:03:36 -05:00
Haoyu Qiu
52f290ae4d
Fix crash when executing CSGMesh3D.set_mesh
with headless Godot
2022-09-05 09:15:22 +08:00
MinusKube
f5a808192b
Prevent windows from having a size greater than device limit
2022-09-04 22:48:54 +02:00
Rémi Verschelde
3a62c294c7
Merge pull request #65170 from KoBeWi/your_argument_is_TypedArray
2022-09-02 13:57:02 +02:00
Rémi Verschelde
c82bbc38a5
Merge pull request #64952 from Chaosus/vs_rename_uniform_to_param
2022-09-02 13:49:53 +02:00
Rémi Verschelde
d63c6fc463
Merge pull request #60185 from Calinou/environment-fog-and-sky-affect
2022-09-01 23:52:34 +02:00
Hugo Locurcio
699e9f7966
Add Environment properties to control fog rendering on background sky
...
Values lower than 1.0 can be used to make the fog rendering not fully
obstruct the sky. This can be desired when using fog as a purely
atmospheric effect, without intending to use fog for open world fog
fading.
When set to 0.0, fog rendering behavior will be similar to Godot 3.x
where sky rendering was never affected by fog.
2022-09-01 19:07:39 +02:00
kobewi
7adc8376ed
Change Array arguments to TypedArray
2022-09-01 13:13:19 +02:00
Bastiaan Olij
2cd84be64d
Extracting render buffers and changing it to a more generic solution
2022-09-01 20:01:45 +10:00
Yuri Rubinsky
8191b3c110
Rename uniform
to parameter
across the engine
2022-09-01 11:42:57 +03:00
clayjohn
385ee5c70b
Implement Physical Light Units as an optional setting.
...
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value.
In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-31 12:14:46 -07:00
Rémi Verschelde
c40855f818
Merge pull request #65130 from BastiaanOlij/fix_mobile_signed_tangent
...
Fix vector type for signed tangent in mobile shader
2022-08-31 09:12:31 +02:00
Rémi Verschelde
d58a1d65a9
Merge pull request #63413 from Calinou/volumetric-fog-add-per-light-energy-2
...
Add a per-light volumetric fog energy property
2022-08-31 08:47:03 +02:00
Bastiaan Olij
708222bb9a
Fix vector type for signed tangent in mobile shader
2022-08-31 16:35:54 +10:00
Haoyu Qiu
ad6d6a7893
Remove unnecessary print_line
in RendererDummy
2022-08-31 09:44:02 +08:00
Hugo Locurcio
09bedcead4
Add a per-light volumetric fog energy property
...
Per-light energy gives more control to the user on the final result of
volumetric fog. Specific lights can be fully excluded from volumetric fog
by setting their volumetric fog energy to 0, which improves performance
slightly. This can also be used to prevent short-lived dynamic effects
from poorly interacting with volumetric fog, as it's updated over several
frames by default unless temporal reprojection is disabled.
Volumetric fog shadows now obey Light3D's Shadow Opacity property as well.
The shadow fog fade property was removed as it had little visible impact
on the final scene's rendering.
2022-08-30 20:03:38 +02:00
Rémi Verschelde
c1b178be38
Merge pull request #65068 from BastiaanOlij/fix_dummy_mesh_allocation
2022-08-30 19:49:36 +02:00
Rémi Verschelde
02d510bd07
Merge pull request #63003 from Geometror/msaa-2d
2022-08-30 14:54:20 +02:00
Bastiaan Olij
9efff344b8
Dummy mesh support was added to the dummy renderer but incomplete. This completes it
2022-08-30 16:28:39 +10:00
Aaron Franke
10a56981dc
Rename String plus_file
to path_join
2022-08-29 19:38:13 -05:00
sakrel
728fb6ea95
Fix updating OccluderPolygon shapes
2022-08-29 03:51:53 +02:00
Rémi Verschelde
4808d01b2b
Merge pull request #64223 from Calinou/taa-fxaa-use-negative-mipmap-lod-bias
...
Automatically use negative mipmap LOD bias when TAA and/or FXAA are enabled
2022-08-26 23:11:25 +02:00
Rémi Verschelde
f9f2446972
Merge pull request #64367 from Mickeon/rename-var-to-str
...
Rename `str2var` to `str_to_var` and similar
2022-08-26 23:04:06 +02:00
Micky
59e11934d8
Rename str2var
to str_to_var
and similar
...
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too.
- `var2str` -> `var_to_str`
- `str2var` -> `str_to_var`
- `bytes2var` -> `bytes_to_var`
- `bytes2var_with_objects` -> `bytes_to_var_with_objects`
- `var2bytes` -> `var_to_bytes`
- `var2bytes_with_objects` -> `var_to_bytes_with_objects`
- `linear2db` -> `linear_to_db`
- `db2linear` -> `db_to_linear`
- `deg2rad` -> `deg_to_rad`
- `rad2deg` -> `rad_to_deg`
- `dict2inst` -> `dict_to_inst`
- `inst2dict` -> `inst_to_dict`
2022-08-26 14:58:22 +02:00
Rémi Verschelde
7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0
2022-08-26 11:59:07 +02:00
Micky
723bf85145
Rename ParticlesMaterial to ParticleProcessMaterial
...
Also affects their file names, related classes and documentation.
2022-08-26 02:53:08 +02:00
Hugo Locurcio
45bc1a3790
Automatically use negative mipmap LOD bias when TAA and/or FXAA are enabled
...
This improves texture sharpness when TAA and/or FXAA are enabled,
without requiring manual user intervention.
2022-08-25 19:38:18 +02:00
Rémi Verschelde
5d78ab4388
Merge pull request #64749 from tefusion/fix_skeleton_editor_mesh_free_errors
...
Fix typo in RendererSceneCull which caused mesh_free errors
2022-08-25 18:54:25 +02:00
Yuri Rubinsky
d4a10e7e04
Allow using integer varyings with flat
interpolation modifier
2022-08-25 13:21:02 +03:00
Rémi Verschelde
91e5f48ea7
Merge pull request #64009 from KoBeWi/arrayy_lmao
...
Replace Array return types with TypedArray (part 2)
2022-08-24 08:18:56 +02:00
kobewi
1abdffe7a0
Replace Array return types with TypedArray 2
2022-08-23 23:21:32 +02:00
Rémi Verschelde
8317ff74d6
Merge pull request #63091 from MinusKube/editor-window-render-bug
2022-08-23 12:59:34 +02:00
bruvzg
bcc3643989
Add font LCD sub-pixel anti-aliasing support.
2022-08-23 08:47:21 +03:00
tefusion
a2c422a6da
Fix typo in RendererSceneCull
...
Frees skeleton 3d gizmo now correctly
2022-08-22 22:09:56 +02:00
Rémi Verschelde
7b4927bb5f
Merge pull request #60309 from The-O-King/oct
2022-08-22 19:29:21 +02:00
Omar El Sheikh
61522d8491
Add Blendshape Support
...
Update the blendshape shader to decode/encode octahedral normals
2022-08-20 20:59:28 -07:00
Hugo Locurcio
0c5f254956
Merge pull request #64110 from Geometror/fix-light-shadow-off
2022-08-20 17:06:03 +02:00
Yuri Rubinsky
499fd0a4e7
Add defined
keyword support to shader preprocessor
2022-08-20 11:26:59 +03:00
Max Hilbrunner
5e0d2b5097
Merge pull request #62046 from clayjohn/vertexless-draw
...
Allow creating meshes without vertex positions
2022-08-20 05:32:28 +02:00
Hendrik Brucker
18585c69b3
Fix OmniLight/SpotLight shadow opacity calculation
2022-08-20 01:05:44 +02:00
clayjohn
bbbcdd725a
Remove requirement to have vertex positions when creating a mesh. Meshes can now be constructed from an index buffer alone
2022-08-19 14:50:12 -06:00
Yuri Rubinsky
8779f51a5e
Merge pull request #63960 from bitsawer/fix-macro-expansion
2022-08-19 23:37:47 +03:00
Max Hilbrunner
019d6584ee
Merge pull request #64167 from clayjohn/screen-texture-hint
...
Add shader uniform hints for screen textures
2022-08-19 21:51:39 +02:00
Max Hilbrunner
117c530e1d
Merge pull request #64342 from clayjohn/DOF-scale
...
Properly scale depth in bokeh_dof effect
2022-08-19 21:16:32 +02:00
Yuri Rubinsky
35cfaafda8
Merge pull request #64459 from Chaosus/shader_elif
2022-08-19 07:01:22 +03:00
Aaron Franke
f91934872d
Use a const ref for the bone AABB in rendering code
2022-08-18 12:20:11 -05:00
Clay John
982ff7d925
Merge pull request #64416 from aaronfranke/aabb
...
Don't try to merge unused bone AABBs in the rendering server
2022-08-17 23:56:05 -06:00
Yuri Rubinsky
13ab70ed2a
Add elif
directive to shader preprocessor
2022-08-15 22:06:49 +03:00
Aaron Franke
e0d80b37e9
Don't try to merge unused bone AABBs in the rendering server
2022-08-14 23:30:48 -05:00
Yuri Rubinsky
22df2c527b
Implement coloring for disabled branches in the shader editor
2022-08-14 13:57:26 +03:00
Omar El Sheikh
78881b3cc3
Octahedral Normal/Tangent Compression
...
Implementation of Octahedral normal compression into Godot 4.0
2022-08-13 08:09:32 -07:00
Hendrik Brucker
e96b1a2c0c
Implement MSAA for 2D [Vulkan only]
2022-08-13 01:09:48 +02:00
clayjohn
7d6287f616
Properly scale depth in bokeh_dof effect so that setting distance to blur effect is accurate again
2022-08-12 16:39:05 -06:00
Yuri Rubinsky
f2a6168414
Merge pull request #64310 from Chaosus/shader_texture_funcs
2022-08-12 21:28:22 +03:00
Yuri Rubinsky
e21aad968d
Add textureQueryLod/Levels
functions to the shader language
2022-08-12 20:44:57 +03:00
Yuri Rubinsky
7822fbc9e2
Add textureProjGrad
function to the shader language
2022-08-12 12:01:37 +03:00
Hugo Locurcio
ff9118d103
Merge pull request #64225 from Calinou/3d-scaling-bilinear-use-negative-mipmap-bias
2022-08-11 21:41:37 +02:00
clayjohn
7c848ee591
Detect if VRS supported before creating default VRS texture
2022-08-10 13:27:19 -06:00
Hugo Locurcio
b06890c2b7
Use negative mipmap LOD bias for sub-native bilinear 3D scale
...
This provides a benefit similar to FSR 1.0 (greater texture sharpness
at the cost of some graininess at sub-native resolution scales), but
without the added performance cost of FSR 1.0.
2022-08-10 17:16:02 +02:00
MinusKube
be09a87ff9
Fix viewport sorting being wrong on parent/child relation
2022-08-10 01:23:23 +02:00
clayjohn
028ef2edc8
Add shader uniform hints for screen textures so users can specify custom filter and repeat modes.
...
At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture.
In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-09 12:29:49 -04:00
Bastiaan Olij
f50f0844e9
Fix resource leaks in VoxelGI
2022-08-09 15:18:03 +10:00
bruvzg
e7464e7a30
Fix macOS and iOS defines in the rendering code.
2022-08-08 17:51:31 +03:00
Rémi Verschelde
8734ef1f7a
Merge pull request #62547 from clayjohn/ref_vec_pbr
2022-08-08 10:18:32 +02:00
Rémi Verschelde
f754dd20be
Merge pull request #62454 from Geometror/reflect-refract-vec2-vec4
...
Allow for vec2/vec4 to be used in reflect and refract
2022-08-07 19:16:05 +02:00
Hendrik Brucker
b8d5f4bdd5
Allow vec2 and vec4 for reflect and refract
2022-08-07 18:03:16 +02:00
Hugo Locurcio
baaa7503c7
Add a shadow opacity property to Light3D
...
This can be used to make shadows translucent for a specific light.
The light distance fade system also uses this to smoothly fade the shadow
when the light fade transition distance is greater than 0.
2022-08-07 11:06:32 +02:00
bitsawer
691e067ef5
Fix shader preprocessor macro expansion
2022-08-05 17:41:24 +03:00
Juan Linietsky
f999f52f0a
Add a Framebuffer cache
...
Adds a FramebufferCache singletion that operates the same way as UniformSetCache.
Allows creating framebuffers on the fly (and keep them cached if re-requested) such as:
```C++
RID fb = FramebufferCache::get_singleton()->get_cache(texture1,texture2);
```
2022-08-05 13:37:29 +02:00
Hugo Locurcio
db22b7ded0
Rename shader parameter uniform setter/getter methods for consistency
...
`shader_uniform` is now consistenly used across both per-shader
and per-instance shader uniform methods. This makes methods easier
to find in the class reference when looking for them.
2022-08-04 23:17:06 +02:00
Rémi Verschelde
8a9700c8a7
Force disable S3TC support on Android/iOS since we don't handle it
...
Fixes #63909 for now.
This could be improved in the future if we want to properly support S3TC on mobile.
2022-08-04 18:27:56 +02:00
Rémi Verschelde
2c0c76c415
Merge pull request #61851 from Calinou/particles-default-global-coordinates
2022-08-03 11:38:23 +02:00
Rémi Verschelde
b27f06550c
Merge pull request #51531 from Calinou/decal-projector-add-nearest-mipmap-aniso
2022-08-03 11:37:28 +02:00
Rémi Verschelde
15fdf7bc86
Merge pull request #58611 from Calinou/ssr-fix-blend-margin
...
Fade screen-space reflection towards inner margin
2022-08-03 07:54:59 +02:00
Yuri Rubinsky
988041b74c
Merge pull request #63847 from Zylann/shader_switch_uint
2022-08-03 08:05:19 +03:00
Hugo Locurcio
d041ca6c02
Add Nearest Mipmap Anisotropic filter option to decals and projectors
...
This is consistent with the BaseMaterial3D filtering options.
It can be used for high-quality pixel art textures that remain sharp
when viewed at oblique angles, but prevents them from becoming grainy
thanks to mipmaps.
2022-08-03 03:49:15 +02:00
Hugo Locurcio
d38671827b
Fade screen-space reflection towards inner margin
...
- Fade reflection towards inner margin and clip it at screen edges
instead of external margin.
- Round edges of the fade margin if both are being cut off to prevent
sharp corners.
Co-authored-by: puchik <puchik@users.noreply.github.com>
2022-08-03 01:55:42 +02:00
Marc Gilleron
779a5cd34a
Allow shading language to use switch
statement with uints
2022-08-02 23:08:41 +01:00
Hugo Locurcio
84076513b1
Use global coordinates for particles by default
...
Particles won't move or rotate anymore with the node (or its parents)
by default. This new default behavior is generally more suited
to most use cases. Local coordinates can still be enabled on a per-node basis.
This affects both 2D and 3D particles, and both CPU and GPU-based particles.
2022-08-02 23:25:02 +02:00
Rémi Verschelde
f450f242b9
Merge pull request #62639 from Calinou/line-antialiasing-decrease-feather-width
2022-08-02 21:00:01 +02:00
Patrick Exner
fe5901310e
Add spatial built-ins (camera-pos, object-pos, camera-eye etc.)
2022-08-02 17:30:41 +02:00
clayjohn
2640e9ee22
Disable multiview shader versions when xr is disabled
2022-08-02 09:55:53 -04:00
Rémi Verschelde
8cce479c01
Merge pull request #51672 from Calinou/shader-add-hint-transparent-texture
...
Add `hint_transparent` to use a transparent black placeholder texture
2022-08-02 07:15:59 +02:00
Rémi Verschelde
bda2274969
Merge pull request #63627 from and-rad/vector-field-attractor-fix
...
Fix vector field particle attractor texture sampling
2022-08-02 07:13:04 +02:00
Rémi Verschelde
2cdef4d532
Merge pull request #63589 from RandomShaper/sdfgi_debug_pc
...
Keep SdfgiDebug shader's push constant size <= 128
2022-08-02 07:11:58 +02:00
Rémi Verschelde
8de2cc04a7
Merge pull request #63793 from RandomShaper/fix_unbound_resource
...
Fix uniform set creation error due to null RID
2022-08-02 07:10:20 +02:00
Hugo Locurcio
813f6a5d57
Add hint_transparent
to use a transparent black placeholder texture
...
This can be used in shaders to avoid the need to supply a transparent
placeholder texture manually.
2022-08-01 23:38:06 +02:00
Rémi Verschelde
67c5741c03
Merge pull request #63767 from kubecz3k/fix/headless-collision
2022-08-01 22:04:09 +02:00
Pedro J. Estébanez
2df767d31e
Fix uniform set creation error due to null RID
2022-08-01 21:59:13 +02:00
Yuri Rubinsky
9ec6de1767
Merge pull request #63766 from Chaosus/fix_shader_instance_uniform
2022-08-01 15:04:54 +03:00
Yuri Rubinsky
81c44718ca
Fix passing values to the instance uniforms in the shader
2022-08-01 13:45:29 +03:00
Jakub Grzesik
3c55637459
fix for headless collision shape generation
...
this commit implements just enough of dummy mesh_storage so collision shapes are still generated in the headless mode
implementation was inspired by rasterizer_dummy.h from Godot3
2022-08-01 12:38:07 +02:00
Rémi Verschelde
121d6fdace
Merge pull request #63754 from BastiaanOlij/storage_struct_private
...
Changed storage structs to private
2022-08-01 09:37:36 +02:00
Rémi Verschelde
de53e91b85
Merge pull request #55276 from Calinou/volumetric-fog-tweak-default-gi-inject
...
Tweak default fog settings for better appearance
2022-08-01 07:55:53 +02:00
Rémi Verschelde
677f565ce8
Merge pull request #63587 from clayjohn/specular-occlusion
...
Treat specular less than 0.02 as occlusion
2022-08-01 07:54:57 +02:00
Bastiaan Olij
81c6f73109
Changed storage structs to private
2022-08-01 11:59:14 +10:00
Hugo Locurcio
e35e79b802
Tweak default fog settings for better appearance
...
- Increase the default non-volumetric fog density to 0.01 to make
adjustments more visible.
- Use a less saturated non-volumetric fog color by default
(a mix of the sky and horizon colors of the new default
ProceduralSkyMaterial).
- Set Volumetric Fog Gi Inject to 1.0 by default. Injecting GI results
in more realistic appearance of volumetric fog, at a very low
performance cost.
2022-08-01 02:04:20 +02:00
clayjohn
0c65ed38a6
Treat specular less than 0.02 as occlusion
...
This is a very common hack used in almost all PBR renderers to allow removing specular contribution in dielectric materials
2022-07-31 15:45:21 -07:00
Hugo Locurcio
a0795b4347
Tweak VoxelGI defaults for better quality
...
Overall brightness is similar to the previous settings, but lighting
now fades off more naturally and reflections feature indirect lighting.
Performance is identical.
- Enable Use Two Bounces by default.
- Decrease Propagation to 0.5 to compensate for the second bounce.
2022-07-31 18:05:24 +02:00
Hugo Locurcio
0e26fee3b7
Make Decal's modulate
property affect emission color as well
...
This can be used to recolor special effects such as fake area fog
without having to create separate textures for each color.
- Improve the Decal class documentation.
2022-07-30 21:41:48 +02:00
LinuxUserGD
6e6569aa78
fix 'Comparison result is always the same' warnings
2022-07-29 19:45:22 +02:00
Rémi Verschelde
7199314eb3
Merge pull request #63595 from reduz/remove-signal-connect-binds
...
Remove Signal connect binds
2022-07-29 18:10:39 +02:00
Andreas Raddau
dfc6035ce1
Fix vector field particle attractor texture sampling
2022-07-29 16:52:54 +02:00
Juan Linietsky
d4433ae6d3
Remove Signal connect binds
...
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
Pedro J. Estébanez
278950f731
Keep SdfgiDebug shader's push constant size <= 128
2022-07-29 13:25:11 +02:00
Rémi Verschelde
2bf8c4a6d0
Merge pull request #63527 from BastiaanOlij/rework_environment
...
Restructure environment in render implementation
2022-07-29 08:05:40 +02:00
Bastiaan Olij
f579125eeb
Restructure environment in render implementation
2022-07-29 12:24:32 +10:00
Rémi Verschelde
8e0f328a80
Merge pull request #59840 from Calinou/renderingserver-global-uniform-rename
2022-07-28 20:34:17 +02:00
Hugo Locurcio
4b42379c8f
Rename RenderingServer global shader uniform methods to be more explicit
...
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
2022-07-28 18:46:59 +02:00
Hugo Locurcio
e24029edc3
Allow changing mipmap LOD bias when FSR 1.0 scaling is not used
...
Mipmap LOD bias can be useful to improve the appearance of distant
textures without increasing anisotropic filtering (or in situations
where anisotropic filtering is not effective).
`fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly.
The property hint now allows for greater precision as well.
2022-07-28 17:51:13 +02:00
Rémi Verschelde
82811367cb
Merge pull request #63571 from RandomShaper/conservative_validate_vrs
2022-07-28 15:34:47 +02:00
Pedro J. Estébanez
5f71b55380
Improve handling of the format of the VRS image
...
- Validate format conservatively. (This is to have VRS images created regardless whether VRS attachments are supported, which avoids errors in places where the code assumes such images were created on low-spec GPUs.)
- Create a non-layered default VRS image, which is what Vulkan (and D3D12, by the way) expect.
2022-07-28 12:24:03 +02:00
Rémi Verschelde
199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local
2022-07-28 10:03:07 +02:00
Bastiaan Olij
1dd671014b
Add startup flag to override XR mode settings
2022-07-28 11:50:34 +10:00
Rémi Verschelde
bb94e16bd8
Merge pull request #63406 from Zylann/init_viewport_fields
2022-07-27 12:29:05 +02:00
Rémi Verschelde
a7335b00e6
Merge pull request #62362 from clayjohn/VULKAN-halo
2022-07-27 11:17:34 +02:00
Rémi Verschelde
cade90a807
Merge pull request #58296 from Calinou/decal-distance-fade-tweak-defaults
2022-07-27 09:44:47 +02:00
Rémi Verschelde
d5ec1a9650
Merge pull request #63477 from Chaosus/shader_fix_fog
2022-07-27 09:35:30 +02:00
clayjohn
7e7c6995e3
Use full size mipmaps for reflections when in high-quality mode
2022-07-26 23:53:05 -07:00
Yuri Rubinsky
05bc55b2ad
Merge pull request #63522 from Chaosus/shader_fix_projection
2022-07-27 09:38:14 +03:00
Yuri Rubinsky
2dc59a3eea
Fix incorrect conversion of default value for mat4 uniform in shaders
2022-07-27 09:06:18 +03:00
Yuri Rubinsky
bbf76faf86
Fix FOG
built-in in spatial/fragment shader
2022-07-27 08:31:06 +03:00
Bastiaan Olij
0bd042c601
Change RendererSceneRender::GeometryInstance so more code is shared among renderers
2022-07-27 12:32:07 +10:00
Hugo Locurcio
a151a74a98
Tweak Decal distance fade defaults and add property hints
...
The new default values are more usable in real world scenarios
when smooth fading of distant decals is desired for performance reasons.
The Decal distance fade property hints were adjusted based on the
GeometryInstance3D visibility range fade property hints. `or_greater`
was also added to allow specifying larger values if needed.
2022-07-27 03:15:46 +02:00
Rémi Verschelde
2d2b85d400
Merge pull request #62972 from Chaosus/shader_groups
...
Implement shader uniform groups/subgroups
2022-07-26 15:16:33 +02:00
Rémi Verschelde
f94b4dbe22
Merge pull request #63236 from halgriffiths/fix-texture-rect-transpose
...
send FLAGS_TRANSPOSE_RECT to Vulkan
2022-07-26 13:22:32 +02:00
Yuri Rubinsky
886c2d9681
Implement shader uniform groups/subgroups
2022-07-26 11:26:09 +03:00
Bastiaan Olij
bad5c659a4
Move Sky(RD) into environment
...
Move Fog logic from render scene render to fog
2022-07-26 10:19:40 +10:00
Juan Linietsky
c7255388e1
Remove ThreadWorkPool, replace by WorkerThreadPool
...
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
Rémi Verschelde
49b0aa93e3
Merge pull request #63424 from Chaosus/shader_preprocessor_inc_fix
2022-07-25 14:56:06 +02:00
Yuri Rubinsky
be3fb7a216
Fix errors when using built-ins in shaderinc
2022-07-25 12:33:04 +03:00
Rémi Verschelde
90019676b0
Code quality: Fix header guards consistency
...
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
Rémi Verschelde
3084a48ace
Merge pull request #63219 from reduz/implement-vector4-projection
2022-07-25 11:13:27 +02:00
Marc Gilleron
5690f47135
Initialize default values for viewports in rendering server.
...
Example with TAA: by default it is `false` in project settings and in
the Viewport node. When the scene tree is created, Viewport.set_use_taa()
is called with the value from ProjectSettings. But because the default
values are already the same, RenderingServer isn't called.
The Viewport struct in the RenderingServer does not initialize this field,
so TAA gets randomly enabled when the game starts with default settings.
2022-07-24 21:39:06 +01:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Yuri Rubinsky
6d992abb54
Fix some errors after shader preprocessor PR
2022-07-23 09:38:59 +03:00
Rémi Verschelde
fe929d4787
Merge pull request #62513 from reduz/shader_preprocessor_remake
2022-07-23 00:02:33 +02:00
Rémi Verschelde
4f7bfacfcd
Merge pull request #62478 from BastiaanOlij/split_effects_20220628
2022-07-22 23:44:52 +02:00
reduz
f649678402
Clean up Shader Preprocessor
...
* Moved preprocessor to Shader and ShaderInclude
* Clean up RenderingServer side
* Preprocessor is separate from parser now, but it emits tokens with include location hints.
* Improved ShaderEditor validation code
* Added include file code completion
* Added notification for all files affected by a broken include.
2022-07-22 22:53:03 +02:00
Yuri Roubinsky
7b94603baa
Adding shader preprocessor support
...
Co-authored-by: TheOrangeDay <6472143+TheOrangeDay@users.noreply.github.com>
2022-07-22 22:51:57 +02:00
halgriffiths
d37ebc2bdc
send FLAGS_TRANSPOSE_RECT to Vulkan
2022-07-22 13:49:04 +01:00
luz paz
38aaaa3cf9
Fix various typos not caught by codespell
...
Revert upstream `core/input/gamecontrollerdb.txt`. Upstream fix: https://github.com/gabomdq/SDL_GameControllerDB/pull/600
2022-07-21 07:38:23 -04:00
bruvzg
8823eae328
Rename OSX to macOS and iPhoneOS to iOS.
2022-07-21 09:37:52 +03:00
Bastiaan Olij
eefcb5ed67
Move screen space effects into a separate class
2022-07-19 13:27:39 +10:00
Rémi Verschelde
abe8b88702
Merge pull request #62834 from RandomShaper/fix_vk_sky_error
...
Bind correct default resource type in GI
2022-07-18 23:39:21 +02:00
Rémi Verschelde
d29e17d9d2
Merge pull request #63057 from sakrel/vulkan-fix-2d-shadows
2022-07-18 21:53:12 +02:00
Rémi Verschelde
9276c65522
Merge pull request #62265 from d-robbins/specular_shininess_used
2022-07-18 21:35:46 +02:00
Rémi Verschelde
5bea531228
Merge pull request #62848 from RandomShaper/shader_writability_improvement
2022-07-18 15:11:42 +02:00
Pedro J. Estébanez
4ac2008782
Make SDFGI direct light shader follow the same-writability rule
2022-07-18 14:46:29 +02:00
David R
c2b0a873c2
added usage_defines for SPECULAR_SHININESS
...
added usage defines for opengl3 renderer
2022-07-18 00:45:42 +02:00
Bastiaan Olij
d139131aab
Adding Variable Rate Shading support to Godot
...
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
Fabian Keller
2bf9e6090c
rename translate(d) to translate(d)_local in Transform 2D/3D
2022-07-16 11:47:54 +02:00
sakrel
16a8967757
Fix DirectionalLight2D and PointLight2D shadows not rendering correctly
2022-07-15 23:55:15 +02:00
Rémi Verschelde
7e49c8c30e
Merge pull request #62947 from BastiaanOlij/fix_mesh_instance_free
2022-07-14 00:05:25 +02:00
Hugo Locurcio
21ea1c3835
Rename soft shadow quality project settings for easier searching
...
`rendering/quality/shadows` is now `rendering/quality/positional_shadow`
to explicitly denote that the settings only affect positional light shadows,
not directional light shadows.
Shadow atlas settings now contain the word "atlas" for easier searching.
Soft shadow quality settings were renamed to contain the word "filter".
This makes the settings appear when searching for "filter" in the
project settings dialog, like in Godot 3.x.
2022-07-13 19:56:02 +02:00
Bastiaan Olij
6930ad2777
Fix typo, call mesh_instance_free not mesh_free
2022-07-12 22:30:08 +10:00
Hugo Locurcio
0f18bd244e
Fix dead link in TAA resolve shader comment
...
Spartan Engine has recently removed its own internal TAA in favor
of FSR 2.0. The link has been changed to point to a fixed commit,
so the link will keep working as long as the repository exists.
2022-07-09 22:51:54 +02:00
Pedro J. Estébanez
ba39230ef3
Bind correct default resource type in GI
2022-07-08 19:07:28 +02:00
Xentripetal
f514b82fd3
Account for relative z-indexes when y-sorting
2022-07-08 09:18:00 -05:00
Rémi Verschelde
99df193bea
Merge pull request #62277 from RandomShaper/depth_buffer_no_sampling
...
Rationalize certain cases of texture usage flags
2022-07-08 11:34:09 +02:00
Yuri Rubinsky
3dc1a1dbfb
Prevent possible crash when mesh is freed
2022-07-06 19:52:54 +03:00
lawnjelly
1f69666209
Remove Octree
...
Octree is no longer used in 4.x.
2022-07-06 14:10:05 +01:00
Rémi Verschelde
55fca1cb94
Merge pull request #62344 from BastiaanOlij/extract_dependencies
2022-07-06 13:24:46 +02:00
Hugo Locurcio
c9037a8d2c
Remove unused anisotropy setter/getter methods in VoxelGI
...
These methods weren't exposed to the scripting API.
Anisotropy was used in earlier iterations of VoxelGI, but it was
removed as it was too expensive.
2022-07-06 02:40:49 +02:00
Hugo Locurcio
cf1ce8494d
Improve antialiased line drawing sharpness and respect of original width
...
Antialiased lines with a width of 2 pixels or more now use a smaller
feather width of 1.25 instead of 2.0. This makes them look sharper
and better preserves their original shape while still having good
antialiasing quality.
This also improves the appearance of thin antialiased lines by
slightly increasing their feather size (from 1.0 to 1.25). It
makes them appear a tad thicker, but the antialiasing quality is
much improved by doing this.
2022-07-02 18:45:42 +02:00
Rémi Verschelde
6bbfd160b0
SCons: Properly track codegen script dependency for generated GLSL headers
2022-07-02 16:01:48 +02:00
Hugo Locurcio
f9e6b292e2
Remove debugging print following GI reorganization
2022-07-01 20:08:10 +02:00
clayjohn
93c82ab4b9
Evaluate specular reflections using specular dominant direction instead of assuming mirror reflections
2022-06-29 23:36:18 -07:00
Rémi Verschelde
2d28bb8364
Merge pull request #62482 from JFonS/fix_crash_canvas_mode
2022-06-28 15:31:51 +02:00
Rémi Verschelde
d53f1fb388
Merge pull request #60935 from Calinou/geometryinstance3d-gi-mode-default-static
...
Use the Static global illumination mode in GeometryInstance3D by default
2022-06-28 14:40:53 +02:00
JFonS
8102db90bc
Fix crash in Environment "Canvas" background mode.
2022-06-28 13:25:18 +02:00
Rémi Verschelde
16d9918b51
Merge pull request #62467 from RandomShaper/descriptor_rw_matters
...
Consider uniform writability part of the interface of the set
2022-06-28 08:25:38 +02:00
Je06jm
c2550e1cc0
Fixed FSR. Before, it was commiting the
...
raw render to the screen. Now, it commits
the fsr upscaled image
2022-06-27 18:01:12 -06:00
Pedro J. Estébanez
fc6ac4a155
Consider uniform writability part of the interface of the set
2022-06-27 21:56:18 +02:00
Bastiaan Olij
ecfcfd97fa
Split dependency logic
...
Split FOG
Split visibility notifier
Final cleanup of storage classes
2022-06-28 00:10:29 +10:00
Pedro J. Estébanez
678a9ca221
Rationalize certain cases of texture usage flags
...
- Check for exhaustive usage flags for depth buffer
- Remove uneeded storage flag from normal-roughness buffer
2022-06-27 11:28:38 +02:00
Bastiaan Olij
4e8e10a186
Fix typo in roughness shaders
2022-06-26 12:43:21 +10:00
Bastiaan Olij
6224b00365
Moved cube_to_dp and cubemap logic into CopyEffects
2022-06-24 18:04:28 +10:00
Hugo Locurcio
610363add0
Use the Static global illumination mode in GeometryInstance3D by default
...
This makes VoxelGI and SDFGI work out of the box with primitive meshes,
loaded OBJ meshes and CSG nodes.
2022-06-23 22:34:23 +02:00
Rémi Verschelde
051fb86fb0
Merge pull request #61221 from BastiaanOlij/split_gi_effects
2022-06-23 12:28:10 +02:00
Rémi Verschelde
d8ef904ffc
Merge pull request #35758 from zmanuel/eliminate-draw-pending
...
Remove redundant thread sync counter draw_pending
2022-06-22 18:20:41 +02:00
Rémi Verschelde
e21db7723a
Merge pull request #62286 from JFonS/taa_global_time
2022-06-22 16:59:08 +02:00
Rémi Verschelde
95cafc7bcf
Merge pull request #62305 from JFonS/taa_molten_mobile_workaround
2022-06-22 16:58:31 +02:00
jfons
0f38e79617
Move TIME to a global shader variable
...
This makes it work consistently for motion vectors in all functions, including user-defined ones.
2022-06-22 12:24:37 +02:00
JFonS
9b4e07f866
Workaround MoltenVK shader conversion error
2022-06-22 11:58:50 +02:00
Bastiaan Olij
997810e417
Split GI effects and fix stereoscopic rendering of GI effects
2022-06-22 12:50:17 +10:00
Rémi Verschelde
40c360b870
Merge pull request #62122 from reduz/implement-movie-writer
...
Implement a Movie Maker mode
2022-06-21 14:24:14 +02:00
reduz
5786516d4d
Implement Running Godot as Movie Writer
...
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.
This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).
**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).
Usage:
$ godot --write-movie movie.avi [scene_file.tscn]
Missing:
* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
reduz
141c375581
Clean up Hash Functions
...
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
2022-06-20 12:54:19 +02:00
Rémi Verschelde
3a2b409c5a
Merge pull request #62106 from BastiaanOlij/eye_offset
...
Introduce eye_offset for correcting stereoscopic reflections
2022-06-18 10:40:57 +02:00
Bastiaan Olij
b4821fe2e0
Introduce eye_offset for correcting stereoscopic reflections
...
Use view instead of vertex for reflections.
2022-06-17 19:39:34 +10:00
Hugo Locurcio
787a1e006b
Fix glow in Mix mode not working correctly when FXAA is enabled
...
Glow must be performed after FXAA to ensure correct appearance.
2022-06-15 22:23:56 +02:00
clayjohn
a94110d0c6
Remove GLES2 shader constraints from GLES3
2022-06-14 12:01:52 -07:00
Hugo Locurcio
0225c6d31a
Tweak Light3D property hints for greater flexibility
...
- Specular can now be set above 1.0.
- Blur can be set to 0 to disable shadow blurring entirely, which is useful
on lights that have a non-zero size.
- When shadow blurring is disabled, lights that have a non-zero size will
not use PCSS-like soft shadows, speeding up shadow rendering
considerably.
- Some property hints now allow more precise values.
2022-06-13 14:31:46 +02:00
Hugo Locurcio
5d9e996f68
Use opaque rendering pipeline for alpha hash materials
...
This has several benefits:
- Transparency sorting issues inherent to alpha blending no longer occur.
- Alpha hash materials can now cast shadows (also works with
GeometryInstance3D Transparency's property for alpha hash materials).
- Higher performance.
2022-06-10 11:14:04 +02:00
Yuri Rubinsky
c9ae83b5ab
Prevent defining float constant without number after exponent in shaders
2022-06-10 11:35:56 +03:00
Yuri Rubinsky
5dd7a1030d
Fix incorrect sky rotation based on camera axis
2022-06-09 22:40:40 +03:00
Yuri Rubinsky
d8842f1a4b
Fix TIME
compilation for custom functions in spatial shader
2022-06-09 20:12:25 +03:00
jfons
36382ab7eb
Workaround MoltenVK error found in TAA implementation
2022-06-09 16:40:00 +02:00
clayjohn
a0338553b5
Assign VIEWPORT_SIZE after validating screen_size to avoid crash when using ReflectionProbe
2022-06-08 15:01:12 -07:00
Rémi Verschelde
48dcafeed9
Merge pull request #61794 from clayjohn/VULKAN-viewport-size
...
Use RenderBuffer size instead of half extents for VIEWPORT_SIZE
2022-06-08 07:16:25 +02:00
clayjohn
b6649828cd
Use RenderBuffer size instead of half extents for VIEWPORT_SIZE in Vulkan spatial shaders
2022-06-07 15:01:20 -07:00
jfons
ba832d83b2
Initial TAA implementation
...
Initial TAA support based on the implementation in Spartan Engine.
Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
2022-06-07 13:14:44 +02:00
Rémi Verschelde
361a401fbb
Merge pull request #61554 from Chaosus/shader_fix_hints
2022-06-03 17:26:18 +02:00
Bastiaan Olij
69b66ec425
Ensure has_os_features is safely called as it can't be called from within the construct of RenderingServerDefault on which it relies
2022-06-01 20:47:32 +10:00
Rémi Verschelde
d8b0a8cd29
Merge pull request #61572 from clayjohn/ssao-license
2022-05-31 18:56:16 +02:00
clayjohn
06f356d41e
Add and improve license attribution for SSAO and SSIL shader code
2022-05-31 09:42:50 -07:00
Yuri Rubinsky
cf240a7ae0
Refactor shader hints
2022-05-31 11:51:47 +03:00
clayjohn
2ba53547c9
Fix error with !rb spam when using background color mode with reflection probes
2022-05-28 18:11:28 -07:00
clayjohn
7b71545652
Remove mesh and particles RD dependencies from canvas rendering server
2022-05-26 10:43:37 -07:00
Rémi Verschelde
20a1b85589
Merge pull request #61425 from clayjohn/GLES3-2D
2022-05-26 01:16:52 +02:00
clayjohn
fb860265e0
Implement 2D Meshes and MultiMeshes in GLES3 backend
2022-05-25 15:46:24 -07:00
Hugo Locurcio
e85459dcd1
Add Cone and Cylinder shapes to FogVolume
...
This complements the existing Ellipsoid and Box local fog shapes.
This can be used to represent a light cone coming from a SpotLight.
2022-05-25 12:35:53 +02:00
GanidhuAbey
3c95a70081
Fix particle system from going inactive early
...
Prevents particles from freezing and dissapearing by resetting
it's inactive time when particles are emitted.
2022-05-24 17:31:21 -06:00
Rémi Verschelde
12ddaa36a6
Merge pull request #60641 from clayjohn/Sky-ign
...
Use IGN instead of white noise for sky dithering
2022-05-24 23:34:41 +02:00
clayjohn
3e20c1347d
Add clipping, backbuffer, and CanvasGroups to 2D GLES3 renderer
...
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
2022-05-24 11:00:34 -07:00
clayjohn
4f82b1bd20
Use IGN instead of white noise for sky dithering
2022-05-24 10:57:07 -07:00
Rémi Verschelde
1314e6cbcc
Merge pull request #60803 from Chaosus/shader_hint_rename
...
Rename `hint_albedo`, `hint_white/black` in shaders
2022-05-24 08:15:33 +02:00
Rémi Verschelde
126470caa1
Merge pull request #61226 from Chaosus/shader_fix_keyword_completion
2022-05-23 19:05:29 +02:00
Hugo Locurcio
209d7eb7ea
Fix typo in occlusion culling warning method name
2022-05-23 09:34:28 +02:00
trollodel
fe3371a9a9
Add timestamps to some rendering effects
2022-05-21 17:47:28 +02:00
Rémi Verschelde
a53434639f
Merge pull request #61214 from somnathsarkar/particle-attractor-fix
...
Fix GPUParticles3D disappearance at attractor origins
2022-05-21 08:48:36 +02:00
Somnath Sarkar
99911bfa79
Fix GPUParticles3D disappearance at attractor origins
2022-05-20 19:56:32 -04:00
reduz
45af29da80
Add a new HashSet template
...
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
Yuri Rubinsky
29ff04acf2
Fix incorrect keyword completion after period in shader editor
2022-05-20 18:40:57 +03:00
Windy Darian
a3e016e07e
Fix normal and tangent blending in blend shapes
2022-05-20 07:59:45 -04:00
Aaron Record
900c676b02
Use range iterators for RBSet in most cases
2022-05-19 12:09:16 +02:00
Haoyu Qiu
fc3b845c07
Add dedicated macros for property name extraction
...
* Replace case-by-case extraction with PNAME & GNAME
* Fix group handling when group hint begins with property name
* Exclude properties that are PROPERTY_USAGE_NO_EDITOR
* Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-19 14:08:47 +08:00
Yuri Rubinsky
5322b171de
Fix tonemapper shader to correctly apply alpha channel
2022-05-18 06:43:07 +03:00
clayjohn
600d8105d8
Fix custom irradiance bug in Vulkan mobile renderer
2022-05-16 11:57:41 -07:00
reduz
746dddc067
Replace most uses of Map by HashMap
...
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
(order matters) but use is discouraged.
There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Somnath Sarkar
52aeaf5d16
Fix computation of screen_uv
2022-05-16 00:00:01 -04:00
Rémi Verschelde
349aa9c884
Merge pull request #60894 from derammo/derammo_opengl3_windows
2022-05-13 15:07:13 +02:00
Bastiaan Olij
fe8c8eeba8
Copy_to_fb is available in both raster and clustered renderers, remove unwanted checks
2022-05-13 13:19:42 +10:00
Rémi Verschelde
9cf9054c3e
Merge pull request #60976 from Calinou/fsr-rename-property-hint
2022-05-12 23:12:03 +02:00
Rémi Verschelde
ff30a09993
Merge pull request #60643 from clayjohn/GLES3-3D
2022-05-12 21:08:02 +02:00
clayjohn
652adcd5bf
Basic 3D rendering
2022-05-12 10:37:27 -07:00
Hugo Locurcio
0cdd7d88ad
Rename remaining references of FSR to FSR 1.0
...
With FSR 2.0 around the corner, we should avoid any ambiguity by
explicitly stating the version number.
2022-05-12 18:22:43 +02:00
reduz
8b7c7f5a75
Add a new HashMap implementation
...
Adds a new, cleaned up, HashMap implementation.
* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing ).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).
This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
clayjohn
2bf8831dd6
SceneShader compiling
2022-05-11 21:00:21 -07:00
clayjohn
3bb8e6a9fe
SkyShaders working
2022-05-11 21:00:21 -07:00
derammo
96c21bc749
opengl3 driver now works on windows including multi window
...
fixed and simplified gl_manager_windows
swap buffers now called for all windows
fixed missing pixel format setting in additional windows
this makes them work in OpenGL contexts
changed verbose error printing to write once
this error message happens very frequently while opengl3 is not finished
removed dead code no longer needed after changes
fixed comments that were misinformation
window messages during window creation now handled
these were previously discarded
messages now tunnel the required context
changed failure to create opengl3 window on windows to be more fatal
marked a problem with pen code
conditional compilation of vulkan and opengl3 on windows fixed
windows debug builds now show messages on debug console also
rendering driver selection box now shows only compiled drivers
marked some problematic code
thanks to akien-mga for patiently rewriting my style mistakes
2022-05-11 16:12:40 -04:00
Bastiaan Olij
9939cfc4c4
Split out bokeh_dof and copy effects
2022-05-11 11:08:56 +10:00
Rémi Verschelde
d8935b27a9
Fix warnings found by Emscripten 3.1.10
...
Fix `-Wunused-but-set-variable`, `-Wunqualified-std-cast-call`, and
`-Wliteral-range` warnings.
2022-05-10 13:03:13 +02:00
Yuri Roubinsky
a8bbe570ca
Rename hint_albedo
, hint_white/black
in shaders
2022-05-09 22:50:18 +03:00
Yuri Roubinsky
8ed84a9f01
Fix instance uniform shader crash in custom functions
2022-05-09 17:10:42 +03:00
Rémi Verschelde
8fb02635d4
Merge pull request #60772 from MightiestGoat/multimesh-uniform-set
...
Fix the uniform set creation of multimesh with a invalidated buffer
2022-05-05 16:55:48 +02:00
mightygoat
61df370810
Check multimesh before uniform set creation
2022-05-05 12:25:02 +05:30
mightygoat
10209e31eb
Fix the uniform set creation of multimesh with a invalidated buffer
2022-05-05 06:59:47 +05:30
Rémi Verschelde
477b53d280
Merge pull request #60568 from Chaosus/shader_keyword_completions
...
Add keyword completion to shader editor
2022-05-04 23:27:33 +02:00
Rémi Verschelde
c114823471
Merge pull request #58298 from Calinou/decal-distance-fade-use-easing
2022-05-04 21:50:20 +02:00
Aaron Franke
fa7a7795f0
Rename Basis get_axis to get_column, remove redundant methods
2022-05-03 09:37:47 -05:00
Rémi Verschelde
6530d46d67
Merge pull request #51102 from Calinou/renderingserver-add-api-version-getter
...
Add `get_video_adapter_api_version()` to RenderingServer
2022-05-03 14:44:55 +02:00
Rémi Verschelde
931838b330
Merge pull request #60627 from aaronfranke/rename-elements
...
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03 14:40:01 +02:00
Hugo Locurcio
180e5d3028
Remove RES
and REF
typedefs in favor of spelled out Ref<>
...
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Hugo Locurcio
31194f5b1c
Add get_video_adapter_api_version()
to RenderingServer
...
This method can be used to get the graphics API version currently in
use (such as Vulkan). It can be used by projects for troubleshooting
or statistical purposes.
2022-05-03 01:18:35 +02:00
Hugo Locurcio
618c88c71b
Make Decal distance fade smoother
...
`smoothstep()` avoids the sudden transparency jump when entering or
leaving a decal's distance fade margin distance. This in turn helps
make opacity transitions less noticeable to the player, as it's
less likely to catch the player's eye.
2022-05-02 23:14:00 +02:00
Rémi Verschelde
7f181494d1
Merge pull request #60705 from awsker/fix-viewport-clearing
...
Viewport would be cleared even when clear_mode was set to never clear
2022-05-02 21:25:42 +02:00
Rémi Verschelde
c273ddc3ee
Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init
...
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.
Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.
Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
awsker
9522419e97
Viewport would be cleared even when clear_mode was set to VIEWPORT_CLEAR_NEVER
2022-05-02 11:03:39 +02:00
Yuri Rubinsky
c25c837f21
Merge pull request #60682 from Chaosus/shader_vec3_hint_color
2022-05-01 11:23:42 +03:00
Yuri Roubinsky
5eb3a0ef4a
Add hint_color
support for vec3
in shaders
2022-05-01 09:47:35 +03:00
clayjohn
623753a3a2
Use linear mipmap sampling in ToneMapper
2022-04-30 21:30:08 -07:00
Aaron Franke
1bf94dff3a
Rename Basis "elements" to "rows"
2022-04-29 08:02:56 -05:00
Aaron Franke
b831fb0a54
Rename Transform2D "elements" to "columns"
2022-04-29 08:02:39 -05:00
Yuri Roubinsky
15032e01e6
Add keyword completion to shader editor
2022-04-29 08:40:43 +03:00
Rémi Verschelde
cab171c54e
Merge pull request #60547 from BastiaanOlij/split_tonemapper_effect
...
Splitting tonemapper into its own class
2022-04-28 08:33:44 +02:00
Bastiaan Olij
3b2267ba6d
Splitting tonemapper into its own class
2022-04-28 15:00:30 +10:00
Rémi Verschelde
8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2
2022-04-27 10:08:26 +02:00
Hugo Locurcio
eb497bbaa7
Fix "ortogonal" -> "orthogonal" typo in rasterizer code
2022-04-26 21:49:44 +02:00
Yuri Roubinsky
643e75bea9
Prevent shader crash when using precision on boolean types
2022-04-26 12:30:24 +03:00
NNesh
2f33414dab
Fix clearing backbuffer if there are no items
2022-04-25 22:31:40 +05:00
Rémi Verschelde
fbfecc1dea
Merge pull request #60407 from JFonS/fix_color_pass_lm
2022-04-25 16:03:08 +02:00
bruvzg
be611c1c05
Implement Label3D node.
...
Add "generate_mipmap" font import option.
Add some missing features to the Sprite3D.
Move BiDi override code from Control to TextServer.
Add functions to access TextServer font cache textures.
Add MSDF related flags and shader to the standard material.
Change standard material cache to use HashMap instead of Vector.
2022-04-22 12:08:46 +03:00
Joan Fons
0d57bbaae5
Add missing color pass flags to the valid list
...
Some valid flag combinations were missing, causing error spam in certain situations.
2022-04-21 12:37:56 +02:00
bruvzg
de4c97758a
Fix more issues found by cppcheck.
2022-04-20 10:34:00 +03:00
Yuri Rubinsky
f4b0c7a1ea
Merge pull request #60175 from Geometror/visual-shader-vector4
2022-04-20 08:33:42 +03:00
Clay John
c77bbde7ae
Merge pull request #60214 from JFonS/fix_depth_prepass
...
Fix depth pre-pass on all face cull modes
2022-04-19 11:37:34 -07:00
Bastiaan Olij
0b4fd92a17
Moved particles into ParticlesStorage
2022-04-17 13:13:22 +10:00
Bastiaan Olij
b6faf6c6c0
Move light, reflection probe and lightmap into LightStorage
2022-04-17 13:13:18 +10:00
Bastiaan Olij
6b28d94e77
Merge canvas and decal into TextureStorage and add render target
2022-04-17 12:59:50 +10:00
Rémi Verschelde
8fee88947e
Merge pull request #60213 from JFonS/fix_depth_state
2022-04-13 18:28:49 +02:00
Joan Fons
1270b542bb
Fix depth pre-pass on all face cull modes
...
The default shadow material was used for depth rendering disregarding the cull mode of the original material. This commit adds a check so the default shadow material is only used when the original material has back-face culling.
2022-04-13 17:37:28 +02:00
Joan Fons
259e50f447
Fix regression in rasterizer state
...
Fixes a regression introduced by the color pass flags rework. The various rasterizer state structs were not being reset for each flag combination, which meant some state changes were wrongly applied to some flag combinations.
2022-04-13 16:21:40 +02:00
Rémi Verschelde
46ef52162e
Color: Rename to_srgb
/to_linear
to include base color space
...
This helps reduce confusion around sRGB <> Linear conversions by making
both input and output color spaces explicit.
2022-04-13 11:45:52 +02:00
Hendrik Brucker
cf58d23a72
Add Vector4 to VisualShader
2022-04-12 19:09:29 +02:00
Yuri Rubinsky
3d63f6e36d
Merge pull request #60171 from Chaosus/restore_aa
2022-04-12 18:09:58 +03:00
Rémi Verschelde
724dd82f92
Merge pull request #60069 from Calinou/fsr-fix-editor-enum
2022-04-12 14:33:52 +02:00
Rémi Verschelde
a7b1d85828
Merge pull request #59825 from Chaosus/shader_fix
...
Fix incorrect parsing array's `length()` at return statement in shader
2022-04-12 12:40:54 +02:00
Yuri Roubinsky
6e9535a9c8
Restore antialiasing for draw_line
2022-04-12 13:03:56 +03:00
Hugo Locurcio
1a41a177e4
Use less blur for distant directional shadow splits
...
This makes the transition between shadow splits less noticeable,
specially when the expensive Blend Splits property is disabled.
2022-04-11 19:37:49 +02:00
Rémi Verschelde
0fb3d69bb7
Merge pull request #60137 from JFonS/fix_default_shadow_tex
...
Fix Vulkan validation errors on default depth textures
2022-04-11 17:38:21 +02:00
Yuri Rubinsky
31d2304ac4
Merge pull request #57899 from Chaosus/fix_aa
2022-04-11 18:29:54 +03:00
Rémi Verschelde
dcdc6954f8
Merge pull request #60138 from JFonS/fix_spec_constants
2022-04-11 14:18:50 +02:00
jfons
c4c0ef116a
Fix specialization constant updates in color passes
...
The color pass specialization constants were not being updated after splitting them to their own array.
2022-04-11 12:40:17 +02:00
bruvzg
9381acb6a4
Make FileAccess and DirAccess classes reference counted.
2022-04-11 13:28:51 +03:00
jfons
bdc239a5a9
Fix Vulkan validation errors on default depth textures
...
The validation layers were complaining that we use DEFAULT_RD_TEXTURE_WHITE (which is RGBA8) in places where it's sampled as a depth texture. This commit adds the new default texture DEFAULT_RD_TEXTURE_DEPTH and uses it where needed.
2022-04-11 11:53:49 +02:00
Hugo Locurcio
d15b69118d
Fix 3D scaling enum size in the editor and improve descriptions
2022-04-09 17:53:45 +02:00
bruvzg
f851c4aa33
Fix some issues found by cppcheck.
2022-04-06 14:34:37 +03:00
Rémi Verschelde
f8ab79e68a
Zero initialize all pointer class and struct members
...
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Yuri Roubinsky
0864c9abaa
Fix incorrect parsing array's length()
at return statement in shader
2022-04-03 09:55:04 +03:00
Bastiaan Olij
b8be7903f3
Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorage
2022-04-02 16:29:04 +11:00
Yuri Rubinsky
9c5818d212
Merge pull request #59774 from Chaosus/shader_fix
2022-04-01 21:37:44 +03:00
jfons
e69d762dd0
Add color pass flags to Forward Clustered renderer
...
This commit removes a lot of enum values related to the color render pass in favor of a new flag-bases approach. This means instead of hard-coding all the possible option combinations into enums, we can write our logic by checking a bit-mask.
The changes in rendering_device_vulkan.cpp add support for unused attachments. That means RenderingDeviceVulkan::framebuffer_create() can take null RIDs in the attachments vector, which will result in VK_ATTACHMENT_UNUSED entries in the render pass.
This is used in this same PR to establish fixed locations for the color pass attachments (only color and separate specular so far, but TAA will add motion vectors as well). This way the attachment locations in the shader can stay the same regardless of which attachments are actually used.
Right now all the combinations of flags are generated, but we will need to add a way to limit the amount of combinations in the future.
2022-04-01 12:12:49 +02:00
Yuri Roubinsky
d47035a6fb
Fix shader crashing when attempting to access length()
at global space
2022-04-01 08:39:29 +03:00
Rémi Verschelde
155a94fabe
Merge pull request #59385 from BastiaanOlij/extract_shader_storage
2022-03-31 19:19:03 +02:00
Rémi Verschelde
a647fb3e62
Fix typos with codespell
...
Using codespell 2.2-dev from current git.
Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
Bastiaan Olij
36defd1179
Extract global variable, shader and material storage
2022-03-31 21:49:42 +11:00
Dimitris Nikolaidis
02572884f4
Fix canvas_group not being freed in RendererCanvasCull::free
2022-03-29 15:45:27 +03:00
Yuri Roubinsky
509598e8c0
Remove SHADOW_ATTENUATION
spatial light shader built-in
2022-03-29 08:43:31 +03:00
reduz
360dea5348
Add GDExtension support to Script
...
* Ability to create script languages from GDExtension
* Some additions to gdnative_extension.h to make this happen
* Moved the GDExtension binder to core
This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x.
Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-27 16:13:00 +02:00
nevarek
cc196393e3
Fix shader undefined variable
2022-03-25 01:40:04 -07:00
Bastiaan Olij
0fe06e9467
Extract Decal and Decal atlas from Storage class
2022-03-21 12:22:43 +11:00
Bastiaan Olij
0b5a9e4f6e
Call the correct texture free method on texture storage cleanup
2022-03-20 20:10:44 +11:00
nevarek
7543e22358
Add inverse projection matrix to fragment shader globals
2022-03-18 20:44:51 -07:00
Yuri Roubinsky
0d9aecd967
Rename several transform built-ins in shaders
2022-03-18 12:10:55 +03:00
Rémi Verschelde
756178d342
Merge pull request #59087 from clayjohn/sky-mode
...
Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enum
2022-03-18 00:09:35 +01:00
Rémi Verschelde
9263e4e63b
Merge pull request #58954 from Ansraer/alpha_scissor
...
[4.0] Fix alpha scissor support
2022-03-17 22:27:43 +01:00
Hugo Locurcio
c45d2c242b
Replace DirectionalLight3D's use_in_sky_only
with sky_mode
enum
...
3 options are available:
- Light and Sky (default)
- Light Only (new)
- Sky Only (equivalent to `use_in_sky_only = true`)
Co-authored by: clayjohn <claynjohn@gmail.com>
2022-03-17 14:00:02 -07:00
Rémi Verschelde
6228063972
Another -Wsign-compare
fix
...
Fixing CI while afk, fun.
2022-03-17 21:42:35 +01:00
Rémi Verschelde
0e9764607a
Fix -Wsign-compare
warning after #58993
2022-03-17 21:22:32 +01:00
Rémi Verschelde
e142c10fc5
Merge pull request #58993 from notSanil/device-limit-exceeded-fix
2022-03-17 19:55:40 +01:00
Ansraer
30a89b3f98
Fix alpha scissor support
2022-03-17 16:17:27 +01:00
notSanil
36fa7059ed
Fix device limit exceeding for uniform buffer
2022-03-16 16:52:35 +05:30
Bastiaan Olij
57e5a33623
Split dummy renderer classes into separate files
...
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-16 17:43:10 +11:00
Rémi Verschelde
cfd21adf64
Merge pull request #49092 from BastiaanOlij/multiview_clustered
...
Add multiview support to the clustered forward renderer
2022-03-16 00:17:57 +01:00
Rémi Verschelde
51bbcbdec2
Merge pull request #45263 from KoBeWi/ 😕
2022-03-15 13:18:27 +01:00
snowapril
b6f72f2b4a
Fix D_GGX code which can cause divide-by-zero val
...
When given roughness is lower than 0.01, d value in original code will
be zero. This can make last return value as NAN because of
divide-by-zero. This is well addressed in issue #56373 .
Modified code is referenced on D_GGX function of google/filament
(https://github.com/google/filament/blob/main/shaders/src/brdf.fs#L54-L79 )
Signed-off-by: snowapril <sinjihng@gmail.com>
2022-03-14 13:25:05 +09:00
Rémi Verschelde
7ed8d52fb2
Merge pull request #58819 from vreon/fix-eyedir-z
...
Fix flipped EYEDIR.z in sky shaders
2022-03-13 00:55:32 +01:00
kobewi
39d429e497
Change some math macros to constexpr
...
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
2022-03-09 16:24:32 +01:00
Jesse Dubay
d437355f55
Sky renderer: Only flip Z when calculating panorama_coords
2022-03-08 19:51:43 -08:00
Rémi Verschelde
1561737055
Merge pull request #49447 from Calinou/remove-shadow-color-property
...
Remove unused `shadow_color` property from Light3D
2022-03-08 07:48:05 +01:00
Rémi Verschelde
f488a841c7
Merge pull request #58779 from techiepriyansh/forward-mobile-ambient-accum
2022-03-07 16:46:33 +01:00
Jesse Dubay
ff2a5c04b1
Sky renderer: Don't invert Z component of light direction
2022-03-06 23:58:54 -08:00
reduz
b0ca03b0a2
Add a UniformSet cache
...
* Changed syntax usage for RD::Uniform to create faster with a single RID
* Converted render pass setup to use this in clustered renderer to test.
This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
2022-03-06 13:03:33 +01:00
Jesse Dubay
80345f7d4e
Fix flipped EYEDIR.z in sky shaders
2022-03-05 17:49:32 -08:00
Priyansh Rathi
8c37cfa5bb
use the computed value ambient_accum for ambient_light in scene_forward_mobile.glsl
2022-03-05 14:24:40 +05:30
Hugo Locurcio
aea104deb7
Remove unused shadow_color
property from Light3D
...
This shadow color property was no longer effective since the shaders
were optimized to improve occupancy.
2022-03-04 23:12:18 +01:00
Rémi Verschelde
c787f59931
Merge pull request #58734 from Calinou/tweak-render-timestamp-names
...
Tweak render timestamp names for explicitness and consistency
2022-03-04 20:43:08 +01:00
Rémi Verschelde
3078b92dff
Merge pull request #58512 from Calinou/light3d-add-distance-fade
2022-03-04 12:26:29 +01:00
Hugo Locurcio
c509a3a3a5
Tweak render timestamp names for explicitness and consistency
...
- Add 2D and 3D in timestamp names when needed to avoid ambiguity.
- Use present tense in all render timestamp names.
- Add a space after ">" (begin) and "<" (end) symbols.
- Remove redundant "End" in render timestamp names (indicated by "<").
2022-03-04 08:46:12 +01:00
Bastiaan Olij
e4b7a69bb6
Add multiview/stereoscopic rendering support to the clustered forward renderer
2022-03-03 20:06:14 +11:00
Rémi Verschelde
0036a41a10
Revert "Fix particle trail glitch"
2022-03-01 20:16:10 +01:00
Rémi Verschelde
e7176e6c85
Merge pull request #58614 from Calinou/ssr-roughness-quality-enum-fix-typo
...
Fix typo in SSR roughness quality enum value names
2022-02-28 10:51:20 +01:00
Hugo Locurcio
83efe4d8b0
Fix typo in SSR roughness quality enum value names
2022-02-28 01:06:26 +01:00
floppyhammer
1675c5375e
Fix particle trail glitch
2022-02-26 13:53:06 +08:00
Hugo Locurcio
b1a295b739
Implement distance fade properties in OmniLight3D and SpotLight3D
...
This can be used to fade lights and their shadows in the distance,
similar to Decal nodes. This can bring significant performance
improvements, especially for lights with shadows enabled and when
using higher-than-default shadow quality settings.
While lights can be smoothly faded out over distance, shadows are
currently "all or nothing" since per-light shadow color is no longer
customizable in the Vulkan renderer. This may result in noticeable
pop-in when leaving the shadow cutoff distance, but depending on the
scene, it may not always be that noticeable.
2022-02-25 15:17:35 +01:00
Darryl Ryan
3ce5cceef9
Filament specular fix. Clamp dot product between normal and view vectors. Fixes #58459 .
2022-02-23 18:16:52 +00:00
Bastiaan Olij
a78a9fee71
Implementing OpenXR driver
2022-02-23 12:02:24 +01:00
clayjohn
fe49244611
Use Filament specular models and parametrization
2022-02-22 19:39:41 -08:00
floppyhammer
0d5472dd1a
Fix GPUParticles2D emission offset in global coords
2022-02-22 17:50:01 +08:00
Rémi Verschelde
c77348b468
Merge pull request #58419 from clayjohn/Vulkan-anisotropy-crash
2022-02-22 09:09:16 +01:00
clayjohn
2da35d2b94
Fix shader compilation error with anisotropy
2022-02-21 22:58:33 -08:00
clayjohn
9d104ad839
Use properly use non-perceptual roughness when filtering radiance
2022-02-21 22:53:12 -08:00
Rémi Verschelde
7a68ee5134
Merge pull request #58266 from clayjohn/revert-sky-change
2022-02-18 12:07:40 +01:00
Rémi Verschelde
488116e4d8
Merge pull request #58236 from bruvzg/win_min_fix
2022-02-18 09:07:10 +01:00
clayjohn
e0384fb70e
Revert "Fix default sky process mode not being Real-Time"
...
This reverts commit aa1cba1d53
.
2022-02-17 23:13:10 -08:00
Rémi Verschelde
e1b8a86b2b
Merge pull request #58177 from clayjohn/VULKAN-prefiltered-radiance
2022-02-17 17:53:42 +01:00
bruvzg
0c27667124
[Windows] Fix Vulkan driver crash on sub-window minimization.
2022-02-17 13:34:08 +02:00
clayjohn
48728a79b6
Use prefiltered radiance
2022-02-16 21:37:18 -08:00
Rémi Verschelde
b8b4580448
Style: Cleanup single-line blocks, semicolons, dead code
...
Remove currently unused implementation of TextureBasisU, could be re-added
later on if needed and ported.
2022-02-16 14:06:29 +01:00
Yuri Roubinsky
a85b000967
Fix antialiasing for beginning/end of line in canvas_item_add_polyline
2022-02-16 14:34:42 +03:00
clayjohn
a38c3a763a
Properly exclude lights that are marked as sky only
2022-02-16 00:16:56 -08:00
Hugo Locurcio
aa1cba1d53
Fix default sky process mode not being Real-Time
...
The change in 09563e4bd8
wasn't
consistently carried out everywhere needed.
2022-02-16 01:51:48 +01:00
reduz
4f73d3beb4
Add Particle Shader Userdata
...
* Adds optional vec4 USERDATA1 .. USERDATA6 to particles, allowing to store custom data.
* This data is allocated on demand, so shaders that do not use it do not cost more.
2022-02-15 19:20:31 +01:00
Rémi Verschelde
5a6da0b2a9
Merge pull request #57905 from V-Sekai/fix_instance_clear_warnings
...
Free surface vertex_buffers after vertex_arrays to silence warnings
2022-02-15 08:32:32 +01:00
Rémi Verschelde
af91a42b0a
Merge pull request #57904 from V-Sekai/fix_double_free_warning
...
Fixes some 'Attempted to free invalid ID' warnings in mobile renderer
2022-02-15 08:30:44 +01:00
Rémi Verschelde
d1dbe21c56
Merge pull request #57980 from akien-mga/vulkan-1.3.204
2022-02-12 10:21:27 +01:00
Hendrik Brucker
b396fd4eef
Improve compilation speed (forward declarations/includes cleanup)
2022-02-12 02:46:22 +01:00
Rémi Verschelde
18d6b75ba8
RendererRD: Remove binding specifier for push constants
...
This is unsupported and glslang made it raise an error in 11.7.0:
https://github.com/KhronosGroup/glslang/pull/2810
Co-authored-by: Clay John <claynjohn@gmail.com>
2022-02-11 18:42:32 +01:00
Rémi Verschelde
2921cf6a99
Merge pull request #57888 from dusakus/depanoramize-spot-projector
...
remove normal_to_panorama from spotlight projector
2022-02-11 10:41:00 +01:00
Hugo Locurcio
66d27df12f
Fix 3D sky update performance regression
2022-02-10 20:21:28 +01:00
Rémi Verschelde
e4e6813baf
Merge pull request #57535 from Calinou/visibility-range-fade-use-easing
2022-02-10 18:18:53 +01:00
Rémi Verschelde
11cefc2b28
Merge pull request #57104 from clayjohn/VULKAN-sky-conflict
2022-02-10 17:46:42 +01:00
Rémi Verschelde
7332aff3fd
Merge pull request #54677 from Calinou/voxelgi-default-low-quality
2022-02-10 17:35:52 +01:00