Commit graph

1804 commits

Author SHA1 Message Date
Rémi Verschelde
424cd00f8b
doc: Sync classref with current source + fixup some bindings
Includes various changes triggered by the refactoring of method bindings.
2020-11-04 15:38:26 +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
Rémi Verschelde
7480a7d178
Fixup method binding from #42910 2020-10-19 22:23:36 +02: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
Juan Linietsky
4467412c9f
Merge pull request #38949 from puchik/ssr-fix-cutoff
Continue tracing screen space reflection after encountering sky
2020-10-18 14:45:33 -03:00
Rémi Verschelde
d9e5c355e5
Merge pull request #41418 from clayjohn/Vulkan-aerial
Add aerial perspective to fixed fog
2020-10-18 17:32:19 +02:00
reduz
ee06a70ea6 Refactor MethodBind to use variadic templates
Removed make_binders and the old style generated binders.
2020-10-18 12:28:44 +02:00
clayjohn
8c21c26fb5 Add aerial perspective to fixed fog 2020-10-17 10:53:07 -07:00
Hugo Locurcio
4357506e64
Fix "fixed" fog drawing in front of volumetric fog with a sky background
This closes #42820.

Co-authored-by: Clay John <claynjohn@gmail.com>
2020-10-15 21:59:08 +02:00
Rémi Verschelde
e927f54170
Merge pull request #42804 from RandomShaper/fix_fft_window
Fix application of window in FFT
2020-10-15 13:21:33 +02:00
Hugo Locurcio
b44de3c6b1
Fix typo in soft shadow quality project settings hints 2020-10-15 10:31:35 +02:00
Pedro J. Estébanez
257ba4a7fb Fix application of window in FFT 2020-10-15 01:57:17 +02:00
Yuri Roubinsky
1dbfd4c3e8
Merge pull request #42763 from Chaosus/shader_emit_autocompletion
Fix autocompletion for emit_particle in shader editor
2020-10-13 16:01:37 +03:00
Yuri Roubinsky
6914597026 FIx autocompletion for emit_particle in shader editor 2020-10-13 14:12:51 +03:00
Rafał Mikrut
84a1817a75 Fixes leaks with shader and material 2020-10-12 18:06:47 +02:00
Rémi Verschelde
d22791c271
doc: Sync classref with current source 2020-10-12 10:58:02 +02:00
unknown
1d3aec4230 Free a SortShader and a ParticlesCopyShader 2020-10-12 13:25:24 +05:30
reduz
26f5bd245c Implement GPU Particle Collisions
-Sphere Attractor
-Box Attractor
-Vector Field
-Sphere Collider
-Box Collider
-Baked SDF Collider
-Heightmap Collider
2020-10-09 13:25:47 -03:00
Rémi Verschelde
e9ff08692c
Merge pull request #42548 from pezcode/lights-metallic
Add METALLIC to light() built-ins
2020-10-09 14:41:53 +02:00
clayjohn
bde2f9b46b Return proper texture view format for decals 2020-10-03 22:56:00 -07:00
Pablo Escobar
1300fc7307 Add METALLIC to light() built-ins 2020-10-04 04:16:16 +02:00
Marcel Admiraal
7e44682c03 Fix how Line2D obtains the other object's supports
Measure the distance from the line against the rotated object, not the
rotated line, when obtaining the object's supports against a line.
2020-10-03 12:59:34 +01:00
John Pennycook
8d3afa985b Make YSort stable
Keeps track of the order in which items are collected by
_collect_ysort_children, and uses that order to break
ties between items with similar Y positions.
2020-09-27 10:58:54 -07:00
Rémi Verschelde
9a463cb1d6
Merge pull request #42263 from Faless/js/servers_no_threads
Ignore thread models when compiling with NO_THREAD
2020-09-23 11:50:23 +02:00
Fabio Alessandrelli
f3c6ac1d71 Ignore thread models when compiling with NO_THREAD
The thread model option for physics (2D) and rendering (single-unsafe,
single-safe, multithread), was causing crashes/locks when set as
multithreaded and exported for a platform that does not support threads
(namely HTML5).

