Commit Graph

59 Commits

Author SHA1 Message Date
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
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
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
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
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 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
reduz d0bddf53c5 Implement manual particle emission and particle sub emitters. 2020-09-06 10:29:27 -03: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
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
clayjohn d069cc9cf2 Fix recent glow regressions 2020-08-29 11:27:43 -07:00
clayjohn 9d341acf2d Add fog to sky shaders 2020-08-19 22:58:14 -07: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
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
Juan Linietsky b1aa24ea3c Slight occlusion improvements. 2020-06-28 09:11:21 -03:00
Juan Linietsky 201d606b3d Addition of SDFGI for open world global illumination
Move GI to a deferred pass
2020-06-26 11:06:48 -03:00
Arman 48a59e6c4a Continue tracing screen space reflection after encountering sky
Instead of breaking the whole trace when encountering the sky/camera far clip, continue tracing and check if "hits" are sky/far clip or not. Prevents some objects not being reflected due to gaps.
2020-05-22 00:12:42 -07:00
Rémi Verschelde c74d65cec8 GLSL: Change shader type specifier from [vertex] to #[vertex]
The added `#` prevents clang-format from misinterpreting the meaning
of this statement and thus messing up the formatting of the next
lines up until the first `layout` statement.

Similarly, a semicolon is now enforced on `versions` defines to
prevent clang-format from messing up formatting and putting them
all on a single line. Note: In its current state the code will
ignore chained statements on a single line separated by a semicolon.

Also removed some extraneous lines missed in previous style changes
or added by mistake with said changes (e.g. after uniform definitions
that clang-format messes up somewhat too, but we live with it).
2020-05-18 10:58:14 +02:00
Rémi Verschelde 07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Juan Linietsky 1bea8e1eac New lightmapper
-Added LocalVector (needed it)
-Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too)
-Fixes and changes all around the place
-Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10 15:59:09 -03:00
Rémi Verschelde 69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Rémi Verschelde e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848.

Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
bruvzg 2bb119c088
Fix "redefinition of 'ssr' with a different type" shader compile error. 2020-04-23 13:56:04 +03:00
Rémi Verschelde 17304f1aae
Merge pull request #37949 from reduz/implement-global-shader-uniforms
Implement global and per instance shader uniforms.
2020-04-17 18:36:06 +02:00
clayjohn 7cd2ff309c Add light size to Sky Shaders 2020-04-17 09:32:24 -07:00
Juan Linietsky 0e1c66d9fc Implement global and per instance shader uniforms.
Adds two keywords to shader language for uniforms:
-'global'
-'instance'

This allows them to reference values outside the material.
2020-04-17 12:35:41 -03:00
Juan Linietsky 6f293ed795 Add support for projectors in spot and omni lights. 2020-04-14 17:05:45 -03:00
Rémi Verschelde 5e5103f460
Merge pull request #37861 from reduz/implement-decals
Implement decals
2020-04-14 17:13:20 +02:00
Juan Linietsky 5944eb6e7f Implement decals
Also implemented decal atlas, so projectors and other stuff can be added.
Sidenote: Had to make RID hashable, so some unrelated includes changed
in order to include it in hashfuncs.h
2020-04-14 11:13:34 -03:00
Rémi Verschelde 06748a2b5f
Merge pull request #37749 from clayjohn/Vulkan-improved-ss
Add vogel filter and settings to soft shadows
2020-04-13 00:39:37 +02:00
Juan Linietsky a57dc398db Implement MSAA 2020-04-12 15:33:57 -03:00
Juan Linietsky 16ae2cc1bf Add screen space AA option, with FXAA implementation. 2020-04-12 10:57:18 -03:00
Juan Linietsky 9dc19f7619
Merge pull request #37808 from reduz/port-effects-to-compute
Moved most of the effect code to compute.
2020-04-11 23:38:05 -03:00
Juan Linietsky d81911490b Moved most of the effect code to compute.
Simplifies it and improves performance.
Improves image barrier handling per mipmap on RenderingDeviceVulkan
2020-04-11 19:44:07 -03:00
Rémi Verschelde 636d4bad99
Merge pull request #37794 from clayjohn/VULKAN-SSS-sky
Fix SSS affecting Sky
2020-04-11 16:30:51 +02:00
clayjohn e3a9af2db1 Fix SSS affecting Sky 2020-04-11 01:20:24 -07:00