clayjohn
60d8df3fee
Optimize and fix backbuffer gaussian blur
2022-02-05 15:03:39 -08:00
reduz
74adf0bf2e
Remove RID_Owner.get_rid_by_index
...
* Implementing this function efficiently is not really possible.
* Replaced by an option to get all RIDs into a buffer for performance.
2022-02-05 11:59:34 +01:00
Rémi Verschelde
eb371dee01
Merge pull request #57651 from theoniko/theoniko-effects_rc.cpp
...
Fix copy paste bug in renderer_rd/effects_rd.cpp
2022-02-05 10:15:38 +01:00
Yuri Roubinsky
e01d08159c
Few more fixes to for loop in shaders
2022-02-05 08:42:32 +03:00
theoniko
0c0ff5da50
Fix copy paste bug in renderer_rd/effects_rd.cpp
2022-02-05 06:41:30 +01:00
Hugo Locurcio
e4eafb254a
Enable 16-bit shadow atlas by default in the RenderingServer methods
...
16-bit shadow atlases are already the default in the project settings,
but low-level methods used 24-bit shadows by default.
This makes low-level methods more consistent with the default project
settings to avoid accidental performance issues when users change
the shadow size at run-time.
2022-02-04 16:41:08 +01:00
bruvzg
244db37508
Cleanup and move char functions to the char_utils.h
header.
2022-02-04 11:35:01 +02:00
Rémi Verschelde
f8f19b313d
Merge pull request #57562 from AnilBK/string-add-contains
...
String: Add contains().
2022-02-03 22:21:24 +01:00
Anilforextra
adbe948bda
String: Add contains().
2022-02-04 01:28:02 +05:45
Yuri Roubinsky
58696fd774
Allow multiple declarations in for loop in a shader
2022-02-03 11:35:38 +03:00
Hugo Locurcio
20464fd103
Make visibility range alpha fade smoother
...
`smoothstep()` avoids the sudden transparency jump when entering or
leaving an object's alpha 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-02-01 23:54:44 +01:00
Anilforextra
fc27636999
Vectors: Use clear() and has().
...
Use clear() instead of resize(0).
Use has() instead of "find(p_val) != -1".
2022-02-02 00:11:09 +05:45
orosmatthew
b0202c3a7d
Fix orthogonal camera auto LOD calculation
...
- Do not take orthogonal camera's distance into account when calculating LOD.
- Only take into account screen size taken up.
2022-01-30 11:54:27 -05:00
Nathan Franke
8a0a3accee
simplify formatting scripts, add a clang-tidy script, and run clang-tidy
2022-01-29 04:41:03 -06:00
Rémi Verschelde
58324f4df8
Merge pull request #54574 from Ansraer/glow_map
2022-01-26 13:39:51 +01:00
Bastiaan Olij
98e5cd24db
Improve XRInterface hooks into rendering
2022-01-26 13:55:44 +11:00
Rémi Verschelde
d9fd16c8e4
Merge pull request #53954 from Chaosus/fix_quit_errors
2022-01-25 20:09:52 +01:00
Yuri Roubinsky
b01065b9a4
Prevent checking of global uniform type outside the editor
2022-01-25 19:22:37 +03:00
jfons
238862bddb
Minor fixes to shadow atlases:
...
* Erase shadow owner *before* setting it to RID().
* Add default texture in shadow atlas debug view to avoid error spam when no atlas is present.
* Fix typo.
2022-01-24 15:55:32 +01:00
Yuri Roubinsky
0e66587dbf
Remove incorrect items from completion of main functions in shader
2022-01-24 10:37:47 +03:00
clayjohn
430d5d64aa
Update Sky lights in sky setup function
2022-01-23 15:06:49 -08:00
Yuri Roubinsky
3ca57e5157
Fix incorrect unused local var warning in shader blocks
2022-01-23 20:22:31 +03:00
Rémi Verschelde
9b9440165b
Merge pull request #54890 from briansemrau/threadsafe-drawpute-lists
...
Make draw/compute lists threadsafe
2022-01-22 20:20:07 +01:00
clayjohn
fdc1b1b03b
Remove TRANSFORM built in from fog shaders
2022-01-21 23:03:41 -08:00
Rémi Verschelde
7e3b92f81f
Merge pull request #55360 from Calinou/rename-bake-mode-properties
2022-01-20 17:35:32 +01:00
Rémi Verschelde
dbd560cb68
Merge pull request #53857 from briansemrau/rd-free-rid-bind-rename
2022-01-20 17:24:34 +01:00
Ansraer
90652b1755
add support for glow maps
2022-01-20 16:47:25 +01:00
lawnjelly
b411a731fe
Add nodiscard to core math classes to catch c++ errors.
...
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 13:07:49 +00:00
Rémi Verschelde
cba2fd2e80
Revert "Add new scaling modes for splash screen"
...
This reverts commit fcc9f5ce39
.
The feature is good but the implementation still needs more work.
A new PR will be made with a rework of this commit.
2022-01-19 16:09:52 +01:00
Yuri Roubinsky
e0304f83e7
Add translation links to shader errors
2022-01-19 15:16:32 +03:00
Rémi Verschelde
8b8e858778
Merge pull request #54489 from briansemrau/texture-delete-update
2022-01-19 10:10:54 +01:00
Samuel Pedrajas
fcc9f5ce39
Add new scaling modes for splash screen
...
Removes the `fullsize` option which is superseded by `stretch_mode`.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-01-18 23:29:11 +01:00
Rémi Verschelde
01eefa2c50
Merge pull request #56761 from Calinou/sdfgi-allow-any-number-of-cascades
2022-01-18 16:21:39 +01:00
Yuri Roubinsky
366d3930ac
Merge pull request #56893 from Chaosus/shader_unify_vardecl
2022-01-18 14:13:56 +03:00
Yuri Roubinsky
36a82c8c69
Unify variable and array declarations in shaders
2022-01-18 12:42:39 +03:00
clayjohn
ba431a9306
Fix volumetric fog memory leak on resize
2022-01-17 21:30:48 -08:00
Hugo Locurcio
2dc7b03a82
Allow using between 1 and 8 cascades for SDFGI
...
This provides more flexibility between performance and quality
adjustments, especially when using SDFGI for small-scale levels
(which can be useful for procedurally generated scenes).
2022-01-17 16:49:02 +01:00
Haoyu Qiu
7870cf24f2
Fix invalid read when using LightOccluder2D
2022-01-17 16:02:26 +08:00
Hugo Locurcio
d6c7d4ab5d
Fix visible background line in intersections in screen-space reflections
...
Adjusting the step grading by one resolves the issue without affecting
performance or introducing adverse artifacts.
2022-01-16 18:08:07 +01:00
Rémi Verschelde
a27b85378b
Merge pull request #56309 from Calinou/remove-pvrtc-support
2022-01-16 11:15:34 +01:00
clayjohn
abd0003e4c
Remove mistakenly added push constant from SSR
2022-01-15 17:03:55 -08:00
Yuri Roubinsky
08208406ca
Refactor size expression parsing for arrays in the shaders
2022-01-15 15:47:39 +03:00
Hugo Locurcio
40be15920f
Remove support for PVRTC texture encoding and decoding
...
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
Yuri Roubinsky
0845b25497
Fix shader crashing when declaring matrix or array varyings
2022-01-14 10:37:39 +03:00
luz paz
858bcd5058
Fix various typos
...
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inh,inout,leapyear,lod,nd,numer,ois,ony,paket,ro,seeked,sinc,switchs,te,uint,varn,vew`
2022-01-13 23:20:01 -05:00
Yuri Roubinsky
4201af6649
Fix completion for global constants in shaders
2022-01-13 19:52:06 +03:00
Yuri Roubinsky
c377891145
Add completion for shader_type
2022-01-13 18:37:13 +03:00
Yuri Roubinsky
b0356bcb72
Prevent redefinition of main functions in shader
2022-01-13 15:12:35 +03:00
clayjohn
9b1f242feb
Fix cannot use gaussian blur error
2022-01-12 21:58:37 -08:00
Rémi Verschelde
586a973b6b
Merge pull request #56169 from dkaste/fix-clip-rects
...
Fix canvas items being drawn outside clip rects
2022-01-12 23:59:42 +01:00
Rémi Verschelde
585231a172
Merge pull request #56492 from akien-mga/remove-author-docstrings
2022-01-12 15:24:17 +01:00
Yuri Roubinsky
422f7b280f
Optimize include files to improve shader_language.h
compilation speed
2022-01-12 14:19:12 +03:00
Rémi Verschelde
bfd0afca58
Merge pull request #55656 from clayjohn/GLSL3-compiler
2022-01-12 11:33:48 +01:00
Rémi Verschelde
189662e5bd
Merge pull request #56696 from AnilBK/use-init-lists
2022-01-12 10:04:45 +01:00
clayjohn
99064d57db
New OpenGL batching canvas renderer
2022-01-11 22:26:18 -08:00
Anilforextra
6c3a0460a8
Use List Initializations for Vectors.
2022-01-12 10:15:12 +05:45
Rémi Verschelde
267bee934a
Merge pull request #56416 from BastiaanOlij/fix_xr_viewport_size_overrule
...
Fix XR viewport size overrule and incorrect usage of internal size
2022-01-11 08:44:36 +01:00
Rémi Verschelde
04fa320650
Merge pull request #56627 from Chaosus/shader_better_limit_warning
2022-01-10 14:06:54 +01:00
Darren Kaste
b0d9e14155
Fix canvas items being drawn outside clip rects
2022-01-09 18:15:46 -05:00
Yuri Roubinsky
bd61d8f80c
Enhances a shader uniform limit warning
2022-01-08 21:44:37 +03:00
Anilforextra
c9f5d88f3a
Use fill() to fill an entire image instead of setting pixels individually.
2022-01-08 17:43:15 +05:45
SaracenOne
cd842b65bf
Fix queueing a texture and regular uniform update in RD backend in succession.
2022-01-06 16:05:07 +00:00
Fernando Cosentino
ca79373d13
Added material_overlay property to MeshInstance3D
...
Applying overlay materials into multi-surface meshes currently
requires adding a next pass material to all the surfaces, which
might be cumbersome when the material is to be applied to a range
of different geometries. This also makes it not trivial to use
AnimationPlayer to control the material in case of visual effects.
The material_override property is not an option as it works
replacing the active material for the surfaces, not adding a new pass.
This commit adds the material_overlay property to GeometryInstance3D
(and therefore MeshInstance3D), having the same reach as
material_override (that is, all surfaces) but adding a new material
pass on top of the active materials, instead of replacing them.
2022-01-05 11:47:51 +01:00
JFonS
7c5c351766
Merge pull request #56220 from williamd67/GPULightmapper-implement-sky-ambient-light
...
GPULightmapper: react on sky ambient properties
2022-01-05 10:55:05 +01:00
Rémi Verschelde
e976cd0b29
Merge pull request #56208 from williamd67/GPULightmapper-sky-upside-down
2022-01-05 10:51:19 +01:00
Rémi Verschelde
c7bbb3a621
Merge pull request #56278 from GanidhuAbey/dof_msaa_bug
2022-01-05 10:47:27 +01:00
bruvzg
679fe92bb3
Fix incorrect format and buffer used for bone weights.
2022-01-05 08:44:59 +02:00
Rémi Verschelde
ba2bdc478b
Style: Remove inconsistently used @author
docstrings
...
Each file in Godot has had multiple contributors who co-authored it over the
years, and the information of who was the original person to create that file
is not very relevant, especially when used so inconsistently.
`git blame` is a much better way to know who initially authored or later
modified a given chunk of code, and most IDEs now have good integration to
show this information.
2022-01-04 20:42:50 +01:00
Rémi Verschelde
eab30316ee
Merge pull request #55332 from Calinou/voxelgidata-tweak-default-dynamic-range
...
Decrease the default dynamic range in VoxelGIData to 2.0
2022-01-04 17:18:28 +01:00
Rémi Verschelde
3a5a3473be
Merge pull request #54791 from NHodgesVFX/master
...
[4.x] add more OpenGL attributes
2022-01-04 16:52:27 +01:00
Yuri Roubinsky
bba9d9be14
Merge pull request #56486 from Chaosus/shader_fix_render_mode
2022-01-04 18:44:11 +03:00
Rémi Verschelde
095c72b03e
Merge pull request #55790 from Calinou/renderingserver-add-device-type-getter
...
Add `RenderingServer.get_video_adapter_type()` method
2022-01-04 16:43:23 +01:00
Rémi Verschelde
851fb16350
Merge pull request #56305 from Calinou/rename-lod-threshold
2022-01-04 15:28:06 +01:00
Rémi Verschelde
ff211c8e5a
Merge pull request #55386 from Calinou/allow-disable-depth-prepass
2022-01-04 15:25:11 +01:00
Yuri Roubinsky
5123ffe4a7
Fix world_vertex_coords
render mode usage in the shaders
2022-01-04 17:06:12 +03:00
JFonS
e432181dc3
Merge pull request #55418 from Calinou/voxelgi-dynamic-map-use-16-bit-depth
...
Use 16-bit depth to improve dynamic VoxelGI performance
2022-01-04 14:17:47 +01:00
Yuri Roubinsky
b74968c2ca
Merge pull request #56477 from Chaosus/fix_device_crash
2022-01-04 13:23:38 +03:00
Rémi Verschelde
7f66c16c03
Merge pull request #51206 from clayjohn/Vulkan-ASSGI
2022-01-04 10:00:17 +01:00
Rémi Verschelde
34de6d16aa
Merge pull request #54409 from clayjohn/VULKAN-glow-flicker
2022-01-04 09:59:07 +01:00
Yuri Roubinsky
0e2ef987b1
Add a check for device in shader lang to prevent startup editor crash
2022-01-04 11:50:50 +03:00
Rémi Verschelde
370f0a162d
Merge pull request #55424 from Calinou/voxelgi-remove-unused-struct-fields
...
Remove unused struct fields in VoxelGIData
2022-01-04 09:50:00 +01:00
Rémi Verschelde
a97889abe4
Merge pull request #55422 from Calinou/gi-shader-remove-unused-define
...
Remove unused code in GI shaders
2022-01-04 09:49:42 +01:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
...
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Yuri Roubinsky
fd9c92d4ab
Add a shader warning when the uniform buffer limit is exceeded
2022-01-03 16:24:56 +03:00
Rémi Verschelde
9221c0f8ad
Merge pull request #56190 from Chaosus/shader_varying_pass_to_func
2022-01-03 13:08:55 +01:00
Rémi Verschelde
c6c834e745
Merge pull request #56187 from Chaosus/fix_default_texture
2022-01-03 13:08:25 +01:00
Rémi Verschelde
cd38b42987
Merge pull request #56370 from Chaosus/fix_shader_instance_uniform
2022-01-03 13:06:18 +01:00
luz paz
a124f1effe
Fix various typos
...
Found via ` codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint,varn`
Update editor/import/resource_importer_layered_texture.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update doc/classes/TileSetScenesCollectionSource.xml
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/graph_edit.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/rich_text_label.cpp
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Revert previously committed change
2022-01-02 01:03:58 -05:00
Bastiaan Olij
9fe7565014
Fix XR viewport size overrule and incorrect usage of internal size
2022-01-02 11:17:36 +11:00
Yuri Roubinsky
ab239e9abb
Fix incorrect updating global uniform buffer
2021-12-31 13:31:01 +03:00
Hugo Locurcio
df09bc38cb
Rename Lod Threshold to Mesh Lod Threshold
...
This makes it more obvious that the setting only affects mesh LOD,
not manual (H)LOD achieved using visibility ranges.
2021-12-29 00:11:50 +01:00
GanidhuAbey
133486bfba
fixed depth of field bug with msaa
2021-12-26 23:13:47 -08:00
William Deurwaarder
68a5dad226
GPULightmapper: react on sky ambient properties
...
The panorama texture creation, used by GPULightmapper, has been adjusted to
also take the sky ambient properties into account.
2021-12-24 15:47:42 +01:00
William Deurwaarder
246fbd5442
GPULightmapper: cube to panorama copy function flip y based on flag
...
Cube to panorama copy function unconditionally flipped y, while other copy functions flipped y base on FLAG_FLIP_Y. Condition is added.
2021-12-24 00:47:42 +01:00
Yuri Roubinsky
108b6a2000
Allow pass varyings as out param to the function, when it's possible
2021-12-23 18:03:19 +03:00
Yuri Roubinsky
8e5008dfbd
Fix default texture of unassigned sampler with hint_normal
2021-12-23 11:15:46 +03:00
Yuri Roubinsky
e8a457ba89
Refactor render_mode in shaders, forbid declaring duplicates
2021-12-21 22:20:09 +03:00
Fabio Alessandrelli
e880294d9f
[Headless] Workaround texture load failure.
...
Some assets are loaded based on OS/server feature detection, namely
textures (but potentially others).
The ResourceImporter will fail to load a texture if the OS reports not
supporting it. The OS, in turn, checks texture format support via the
RenderingServer.
This commit makes the dummy rasterizer report known texture formats as
supported (although unused), so that scenes can be correctly loaded when
they include references to imported textures.
2021-12-20 09:18:26 +01:00
Rémi Verschelde
be83968b6b
Merge pull request #55970 from Chaosus/shader_fix_struct_warning
2021-12-16 13:35:44 +01:00
Yuri Roubinsky
1414a7be91
Fix struct usage passing to shader warning system
2021-12-15 22:54:46 +03:00
Yuri Roubinsky
f0a58af12f
Rename shader hint filter_anisotropy
to filter_anisotropic
2021-12-15 22:12:38 +03:00
Yuri Roubinsky
25a2241e7d
Fix shader array parsing in variable declaration
2021-12-15 17:54:15 +03:00
Rémi Verschelde
de8348a9b3
Merge pull request #55903 from Chaosus/shader_struct
2021-12-15 13:07:48 +01:00
Rémi Verschelde
864ccb5776
Merge pull request #55913 from Chaosus/fix_shader_crash
2021-12-15 13:07:34 +01:00
Yuri Roubinsky
09185d76ac
Rename shader hint filter_aniso
to filter_anisotropy
2021-12-15 13:18:32 +03:00
Hugo Locurcio
e962900f23
Rename and reorder bake mode properties for consistency
...
The order now goes from least to most computationally expensive:
- Disabled
- Static
- Dynamic
2021-12-14 12:01:12 +01:00
Yuri Roubinsky
3cbd8ef098
Fix shader crash when assigned array from struct to a variable by index
2021-12-13 21:19:13 +03:00
Yuri Roubinsky
31cc6ba622
Allow declaring multiple members in one expression in shader structs
2021-12-13 19:10:08 +03:00
Yuri Roubinsky
8862d1426d
Restore shader parsing errors with lack of semicolon in a block
2021-12-11 17:30:40 +03:00
Hugo Locurcio
92e9cca5be
Rename hint_aniso
to hint_anisotropy
in the shader language
...
The word "anisotropy" is used in full form in BaseMaterial3D's
anisotropy-related properties.
2021-12-10 17:41:17 +01:00
Hugo Locurcio
b3174e7af9
Add RenderingServer.get_video_adapter_type()
method
...
This can be used to distinguish between integrated, dedicated, virtual
and software-emulated GPUs. This in turn can be used to automatically
adjust graphics settings, or warn users about features that may run
slowly on their hardware.
2021-12-10 17:10:47 +01:00
Yuri Roubinsky
bcbcf14469
Refactor constant suffix parsing in a shader
2021-12-10 15:38:27 +03:00
Rémi Verschelde
f455660e93
Merge pull request #55572 from aaronfranke/ci-double
2021-12-10 10:02:38 +01:00
Yuri Roubinsky
dcf3594500
Merge pull request #55763 from Chaosus/shader_hint_completion
2021-12-10 11:44:01 +03:00
Rémi Verschelde
bdf8340e59
Merge pull request #43181 from nathanfranke/string-empty
...
Replace String comparisons with "", String() to is_empty()
2021-12-10 08:56:31 +01:00
Yuri Roubinsky
b66510d509
Added completion for uniform hints in a shader
2021-12-10 10:12:25 +03:00
Rémi Verschelde
f0b5cd51b6
Merge pull request #55714 from Geometror/fix-fog-spotlight
2021-12-09 18:05:17 +01:00
Aaron Franke
e9808e3d9a
Add a double-precision editor build to CI
2021-12-09 09:52:48 -06:00
Nathan Franke
49403cbfa0
Replace String comparisons with "", String() to is_empty()
...
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Hendrik Brucker
1da732af35
Fix volumetric fog in combination with spotlights
2021-12-08 22:17:09 +01:00
Yuri Roubinsky
76f6c0849c
Make compile
shader function to use struct instead long parameter list
2021-12-08 11:34:40 +03:00
Hugo Locurcio
c5550108c8
Decrease the default dynamic range in VoxelGIData to 2.0
...
This reduces visible banding in indirect lighting and reflections.
Sharp reflections now match more closely the original scene.
The downside of this change is that clipping may appear in reflections
in extremely bright scenes, but this should not be a concern in most
scenes.
2021-12-08 00:28:17 +01:00
Rémi Verschelde
46d384060e
Merge pull request #35901 from nathanfranke/pool-byte-array-subarray-exclusive
2021-12-07 14:00:59 +01:00
Hugo Locurcio
89ec3d3bc7
Remove or make verbose some debugging prints
...
The message about SpatialMaterial conversion was turned into a warning,
as it can potentially interfere with porting projects from Godot 3.x
(if there's a bug in the conversion code).
2021-12-05 23:22:23 +01:00
Yuri Roubinsky
10b10ae1fa
Fix ^=
operator in shaders
2021-12-03 10:20:44 +03:00
Rémi Verschelde
1398436ab8
Merge pull request #53904 from ChristopheClaustre/bugfix_shader_compile_spirv_from_source
2021-12-02 10:07:35 +01:00
Yuri Roubinsky
5ee73dc5a6
Fix shader crash when using existed constant name for struct
2021-12-01 18:11:45 +03:00
Yuri Roubinsky
a48c205191
Fix declaring array size twice in global shader constant
2021-12-01 16:44:25 +03:00
Yuri Roubinsky
5ba93619fa
Allow using empty statements in the shader, added formatting warning
2021-12-01 11:52:25 +03:00
Rémi Verschelde
5643f5e616
Merge pull request #55490 from Chaosus/fix_shader_crash
2021-11-30 20:13:12 +01:00
Rémi Verschelde
bdd118e765
Merge pull request #55431 from Chaosus/shader_fix_constants
2021-11-30 19:40:52 +01:00
Yuri Roubinsky
be7c03779a
Fix shader crash when assigning array to non-array in global constant
2021-11-30 21:28:55 +03:00
Yuri Roubinsky
5b4d8545ed
Fix INDEX
built-in in a process function of particle shader
2021-11-29 12:54:24 +03:00
Yuri Roubinsky
6e80e97b0f
Fix built-in(PI, TAU, E) assignment to a global constant in a shader
2021-11-29 10:32:36 +03:00
Hugo Locurcio
36106dba3b
Remove unused struct fields in VoxelGIData
...
This reduces the struct size from 112 bytes to 96 bytes.
2021-11-28 23:09:51 +01:00
Hugo Locurcio
0beacf2ce8
Remove unused code in GI shaders
2021-11-28 22:58:54 +01:00
Hugo Locurcio
565f9c0448
Use 16-bit depth to improve dynamic VoxelGI performance
...
In a complex scene with several dynamic emissive objects, this
saves over 1 ms of GPU time on a GTX 1080 in 2560×1440.
2021-11-28 18:51:36 +01:00
Hugo Locurcio
989a7d9270
Allow disabling the depth prepass in the Vulkan Clustered backend
...
In scenes that have little to no overdraw, disabling the depth prepass
can give a small performance boost. Nonetheless, in most other scenarios,
the depth prepass should be left enabled as it improves performance
significantly.
2021-11-27 17:54:45 +01:00
Nathan Franke
dd30253cdc
PackedByteArray, Array slice end exclusive, rename subarray to slice
2021-11-26 22:13:12 -06:00
Yuri Roubinsky
0f1f002e74
Fix TIME
using in custom functions of particle shader
2021-11-26 19:03:01 +03:00
Rémi Verschelde
4813abc6e7
Merge pull request #55311 from Chaosus/fix_uniform_array
...
Fix uniform array alignment to fix a bug
2021-11-26 08:25:14 +01:00
Hugo Locurcio
079ae6a03f
Use WARN_PRINT_ONCE()
for FSR-related warning messages
...
`print_error()` should generally not be used directly. Also,
falling back is best done by printing a warning message instead
of an error message.
2021-11-25 22:47:11 +01:00
Yuri Roubinsky
43d999e346
Fix uniform array alignment to fix a bug
2021-11-25 23:38:08 +03:00
Hugo Locurcio
c73a51fd55
Remove disabled debug code in ClusterBuilderRD
2021-11-25 20:28:50 +01:00
Yuri Roubinsky
9b1f8f7a96
Revert "Pushes array of uniforms to first place in the buffer"
2021-11-25 16:13:19 +03:00
bruvzg
b7e6e50dd2
[macOS / iOS] Use non atomic operation to store facing bits on MoltenVK.
2021-11-25 12:43:45 +02:00
Rémi Verschelde
547c270777
Merge pull request #51679 from Je06jm/fsr
...
AMD FidelityFX Super Resolution
2021-11-24 22:34:48 +01:00
Rémi Verschelde
3e3300637e
Merge pull request #55281 from bruvzg/mvk_fog_volumes
2021-11-24 16:59:20 +01:00
bruvzg
5e0a034524
[macOS / iOS] Use storage buffers instead of unsupported images for the volumetric fog on MoltenVK.
2021-11-24 09:16:16 +02:00
Lightning_A
e078f970db
Rename remove()
to remove_at()
when removing by index
2021-11-23 18:58:57 -07:00
Je06jm
20deb0917d
Implemented AMD's FSR as a computer shader for upscaling 3D scenes
2021-11-23 14:16:03 -07:00
Yuri Roubinsky
c7043dbfdc
Prevent return statement from using in block in shader main functions
2021-11-23 10:36:33 +03:00
Yuri Roubinsky
f4c0e90fd9
Allow passing non-variable constant to const function param in shaders
2021-11-19 12:14:13 +03:00
Rémi Verschelde
fa11b45961
Merge pull request #55084 from JFonS/fix_depth_prepass
...
Fix Depth-Prepass transparency mode
2021-11-18 17:39:46 +01:00
Rémi Verschelde
3f9c24a8d7
Merge pull request #55085 from JFonS/transparency_fixes
...
Fix transparency state initialization
2021-11-18 17:17:20 +01:00
jfons
4c4b6620a0
Fix Depth-Prepass transparency mode
...
Add mising bits of implementation and ensure depth-prepass objects are
only rendered in the transparency pass.
2021-11-18 12:49:46 +01:00
Rémi Verschelde
c30aa372ca
Merge pull request #55029 from clayjohn/VULKAN-SRGB
...
Add SHADER_IS_SRGB define to Vulkan renderer
2021-11-17 08:46:23 +01:00
clayjohn
358820c4b7
Fix SRGB conversions in Vulkan Renderer
2021-11-16 20:56:13 -08:00
chris.clst
038be68649
Merge branch 'godotengine:master' into bugfix_shader_compile_spirv_from_source
2021-11-14 03:23:22 +01:00
Yuri Roubinsky
df3b42411d
Fix broken light_compute in mobile renderer
2021-11-13 17:24:31 +03:00
Brian Semrau
716e15cd26
Fix multimesh still drawing when visible instances is zero
2021-11-12 21:51:14 -05:00
jfons
dbf20f58a0
Fix transparency state initialization
2021-11-12 12:11:57 +01:00
Yuri Roubinsky
826e781bfa
Fix default_texture_param in shader pipeline to support uniform arrays
2021-11-12 12:53:40 +03:00
Brian Semrau
f123a79170
Make draw/compute lists threadsafe
...
Lock the rendering device while command buffers are in use
2021-11-11 13:55:09 -05:00
Yuri Roubinsky
a45ae7b1c7
Fix shader crashing when using ALBEDO
or ALPHA
in light function
2021-11-11 11:59:30 +03:00
Rémi Verschelde
5cc0ad5393
Merge pull request #54783 from ator-dev/fix-override-exposure
2021-11-10 18:45:04 +01:00
ChristopheClaustre
cc39ba5509
rendering_device: if one compiles with at least on stage without sources, it was always returning an unusable bytecode (because errored)
2021-11-09 22:53:30 +01:00
NHodgesVFX
dbe366a830
add more OpenGL attributes
2021-11-08 20:12:11 -05:00
Dominic-ATOR
d7a4187b05
Implement CameraEffects override_exposure
2021-11-08 21:14:56 +00:00
Yuri Roubinsky
bbfa5f29c7
Pushes array of uniforms to first place in the buffer to prevent bug
2021-11-07 23:30:09 +03:00
clayjohn
0eff109a21
Added SSIL post processing effect
2021-11-06 12:43:19 -07:00
Hugo Locurcio
91aa7cf1da
Decrease the default VoxelGI quality to improve performance
...
On a GeForce GTX 1080 in 2002×1447 resolution, decreasing VoxelGI quality
from High to Low quality saves 1.2 ms of GPU time in a medium-sized
test scene. This only results in a minor drop in quality.
2021-11-06 19:40:52 +01:00
Brian Semrau
ac24070056
Use Callable in RS::request_frame_drawn_callback
2021-11-05 01:59:38 -04:00
Hugo Locurcio
c012fbc8b2
Rename PROPERTY_USAGE_NOEDITOR
to PROPERTY_USAGE_NO_EDITOR
...
This is consistent with other constants that include `NO`,
such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03 23:06:17 +01:00
Brian Semrau
4a1c28460e
Fix materials not updating when texture replaced/deleted
2021-11-01 15:33:59 -04:00
Rémi Verschelde
02ae47154c
Merge pull request #54356 from Chaosus/shader_fix_matrix_autocompletion
2021-11-01 14:06:04 +01:00
Rémi Verschelde
d86b680e07
Merge pull request #54480 from timothyqiu/texture-replace
2021-11-01 12:56:05 +01:00
Haoyu Qiu
10818cfc10
Fix memory leak when using CurveTexture.set_texture_mode
2021-11-01 18:57:59 +08:00
Rémi Verschelde
210e6cc167
Merge pull request #54459 from rxlecky/fix-multimesh-buffer-overflow-53603
2021-11-01 11:18:11 +01:00
SeleckyErik
6b04f08b28
Fix multimesh buffer overflow in RendererStorageRD
2021-10-31 18:48:51 +01:00
Rémi Verschelde
1aef3a42b2
Merge pull request #54448 from CakHuri/treshold-to-threshold
...
Repair mistyped of 'threshold' on several files.
2021-10-31 18:32:18 +01:00
Rémi Verschelde
16dc607f8a
Merge pull request #54307 from Calinou/add-opengl-renderer-squash
...
Add OpenGL renderer (squashed)
2021-10-31 18:30:38 +01:00
M. Huri
4052d85d05
Repaired mistyped of 'threshold' on several files.
2021-10-31 22:11:42 +07:00
Clay John
8a10bb7d0d
Use OpenGL 3.3 core profile instead of compatibility profile
...
- Rename OpenGL to GLES3 in the source code per community feedback.
- The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
- The renderer can still be changed in the Project Settings or using
the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
Rémi Verschelde
d6f972fad4
Merge pull request #54403 from briansemrau/fix-small-fogvolume
...
FogVolume don't dispatch compute with zero-dimension groups
2021-10-31 09:12:10 +01:00
Brian Semrau
8f75ad4df2
Don't use Texture image caches if they are rendered to
2021-10-30 13:34:39 -04:00
Rémi Verschelde
6b0b1a4c04
Merge pull request #54405 from JFonS/fix_instance_index
...
Fix instance index in forward clustered shader
2021-10-30 14:22:22 +02:00
Brian Semrau
346e497959
Disallow compute dispatch with zero dimensions.
2021-10-30 02:39:25 -04:00
clayjohn
4d1d2b3900
Weight glow samples to reduce fireflies
2021-10-29 21:41:57 -07:00
jfons
6db13d3231
Fix instance index in forward clustered shader
2021-10-30 02:53:09 +02:00
Hugo Locurcio
ce97ddbcb1
Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3
...
- Use lowercase driver names for the `--rendering-driver`
command line argument.
2021-10-30 02:05:49 +02:00
lawnjelly
e3491a3744
Add GLES2 2D renderer + Linux display manager
...
First implementation with Linux display manager.
- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).
Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
Yuri Roubinsky
4da0de0085
Fix error spammed to output if FogVolume
is setted to scene
2021-10-29 23:24:01 +03:00
Yuri Roubinsky
a6ddfecc9f
Fix crash when opening a converted FogMaterial
2021-10-29 14:18:38 +03:00
clayjohn
1b2cd9f251
Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
...
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28 22:02:23 -07:00
Yuri Roubinsky
04a2053f9b
Removed incorrect autocompletion of matrixes in shader
2021-10-28 20:21:18 +03:00
Rémi Verschelde
f7d852b532
Merge pull request #54350 from akien-mga/clang-format-dont-align-operands
2021-10-28 17:10:52 +02:00
Rémi Verschelde
e2deec67b9
Merge pull request #54222 from JFonS/instance-fade
2021-10-28 16:05:55 +02:00
Rémi Verschelde
3a6be64c12
clang-format: Various fixes to comments alignment from clang-format
13
...
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 15:43:36 +02:00
Rémi Verschelde
3b11e33a09
clang-format: Disable alignment of operands, too unreliable
...
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
Joan Fons
95bc9c40d9
Fix shadow disabling on mobile renderer
2021-10-26 15:37:22 +02:00
jfons
c46d1ea2b2
Fix shadow disabling settings
...
Fixes the SHADOW_CASTING_SETTING_OFF setting in
GeometryInstance3D and the "shadows_disabled" render
mode in spatial materials, which were not working
before.
2021-10-25 16:11:32 +02:00
JFonS
c571e4a7f4
Implement distance fade and transparency
...
The built-in ALPHA in spatial shaders comes pre-set with a per-instance
transparency value. Multiply by it if you want to keep it.
The transparency value of any given GeometryInstance3D is affected by:
- Its new "transparency" property.
- Its own visiblity range when the new "visibility_range_fade_mode"
property is set to "Self".
- Its parent visibility range when the parent's fade mode is
set to "Dependencies".
The "Self" mode will fade-out the instance when reaching the visibility
range limits, while the "Dependencies" mode will fade-in its
dependencies.
Per-instance transparency is only implemented in the forward clustered
renderer, support for mobile should be added in the future.
Co-authored-by: reduz <reduzio@gmail.com>
2021-10-25 11:39:34 +02:00
jfons
88d9914519
Fix state inconsistencies in visibility dependencies.
2021-10-25 11:37:53 +02:00
Rémi Verschelde
3bebbcacdb
Merge pull request #53992 from Calinou/hard-shadow-mapping-allow-dithering
2021-10-22 19:34:09 +02:00
Yuri Roubinsky
bbcf8ac672
Merge pull request #54082 from Chaosus/fix_shader_crash
2021-10-21 21:19:24 +03:00
Yuri Roubinsky
57fd362fe1
Prevent shader crash when passing constant expression to textureGather
2021-10-21 19:46:05 +03:00
Hugo Locurcio
e87ec8ec17
Add Soft Very Low shadow quality mode for 3D
...
This can be used to improve 3D shadow rendering quality at little
performance cost. Unlike the existing Hard setting which is limited
to variable shadow blur only, it works with both fixed blur and
variable blur.
2021-10-21 18:34:26 +02:00
Yuri Roubinsky
9142df46b3
Fix built-in texture samplers passing for spatial shader mode
2021-10-21 12:32:32 +03:00
Yuri Roubinsky
5a354aaf6d
Prevent a rendering crash and error spam for uniform texture array
2021-10-20 21:30:27 +03:00
Rémi Verschelde
244faf5588
Merge pull request #53972 from zedutch/fix-shader-time-update
...
Fix shaders using `TIME` not continuously updating
2021-10-19 16:37:55 +02:00
Rémi Verschelde
85a8939fa2
Merge pull request #53790 from briansemrau/remove-distant-shadowy-void
2021-10-19 15:17:09 +02:00
Rémi Verschelde
4387f9645b
Merge pull request #52940 from groud/toast_notification
2021-10-19 09:57:13 +02:00
Rémi Verschelde
723b988fde
Merge pull request #52210 from BastiaanOlij/enhance_xr_trackers
2021-10-19 08:11:32 +02:00
Robin Arys
0e31465a59
Fix shaders that use TIME do not force editor to continuously update
2021-10-18 22:53:20 +02:00
Haoyu Qiu
2200544141
Validate enum range in RendererViewport::viewport_get_render_info
2021-10-18 22:58:38 +08:00
Yuri Roubinsky
26a26d6657
Fix errors on quitting from an empty project
2021-10-18 14:24:03 +03:00
Bastiaan Olij
5d1ea92daf
Rework XR positional trackers
2021-10-17 12:12:20 +11:00
mennomax
b4eeeb315a
Swap args of Plane(point, normal) constructor
...
Now (normal, point)
2021-10-15 20:49:42 -05:00
Brian Semrau
c4513d5add
Rename RD::free binding to free_rid
2021-10-15 15:35:05 -04:00
Rémi Verschelde
5a276443bd
Merge pull request #53815 from Chaosus/fix_wireframe_render_mode
2021-10-15 16:19:36 +02:00
Yuri Roubinsky
31ad85881d
Fix wireframe
render mode
2021-10-15 06:53:52 +03:00
Brian Semrau
e9f1b0a0b2
Remove incorrect fog height density remapping
2021-10-14 16:09:45 -04:00
Brian Semrau
4fefd7cddd
Fix several issues with directional shadows
...
- Internally disable blend splits in orthogonal directional shadow mode
- Fix soft shadows ignoring fade and blend_splits
- Fix soft shadow edge stability
2021-10-14 11:44:32 -04:00
Gilles Roudière
0587e5e018
Implement toast notifications in the editor
2021-10-14 13:30:54 +02:00
Brian Semrau
a62e240260
Fix the height fog effect
2021-10-14 04:08:39 -04:00
Yuri Roubinsky
e9b7ffd1fa
Added few more built-ins to shader language
2021-10-13 20:27:36 +03:00
Rémi Verschelde
88463c3eee
Merge pull request #53712 from CakHuri/nullptr
...
Replace NULL with nullptr
2021-10-12 22:30:43 +02:00
M. Huri
033dc4dbef
Replaced NULL with nullptr
2021-10-12 20:20:19 +07:00
Aaron Franke
7e51e4cb84
Fix some LGTM errors of "Multiplication result converted to larger type"
2021-10-12 00:17:27 -05:00
Yuri Roubinsky
db2ee03fff
Fix shader crash on using METALLIC and ROUGHNESS built-ins in light func
2021-10-11 13:35:53 +03:00
Rémi Verschelde
09b0293fad
Merge pull request #53066 from Chaosus/shader_funcs
2021-10-10 21:37:07 +02:00
Rémi Verschelde
5ae569560d
Fix missing argument names in bindings
...
While at it, tweak some boolean setters to use `p_enabled` for the bool.
Also renames `draw_minimap()` to `set_draw_minimap()`.
2021-10-09 00:20:10 +02:00
Hugo Locurcio
73c6e19acc
Allow any floating-point value as a 3D rendering scale option
...
This allows for finer control over 3D rendering resolution.
Supersampling can also be performed by setting a 3D rendering
resolution above 1.0, which is useful for offline rendering or
for very high-end GPUs.
2021-10-08 18:22:10 +02:00
Rémi Verschelde
96767c18f8
Merge pull request #53527 from Chaosus/shader_array
2021-10-08 12:37:05 +02:00
Yuri Roubinsky
b1ac3e256f
Allow declare the shader arrays with a size defined before identifier
2021-10-08 10:28:31 +03:00
Rémi Verschelde
a6c4de49e1
Merge pull request #53523 from Calinou/remove-occlusion-color
2021-10-07 22:26:10 +02:00
Hugo Locurcio
265bae824f
Remove unimplemented Environment.ambient_light_occlusion_color
property
...
This property was intended to provide a way to have SSAO or VoxelGI
ambient occlusion with a color other than black. However, it was
dropped during the Vulkan renderer development due to the performance
overhead it caused when the feature wasn't used.
2021-10-07 17:47:52 +02:00
Hugo Locurcio
bcf4a56c74
Replace references to VisualServer in code comments with RenderingServer
...
VisualServer no longer exists in the `master` branch.
2021-10-07 15:49:41 +02:00
Yuri Roubinsky
e707391fb8
Fix shader crash when passing array to index expression
2021-10-07 10:48:32 +03:00
Yuri Roubinsky
410cab4c61
Merge pull request #53491 from Chaosus/shader_fix_texture_array_uniforms
2021-10-07 10:00:12 +03:00
Rémi Verschelde
149e10da1c
Merge pull request #53504 from clayjohn/VULKAN-sky-bug
...
Remove bogus sky error check
2021-10-07 08:09:01 +02:00
Rémi Verschelde
3f94a5ebe7
Merge pull request #51115 from clayjohn/VULKAN-SSAO-radius
...
Move assignment of SSAO radius push constant
2021-10-07 08:04:17 +02:00
clayjohn
23dc490f40
Remove bogus sky error check
2021-10-06 22:04:56 -07:00
Yuri Roubinsky
b5028da5c0
Fix regression which prevents using texture array uniforms
2021-10-06 22:31:07 +03:00
Yuri Roubinsky
be6f36a66d
Add missing shader built-ins
2021-10-05 20:50:26 +03:00
Yuri Roubinsky
7c07ae4c50
Fix shader crash when passing array.length to functions
...
and similar cases
2021-10-05 12:49:59 +03:00
Yuri Roubinsky
69ece73653
Fix syntax parsing error of uniform arrays declaration in shader
2021-10-04 23:19:43 +03:00
Yuri Roubinsky
6873ecaaf9
Added support for uniform arrays in shaders
2021-10-04 13:57:44 +03:00
Rémi Verschelde
6ed3e9c182
Merge pull request #53208 from timothyqiu/headless-crash
2021-10-01 11:29:19 +02:00
Lightning_A
c63b18507d
Use range iterators for Map
2021-09-30 15:09:12 -06:00
Hugo Locurcio
ba65730cbf
Rename RID's getornull()
to get_or_null()
2021-09-29 23:58:02 +02:00
Manuel Dun
485eac3d3f
radial fog fix
2021-09-29 15:49:59 -04:00
Haoyu Qiu
82f7f2c46c
Fix crash in headless mode
2021-09-29 17:24:53 +08:00
Hendrik Brucker
6a9f3746af
Fix editor freeze when asigning Skeleton2D to Polygon2D
2021-09-29 01:50:01 +02:00
Rémi Verschelde
4296539d94
Merge pull request #53072 from CaptainProton42/fix-gpuparticles3d-generate-aabb
2021-09-28 16:20:22 +02:00
Bastiaan Olij
cbdde9dff9
Fix access to render target texture for XR interfaces
2021-09-28 19:46:50 +10:00
CaptainProton42
1731030b3c
Fix GPUParticles3D local_coords
2021-09-26 00:30:37 +02:00
CaptainProton42
dd70daafba
Fix GPUParticles3D generate AABB
2021-09-26 00:30:37 +02:00
Anilforextra
cdd912c48e
Construct values only when necessary.
2021-09-25 14:46:45 +05:45
Anilforextra
cc51b045da
Construct values only when necessary.
2021-09-23 22:26:07 +05:45
Yuri Roubinsky
e9e21a592e
Prevents editor crash when compare with negative float in shader
2021-09-22 13:26:40 +03:00
Rémi Verschelde
ba57252bd8
Merge pull request #52878 from AnilBK/add-get-center
2021-09-21 21:30:30 +02:00
Anilforextra
90908cd67d
Add Get Center Method for Rect2/Rect2i and AABB.
2021-09-21 21:14:17 +05:45
Rémi Verschelde
62aed73d88
Merge pull request #52545 from JFonS/occ_fixes
...
Occlusion culling fixes
2021-09-20 13:20:03 +02:00
Yuri Roubinsky
f68d3f67b5
Fix shader crash when passing array to built-in function without index
2021-09-18 14:05:14 +03:00
Rémi Verschelde
ec23d1348a
Merge pull request #52409 from GiantBlargg/position-depth-pre-pass
2021-09-17 14:21:29 +02:00
Rémi Verschelde
70ba366743
Merge pull request #50375 from Paulb23/code_edit_unit_tests
2021-09-13 21:51:20 +02:00
Rémi Verschelde
8ecc571158
Merge pull request #49063 from Calinou/remove-16x-msaa
...
Remove 16× MSAA support due to driver bugs and low performance
2021-09-13 17:34:04 +02:00
Rémi Verschelde
078bdef7e9
Merge pull request #51939 from clayjohn/VULKAN-horizon-so-fix
...
Compute horizon SO threshold before transformation
2021-09-13 11:44:42 +02:00
JFonS
5f69218edc
Merge pull request #51604 from TechnoPorg/fix-vulkan-parent-material
...
Vulkan: Fix CanvasItem::use_parent_material
2021-09-12 01:00:30 +02:00
Lyuma
aca4b737f1
8 uvs for glTF2, URI decode and Vertex Custom api.
...
Add glTF2 uri decode for paths.
Add vertex custom apis.
Add scene importer api.
Change Color to float; add support for float-based custom channels in SurfaceTool and EditorSceneImporterMesh
Co-authored-by: darth negative hunter
<thenegativehunter2@users.noreply.github.com>
2021-09-10 09:16:48 -07:00
jfons
d6fb8e1d93
Occlusion culling fixes
2021-09-10 18:15:10 +02:00
Juan Linietsky
7c9cdea836
Merge pull request #52476 from Lauson1ex/master
...
Replace current ACES tonemapper with a high quality one
2021-09-09 19:13:44 -03:00
Juan Linietsky
3c554f09ea
Merge pull request #52252 from Calinou/sdfgi-use-light-indirect-energy
...
Use the Light3D Indirect Energy property in SDFGI
2021-09-09 17:17:48 -03:00
Bastiaan Olij
506ae80876
Expose Vulkan internal values for access from extensions
2021-09-09 22:28:32 +10:00
Endri Lauson
065d13eddc
Replace ACES tonemapper with a high quality one
2021-09-07 19:46:02 -03:00
Bastiaan Olij
461d31427c
Merge pull request #52205 from BastiaanOlij/blit_source_rect
...
Add source rectangle to blit
2021-09-07 09:21:13 +10:00
Daniel Doran
3138b94058
Fix depth pass for shaders that set POSITION
2021-09-05 01:05:42 -06:00
Paulb23
24d02d0b4e
Fix dummy rendering server memory leaks
2021-09-01 16:46:04 +01:00
Clay John
036b7a0985
Merge pull request #51873 from Chaosus/fix_uniform_error_spam
...
Fix incorrect checking of uniform set to prevent error spam (2)
2021-08-31 11:28:48 -07:00
Hugo Locurcio
2c507cd426
Use the Light3D Indirect Energy property in SDFGI
...
The Indirect Energy property was previously ignored in SDFGI
(unlike VoxelGI).
2021-08-30 14:53:03 +02:00
Bastiaan Olij
fbac863bfb
Add source rectangle to blit
2021-08-29 14:57:16 +10:00
K. S. Ernest (iFire) Lee
90a35dac48
Merge pull request #51908 from bruvzg/msdf_fonts2
...
Make FontData importable resource. Add multi-channel SDF font rendering.
2021-08-27 08:51:37 -07:00
Juan Linietsky
712bcf564f
Merge pull request #52092 from Calinou/voxelgi-remove-anisotropic-leftovers
...
Remove leftovers of anisotropy in the VoxelGI shader code
2021-08-27 12:22:57 -03:00
bruvzg
4c3f7d1290
Makes FontData importable resource.
...
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Bastiaan Olij
c5f62fad90
Merge pull request #52003 from BastiaanOlij/xr_interface_extension
...
Adding GDExtension support to XRInterface
2021-08-27 11:51:43 +10:00
Bastiaan Olij
86ff7f8550
Adding GDExtension support to XRInterface
2021-08-26 23:24:44 +10:00
Bastiaan Olij
64626cc435
Optionally scale 3D render content
2021-08-26 20:48:40 +10:00
Bastiaan Olij
6e87d62873
Merge pull request #50883 from BastiaanOlij/mobile_hdr
...
Scale color output in the mobile renderer to provide HDR support
2021-08-26 11:23:22 +10:00
JFonS
c334989e00
Merge pull request #51821 from Calinou/builtin-shaders-add-comments
...
Add comments at the top of each built-in shader to ease debugging
2021-08-25 11:37:57 +02:00
Hugo Locurcio
6a6c0890c2
Remove leftovers of anisotropy in the VoxelGI shader code
...
Anisotropy support was removed when VoxelGI was reworked as it was
too demanding on the GPU.
2021-08-25 10:23:28 +02:00
Hugo Locurcio
7192852da3
Remove 16× MSAA support due to driver bugs and low performance
...
In the `master` branch, 16× MSAA caused the entire system to freeze
on NVIDIA GPUs. This is likely caused by graphics drivers not actually
implementing 16× MSAA, but combining 8× MSAA with 2× SSAA instead.
On top of that, modern shader complexity makes 16× MSAA very difficult
to use while keeping a good framerate. 8× MSAA is hard enough to use
as it is.
2021-08-25 07:56:27 +02:00
Max Hilbrunner
583b6a594a
Merge pull request #51971 from aaronfranke/https
...
Replace HTTP URLs with HTTPS for sites with HTTPS versions
2021-08-23 15:58:54 +02:00
Michael Alexsander
88db541705
Merge pull request #51947 from AnilBK/redundant-assignments
...
[cppcheck] Remove some redundant assignments.
2021-08-23 13:23:45 +00:00
Bastiaan Olij
d22163c657
Scale color output in the mobile renderer to provide HDR support
2021-08-23 15:30:36 +10:00
Bastiaan Olij
2d446771d6
Merge pull request #51980 from BastiaanOlij/fix_multiview_tonemap
...
Fix multiview defines in tonemap shader
2021-08-23 12:02:18 +10:00
Aaron Franke
ae1702bee5
Replace HTTP links with HTTPS for sites with HTTPS versions
2021-08-22 20:13:11 -05:00
Duarte David
7e94c583e0
Fixed non-uniform scaling of normals
2021-08-22 19:28:18 +01:00
Bastiaan Olij
74a647bddd
Fix multiview defines in tonemap shader
2021-08-22 21:30:58 +10:00
Anilforextra
c86db8b710
Remove redundant assignments.
...
Use used_in_transfer instead of used_in_compute twice.
2021-08-21 19:20:07 +05:45
clayjohn
bccc4cd735
Compute horizon so threshold before transformation
2021-08-20 19:27:52 -07:00
jfons
55e7832d7b
Improvements to SpotLight3D and OmniLight3D's shadows
...
OmniLight3D:
* Fixed lack of precision in cube map mode by scaling the projection's
znear.
* Fixed aliasing issues by making the paraboloids use two square regions instead of two half
squares.
* Fixed shadowmap atlas bleeding by adding padding.
* Fixed sihadow blur's inconsistent radius and unclamped sampling.
SpotLight3D:
* Fixed lack of precision by scaling the projection's znear.
* Fixed normal biasing.
Both:
* Tweaked biasing to make sure it works out of the box in most situations.
2021-08-19 13:46:51 +02:00
Yuri Roubinsky
b6af457d25
Fix incorrect checking of uniform set to prevent error spam (2)
2021-08-19 09:11:01 +03:00
Rémi Verschelde
f6626a40e5
Merge pull request #51843 from reduz/fixes-to-mobile-renderer-3
...
More fixes to mobile renderer
2021-08-18 20:43:25 +02:00
Rémi Verschelde
2fcf3057fd
Merge pull request #51792 from Chaosus/removed_restart
2021-08-18 19:59:57 +02:00
reduz
700f9d916d
More fixes to mobile renderer
...
* Specify all precision qualifiers
* Makes renderer work on Adreno Vulkan
2021-08-18 12:20:19 -03:00
Hugo Locurcio
a139e58f8c
Add comments at the top of each built-in shader to ease debugging
...
When a shader error is printed about a built-in shader, the origin
of the shader will now be recognizable immediately by looking at
the top of the printed shader code.
2021-08-18 03:09:22 +02:00
reduz
6027cd0a1d
Fixes to mobile renderer
...
* Make sure shaders are named, to aid in debug in case of failure
* SceneRenderRD was being wrongly initialized (virtual functions being called when derivative class not initialized).
* Fixed some bugs resulting on the above being corrected.
2021-08-17 13:52:06 -03:00
TechnoPorg
b097e7f510
Vulkan: Fix CanvasItem::use_parent_material
...
The "Use Parent Material" option now does something when enabled on a CanvasItem. As before, it's not just limited to a node's direct parent but can move up the tree until it finds a material.
Also corrected a typo in rendering_device_vulkan.h that didn't merit its own commit.
2021-08-17 09:08:56 -06:00
Yuri Roubinsky
c1cd0fe6d1
Removed RESTART
built-in from start
particle shader function
2021-08-17 15:13:16 +03:00
Yuri Roubinsky
06add309d7
Fix incorrect uniform buffer size for particles
2021-08-17 13:33:28 +03:00
Juan Linietsky
d5a30431b9
Merge pull request #51635 from reduz/further-mobile-optimizations
...
More optimizations on the mobile renderer.
2021-08-16 14:50:52 -03:00
Yuri Roubinsky
9de779344c
Makes a clear error message if shader compilation failed
2021-08-16 11:25:20 +03:00
Bastiaan Olij
c7847b3f6d
Moved disabling bokeh shader variants to before the version_create call
2021-08-16 12:18:27 +10:00
Bastiaan Olij
4002650cb9
Fix read from screen and depth texture
2021-08-15 13:14:19 +10:00
Rémi Verschelde
4e1d91f4d3
Merge pull request #50998 from BastiaanOlij/single_bokeh_dof_raster
...
Rewrote raster DOF shader to using BOKEH
2021-08-14 14:44:23 +02:00
reduz
cfac8972e1
More optimizations on the mobile renderer.
...
* Specialization constants used to disable anything not needed to draw
* Added softshadow and projector support on mobile.
This new approach ensures mobile shaders are smaller and more efficient, but relies on more pipeline versions compiled on demand.
As a result, random stalls can ocur like in Godot 3.x. These will be solved by using background compilation and fallbacks eventually (but needs to be tested first).
2021-08-13 14:30:59 -03:00
Rémi Verschelde
e499758a77
Merge pull request #51025 from reduz/fix-directional-shadow-bias
...
Fix directional shadow bias
2021-08-13 16:45:49 +02:00
Yuri Roubinsky
eadf9d92f9
Merge pull request #51609 from Chaosus/shader_fix_varying_error
...
Fix shader crash when using local var with the same name as varying
2021-08-13 10:37:53 +03:00
Yuri Roubinsky
fa96c98bdf
Fix shader crash when using local var with the same name as varying
2021-08-13 09:20:16 +03:00
Bastiaan Olij
07fd559478
Implemented raster versions of bokeh shaders to replace broken gaussian implementation
2021-08-13 10:20:14 +10:00
Rémi Verschelde
56ac302dc4
Merge pull request #51580 from aaronfranke/particles-real-double
...
Use real_t and double where appropriate in Particles
2021-08-12 20:51:21 +02:00
Aaron Franke
03e2544d50
Use real_t and double where appropriate in Particles
2021-08-12 11:35:31 -05:00
Hugo Locurcio
fd29432aab
Use nearest mipmaps for both minification and magnification
...
This is generally the expected behavior when using a nearest + mipmaps
mode, as it's often used for pixel art games.
2021-08-12 18:24:10 +02:00
Rémi Verschelde
b63af73435
Merge pull request #51391 from Chaosus/shader_param_names
...
Added parameter names to shader built-in function autocompletion
2021-08-12 14:58:11 +02:00
Yuri Roubinsky
fb37846b00
Added parameter names to shader built-in function autocompletion
2021-08-12 11:19:53 +03:00
Yuri Roubinsky
63c7d5c330
Removes an internal error report if shader fails compile
2021-08-12 10:18:18 +03:00
Rémi Verschelde
e2ca1d413e
Merge pull request #51533 from Calinou/fix-nearest-mipmap-filter
...
Fix the Use Nearest Mipmap Filter project setting not working
2021-08-12 08:16:46 +02:00
floppyhammer
37230dbb1f
Fix CPUParticles2D disappearance after amount change
2021-08-12 10:53:37 +08:00
Hugo Locurcio
635f6cdf2e
Fix the Use Nearest Mipmap Filter project setting not working
...
The project setting wasn't being used anywhere.
This also tweaks the property hints to denote that these properties
are only effective after a restart.
2021-08-12 01:58:42 +02:00
Rémi Verschelde
62047e4e48
Merge pull request #51486 from reduz/fixes-to-mobile-renderer
...
Fixes and optimizations to mobile renderer
2021-08-11 15:19:11 +02:00
Yuri Roubinsky
efc6b29601
Merge pull request #51505 from Chaosus/shader_fix_shadetype-errorline
2021-08-11 14:46:04 +03:00
Yuri Roubinsky
2fb5231bbc
Break futher shader compilation after missing ;
aftershader_type
2021-08-11 12:37:59 +03:00
Yuri Roubinsky
0f42a29864
Allow using more assignment operators on matrixes in shaders
2021-08-11 11:51:39 +03:00
Yuri Roubinsky
fead1595f9
Fix shader crash when using varying array in fragment->light context
2021-08-11 09:44:00 +03:00
clayjohn
a7c3e0dcd6
Use f0 instead of albedo in blinn and phong
2021-08-10 21:54:24 -07:00
reduz
ca117910da
Fixes and optimizations to mobile renderer
...
* Only apply final actions to attachments used in the last pass.
* Fixes to draw list final action (was using continue instead of read/drop).
* Profiling regions inside draw lists now properly throw errors.
* Ability to enable gpu profile printing from project settings. (used to debug).
2021-08-10 23:17:28 -03:00
Rémi Verschelde
afb40920fe
Merge pull request #51411 from clayjohn/VULKAN-blinn-phong
...
[4.0] Make Blinn and Phong specular modes take albedo into account
2021-08-10 21:11:48 +02:00
Rémi Verschelde
46beaacec3
Merge pull request #51017 from vnen/extension-fixes
2021-08-10 16:42:31 +02:00
Rémi Verschelde
16d73fefdb
Merge pull request #50682 from aaronfranke/basis-looking-at
...
Move code for looking_at to Basis
2021-08-10 11:28:12 +02:00
Rémi Verschelde
8b960a2d2b
Merge pull request #51467 from Chaosus/fix_aa
...
Fix incorrect border width of antialiased lines
2021-08-10 10:52:11 +02:00
Rémi Verschelde
51b4df72a7
Merge pull request #51436 from Calinou/tonemap-clamp-negative-colors
...
Clamp negative colors regardless of the tonemapper to avoid artifacts
2021-08-10 09:56:11 +02:00
Rémi Verschelde
56f17d925f
Merge pull request #51417 from clayjohn/Vulkan-horizon-so
...
Add horizon specular occlusion
2021-08-10 09:56:02 +02:00
Yuri Roubinsky
59c137a99b
Fix incorrect border width of antialiased lines
2021-08-10 09:08:02 +03:00
clayjohn
fa962ff27d
Make Blinn and Phong specular modes PBR
2021-08-09 20:09:00 -07:00
Aaron Franke
430ad75963
Some work on double support
2021-08-09 17:43:48 -05:00
Aaron Franke
84f720966c
Use doubles for time in many other places
2021-08-09 14:05:42 -05:00
Hugo Locurcio
57451f132f
Clamp negative colors regardless of the tonemapper to avoid artifacts
...
Color artifacts could be visible when using negative lights with the
Filmic and ACES tonemapping operators, as these did not clamp negative
colors.
2021-08-09 17:01:07 +02:00
Rémi Verschelde
0a38d5c8f7
Merge pull request #43158 from nathanfranke/fix-gradient-and-draw-tile
...
Fix Gradient and Color Picker checkerboard, Fix tile parameter for CanvasItem.draw_texture_rect
2021-08-09 16:47:58 +02:00
Rémi Verschelde
85399a9170
Merge pull request #51155 from Chaosus/shader_fix_specular_mode
...
Fix a default shader specular render mode to `SCHLICK_GGX`
2021-08-09 08:13:47 +02:00
clayjohn
7bdea93497
Add horizon specular occlusion
2021-08-08 19:43:48 -07:00
Nathan Franke
051234e84e
Fix Gradient, Color Picker BG, Fix CanvasItem::draw_texture_rect p_tile
2021-08-07 16:40:50 -05:00
Yuri Roubinsky
5e5cd2495d
Added editor dialog for easily creating shaders.
2021-08-07 21:02:13 +03:00
Rémi Verschelde
da339f8ffc
Merge pull request #51309 from Chaosus/fix_uniform_error_spam
...
Fix incorrect checking of uniform set to prevent error spam
2021-08-06 17:15:03 +02:00
Bastiaan Olij
b920bf05a4
Use subpasses to do 3D rendering and resolve in mobile renderer
2021-08-06 23:43:26 +10:00
Yuri Roubinsky
47a6bb2f28
Fix a default shader specular render mode to (SCHLICK_GGX
/BLINN
)
2021-08-06 16:01:58 +03:00
Yuri Roubinsky
ac4406cfbe
Fix incorrect checking of uniform set to prevent error spam
2021-08-06 12:20:12 +03:00
George Marques
97947bc063
Fix a few default parameters in bindings
...
They have the wrong type and cause issues with extensions.
2021-08-05 14:57:29 -03:00
Rémi Verschelde
dbd1a90bd4
Merge pull request #50942 from BastiaanOlij/cubemap_raster
...
Porting cubemap compute shaders to raster for the mobile renderer
2021-08-01 21:52:24 +02:00
Aaron Franke
9f3ae0adcd
Move code for looking_at to Basis
2021-08-01 12:49:02 -05:00
Bastiaan Olij
c76426527b
Porting cubemap compute shaders to raster for the mobile renderer
2021-08-01 21:22:38 +10:00
clayjohn
b020ca32b2
Move assignment of SSAO radius push constant
2021-07-31 12:31:14 -07:00
Rafał Mikrut
e8877806ec
Fix 'Attempted to remove invalid ID' errors
2021-07-31 15:30:31 +02:00
reduz
55d357b1eb
Fix directional shadow bias
...
* Simplified code a lot, bias based on normalized cascade size.
* Lets scale cascades, max distance, etc. without creating acne.
* Fixed normal biasing in directional shadows.
I removed normal biasing in both omni and spot shadows, since the technique can't be easily implemented there.
Will need to be replaced by something else.
2021-07-29 13:51:32 -03:00
Hugo Locurcio
e6a544c169
Merge pull request #50891 from Vitika9/50852
...
Removed redundant assignment of `blur_pipeline`
2021-07-26 21:43:38 +02:00
Rémi Verschelde
fef27e9b5b
Merge pull request #50895 from Chaosus/fix_shader_crash
...
Fix editor crash if passing index as variable to function parameter
2021-07-26 17:38:14 +02:00
Rémi Verschelde
8f6c16e4a4
Merge pull request #50847 from reduz/implement-binary-shader-compilation
...
Implement Binary Shader Compilation
2021-07-26 17:09:48 +02:00
Yuri Roubinsky
c082982a47
Fix editor crash if passing index as variable to function parameter
2021-07-26 17:42:52 +03:00
vitika9
1c63866996
Fixed coding style
2021-07-26 20:12:16 +05:30
Rémi Verschelde
64dc58bfba
Merge pull request #50884 from Chaosus/fix_shader_crash
...
Prevents shader crashing if varying assigned incorrectly by using compound assignment operators (*=, += etc.)
2021-07-26 15:39:59 +02:00
Nicholas Huelin
7f908cf40f
Fix expression in cluster_builder_rd.h
...
This expression should now work as intended.
2021-07-26 08:19:53 -04:00
Yuri Roubinsky
b47b3a9957
Prevents shader crashing if varying assigned incorrectly
2021-07-26 14:47:14 +03:00
reduz
cf3f404d31
Implement Binary Shader Compilation
...
* Added an extra stage before compiling shader, which is generating a binary blob.
* On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse.
* On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL.
This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved.
I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware.
There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
2021-07-26 08:40:39 -03:00
Yuri Roubinsky
3013324a4e
Fix compilation of shader_language.cpp
2021-07-26 13:44:21 +03:00
Rémi Verschelde
a8fcfbf029
Merge pull request #50729 from Chaosus/shader_varying_enchancements2
...
Allow using vertex-stage varying in both `fragment` and `light` functions
2021-07-26 12:17:49 +02:00
Rémi Verschelde
9b9e09f675
Merge pull request #50728 from Chaosus/shader_varying_enchancements
...
Allow using vertex varying in custom functions under any circumstances
2021-07-26 12:17:40 +02:00
Rémi Verschelde
7341dd5afa
Merge pull request #50856 from SirQuartz/patch-32
...
Fix always true expression `radius > 0.98 || radius < 1.02` in `cluster_builder_rd.h`
2021-07-26 08:47:33 +02:00
Nicholas Huelin
a1a392045d
Fix always true expression in cluster_builder_rd.h
...
This pull request fixes an issue where an expression would always evaluate to `true` no matter what.
2021-07-25 11:53:04 -04:00
luz paz
5cf3bed0c8
Fix various typos
...
Follow-up typos found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 07:18:25 -04:00
Rémi Verschelde
ff0b5f8fa1
Merge pull request #50809 from akien-mga/iterators-const-references
2021-07-25 12:52:58 +02:00
Rémi Verschelde
2f221e5fd5
Merge pull request #50250 from luzpaz/typos
...
Fix various typos
2021-07-25 12:38:58 +02:00
Rémi Verschelde
ac3322b0af
Use const references where possible for List range iterators
2021-07-25 12:22:25 +02:00
Rémi Verschelde
2a8a59eac0
Merge pull request #50644 from BastiaanOlij/mobile_compute_to_fragment
2021-07-25 11:58:11 +02:00
luz paz
3564c16cb8
Fix various typos with codespell
...
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 11:21:51 +02:00
Bastiaan Olij
1f69582835
Use fragment shader instead of compute shader for effects for mobile renderer
2021-07-25 13:58:21 +10:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations
2021-07-23 17:38:28 -04:00
Yuri Roubinsky
17b462cc5f
Allow using vertex-stage varying in both fragment
and light
2021-07-22 11:55:14 +03:00
Yuri Roubinsky
94a7b04a01
Allow using vertex varying in custom functions under any circumstances
2021-07-22 11:27:13 +03:00
Yuri Roubinsky
39c06604cd
Forbid varyings from assigning in custom functions to prevent crashes
2021-07-21 14:12:54 +03:00
Rémi Verschelde
71f8253579
Merge pull request #50489 from Chaosus/shader_varying
...
Prevent error if varying assigned but not used (push warning instead)
2021-07-21 13:05:08 +02:00
Rémi Verschelde
fa56989818
Merge pull request #50537 from Calinou/improve-shader-error-output-2
...
Add error marking to the shader error console output
2021-07-20 11:00:17 +02:00
Rémi Verschelde
394191c02f
Merge pull request #50605 from Calinou/tweak-shader-code-style
...
Use C++11 raw literals for shader code to improve readability
2021-07-20 10:05:13 +02:00
reduz
9293bc3935
Implement more rendering options as specialization constants
...
* Shadow quality settings now specialization constant.
* Decal and light projector filters can be set.
* Changing those settings forces re-creation of the pipelines.
These changes should help improve performance related to shadow mapping, and allows improving performance by sacrificing decal and light projector quality.
2021-07-19 21:51:29 -03:00
Rémi Verschelde
855c7c7414
Merge pull request #50566 from reduz/optimize-stringname-usage
...
Optimize StringName usage
2021-07-19 15:20:25 +02:00
Hugo Locurcio
abc38b8d66
Use C++11 raw literals for shader code to improve readability
...
In files that have lots of branching, `\t` was replaced with a
tab character instead.
2021-07-19 08:19:50 +02:00
reduz
6631f66c2a
Optimize StringName usage
...
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.
This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
Hugo Locurcio
9fc2849a57
Add error marking to the shader error console output
...
This makes it possible to see where the shader error is without
having to look at the trace printed below the source code.
2021-07-17 03:05:11 +02:00
reduz
76e25438c9
Fixes to forward mobile
...
* use valid format for framebuffer: VK_FORMAT_A2B10G10R10_UNORM_PACK32
* Unfortunately cant be used for compute.
* Mobile will need to do refprobe, sky, mipmapblurring using raster.
2021-07-15 21:05:58 -03:00
Yuri Roubinsky
14d5b47a27
Prevent error if varying assigned but not used (push warning instead)
2021-07-15 18:07:19 +03:00
Rémi Verschelde
64fb4fac89
Merge pull request #49996 from Chaosus/shader_localvar_warning
...
Added a shader warning about unused local variable
2021-07-15 16:19:22 +02:00
Juan Linietsky
3f12765a7e
Merge pull request #49678 from BastiaanOlij/mobile_renderer_select_color_format
...
Use 32bit instead of 64bit 3D render buffer on mobile renderer
2021-07-15 10:16:39 -03:00
Yuri Roubinsky
d6dc77aa36
Removes lines about window size from the console output
2021-07-14 20:58:53 +03:00
Yuri Sizov
0f78e36e1c
Check if there are new docs missing on CI
2021-07-14 14:21:03 +03:00
Bastiaan Olij
8a29208fc4
Use 32bit instead of 64bit 3D render buffer on mobile
2021-07-13 10:26:28 +10:00
reduz
ad9f606ed8
Use specialization constants in clustered renderer
...
* Keep track of when projector, softshadow or directional sofshadow were enabled.
* Enable them via specializaton constant where it makes sense.
* Re-implements soft shadows.
* Re-implements light projectors.
2021-07-12 20:33:52 -03:00
Rémi Verschelde
b218c6785e
Merge pull request #50194 from BastiaanOlij/fix_multiple_reflection_probes
...
Fix indexing of multiple reflection probes
2021-07-12 19:22:47 +02:00
TaskManagerCZ
e3be0913d7
Explicit error message when setting active a Viewport that is already active.
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-07-12 13:27:45 +02:00
reduz
b2f6db7aa8
Implement Specialization Constants
...
* Added support to our local copy of SpirV Reflect (which does not support it).
* Pass them on render or compute pipeline creation.
* Not implemented in our shaders yet.
2021-07-11 23:16:09 +02:00
Hugo Locurcio
a2d5f191d8
Merge pull request #48622 from Geometror/reimplement-disableable-vsync
2021-07-10 01:02:23 +02:00
reduz
83addd6ee5
Fix material invalidation on reimport.
...
* IF a texture was reimported (calling replace as an example), it would invalidate all materials using it, causing plenty of errors.
* Added the possibility to get a notification when a uniform set is erased.
* With this notification, materials can be queued for update properly.
2021-07-07 19:55:20 -03:00
reduz
24efb13f7e
Fix threaded update for textures
...
* Previews and other stuff now works again.
* Not the best solution, will have to be improved in the future usinc async queues where supported.
2021-07-07 18:06:06 -03:00
Rémi Verschelde
48a5226829
Merge pull request #50193 from reduz/fix-command-queue-crash
...
Fix Command Queue Crash
2021-07-07 16:36:13 +02:00
reduz
d41e3f9aeb
Fix Command Queue Crash
...
* No longer allow sending an object (texture) to the server as material parameter
* Keep a parameter cache locally in ShaderMaterial
2021-07-07 10:57:56 -03:00
reduz
c43f624d44
Unify material parameter update
...
* Unifies how material parameters are updated.
* Single function, easier to maintain.
* Updates materials properly when textures change.
2021-07-06 18:57:38 -03:00
Hendrik Brucker
043ae91560
Restructure and reimplement vsync options
...
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX
-Removed the V-Sync via Compositor option
2021-07-06 16:34:26 +02:00
Bastiaan Olij
b3612351a8
Fix indexing of multiple reflection probes
2021-07-06 13:00:33 +10:00
reduz
7f6027927a
Fix Subsurface Scattering
...
* Works again
* Transmittance also works again
* Removed the curve patamter, exp() function is good enough.
2021-07-05 17:17:45 -03:00
Daniel Doran
82bb8f1531
Fix transparency sorting
2021-07-05 03:19:42 -06:00
Rémi Verschelde
5c3055e0fe
Merge pull request #50137 from reduz/fix-boot-splash
...
Fix Boot Splash
2021-07-04 09:40:36 +02:00
Rémi Verschelde
67c08e27a5
Merge pull request #50138 from Calinou/debug-overdraw-lower-opacity
...
Decrease opacity of the overdraw debug draw mode
2021-07-04 09:39:36 +02:00
Rémi Verschelde
8838e3d3d4
Merge pull request #50144 from reduz/fix-ssr
...
Fix SSR
2021-07-04 09:20:22 +02:00
reduz
0e366dc7ac
Fix SSR
...
* Was broken at some point long time ago, this restores it.
2021-07-03 23:32:34 -03:00
reduz
ab3314e955
Fix SDFGI
...
* Broken by 7513b73902
, fixes #49631
2021-07-03 21:24:37 -03:00
Hugo Locurcio
27aa8dc68e
Decrease opacity of the overdraw debug draw mode
...
This allows distinguishing higher amounts of overlapping objects.
2021-07-04 00:19:14 +02:00
reduz
6e1c5e346a
Fix Boot Splash
...
* Implements the code to show the boot splash on load using RenderingDevice
* Does not work on X11 when maximized, some platform specific hack will be needed there.
2021-07-03 18:09:19 -03:00
reduz
fe17a6c907
Fix render debug modes.
...
* Ovedraw debug works again
* Lighting debug works again
2021-07-03 14:50:36 -03:00
reduz
6c55d2aad2
Fix Render Info
...
* Fixed and redone the process to obtain render information from a viewport
* Some stats, such as material changes are too difficult to guess on Vulkan, were removed.
* Separated visible and shadow stats, which causes confusion.
* Texture, buffer and general video memory can be queried now.
* Fixed the performance metrics too.
2021-07-03 10:15:04 -03:00
Bastiaan Olij
e86aeb85ce
Properly override virtual functions in render_scene_render_rd and subclasses
2021-07-03 20:32:40 +10:00
Hugo Locurcio
5370f4876e
Remove leftovers from the DirectionalLight3D Optimized shadow depth range
...
The Optimized shadow depth range was removed in late 2020 in favor
of the Stable shadow depth range, but it still had a (broken) property
that allowed to enable it.
2021-07-02 20:32:43 +02:00
reduz
8cf812fba1
Fix surface from array creation
...
* The debug check was not updated to the new format.
* Bug introduced by #50037
2021-07-01 16:51:55 -03:00
Rémi Verschelde
ad8a2b3d52
Merge pull request #50040 from reduz/fix-renderingserver-bindings
...
Clean up RenderingServer and its bindings
2021-07-01 15:17:33 +02:00
reduz
37776b2867
Clean up RenderingServer and its bindings
...
* Rewrote bindings for RenderingServer.
* They are now all up to date.
* Several unused methods and deprecated features were cleaned up.
2021-07-01 09:07:36 -03:00
reduz
9ad0c6cde7
Import mesh colors in 8BPP.
...
* Colors were imported as 16BPP (half float)
* Far most common use cases only require 8BPP
* If you need higher data precision, use a custom array, which are supported now.
**WARNING**: 3D Scenes imported in 4.0 no longer compatible with this new format. You need to re-import them (erase them from .godot/import)
2021-06-30 23:33:25 -03:00
reduz
85cf99f28e
Deprecate ImmediateGeometry
...
* Removed entirely from RenderingServer.
* Replaced by ImmediateMesh resource.
* ImmediateMesh replaces ImmediateGeometry, but could use more optimization in the future.
* Sprite3D and AnimatedSprite3D work again, ported from Godot 3.x (though a lot of work was needed to adapt them to Godot 4).
* RootMotionView works again.
* Polygon3D editor works again.
2021-06-30 14:14:41 -03:00
reduz
d07f7c8d25
Fixes to 2D viewport
...
* Editor 2D viewport now uses embedded subwindows (windows no longer pop up)
* Restored the ability to disable 3D on the 2D viewport (makes 3D not display on 2D when there is a camera on the scene)
2021-06-29 17:40:45 -03:00
reduz
64c925cca6
Improve RID_Owner memory usage
...
* Ability to allocate empty objects in RID_Owner, so RID_PtrOwner is not needed in most cases.
* Improves cache usage, as objects are now allocated together
* Should improve performance in 2D rendering
2021-06-29 12:28:08 -03:00
reduz
d55ebc3a5d
Fix non uniform scaling in 3D objects
...
* Flag was there, but not implemented.
* Fixed issue with base flags not being initialized.
2021-06-29 11:45:59 -03:00
Yuri Roubinsky
5100eed012
Added a shader warning about unused local variable
2021-06-29 15:39:37 +03:00
Bastiaan Olij
a9604b425f
Move render_sky logic from effects into our sky object, and some minor cleanup
2021-06-26 18:46:47 +10:00
Rémi Verschelde
e4430771db
Merge pull request #49885 from reduz/implement-render-pass-support
...
Implement Framebuffer Subpass support
2021-06-25 15:00:01 +02:00
reduz
bde6f5eed1
Implement Framebuffer Subpass support
...
* Required for better optimizing mobile platforms
* Will be used by the Vulkan mobile renderer.
2021-06-24 15:59:15 -03:00
Rémi Verschelde
a01ea509f5
Merge pull request #49826 from groud/fix_mesh_transform
...
Keep the drawing transform when drawing meshing in CanvasItem
2021-06-24 19:38:56 +02:00
Gilles Roudière
ccbf31685d
Fixes Mesh2D drawn without modulation
2021-06-23 17:38:31 +02:00
Gilles Roudière
e8476c994d
Keep the drawing transform when drawing meshing in CanvasItem
2021-06-22 11:41:28 +02:00
Lightning_A
e28fd07b2b
Rename instance()
->instantiate()
when it's a verb
2021-06-19 20:49:18 -06:00
Rémi Verschelde
76fd91c084
Merge pull request #49737 from JFonS/fix_vis_range
...
Fix crash in visibility range system.
2021-06-20 00:32:42 +02:00
Bastiaan Olij
0a6a71973e
Merge pull request #49615 from BastiaanOlij/inverse_xr_camera_offset
...
Inverse XR camera offset for stereoscopic rendering
2021-06-19 20:19:53 +10:00
jfons
2c0819992c
Fix crash in visibility range system.
2021-06-19 11:43:41 +02:00
Bastiaan Olij
b1bbbb4439
Inverse XR camera offset for stereoscopic rendering
2021-06-19 19:33:40 +10:00
jfons
a0b19d2561
Fix "Ignore Occlusion Culling" flag.
2021-06-18 21:42:03 +02:00
Rémi Verschelde
92f20fd70e
Merge pull request #49659 from LightningAA/string-valid-integer-to-int
2021-06-18 16:14:14 +02:00
reduz
94d31ac327
Implement animation slice drawing in CanvasItem
...
* Added a function to ignore subsequent commands if they don't fall within the slice.
* This will be used by the new TileMap to properly provide animated tiles.
2021-06-17 12:42:27 -03:00
reduz
6e98c4cd50
Refactor VisibilityNotifier3D
...
* This is the 3D counterpart to #49632
* Implemented a bit different as 3D works using instancing
After merged, both 2D and 3D classes will most likely be renamed in a separate PR to DisplayNotifier2D/3D.
2021-06-16 18:50:39 -03:00
Lightning_A
b6af2a29eb
Rename is_valid_integer()
to is_valid_int()
...
Method from `String`
2021-06-16 10:32:22 -06:00
reduz
38d164c74b
Refactor VisibilityNotifier
...
* Works from RenderinServer
* Accurately tells when on or off-scren, its no longer approximate.
* VisibilityEnabler also simplified to use the process mode instead.
2021-06-16 10:48:57 -03:00
Rémi Verschelde
c2ba45fcc8
Merge pull request #49630 from kodiwills/fix-custom-irradiance-typo
...
Fix typo in `CUSTOM_IRRADIANCE` calculations
2021-06-15 22:37:54 +02:00
Kodi
69e1f25299
Fix typo in CUSTOM_IRRADIANCE calculations
2021-06-15 15:17:00 -04:00
Rémi Verschelde
ec323f0ef4
Merge pull request #49584 from timothyqiu/shader-data-null-check
...
Add missing null check for ShaderData
2021-06-14 19:18:20 +02:00
Rémi Verschelde
3f613236e0
Merge pull request #49576 from clayjohn/VULKAN-SSAO-uniform-sets
...
Store SSAO uniform sets per viewport
2021-06-14 19:05:19 +02:00
Rémi Verschelde
0610c559ec
Merge pull request #49585 from timothyqiu/oh-unsigned
...
Fix invalid read when using MultiMesh
2021-06-14 18:35:36 +02:00
Rémi Verschelde
6c1445bfea
Merge pull request #48847 from JFonS/vis_deps
...
Implement visibility range and dependencies
2021-06-14 17:22:59 +02:00
jfons
3a53ae5d9f
Implement visibility range and dependencies.
...
This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`,
`visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`.
Together they define a range in which the GeometryInstance3D will be visible from the camera,
taking hysteresis into account for state changes. A begin or end value of 0 will be ignored,
so the visibility range can be open-ended in both directions.
This commit also adds the `visibility_parent` property to 'Node3D'.
Which defines the visibility parents of the node and its subtree (until
another parent is defined).
Visual instances with a visibility parent will only be visible when the parent, and all of its
ancestors recursively, are hidden because they are closer to the camera than their respective
`visibility_range_begin` thresholds.
Combining visibility ranges and visibility parents users can set-up a quick HLOD system
that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes
for far away groups (i.e. cities, woods).
2021-06-14 12:17:11 +02:00
Haoyu Qiu
1b122345c2
Fix invalid read when using MultiMesh
2021-06-14 13:19:40 +08:00
Haoyu Qiu
fa907ce829
Add missing null check for ShaderData
2021-06-14 13:00:35 +08:00
Bastiaan Olij
3eae812331
Fixed error spam when XR mode is not enabled and a missed setting rename
2021-06-14 11:05:16 +10:00
clayjohn
fc93e10092
Store SSAO uniform sets per viewport
2021-06-13 10:42:10 -07:00
Bastiaan Olij
15c1a76361
Add stereoscopic rendering through multiview
2021-06-13 22:52:20 +10:00
reduz
ce783689f8
Make shader compiler again after roughness limiter fix
...
Fix shader compilation error after merging #49549
2021-06-12 21:40:51 -03:00
Juan Linietsky
bb94344937
Merge pull request #49549 from clayjohn/VULKAN-roughness-limiter
...
Fix roughness limiter derivative
2021-06-12 21:29:34 -03:00
clayjohn
9a5e00be6f
Fix roughness limiter derivative
2021-06-12 17:02:05 -07:00
reduz
7513b73902
Fix VoxelGI (works again).
...
It was broken due to #46046 , this makes it work again.
2021-06-12 20:37:56 -03:00
Rémi Verschelde
2787ee634a
Merge pull request #49520 from pfertyk/issue-46278-empty-texture-crashes-godot
...
Validate texture in RendererStorageRD::free
2021-06-12 22:27:14 +02:00
Paweł Fertyk
31cd42373b
Validate texture in RendererStorageRD::free
2021-06-11 20:12:23 +02:00
Pedro J. Estébanez
04688b92ff
Rename Reference to RefCounted
2021-06-11 18:48:42 +02:00
Rémi Verschelde
9e328bb5b7
Core: Move DirAccess and FileAccess to core/io
...
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Yuri Roubinsky
9539e4e39e
Merge pull request #49456 from Chaosus/fix_shader_length
...
Fix `length()` array function usage in shader
2021-06-10 11:07:59 +03:00
Yuri Roubinsky
7dd65a066e
Fix length()
array function usage in shader
2021-06-10 10:04:28 +03:00
reduz
c66b2651a6
Refactor CommandQueueMT
...
* RingBuffer had no reason to be in this context
* A single buffer is used that can grow as much as the game needs.
This should make thread loading entirely reliable.
2021-06-09 13:10:49 -03:00
Yuri Roubinsky
5d5400a3b1
Fix shader compilation with render_mode: specular_phong
2021-06-09 08:38:03 +03:00
Yuri Roubinsky
4daca0b580
Removes deleted OrenNayar mode from shaders and materials
2021-06-08 15:50:40 +03:00
Yuri Roubinsky
eec82d9f75
Prevent shader crash when returning array when return type is scalar
2021-06-06 14:59:52 +03:00
reduz
32625145c8
Rename GI Classes
...
* GIProbe is now VoxelGI
* BakedLightmap is now LightmapGI
As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-05 09:28:56 -03:00
Rémi Verschelde
6f7d45d210
Merge pull request #45364 from madmiraal/rename-quat
...
Rename Quat to Quaternion
2021-06-05 13:32:08 +02:00
andriyDev
9f4bf5ec80
Deleted YSort, moved its functionality directly into Node2D.
...
YSort now has a compatibility alias to Node2D.
Updated TileMap to use the existing Node2D y_sort_enabled property instead
of its own property.
Updated Node2D doc to include the new y_sort_enabled member.
Updated TileMap doc to remove its mention of cell_y_sort.
Deleted YSort doc.
2021-06-05 00:55:25 -07:00
Marcel Admiraal
8acd13a456
Rename Quat to Quaternion
2021-06-04 18:14:32 +01:00
Aaron Franke
08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
...
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Aaron Franke
de3f6699a5
Rename Transform to Transform3D in core
2021-06-03 07:30:01 -04:00
Fabio Alessandrelli
8cdef21d6c
Move remaining dummy drivers to servers.
2021-06-01 16:50:32 +02:00
Rémi Verschelde
52ab531a56
Merge pull request #49161 from lawnjelly/fix_canvas_rect_bound4
...
[4.x] Fix canvas rect bound calculation
2021-05-31 11:34:46 +02:00
reduz
0d2e02945b
Implement shader caching
...
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
lawnjelly
07ca9cd263
[4] Fix canvas rect bound calculation
...
It turns out the calculation of the bounding rect for canvas items has a nasty bug. When a transform is applied (especially in a custom draw), in the renderer this extra matrix is applied to all later commands in the canvas item. However in the calculation of the bound, the transform is only applied to the first command following the transform.
This PR fixes this inconsistency.
2021-05-28 09:04:24 +01:00
Yuri Roubinsky
897fc09bac
Makes few shader built-ins constant to prevent changing them
2021-05-26 15:58:35 +03:00
Rémi Verschelde
f1abfbbeb1
Merge pull request #48837 from Soupstraw/shader-pi
...
Added constants PI, TAU and E to the shader language
2021-05-25 18:07:15 +02:00
Rémi Verschelde
f050719da8
Merge pull request #48933 from Chaosus/shader_array_params
...
Allow shader arrays to be passed as parameters and return value in functions
2021-05-25 11:47:08 +02:00
Joosep Jääger
16567321ba
Added constants PI, TAU and E to the shader language
2021-05-25 12:15:08 +03:00
reduz
789713b008
Support for 2D particles to collide against SDF
...
-Added SDF collision support for 2D particles
-Changed the SDF generation to be fully signed
2021-05-23 16:43:36 -03:00
Yuri Roubinsky
5874b7a29c
Allow shader arrays to be passed as parameters and return value
2021-05-22 20:15:03 +03:00
Yuri Roubinsky
084648bd18
Basic warning support implementation for the Godot Shading Language.
2021-05-22 19:24:31 +03:00
Winston Hartnett
96fa2ee2a0
Fix instance uniform typo
2021-05-20 21:11:40 -05:00
Rémi Verschelde
4219a4cb6f
Fix typos with codespell
...
Using codespell 2.0.0.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
Yuri Roubinsky
6135744786
Implements length() shader function for arrays in structs
2021-05-19 21:50:11 +03:00
Yuri Roubinsky
96b2e54c70
Fix typo in shader_language.cpp
2021-05-18 19:01:02 +03:00
Bastiaan Olij
02980be834
Implementing blit shader with versions
2021-05-12 22:52:28 +10:00
Rémi Verschelde
0c693f8781
Merge pull request #48472 from BastiaanOlij/render_state
...
Make better use of our render_state struct
2021-05-12 13:44:03 +02:00
reduz
479391ef54
Fixes missng 2D engine bits
...
-Mesh2D now works
-MultiMesh2D now works
-Polygon2D now works
-Added hooks for processing 2D particles
-Skeleton2D now works
2D particles still not working, but stuff needed for it is now implemented.
2021-05-11 11:21:36 -03:00
Bastiaan Olij
308b26762b
Split RenderDataRD struct from RenderState struct to simplify passing our render data around the renderer.
2021-05-10 21:52:15 +10:00
Rémi Verschelde
8962d36bb1
Merge pull request #33577 from Calinou/highlight-control-flow-keywords
...
Highlight control flow keywords with a different color
2021-05-07 00:52:50 +02:00
Bastiaan Olij
90ef5d73c4
Cleanup vulkan capabilities check and add multiview check
2021-05-06 12:06:07 +10:00
Hugo Locurcio
e905e8f145
Highlight control flow keywords with a different color
...
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +02:00
Rémi Verschelde
7449d6c752
Merge pull request #48435 from BastiaanOlij/no_repeat_mobile_renderer
...
Remove repeat from forward mobile renderer
2021-05-05 16:19:03 +02:00
Bastiaan Olij
cc45ed448b
Remove repeat from forward mobile renderer
2021-05-04 11:37:58 +10:00
jfons
6995b0429c
Assorted fixes to UV unwrapping and GPU lightmapper
...
Various fixes to UV2 unwrapping and the GPU lightmapper. Listed here for
context in case of git blame/bisect:
* Fix UV2 unwrapping on import, also cleaned up the unwrap cache code.
* Fix saving of RGBA images in EXR format.
* Fixes to the GPU lightmapper:
- Added padding between atlas elements, avoids bleeding.
- Remove old SDF generation code.
- Fix baked attenuation for Omni/Spot lights.
- Fix baking of material properties onto UV2 (wireframe was
wrongly used before).
- Disable statically baked lights for objects that have a
lightmap texture to avoid applying the same light twice.
- Fix lightmap pairing in RendererSceneCull.
- Fix UV2 array generated from `RenderingServer::mesh_surface_get_arrays()`.
- Port autoexposure fix for OIDN from 3.x.
- Save debug textures as EXR when using floating point format.
2021-05-03 18:10:34 +02:00
Bastiaan Olij
58ff0dac1a
Create mobile renderer
2021-05-03 21:54:11 +10:00
reduz
90056460ad
Implement Particle Trails
...
-Enable the trails and set the length in seconds
-Provide a mesh with a skeleton and a skin
-Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh
-Works deterministically
-Fixed particle collisions (were broken)
-Not working in 2D yet (that will happen next)
2021-04-30 17:38:02 -03:00
Rémi Verschelde
305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
...
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde
95cfce661b
Merge pull request #48050 from JFonS/occlusion_culling
2021-04-27 19:07:12 +02:00
Rémi Verschelde
8247667a3e
Core: Drop custom copymem
/zeromem
defines
...
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639
.
There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Yuri Roubinsky
3c82f01134
Fix shader handle constant expressions in function call
2021-04-27 15:23:01 +03:00
Dennis Brakhane
31d41d83c3
Remove duplicate comments
...
A few single line comments were duplicated, probably due to bad merges.
This commit removes the obviously duplicate ones.
2021-04-25 20:03:52 +02:00
jfons
4d9d99bb82
Implement occlusion culling
...
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.
Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
Bastiaan Olij
ebf10fe736
Fix reflection probe
2021-04-21 23:42:29 +10:00
reduz
906882ee66
Split particle shader entry points
...
* Particle shaders now have start() and process()
* Particle collision happens between them.
* The RESTART property is kept, so porting an old shader is still possible.
This fixes the problem of particle collisions not functioning on the first particle frame.
2021-04-17 12:22:55 -03:00
Rémi Verschelde
c7a4e2196e
Merge pull request #47878 from clayjohn/rename-get_surface_material
...
Rename get_surface_material to get_surface_override_material
2021-04-15 07:57:15 +02:00
clayjohn
92731d292c
Rename get_surface_material to get_surface_override_material
2021-04-14 20:24:03 -07:00
reduz
d3b49c416a
Refactor GLSL shader compilation
...
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
2021-04-14 11:37:52 -03:00
Bastiaan Olij
71c5d73b5e
Remove low_end option from renderer, being replaced by separate implementation
2021-04-09 22:04:56 +10:00
Bastiaan Olij
dad40fa2df
Move clustered renderer functionality
2021-04-05 23:11:38 +10:00
Rémi Verschelde
d83761ba80
Style: Apply clang-tidy's readability-braces-around-statements
2021-04-05 14:09:59 +02:00
Rémi Verschelde
9bbe51dc27
Style: Apply clang-tidy's modernize-use-nullptr
2021-04-05 14:05:07 +02:00
Rémi Verschelde
65a2888057
Style: Apply clang-tidy's modernize-use-default-member-init
2021-04-05 13:37:27 +02:00
Bastiaan Olij
e93c9fc4ed
As GLSLang seems to be all or nothing, added our own defines
2021-03-31 21:47:25 +11:00
Bastiaan Olij
a6c989bc1b
Obtain supported Vulkan API
2021-03-26 12:06:57 +11:00
Manuel Moos
fc7333433b
Remove redundant thread sync counter draw_pending
...
The functions that used it already use a threadsafe FIFO queue
to communicate between threads and a sync to have the main thread
wait for the render thread.
Fixes #35718
2021-03-21 14:45:38 +01:00
Bastiaan Olij
7f63c9e7c9
Changed SCsub for shaders to find shaders automatically and create dependencies with include files
2021-03-18 12:59:47 +11:00
Ignacio Abal
ccdd7ab890
Added validation when assigning heightfield_resolution ( Fix #46281 )
2021-03-17 12:03:52 -03:00
sboronczyk
3e7c5d2ca5
fix issue vulkan crash on open shader materials
2021-03-13 22:54:33 +01:00
Bastiaan Olij
f7cbeb0d1b
Removed time duplicate from ForwardClustered. Just use the variable from its superclass
2021-03-11 18:08:10 +11:00
Bastiaan Olij
73b5eb2673
Combine init_gi and init_sdfgi into a single init
2021-03-11 18:07:33 +11:00
Bastiaan Olij
52ab369d5f
Renamed one more Forward render struct and fixed typo
2021-03-11 14:18:05 +11:00
Bastiaan Olij
dfc41eb6f6
Moving RendererStorageRD *storage to protected, no sense duplicating it in forward_clustered
2021-03-11 13:24:23 +11:00
Bastiaan Olij
a895844c82
Renaming RendererSceneRenderForward to RendererSceneRenderForwardClustered so we can introduce RendererSceneRenderForwardMobile
2021-03-10 22:34:50 +11:00
Rémi Verschelde
3856bc5afe
Merge pull request #46642 from BastiaanOlij/sdfgi_rename_and_cleanup
...
Renamed SDGIShader to SDFGIShader and moved a bunch of things to private
2021-03-08 08:22:48 +01:00
Ev1lbl0w
1f0b60c47d
Fix negative VRAM values
2021-03-05 21:48:20 +00:00
Alex Hirsch
426ef4b1ee
Fix canvas renderer line width
...
fix #46644
2021-03-04 21:37:06 +01:00
Bastiaan Olij
760be46a81
Renamed SDGIShader to SDFGIShader and moved a bunch of things to private
2021-03-04 11:53:09 +11:00
Rémi Verschelde
8c45b1d61c
Merge pull request #46594 from asheraryam/fix-clip-content-master
...
Fix rounding error in Clip Content [4.0]
2021-03-02 17:07:00 +01:00
asheraryam
c3d8538bb4
Fix rounding error in Clip Content
...
Rounds the position and size of the final clip rect to avoid flickering issues.
Fixes https://github.com/godotengine/godot/issues/46493
2021-03-02 18:36:28 +03:00
Rémi Verschelde
da8eef486b
Merge pull request #46046 from BastiaanOlij/cleanup_gi
...
Moving GI and Sky code from RendererSceneRenderRD into separate classes
2021-03-01 19:34:53 +01:00
Rémi Verschelde
e9cb64a8b5
Merge pull request #46522 from Ev1lbl0w/bugfix-shader_noret
...
Added missing returns on error scenarios
2021-03-01 09:36:15 +01:00
Yuri Roubinsky
19e0a1ec9d
Fix parsing hexadecimal (lowercase e
,f
) in shaders
2021-03-01 09:08:44 +03:00
Ev1lbl0w
3d9ef1e4de
Added missing returns on error scenarios
2021-02-28 19:48:35 +00:00
Bastiaan Olij
1f96ba5141
Moving GI code into RendererServerGIRD
...
Moving Skyshader code into RendererServerSkyRD
2021-02-25 15:15:48 +11:00
Yuri Roubinsky
571f4396ea
Prevents shader crash if two struct with the same name are declared
2021-02-21 13:47:09 +03:00
Yuri Roubinsky
f91e7e3ba4
Prevents shader crash if passing invalid struct to the return statement
2021-02-21 07:55:40 +03:00
Rémi Verschelde
0d1d719178
doc: Sync classref with current source
...
And fix various bogus bindings following previous PRs.
2021-02-19 14:39:14 +01:00
Clay John
32dec4accd
Merge pull request #45326 from clayjohn/VULKAN-ign-shadows
...
Use Interleaved gradient noise for shadow samples
2021-02-18 13:17:41 -08:00
Rémi Verschelde
310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
...
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez
8e128726f0
Modernize atomics
...
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
reduz
64140eaf42
Reorganize Project Settings
...
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Kayomn
fa8a47e1bf
Fix math error in blend shape application tolerance
2021-02-17 10:30:29 +01:00
Rémi Verschelde
e9a25b8552
Merge pull request #45859 from Kayomn/master
...
Accomodate blend shape ranges of -1 to +1 for Vulkan
2021-02-12 09:26:14 +01:00
Yuri Roubinsky
dd0874e717
Allow passing varying from fragment to light shader function
2021-02-11 15:59:21 +03:00
reduz
8b19ffd810
Make Servers truly Thread Safe
...
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread).
-RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault.
-Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory).
-3D physics server changed to be made multithread friendly.
-Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads.
-Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-10 13:21:46 -03:00
Kayomn
ca945421a0
Accomodate blend shape ranges of -1 to +1
2021-02-09 23:09:54 +00:00
reduz
3e2281a347
Improve SDFGI indirect light feedback loop
...
-Use occlusion for feedback, further reduces light leaking.
-More control on feedback, now its a slider.
2021-02-07 21:30:12 -03:00
jfons
99e1ce0690
Invert spotlight angle attenuation
...
Inverted the spotlight angle attenuation so a higher value results in
a dimmer light, this makes it more consistent with the distance
attenuation.
Also changed the way spotlighs are computed in SDFGI
and GIPorbes and GPU lightmapper, now it matches the falloff used in the scene rendering
code.
2021-02-07 20:10:33 +01:00
Rémi Verschelde
7a60c45671
Merge pull request #45786 from reduz/fix-sdfgi-radeon
...
Fixed an SDFGI reflections bug in Radeon
2021-02-07 12:24:07 +01:00
reduz
c4daf1c4ba
Fixed a SDFGI reflections bug in Radeon
...
-Code was using too many conditionals.
-Rewrote it to use less and it now works fine.
2021-02-07 07:33:41 -03:00
jfons
9c6b081ab1
Fix volumetric fog for SpotLights
...
The code for spot lights was referencing the omni light list. Most
likely a copy-paste mistake :)
2021-02-07 03:38:09 +01:00
reduz
d0cc899398
Fix SDFGI bug after previous optimization.
...
Was causing arctifacts, should be good now.
2021-02-06 18:49:10 -03:00
reduz
8faf23b52b
Simplify Volumetric Fog
...
-Always use temporal reproject, it just loos way better than any other filter.
-By always using termporal reproject, the shadowmap reduction can be done away with, massively improving performance.
-Disadvantage of temporal reproject is update latency so..
-Made sure a gaussian filter runs in XY after fog, this allows to keep stability and lower latency.
2021-02-06 15:08:21 -03:00
Lyuma
780e761dbc
Fix mismatched define in scene_forward.glsl for POSITION override
2021-02-05 13:09:33 -08:00
reduz
7997544af5
Added temporal reprojection to Volumetric Fog
...
-It's an option, just enable it
-Just works, don't have to do anything else.
2021-02-05 10:52:54 -03:00
reduz
33278b0721
Fixes to get Godot running again on Intel IGP
...
-Fixed strange bug with shadowed instance_param (this should not have worked anywhere, odd..)
-Cleaned up barrier usage further.
2021-02-05 00:02:06 -03:00
reduz
f20999f6fe
Rewrote how barriers work for faster rendering
...
-Added more finegrained control in RenderingDevice API
-Optimized barriers (use less ones for thee same)
-General optimizations
-Shadows render all together unbarriered
-GI can render together with shadows.
-SDFGI can render together with depth-preoass.
-General fixes
-Added GPU detection
2021-02-04 09:42:28 -03:00
Rafał Mikrut
0c3febca06
Don't use trashy max_decals value to prevent crashes
2021-02-01 21:43:08 +01:00
Rémi Verschelde
d2e1216504
Merge pull request #37547 from aaronfranke/tau
...
Use Math_TAU and deg2rad/etc in more places and optimize code
2021-02-01 20:55:25 +01:00
Rémi Verschelde
5525cd85c6
Merge pull request #45315 from RandomShaper/modernize_thread
...
Modernize Thread
2021-01-31 15:24:56 +01:00
Pedro J. Estébanez
99fe462452
Modernize Thread
...
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
Aaron Franke
a3e3bf8227
Make hex_to_int and bin_to_int handle the prefix automatically
...
Also add BinToInt to C#
2021-01-28 07:43:53 -05:00
Rémi Verschelde
fb01d057af
doc: Sync classref with current source
2021-01-28 11:26:37 +01:00
Gordon MacPherson
86c7faa169
Fix zero scaling and material mappings being mapped to wrong fields
...
- fixes scale values of 0.0013 (det == 0.00004) not rendering, they should render even at small values, but not at zero like the editor grid plugin supplies zero exactly.
- fixes node_3d_editor_plugin visibility bug when scale is zero
- fix culling with small scaling values - which are still valid to be rendered like 0.00004
note: grid is still not fixed, it has det == 0 issues but this fixes one of them.
2021-01-26 19:48:18 +00:00
reduz
280f334f81
Reorganize RenderingDevice barriers
...
-Removed sync to draw, now everything syncs to draw by default.
-Fixed many validation layer errors.
-Added support for VkImageViewUsageCreateInfo to fix validation layer warnings.
-Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
2021-01-26 10:24:12 -03:00
clayjohn
7323cbab4b
Add named resources and debug labels in RenderDoc
2021-01-25 20:04:13 -08:00
reduz
51d8e32c93
Implement shadow meshes
...
-When importing, a vertex-only version of the mesh is created.
-This version is used when rendering shadows, and improves performance by reducing bandwidth
-It's automatic, but can optionally be used by users, in case they want to make special versions of geometry for shadow casting.
2021-01-25 15:03:15 -03:00
reduz
a9beb7aa8c
Shadow map rendering optimization
...
-All shadow rendering is done with raster now (no compute)
-All shadow rendering is done by rendering directly to the shadow atlas
-Improved how buffer clearing is done to optimize the above.
-Ability to set shadows as 16 bits.
2021-01-24 20:17:28 -03:00
reduz
6fe342478b
Several GI related optimizations and fixes
...
-SDFGI direct light is done over many frames
-SDFGI Changed settings for rays/frame
-SDFGI Misc optimizations
-SDFGI Bug fix on probe scroll
-GIProbe was not working, got it to work again
-GIProbe dynamic objects were not working, fixed
-Added a half size GI option.
2021-01-24 19:29:07 -03:00
clayjohn
561de937b1
Use Interleaved gradient noise for shadow samples
2021-01-21 07:47:01 -08:00
Rémi Verschelde
a9b151c664
Merge pull request #44668 from clayjohn/VULKAN-downsample
...
Use cubemap downsampler for reflection mipmaps
2021-01-20 20:41:47 +01:00
reduz
099dee35f4
Added GPU based cluster builder
...
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19 23:31:06 +01:00
reduz
7008e3c6ea
Shader optimizations to reduce VGPR usage and increase occupancy
2021-01-19 23:31:02 +01:00
Rémi Verschelde
0b409d89d0
Merge pull request #45136 from akien-mga/clang-format-11
...
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13 16:10:44 +01:00
Rémi Verschelde
af878716f2
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-12 19:32:53 +01:00
Yuri Roubinsky
ef941a6500
Renamed emit_particle
to emit_subparticle
shader function
2021-01-12 09:41:08 +03:00
Yuri Roubinsky
fcc5d67b03
Fix shader uniform instances compilation
2021-01-11 17:46:33 +03:00
Rémi Verschelde
a33dc4274c
Merge pull request #45066 from Chaosus/shader_fix_uniform_crash
...
Prevent editor crash due to modify the order of non-instance shader uniforms by instance uniforms
2021-01-11 14:58:55 +01:00
Yuri Roubinsky
289cc89a39
Prevent crash due to assigning incorrect order of instance uniform
2021-01-10 10:52:30 +03:00
Yuri Roubinsky
fdfddbdc3c
Fix LIGHT compilation for canvas shader
2021-01-09 23:22:59 +03:00
Aaron Franke
1d5042c9e2
Use Math_TAU and deg2rad/rad2deg in more places and optimize code
2021-01-09 03:47:14 -05:00
reduz
cdb216f4e4
Added ability to visualize native shaders
2021-01-06 09:40:09 -03:00
reduz
446618cf94
Change the light attenuation formulas.
...
-Much better looking, physically based.
-Almost negligible extra cost.
2021-01-05 14:44:05 -03:00
reduz
77bc3e9ac3
Threaded optimizations to cull and render
...
-Reorganize thread work pool for rendering
-Fixes to make secondary command buffers to work (disabled because they need more testing)
2021-01-05 08:50:18 -03:00
reduz
5d2a1d7892
Rewrite render code to be more cache and thread friendly.
2021-01-05 08:50:18 -03:00
reduz
9a2f18f8e7
Reorganize renderer code.
...
So it can hopefully be made more cache efficient afterwards.
2021-01-05 08:50:18 -03:00
Rémi Verschelde
00f5ea2ed2
Merge pull request #44842 from clayjohn/VULKAN-SSAO-2
...
SSAO renames and move push constant binding
2021-01-04 23:03:54 +01:00
Hendrik Brucker
ec6fc059b7
fix inconsistent normal map shader variable naming
2021-01-04 14:08:01 +01:00
Rémi Verschelde
a408622c06
Merge pull request #44530 from clayjohn/VULKAN-framebuffer-error
...
Use basic uniform set for depth prepass
2021-01-04 09:34:27 +01:00
clayjohn
0015260c4b
SSAO cleanup and fixes
2021-01-03 21:32:22 -08:00
Muller-Castro
31dd07ba30
Typo correction
...
simple typo correction
2021-01-02 02:27:12 -03:00
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
...
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Marcel Admiraal
b4a190e0bc
Consistently use normal_map
2020-12-29 08:04:19 +00:00
Rémi Verschelde
6cebb8c117
Merge pull request #44586 from madmiraal/rename-stepify
...
Rename Math::stepify to snapped
2020-12-28 21:46:43 +01:00
Rémi Verschelde
058f3fe069
Merge pull request #44149 from madmiraal/rename-tangent-orthogonal
...
Rename Vector2.tangent() to Vector2.orthogonal()
2020-12-28 16:00:12 +01:00
Marcel Admiraal
b743a2ef3c
Rename Math::stepify to snapped
2020-12-28 13:01:30 +00:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +00:00
Rémi Verschelde
1f7d6ba736
Merge pull request #44715 from clayjohn/VULKAN-SSAO-cleanup
...
Cleanup leftover functions from adding SSAO
2020-12-27 10:53:23 +01:00
Yuri Roubinsky
ef4e625918
Merge pull request #44705 from Chaosus/shader_fix_array_postinit
...
Fix using post-init shader array constructors
2020-12-27 08:26:31 +03:00
clayjohn
34cfe1cc40
Cleanup leftover functions from adding SSAO
2020-12-26 16:33:07 -08:00
reduz
548524152e
Rewrite culling to be more cache/thread friendly.
...
-Uses a single array with all data
-Massive performance improvement
-Does not support threads yet, but code is now thread friendly
2020-12-26 19:11:33 -03:00
Yuri Roubinsky
bc0e8e7a21
Fix using post-init shader array constructors
2020-12-27 01:07:24 +03:00
Yuri Roubinsky
fb16b1e39b
Merge pull request #44436 from Chaosus/shader_const_switch
...
Added support for constants in shader `case` and array size declaration
2020-12-27 00:55:45 +03:00
clayjohn
28d0f8a455
Use cubemap downsampler for reflection mipmaps
2020-12-24 16:39:17 -08:00
Juan Linietsky
545c894614
Merge pull request #44656 from reduz/cull-fixes-and-optimizations
...
Cull fixes and optimizations
2020-12-24 14:01:19 -03:00
Rémi Verschelde
ecda989c85
Merge pull request #44649 from lyuma/bone_aabb_blendshapes
...
Fix blendshapes and calculation of bone_aabbs
2020-12-24 17:20:07 +01:00
reduz
1bebb2ba05
Cull fixes and optimizations
2020-12-24 12:18:28 -03:00
lawnjelly
6d687de9b8
Fix BVH to world_aabb, and call update
...
The calls to the BVH need to use the world space AABB, rather than local space for it to work. Also, update was not being called which is required to update the AABB as objects move.
2020-12-24 11:19:50 +00:00
Rémi Verschelde
6063af6788
Merge pull request #44641 from reduz/get-frame-setup-time
...
Add API to get frame setup time on CPU
2020-12-24 10:07:54 +01:00
Lyuma
d976003b16
Fix blendshapes and calculation of bone_aabbs
...
Blendshapes without a skeleton already worked.
However, due to a faulty ERR_FAIL_COND, it was impossible to create a mesh with both bones and blendshapes.
This also fixes an assumption that all surfaces reference the same number of bones as surface 0.
2020-12-24 00:01:07 -08:00
clayjohn
3a8c99a10b
Use basic uniform set for depth prepass
2020-12-23 20:23:51 -08:00
reduz
7219f37cb5
Add API to get frame setup time on CPU
...
Needed for benchmarks
2020-12-24 00:13:52 -03:00
reduz
83058597cf
Replace Octree by DynamicBVH in cull code
...
-Much greater pairing/unpairing performance
-For now, using it for culling too, but this will change in a couple of days.
-Added a paged allocator, to efficiently alloc/free some types of objects.
2020-12-23 19:31:30 -03:00
Marcel Admiraal
4b8b803931
Rename Control margin to offset
2020-12-23 06:25:56 +00:00
Rémi Verschelde
6e43c68e40
Merge pull request #44182 from clayjohn/ASSAO
...
Replace SAO with ASSAO as Godot's new SSAO
2020-12-22 11:27:25 +01:00
clayjohn
44f8922305
Port ASSAO to Godot to replace SAO
2020-12-21 23:08:59 -08:00
Marcel Admiraal
efea408d23
Ensure default value in _render_shadow is the same as parent
...
Use double instead of int for the p_lod_distance_multiplier default value in
RendererSceneRenderForward::_render_shadow to match parent default value in
RendererSceneRenderRD::_render_shadow
2020-12-21 09:36:20 +00:00
Rémi Verschelde
e9d12f9e4e
Merge pull request #44521 from madmiraal/rename-rect2-clip
...
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19 21:32:14 +01:00
Rémi Verschelde
2797c2a74c
Merge pull request #33207 from Calinou/increase-camera-default-zfar
...
Increase the default Camera Zfar to 4000
2020-12-19 15:32:32 +01:00
Hugo Locurcio
7ae487d2bb
Increase the default Camera Zfar to 4000
...
This makes it possible to view far away objects without
having to tweak any settings. This results in a more usable
editor when working on large-scale levels.
This change should have no impact on performance, but note that
Z-fighting will be visible at a distance. This can be made less
visible by increasing the Znear value (however, doing so will cause
nearby surfaces to disappear).
This change was also applied to the editor, but it will only
apply to newly created scenes.
This also changes the default camera settings in the glTF importer
to match the Camera node's defaults.
2020-12-19 14:52:44 +01:00
reduz
666d5f3431
Fix error spam on wrong attachment
...
-For now, disable reading from depth this was always broken, needs to be fixed later
-Give better error showing binding and set when this happens.
2020-12-19 10:18:08 -03:00
Marcel Admiraal
2df9a8ccad
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19 12:59:08 +00:00
reduz
7bf90c7888
Improved shadow rendering efficiency
...
-Do not bind attributes that are not needed
-Improve a bit more how meshoptimizer interacts with Godot
2020-12-18 19:47:32 -03:00
reduz
d2302f53d6
Implement automatic LOD (Level of Detail)
...
-Happens on import by default for all models
-Just works (tm)
-Biasing can be later adjusted per node or per viewport (as well as globally)
-Disabled AABB.get_support test because its broken
2020-12-18 15:48:03 +01:00
Yuri Roubinsky
fe4c8e387b
Added support for constants in shader case
and array size declaration
2020-12-17 11:51:18 +03:00
reduz
bf77016c8a
Reimplement skeletons and blend shapes
...
Uses compute shaders, which only once, on demand, and all in parallel.
2020-12-16 14:32:04 -03:00
clayjohn
775e3db2e1
Fixes to recent Vulkan errors
2020-12-10 22:47:53 -08:00
Rémi Verschelde
9263f8eb4b
Image: Rename PVRTC{2,4} to PVRTC1_{2,4}, drop COMPRESS_PVRTC2
...
We haven't had a proper implementation for COMPRESS_PVRTC2 (which is PVRTC1 2-bpp) in years,
so let's drop it instead of keeping a compress type which doesn't work.
The other enum values were renamed to clarify that our PVRTC2 and PVRTC4 are respectively
PVRTC1 2-bpp and PVRTC1 4-bpp. PVRTC2 2-bpp and 4-bpp are not implemented yet.
2020-12-10 23:14:04 +01:00
bruvzg
644f739660
Static analyzer fixes:
...
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +02:00
reduz
2748b9a10d
Add support for low-end 3D rendering.
...
-Reduce number of uniform sets from 6 to 4.
-Remove features in low end mode, in order to reduce the number of texture units fit to 16.
2020-12-07 20:50:57 -03:00
Marcel Admiraal
a24c38d1a8
Rename Vector2.tangent() to Vector2.orthogonal()
2020-12-06 18:16:06 +00:00
Rémi Verschelde
744ab88884
Merge pull request #36382 from aaronfranke/unhide-the-hidden
...
Unhide hidden members by renaming them and rebind Mesh enums
2020-12-05 13:19:30 +01:00
Yuri Roubinsky
245d4af10c
Frees CanvasShaderSDF reference (prevents warning at startup)
2020-12-05 11:28:44 +03:00
Aaron Franke
5dddf4377a
Rename RD texture "type" to "texture_type"
...
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
2020-12-04 19:34:50 -05:00
Aaron Franke
19bdd01438
Rename RD uniform "type" to "uniform_type"
...
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
2020-12-04 19:34:50 -05:00
reduz
2787ad65be
RenderingServer reorganization
2020-12-04 18:39:46 -03:00
Rémi Verschelde
1287ea63c1
Merge pull request #44084 from vnen/float-is-real
...
Rename TYPE_REAL to TYPE_FLOAT
2020-12-04 14:26:22 +01:00
George Marques
02f60812ed
Rename TYPE_REAL to TYPE_FLOAT
...
To be consistent with the naming everywhere else.
2020-12-04 09:47:26 -03:00
reduz
e93b2242c2
Reorganize rendering server.
...
-Made RenderingServerScene abstract, allowing reimplementation
-RenderingServerRaster -> RenderingServerDefault, but this class is going away soon.
2020-12-03 19:01:01 -03:00
reduz
70f5972905
Refactored Mesh internals and formats.
...
-Changed how mesh data is organized, hoping to make it more efficient on Vulkan and GLES.
-Removed compression, it now always uses the most efficient format.
-Added support for custom arrays (up to 8 custom formats)
-Added support for 8 weights in skeleton data.
-Added a simple optional versioning system for imported assets, to reimport if binary is newer
-Fixes #43979 (I needed to test)
WARNING:
-NOT backwards compatible with previous 4.x-devel, will most likely never be, but it will force reimport scenes due to version change.
-NOT backwards compatible with 3.x scenes, this will be eventually re-added.
-Skeletons not working any longer, will fix in next PR.
2020-12-02 13:07:59 -03:00
Yuri Roubinsky
d980278d81
Fixed crash in canvas_item_add_polyline if color arr has incorrect size
2020-11-30 11:05:55 +03:00
Rémi Verschelde
ef2d1f6d19
Merge pull request #42761 from fire/color-grading-3d
...
Environment brightness, contrast, saturation restore with 3d LUT.
2020-11-28 23:07:52 +01:00
clayjohn
076908bed9
Environment brightness, contrast, saturation restore with color correction.
...
Allow gradients and 2d images.
Use shader versions for LUT in tonemap
Co-authored-by: alex-poe <3957610+CptPotato@users.noreply.github.com>
Co-authored-by: QbieShay <cislaghi.ilaria@gmail.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2020-11-28 07:37:49 -08:00
Yuri Roubinsky
4a3588a51a
Merge pull request #43828 from Chaosus/restore_line_antialiasing
...
Restored antialiased lines by emulation using triangle strips
2020-11-28 11:32:16 +03:00
Rémi Verschelde
94341ac547
Merge pull request #42987 from clayjohn/VULKAN-sky-only
...
Add sky_only setting to DirectionalLight3Ds
2020-11-28 09:07:09 +01:00
Yuri Roubinsky
3ec972fc95
Restored antialiased lines by emulation using triangle strips
2020-11-27 20:45:59 +03:00
reduz
1bcf3c305b
Implement signed distance fields for 2D shaders
2020-11-26 10:49:50 -03:00
Jordan Schidlowsky
8150f07a0b
fix for two incorrectly bound texture formats
2020-11-19 14:20:29 -06:00
Nick Swoboda
bce3e2c3f6
Check uniform set validity before freeing
2020-11-18 16:53:11 -08:00
Aaron Franke
02161aad5a
Remove empty lines around braces with the formatting script
2020-11-16 23:38:11 -05:00
Rémi Verschelde
a78d96086f
Fix new transform to pixel snapping logic
...
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2020-11-15 10:52:15 +01:00
Rafał Mikrut
925ae37d8d
Remove Attempted to free invalid ID error
2020-11-10 14:22:41 +01:00
reduz
127458ed17
Reorganized core/ directory, it was too fatty already
...
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Hugo Locurcio
7b8fd6ba9e
Fix "unifom" typo in RasterizerStorageRD method
2020-11-06 18:12:00 +01:00
reduz
f123981a96
Implement DirectionalLight2D
...
Also separated Light2D in PointLight2D and DirectionalLight2D.
Used PointLight2D because its more of a point, and it does not work
the same as OmniLight (as shape depends on texture).
Added a few utility methods to Rect2D I needed.
2020-11-04 10:03:01 -03:00
Marios Staikopoulos
e5d7c7d5fc
Alpha Hash and Alpha2Coverage Implementation
2020-11-02 20:11:20 -08:00
reduz
0e6664539d
Refactor pixel snapping.
...
-Rename pixel_snap to snap_2d_to_vertices
-Added snap_2d_to_transforms which is more useful
Fixes #41814
Solves proposal https://github.com/godotengine/godot-proposals/issues/1666
Supersedes #35606 , supersedes #41535 , supersedes #41534
2020-10-30 08:57:32 -03:00
reduz
8ab9b39707
Implement CanvasGroup and CanvasItem clipping
...
-Allows merging several 2D objects into a single draw operation
-Use current node to clip children nodes
-Further fixes to Vulkan barriers
-Changed font texture generation to white, fixes dark eges when blurred
-Other small misc fixes to backbuffer code.
2020-10-28 18:53:32 -03:00
Rémi Verschelde
6c173e2f7f
Merge pull request #43058 from clayjohn/VULKAN-FXAA-bug
...
[4.0]Remove extra exposure multiply in FXAA
2020-10-25 00:35:12 +02:00
clayjohn
8e3e9e3755
Remove extra exposure multiply in FXAA
2020-10-24 13:00:39 -07:00
reduz
84d734da0e
Refactored 2D shader and lighting system
...
-Removed normal/specular properties from nodes
-Create CanvasTexture, which can contain normal/specular channels
-Refactored, optimized and simplified 2D shaders
-Use atlas for light textures.
-Use a shadow atlas for shadow textures.
-Use both items aboves to make light rendering stateless (faster).
-Reorganized uniform sets for more efficiency.
2020-10-24 15:57:25 -03:00
Rémi Verschelde
d05c7da1aa
Merge pull request #42949 from DavidSichma/shaderglobals
...
Shader globals bugfixes
2020-10-22 09:53:49 +02:00
clayjohn
6299575250
Add sky_only setting to DirectionalLight3Ds
2020-10-21 23:28:08 -07:00
Yuri Roubinsky
433183147e
Fix textureSize & texelFetch shader compilation errors
2020-10-21 17:45:40 +03:00
David Sichma
5d33cd94c8
Shader globals bugfixes
...
- shader globals editor displays properties correctly
- fixed some errors how globals were transferred
2020-10-21 01:34:25 +02:00
Hugo Locurcio
195540ab90
Remove unused #define
from the tonemap shader
...
It was a leftover from an earlier version of the debanding PR
which used a simpler (but less effective) algorithm.
2020-10-20 19:59:50 +02:00
Rémi Verschelde
7d4921db1a
Merge pull request #42915 from Yetizone/negative_lights_behavior
...
tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positive
2020-10-19 23:50:49 +02:00
Rémi Verschelde
cf3a4cb091
Merge pull request #42913 from Calinou/debanding-fix-brightness
...
Fix debanding slightly brightening the whole viewport
2020-10-19 23:18:24 +02:00
Yetizone
ffc4151f29
tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positive
...
Color values can become negative in the case of negative lights which
leads to undesired behaviour.
2020-10-20 00:08:44 +03:00
Hugo Locurcio
15d033e25f
Fix debanding slightly brightening the whole viewport
...
Thanks to Mikkel Gjoel on Twitter for the tip :)
2020-10-19 22:53:28 +02:00
reduz
dd0b097e44
Fix invalid buffer updates in SDFGI
2020-10-19 17:39:09 -03:00
Juan Linietsky
5d120f9ffb
Merge pull request #42046 from Chaosus/fix_default_texture
...
Fix setting the default texture to shader
2020-10-19 15:50:21 -03:00
Juan Linietsky
85ebf40b6c
Merge pull request #38097 from Calinou/add-viewport-debanding
...
Add a debanding property to Viewport
2020-10-19 14:15:44 -03:00
Juan Linietsky
53d5a252bb
Revert "Replace SAO implementation with MSSAO"
2020-10-18 19:27:51 -03:00
Juan Linietsky
d98261ab8f
Merge pull request #42077 from clayjohn/MSSAO
...
Replace SAO implementation with MSSAO
2020-10-18 18:34:43 -03:00
Juan Linietsky
6e5f137c01
Merge pull request #41415 from clayjohn/VULKAN-shader-overrides
...
Add FOG, RADIANCE, and IRRADIANCE shader overrides
2020-10-18 18:33:41 -03:00
Juan Linietsky
e799a2ba45
Merge pull request #42201 from clayjohn/Vulkan-new-glow
...
Optimize Glow with local memory
2020-10-18 18:32:36 -03:00
clayjohn
366ee46774
Replace SAO implementation with MSSAO
2020-10-18 13:15:51 -07:00
clayjohn
f46932feab
Add FOG, RADIANCE, and IRRADIANCE shader overrides
2020-10-18 12:06:51 -07:00
Yuri Roubinsky
d0f85b9321
Fix setting the default texture to shader
2020-10-18 21:59:37 +03:00
clayjohn
63a34b93aa
Optimize Glow with local memory
2020-10-18 11:37:12 -07:00