Commit Graph

3297 Commits

Author SHA1 Message Date
2bb119c088 Fix "redefinition of 'ssr' with a different type" shader compile error. 2020-04-23 13:56:04 +03:00
c5a721f58d Fix missing DEFVAL for RenderingDevice.index_buffer_create 2020-04-22 16:52:04 +02:00
f8ef38efed Add proper type to most public API uses of Array 2020-04-21 12:16:45 -03:00
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
49d0c6a5c9 Ability to create local RenderingDevice instances. 2020-04-18 21:47:17 -03:00
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
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
7cd2ff309c Add light size to Sky Shaders 2020-04-17 09:32:24 -07:00
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
0ff929a926 Use sky properly for ambient and reflections 2020-04-16 23:45:30 -07:00
61d86190e0 Fix texture check in decal setup 2020-04-15 12:06:02 -07:00
6f293ed795 Add support for projectors in spot and omni lights. 2020-04-14 17:05:45 -03:00
5e5103f460 Merge pull request #37861 from reduz/implement-decals
Implement decals
2020-04-14 17:13:20 +02:00
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
88c0a9e3de Fixes leak with CopyToFbShaderRD 2020-04-13 11:39:44 +02:00
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
a57dc398db Implement MSAA 2020-04-12 15:33:57 -03:00
16ae2cc1bf Add screen space AA option, with FXAA implementation. 2020-04-12 10:57:18 -03:00
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
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
636d4bad99 Merge pull request #37794 from clayjohn/VULKAN-SSS-sky
Fix SSS affecting Sky
2020-04-11 16:30:51 +02:00
bc30f541e6 Fix shader constant sorting 2020-04-11 12:40:17 +03:00
e3a9af2db1 Fix SSS affecting Sky 2020-04-11 01:20:24 -07:00
621f6f09a8 Add proper quality settings to soft shadows 2020-04-10 23:09:17 -07:00
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
a152ef9a10 Merge pull request #37662 from qarmin/rasterizer_server_last
Free items before finishing rendering server
2020-04-10 11:50:13 +02:00
c2f0d58c36 Merge pull request #37722 from reduz/implement-softshadows
Support light size and soft shadows
2020-04-10 10:24:57 +02:00
6a730ffeab Support light size and soft shadows 2020-04-09 15:11:15 -03:00
afc8c6391c Renaming all ARVR nodes to XR 2020-04-09 15:33:01 +10:00
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
b5fd03fc36 Free items before finishing rendering server 2020-04-07 19:12:07 +02:00
853f677c7e Fixed leak with SpecularMergeShaderRD 2020-04-04 17:48:30 +02:00
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
aeb95ef006 Merge pull request #37438 from clayjohn/VULKAN-sky-invert
Invert Sky subpass cubemap z direction
2020-04-03 15:59:26 +02:00
6a38ce1b31 Merge pull request #37512 from reduz/implement-ssr
Re-Added screen space reflection.
2020-04-02 17:17:27 +02:00
87c658b304 Re-Added screen space reflection. 2020-04-02 11:25:21 -03:00
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
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
359bebd8c0 Fix out of bound array access caused by unassigned variable 2020-04-01 19:29:35 +02:00
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
be9235e499 Invert subpass cubemap z direction 2020-03-30 10:42:45 -07:00
89e1263117 Move glow upscale quality to a global setting, for consistency 2020-03-30 10:46:03 -03:00
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
aa33db056a Prevent shader crash if multiple variables has been declared in 'for' 2020-03-28 19:51:42 +03:00
60d486acc8 Fix copyright headers for recently added files 2020-03-28 13:29:29 +01:00
0c320a6bf3 More server renames for consistency after #37361 2020-03-28 13:20:48 +01:00
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