This commit ensures that when threads support is not available, that
option is ignored, and the equivalent of "single-unsafe" is always used
instead.
2020-09-23 11:24:01 +02:00
Rémi Verschelde
7b3759a94e
Merge pull request #42130 from clayjohn/RenderingDeviceHack
Expose local RenderingDevice creation to RenderingServer
2020-09-23 10:41:58 +02:00
Yuri Roubinsky
53740c69df Forbids varying declaration in particles and sky shaders 2020-09-22 10:35:52 +03:00
Rémi Verschelde
3e78963bb9
Fix typos with codespell
Using codespell 1.17.1.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
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
```
2020-09-18 13:44:25 +02:00
Marcel Admiraal
41209efa7f Remove the unnecessary sync() and the restrictions it imposes on 3D Physics. 2020-09-18 10:43:31 +01:00
Rémi Verschelde
2d9b409103
Merge pull request #41528 from keegano/physics-fix-wrap-angle
Wrap angles to (-pi, pi) in momentum calculation.
2020-09-17 16:32:53 +02:00
bruvzg
6a14c72b12
Add window click-through support. 2020-09-17 12:36:18 +03:00
clayjohn
40159244cd expose local RenderingDevice creation to RenderingServer 2020-09-16 21:11:39 -07:00
Haoyu Qiu
38147da819 Fixes crash when saving scene 2020-09-13 16:15:46 +08:00
Lyuma
2f888d2987 Fix ATTENUATION and implement SHADOW_ATTENUATION. 2020-09-10 15:45:56 -07:00
clayjohn
fbff7d424b Set repeat in all 3 dimensions in 3d textures 2020-09-09 17:59:51 -07:00
reduz
a674da4eec Implement 3D textures as import and resource format. 2020-09-09 13:50:21 -03:00
Marcel Admiraal
08bedf68ff Clarify comparison precedence when enabling or disabling back buffer. 2020-09-07 11:00:00 +01:00
Rémi Verschelde
53d83c4575
Merge pull request #41781 from AnilBK/fix-typo
Fixed Some typos.
2020-09-07 08:31:51 +02:00
reduz
d0bddf53c5 Implement manual particle emission and particle sub emitters. 2020-09-06 10:29:27 -03:00
Yuri Roubinsky
b1351fe781 Fix crash regression in the shader function validation
introduced in #41780
2020-09-05 13:49:50 +03:00
Yuri Roubinsky
ab9978697e Improve messages in shader function validation 2020-09-05 13:19:38 +03:00
Anilforextra
5705e0d309 Fixed Some typos. 2020-09-05 14:31:56 +05:45
Rémi Verschelde
696849f73a
Merge pull request #41761 from madmiraal/fix-assignment-operators
Ensure assignment operators return by reference to avoid unnecessary copies.
2020-09-04 13:00:17 +02:00
Rémi Verschelde
6a03aed5a4
Merge pull request #40958 from clayjohn/VULKAN-shadow-noise
Improve the quick hash function for all GPUs
2020-09-04 10:53:01 +02:00
Marcel Admiraal
ce263c4ff6 Ensure assignment operators return by reference to avoid unnecessary copies. 2020-09-04 09:18:19 +01:00
bruvzg
80b8eff6aa
[Complex Test Layouts] Change String to use UTF-32 encoding on all platforms. 2020-09-03 19:56:24 +03:00
Rémi Verschelde
2a8531cc56
Merge pull request #41456 from nekomatata/x11-fix-popups
Popup fixes for X11 display server
2020-09-03 00:09:19 +02:00
Yuri Roubinsky
2a00c868de Fix particles shader to use built-ins 2020-09-02 22:54:41 +03:00
Juan Linietsky
f5f27bacdb Re-Implement GPU particles on master.
-No new features yet
-Unlike godot 3.x, sorting happens using GPU
2020-09-02 21:37:11 +02:00
Rémi Verschelde
23ce1dbfd5
Merge pull request #41668 from clayjohn/GLOW-HQ
Add high quality glow mode
2020-09-01 21:04:07 +02:00
JFonS
8ab510a130 Fix typo in SDF jumpflood shader 2020-09-01 14:40:59 +02:00
clayjohn
8da3c739bf Add high quality glow mode 2020-08-31 23:16:41 -07:00
Rémi Verschelde
30d31101c2
Merge pull request #41605 from clayjohn/VULKAN-glow
Fix recent glow regressions
2020-08-31 12:58:15 +02:00
clayjohn
d069cc9cf2 Fix recent glow regressions 2020-08-29 11:27:43 -07:00
TwistedTwigleg
0205eef96b Fixed 2D physics regression that causes RigidBody2D nodes to spin uncontrollably when colliding 2020-08-28 14:16:12 -04:00
Yetizone
118a7bc53f rasterizer_rd.cpp: Correct small typo 2020-08-27 12:44:18 +03:00
Keegan Owsley
e148338d42 Wrap angles to (-pi, pi) in momentum calculation.
Fixes a bug that causes KinematicBody2Ds to produce too much angular
momentum when rotating beyond 180 degrees.
2020-08-26 08:25:28 -07:00
PouleyKetchoupp
2b49cb0b73 Re-apply "Fixes for windows in X11 tiling WMs"
From PR #38727 which was reverted in #41373 because of regressions in Ubuntu
with Gnome.

Co-authored-by: Lorenzo Cerqua <lorenzocerqua@tutanota.com>
2020-08-22 18:42:42 +02:00
Juan Linietsky
4e52c75a98
Merge pull request #41345 from clayjohn/VULKAN-sky-fog
Add fog to sky shaders
2020-08-20 09:50:52 -03:00
clayjohn
9d341acf2d Add fog to sky shaders 2020-08-19 22:58:14 -07:00
Juan Linietsky
9c5c1635b2
Revert "Fixes for windows in X11 tiling WMs" 2020-08-19 12:37:59 -03:00
Hugo Locurcio
8891579068
Add a debanding property to Viewport
It can be enabled in the Project Settings
(`rendering/quality/screen_filters/use_debanding`). It's disabled
by default as it has a small performance impact and can make
PNG screenshots much larger (due to how dithering works).
It will also slightly brighten the scene's dark areas.

As a result, it should be enabled only when banding is noticeable enough.

This closes #17006.
2020-08-14 23:12:33 +02:00
Juan Linietsky
6a5ecfdef1 Restored fog (non volumetric).
Uses a simpler and more intuitive implementation based on density.
Its less flexible than before, but its easier to get nice results.
2020-08-13 22:09:22 -03:00
Juan Linietsky
079ca220e1 Added volumetric fog effect. 2020-08-13 11:28:45 -03:00
clayjohn
cf07a58a5f Improve the quick hash function for all GPUs 2020-08-01 17:48:40 -07:00
Markus Sauermann
8335f00949 Wake up RigidBody 2D after applying torque 2020-08-01 14:36:24 +02:00
Brian Semrau
63dfe79fbe Fixed next_pass materials not being drawn 2020-07-28 10:51:41 -04:00
Aaron Franke
56e2c6c704
Make all String float conversion methods be 64-bit 2020-07-27 18:38:53 -04:00
Rémi Verschelde
c845e20add Revert "Allow Area2D and 3D mouse events without a collision layer"
This reverts commit 7eebb06b55.
2020-07-27 22:45:01 +02:00
Rémi Verschelde
b19b896e06
Merge pull request #40487 from nekomatata/virtual-keyboard-enter-fixes
Fix Return key events in LineEdit & TextEdit on Android
2020-07-26 20:25:53 +02:00
PouleyKetchoupp
8c05dadcff Fix Return key events in LineEdit & TextEdit on Android
Depending on the device implementation, editor actions could be
received with different action ids or not at all for multi-line.

Added a parameter to virtual keyboards to properly handle single-line
and multi-line cases in all situations.

Single-line:
Input type set to text without multiline to make sure actions are sent.
IME options are set to DONE action to force action id consistency.

Multi-line:
Input type set to text and multiline to make sure enter triggers new lines.
Actions are disabled by the multiline flag, so '\n' characters are
handled in text changed callbacks.
2020-07-26 20:06:07 +02:00
Rémi Verschelde
3842e8c465
Merge pull request #38727 from Riteo/tiling-wm-issues-tests
Fixes for windows in X11 tiling WMs
2020-07-26 17:41:28 +02:00
Juan Linietsky
acf32e87d5 Fixes RenderingServer crashes reported by #39951
Supersedes #40026
2020-07-23 07:58:23 -03:00
Lorenzo Cerqua
d670a49612 DisplayServer: separate window showing into another function
When creating a window, Godot would first register it to the WM(show it) and then set its flags.
This works fine on a floating WM, but on tiling WMs as soon as a window gets registered
the WM immediately acts on the window by scaling it up and treating it as a generic window,
being registered without any special flags.

This commit separates the showing of the window into another function and calls it after the most important flags are set,
making windows with special flags(eg. all popups) work again on tiling WMs.

Fixes #37930
2020-07-23 07:58:10 +02:00
Juan Linietsky
ee7c98da7c Refactor light clustering
Move from high end to shared, so all renderers use clustering.
2020-07-22 20:39:51 -03:00