Commit graph

2296 commits

Author SHA1 Message Date
Ignacio Etcheverry
c5a721f58d Fix missing DEFVAL for RenderingDevice.index_buffer_create 2020-04-22 16:52:04 +02:00
Juan Linietsky
f8ef38efed Add proper type to most public API uses of Array 2020-04-21 12:16:45 -03:00
Juan Linietsky
ae09b55a19 Exposed RenderingDevice to script API
Also added an easier way to load native GLSL shaders.

Extras:

Had to fix no-cache for subresources in resource loader, it was not properly working, making shaders not properly reload.

Note:

The precommit hooks are broken because they don't seem to support enums from one class being used in another.
Feel free to fix this after merging this PR.
2020-04-20 21:21:58 -03:00
Juan Linietsky
49d0c6a5c9 Ability to create local RenderingDevice instances. 2020-04-18 21:47:17 -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
Rémi Verschelde
cfda0e3770
Merge pull request #37953 from clayjohn/VULKAN-sky-sun-size
Add light size to Sky Shaders
2020-04-17 18:35:45 +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
clayjohn
0ff929a926 Use sky properly for ambient and reflections 2020-04-16 23:45:30 -07:00
clayjohn
61d86190e0 Fix texture check in decal setup 2020-04-15 12:06:02 -07: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
qarmin
88c0a9e3de Fixes leak with CopyToFbShaderRD 2020-04-13 11:39:44 +02: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
Yuri Roubinsky
bc30f541e6 Fix shader constant sorting 2020-04-11 12:40:17 +03:00
clayjohn
e3a9af2db1 Fix SSS affecting Sky 2020-04-11 01:20:24 -07:00
clayjohn
621f6f09a8 Add proper quality settings to soft shadows 2020-04-10 23:09:17 -07:00
Juan Linietsky
d06f8ef75a Shows proper scene render time in editor info
Also fixed GPU profiler, which was not working on nvidia hardware.
2020-04-10 14:19:30 -03:00
Rémi Verschelde
a152ef9a10
Merge pull request #37662 from qarmin/rasterizer_server_last
Free items before finishing rendering server
2020-04-10 11:50:13 +02:00
Rémi Verschelde
c2f0d58c36
Merge pull request #37722 from reduz/implement-softshadows
Support light size and soft shadows
2020-04-10 10:24:57 +02:00
Juan Linietsky
6a730ffeab Support light size and soft shadows 2020-04-09 15:11:15 -03:00
Bastiaan Olij
afc8c6391c Renaming all ARVR nodes to XR 2020-04-09 15:33:01 +10:00
Juan Linietsky
4ffc0d6b3f Refactored shadowmapping.
- Made shadow bias size independent, so it will remain when changing light or camera size.
- Implemented normal offset bias, which greatly enhances quality.
- Added transmission to subsurface scattering
- Reimplemented shadow filter modes

Closes #17260
2020-04-08 11:19:43 -03:00
qarmin
b5fd03fc36 Free items before finishing rendering server 2020-04-07 19:12:07 +02:00
qarmin
853f677c7e Fixed leak with SpecularMergeShaderRD 2020-04-04 17:48:30 +02:00
Juan Linietsky
c54f80d35c Re-implement subsurface scattering.
The size settings are more "just works", with default scale and depth scale
values that don't need much tweaking.

Additionally, a "skin" mode was added so skin looks better.
EDIT: Cleaned up SSR filter shader a bit.
2020-04-04 11:44:28 -03:00
Rémi Verschelde
aeb95ef006
Merge pull request #37438 from clayjohn/VULKAN-sky-invert
Invert Sky subpass cubemap z direction
2020-04-03 15:59:26 +02:00
Rémi Verschelde
6a38ce1b31
Merge pull request #37512 from reduz/implement-ssr
Re-Added screen space reflection.
2020-04-02 17:17:27 +02:00
Juan Linietsky
87c658b304 Re-Added screen space reflection. 2020-04-02 11:25:21 -03:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Rémi Verschelde
5f11e15571
Merge pull request #37504 from qarmin/out_of_bound_cursor
Fix array out of bounds access caused by uninitialised variables
2020-04-02 13:07:55 +02:00
Rafał Mikrut
359bebd8c0 Fix out of bound array access caused by unassigned variable 2020-04-01 19:29:35 +02:00
Rémi Verschelde
0a2fa4d892 Fix more -Wmaybe-uninitialized warnings with target=release_debug
I have no idea why those don't get triggered in target=debug builds.

Fixes #37461.
2020-03-31 13:52:42 +02:00
clayjohn
be9235e499 Invert subpass cubemap z direction 2020-03-30 10:42:45 -07:00
Juan Linietsky
89e1263117 Move glow upscale quality to a global setting, for consistency 2020-03-30 10:46:03 -03:00
Rémi Verschelde
cd4e46ee65 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.
2020-03-30 09:05:53 +02:00
Yuri Roubinsky
aa33db056a Prevent shader crash if multiple variables has been declared in 'for' 2020-03-28 19:51:42 +03:00
Rémi Verschelde
60d486acc8 Fix copyright headers for recently added files 2020-03-28 13:29:29 +01:00
Rémi Verschelde
0c320a6bf3 More server renames for consistency after #37361 2020-03-28 13:20:48 +01:00
Juan Linietsky
a6f3bc7c69 Renaming of servers for coherency.
VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
2020-03-27 15:21:27 -03:00