lawnjelly
bc607fb607
Fix signed distance field font rendering
...
This fix works in both GLES3 and GLES2.
The rendering formula in the shader was adjusted to further improve the
sharpness/antialiasing quality balance.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-02-05 17:50:33 +00:00
Rémi Verschelde
30b81a4bd9
Merge pull request #84529 from lawnjelly/gles2_gl_fragcolor
...
[3.x] GLES2 & GLES3 - Use `gl_FragColor` temporary
2024-01-29 23:28:19 +01:00
Caroline Joy Bell
9c0bd332a5
Fix #if *_ENABLED
inconsistencies, should check if defined
...
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-17 10:21:40 +01:00
Rémi Verschelde
02e4e208ef
Fix various GCC 13 warnings
...
Fixes occurrences of `-Wtype-limits`, `-Wmaybe-uninitialized`,
`-Wduplicated-branches`.
2023-12-08 15:32:59 +01:00
lawnjelly
ed3d029f5d
GLES2 / GLES3 - Use gl_FragColor temporary
...
On some hardware, modifying gl_FragColor multiple times can cause large performance drops. This PR writes to a standard temporary variable instead, and copies across to gl_FragColor once only at the end of the fragment shader.
This could potentially lead to large gains in performance on affected hardware.
2023-11-07 11:53:25 +00:00
lawnjelly
6ff370030a
Fix glGet overflows by using 64 bit versions
...
Certain glGet operations require 64 bit versions according to the GLES spec.
The previous code was susceptible to overflow bugs, especially running under ANGLE.
2023-10-16 13:47:11 +01:00
Rémi Verschelde
5f9cbe514d
Merge pull request #75468 from Ansraer/four_is_overkill
...
[3.x] Add support for 3 dir shadow splits
2023-10-01 22:50:57 +02:00
lawnjelly
857d884026
Initialize GLWrapper
earlier in Storage::initialize()
...
Make sure `GLWrapper` is initialized before `glActiveTexture` is called by other parts of the storage initialize(), to prevent benign warnings.
2023-08-21 08:51:47 +01:00
Rémi Verschelde
98976f9260
Merge pull request #80652 from Benedani/3.x_fix_gles2_skinning
...
[3.x] GLES2: Make GPU skinning more consistent with GLES3
2023-08-16 17:14:22 +02:00
Rémi Verschelde
dcb097c7a1
Merge pull request #80481 from lawnjelly/clay_unbind_textures
...
[3.x] Unbind texture slots when changing framebuffer
2023-08-16 17:13:56 +02:00
The Benedani
a66e8a29a7
GLES2: Make GPU skinning more consistent
2023-08-15 12:59:39 +02:00
Rémi Verschelde
c685501f51
Merge pull request #80325 from lawnjelly/fti2d_check_skel_attach
...
[3.x] Hierarchical culling - Add extra check to `skeleton_attach_canvas_item`
2023-08-15 09:04:09 +02:00
lawnjelly
5e197fd21e
Unbind texture slots when changing framebuffer
...
Prevent bugs whereby texture still in use.
2023-08-12 11:07:13 +01:00
lawnjelly
d7cca42ef6
Hierarchical culling - Add extra check to skeleton_attach_canvas_item
...
Although this check shouldn't be able to fail currently, it provides a small level of extra logic checking at only small cost in DEV builds.
2023-08-06 10:03:49 +01:00
lawnjelly
ad577e3c7e
Fix 2D MultiMesh hierarchical culling
...
Fixes updating local bounds for MultiMeshes used in canvas items by introducing a back link.
2023-08-03 06:49:01 +01:00
lawnjelly
43e181a00a
Single Compilation Unit build.
...
Adds support for simple SCU build.
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-07-02 20:13:16 +01:00
Rémi Verschelde
29eeb461f2
Merge pull request #68738 from lawnjelly/faster_canvas_item
...
[3.x] Canvas item hierarchical culling
2023-06-27 08:40:22 +02:00
Rémi Verschelde
d644de8088
Merge pull request #76226 from paddy-exe/fix-node-position-view-3.x
...
[3.x] Fix `NODE_POSITION_VIEW` shader built-in
2023-06-07 14:46:24 +02:00
lawnjelly
b777a9e5f9
Canvas item hierarchical culling
...
Adds optional hierarchical culling to the 2D rendering (within VisualServer).
Each canvas item maintains a bound in local space of the item itself and all child / grandchild items. This allows branches to be culled at once when they don't intersect a viewport.
2023-04-25 20:17:33 +01:00
Aaron Franke
141783d90f
[3.x] Expose determinant
in Transform2D, rename internal method
2023-04-22 13:47:47 -05:00
Patrick
67d3fe4075
[3.x] Fix NODE_POSITION_VIEW Shader Built-In
2023-04-18 22:11:41 +02:00
Ansraer
54bc6a300e
add support for 3 dir shadow splits
2023-03-29 13:40:17 +02:00
Alex Nogueira
01d0b9ad15
Fixed Whitescreen Issue in GLES2.0 Glow Setting
...
Replaced textureLod with texture2DLod in the tonemapping.glsl shader file.
2023-03-15 18:13:57 +01:00
Ansraer
0227fcc4cc
fix shadows pass viewport calculation
2023-03-07 11:22:05 +01:00
Rémi Verschelde
a0ddc595a6
Merge pull request #71510 from lawnjelly/gles2_oct_unpack
...
GLES2 fix octahedral half float unpacking
2023-01-17 10:55:37 +01:00
lawnjelly
c6a428b3d6
GLES2 fix octahedral half float unpacking
...
The strides in _unpack_half_floats() were incorrectly calculated in the case where octahedral normals and tangents were in use.
2023-01-16 11:55:06 +00:00
Rémi Verschelde
1426cd3b3a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
Backported from #70885 .
2023-01-10 15:26:54 +01:00
Rémi Verschelde
6963ba631e
Fix typos with codespell
2022-12-15 12:26:59 +01:00
norrath-hero
aca8999cc9
Fix GLES 2 Spotlight Bug
...
Fixes https://github.com/godotengine/godot/issues/69759
Fixes https://github.com/godotengine/godot/issues/54343
Fixes https://github.com/godotengine/godot/issues/25526
2022-12-11 05:45:45 +08:00
clayjohn
f1bafe8131
Take FXAA samples from half-pixel coordinates to improve quality
...
(cherry picked from commit dbcc0fa2a6
)
2022-11-30 15:39:00 +01:00
dzil123
aa0b91ca52
[3.x] Fix shader compiler asan out of bounds
2022-11-17 19:24:15 -08:00
lawnjelly
a300505066
Prevent drawing MultiMesh with zero instance count
...
Issuing a driver drawcall for MultiMesh with zero instances crashes some drivers.
2022-09-15 13:20:12 +01:00
lawnjelly
9b294b298e
Fix GLES directional shadow uninitialized data
...
Valgrind shows directional_shadow.fbo accessed when uninitialized in directional_shadow_create.
2022-09-06 09:21:56 +01:00
Rémi Verschelde
36fc99158d
Merge pull request #63971 from paddy-exe/spatial-shader-built-ins
2022-08-08 15:50:25 +02:00
Rémi Verschelde
144f3ec94e
Merge pull request #51676 from Calinou/shader-add-hint-transparent-texture-3.x
...
Add `hint_transparent` to use a transparent black placeholder texture (3.x)
2022-08-05 22:34:05 +02:00
Patrick Exner
be3d331f26
Backport spatial shader built-ins
...
Backport of this PR: https://github.com/godotengine/godot/pull/63597
This adds these as new Built-Ins to Spatial Shaders
* Object's Position in World Space
* Camera Position in World Space
* Camera Direction in World Space
* Object's Position in View Space
2022-08-05 21:19:15 +02:00
Rémi Verschelde
ccbe083949
Merge pull request #63071 from lawnjelly/skinning2d_bounds
2022-08-05 19:34:48 +02:00
Hugo Locurcio
ab9a95f266
Add hint_transparent
to use a transparent black placeholder texture
2022-08-02 23:32:07 +02:00
Rémi Verschelde
818f1eed31
Code quality: Fix header guards consistency
...
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 14:53:37 +02:00
Hugo Locurcio
b03ceaba2f
Document support limitations for OmniLight cubemap shadows in GLES2
2022-07-18 22:18:56 +02:00
lawnjelly
18bb668a2e
Fix skeleton 2D stale bounding rect
...
Adds special logic for handling skeleton bounding rect updates. Previously these were never being updated because the canvas item is never set to "rect_dirty".
2022-07-18 19:47:23 +01:00
Rémi Verschelde
772d071863
SCons: Properly track codegen script dependency for generated GLES headers
2022-07-02 15:52:42 +02:00
lawnjelly
f8df04ed50
More low priority redraw request cases
...
Some more cases of textures etc causing continuous updates in vital updates only mode are fixed.
2022-06-12 06:44:59 +01:00
clayjohn
f92141be13
Disable Alpha throughout Glow and FXAA code in order to avoid issues with transparent viewports
2022-05-26 11:15:35 -07:00
clayjohn
9927515254
Disable alpha in post process when using opaque framebuffer
2022-05-24 14:11:09 -07:00
clayjohn
027ec28126
Disable writing to alpha with opaque framebuffer
2022-05-24 10:30:49 -07:00
clayjohn
3374bae953
Fixed Bug where DoF incorrectly wrote to alpha channel amd bug with tonemap shaders
2022-05-18 13:19:42 -07:00
Hugo Locurcio
3762b40de7
Merge pull request #54585 from Kinwailo/fix_viewport_transparent_bg
...
Fix viewport with transparent bg changed to solid black if enable fxaa or debanding.
2022-05-16 08:28:36 +02:00
Kinwailo
b1a50ad805
fix post procressing with transparent bg and keep alpha channel of the tonemap shader output
2022-05-12 16:32:31 +08:00
clayjohn
33d825c50b
Unpack blend shape arrays when necessary
...
Blend shapes need to be unpacked if the vertex array is being unpacked
2022-05-06 10:36:18 -07:00