Commit Graph

308 Commits

Author SHA1 Message Date
Magnus Norddahl 604c4ff8e0 Fix vertex layout locations and add lightmap to vulkan shader 2021-09-24 16:21:23 +02:00
nashmuhandes 2f8cff90b6 - Add lightmaps to the main shader (currently only OpenGL)
- Create a version of CreateIndexedSectorVertices that works with lightmap sectors
2021-09-24 16:56:15 +08:00
Christoph Oelckers 0db7a6206b - fixed shader compilation. 2021-09-21 21:07:46 +02:00
Christoph Oelckers da806b354d - cleanup of the revised y-clamping feature.
This integrates better with the existing features.
2021-09-21 20:31:42 +02:00
Christoph Oelckers fc2818b195 - menu system update from Raze for better control of animated menus. 2021-09-18 12:19:35 +02:00
Christoph Oelckers 918e9e9b0d - fixed texture clamping for elements that are partially behind a slope.
This is mainly mid textures on linedefs and decals.
2021-09-17 00:25:28 +02:00
Christoph Oelckers c7db3875e1 - fixed: colors from brightmaps and glowmaps need to be desaturated. 2021-09-14 19:49:41 +02:00
Christoph Oelckers e1a5f61f8c - fixed: shaders with NO_LAYERS defined may not apply brightmap and glowmap.
These are undefined for such fragments.
2021-09-14 19:49:41 +02:00
Christoph Oelckers 39513cf7ae Revert "- eliminate an unexpected slow path in the fragment shader."
This reverts commit cd5aa65fda.

This does not work as expected, needs more investigation.
2021-08-09 20:31:21 +02:00
Christoph Oelckers cd5aa65fda - eliminate an unexpected slow path in the fragment shader.
Apparently with checking uLightLevel the shader cannot discard the slow software lighting path entirely adding a significant amount of processing time.
Changed to check the actual lightmode value, which re-enables the fast path again.
2021-08-09 19:50:45 +02:00
Marisa Kirisame fd07183585 Fix model normals being distorted by MODELDEF scaling. 2020-12-12 00:21:33 +01:00
Rachael Alexanderson 2312fb0322 - fix HDR shader, again 2020-10-27 11:52:17 -04:00
Rachael Alexanderson 9afffba515 - fix HDR shader 2020-10-27 09:58:38 -04:00
Christoph Oelckers b20de184a0 - made the new Build light mode operational 2020-06-11 08:48:33 +02:00
Christoph Oelckers 5896f24eba - added a new light mode that emulates Build's depth fading.
Not active yet, this needs some testing and finetuning.
2020-06-08 23:37:20 +02:00
Christoph Oelckers 9e51a2f63c - added Build's NPOT emulation to the backend.
For GZDoom this is completely disabled, of course, because the Doom engine does not need it, but in order to have the same backend code in both engines it needs to be present.
2020-06-08 23:37:20 +02:00
Christoph Oelckers b06af634e2 - added a flash component to the colormap shader.
Its main purpose is for RR's lightning flash in Raze but this looks very useful for manipulating fullscreen colormaps. Currently not exposed, though.
2020-06-07 09:16:56 +02:00
Christoph Oelckers f8dcb09ff0 - moved postprocessing shaders to their own folder. 2020-04-26 21:22:57 +02:00
Christoph Oelckers 7c46dace03 - this still doesn't work on Vulkan. :( 2020-04-19 10:57:44 +02:00
Christoph Oelckers 8381092cce - major shader rework
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.

Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
Christoph Oelckers 738b9ceb08 - fixed incompletely changed shader.
It was still using a variable from the first revision that no longer exists.
2019-12-21 21:07:00 +01:00
Christoph Oelckers bb8db9422f - scaled down the texture colorization feature for easier usability.
It makes little sense exposing every minute detail of this through UDMF.
Setting it up that way is far too complicated. Using virtual textures that map to a real texture plus a colorization record should be far easier to use by mappers.
This also doesn't piggyback on the Doom64 color feature anymore and is completely separate, despite some redundancies.
This is still missing the texture definition part, though.
2019-12-20 22:25:10 +01:00
Christoph Oelckers 3209d4ed23 - added a few more texture coloring options to the shader.
Aside from adding an additive component it can now also do:

- desaturation (not limited to the range of 0..1 so it can also be used for oversaturation by applying a negative number or negative saturation by going above 1.0.
- invert the texture
- apply a blend, including 3 special mode taken from EDuke32.

Currently only the implementation is done, it is not exposed to UDMF yet.
2019-12-20 16:05:00 +01:00
alexey.lysiuk b6ada166fc - fixed compilation of FXAA shader by macOS OpenGL
Compile Shader 'shaders/glsl/fxaa.fp':
ERROR: 0:250: '' : syntax error: incorrect preprocessor directive
ERROR: 0:250: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:265: '' : syntax error: incorrect preprocessor directive
ERROR: 0:265: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:266: '' :   Macro Redefined lumaM
ERROR: 0:301: '' : syntax error: incorrect preprocessor directive
ERROR: 0:301: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline
ERROR: 0:599: '' : syntax error: incorrect preprocessor directive
ERROR: 0:599: '' : syntax error: unexpected tokens following #if preprocessor directive - expected a newline

https://forum.zdoom.org/viewtopic.php?t=65003
2019-06-11 08:20:24 +03:00
alexey.lysiuk addcad8ac0 - disabled discard in FXAA shader with Vulkan backend
Discard caused graphical corruptions on AMD hardware with Vulkan backend enabled

https://forum.zdoom.org/viewtopic.php?t=64230
2019-06-04 11:32:00 +03:00
alexey.lysiuk da2d0e47e6 - removed array length() function from shadowmap shader
Array's length() function is not yet supported by SPIRV-cross and MoltenVK
Its usage was replaced by explicit nodes count value passed as uniform
2019-05-24 14:29:37 +03:00
Magnus Norddahl f3cb5e09e4 - SIMPLE is never ever defined for main.fp 2019-05-13 22:38:16 +02:00
Magnus Norddahl bab5862383 - fix some vulkan warnings 2019-05-13 21:15:10 +02:00
Magnus Norddahl 5f12191c05 - fix validation error for shader input not declared by main.vp 2019-05-12 23:15:49 +02:00
Magnus Norddahl e75ab8ed09 - fix wrong fog color used for ssao when using multisampling 2019-05-05 23:23:47 +02:00
Magnus Norddahl 1973001834 - use the exact sRGB->linear transfer function in HDR mode as the 2.2 gamma approximation is visibly inaccurate in this case 2019-05-01 00:55:31 +02:00
Magnus Norddahl d63513ec14 - fix normal vectors on models 2019-04-17 20:42:00 +02:00
Magnus Norddahl 15dae4cfe6 - rewrite depthblur.fp to workaround what seemed to be a bug in the NVidia driver 2019-04-16 16:17:23 +02:00
Magnus Norddahl 9d29a460de - simplify depthblur.fp into a single function 2019-04-16 08:59:29 +02:00
Magnus Norddahl 67490d13cb - add gl_ssao_debug mode showing the depth 2019-04-16 05:29:32 +02:00
Magnus Norddahl 558760c090 - fix the gl_ssao_debug cvar 2019-04-16 03:32:54 +02:00
Magnus Norddahl db4310ca6b - prevent excessively bright pixels as this is actually visible on a HDR monitor 2019-04-11 03:34:34 +02:00
Magnus Norddahl c28e56f9e8 - workaround buggy preprocessor in old AMD OpenGL drivers 2019-04-07 19:42:32 +02:00
Magnus Norddahl 2d8516b2ca - make shaderClipDistance optional 2019-03-25 19:44:46 +01:00
Magnus Norddahl cce96ca87a - implement shadow maps 2019-03-15 07:54:34 +01:00
Magnus Norddahl dca0b75038 - change the images to be upside down until presentation to increase compatibility with shaders designed for OpenGL
- clamp scissors fully to avoid NVidia's awful drivers locking up the entire system if they end up out of bounds
- perform buffer clears as part of the render pass. this puts some restrictions on how FRenderState.Clear can be used
- add an offset uniform to the present shaders so the vulkan target can flip the image during presentation
2019-03-12 23:53:20 +01:00
Magnus Norddahl 0620041228 - remove screenquadscale.vp 2019-03-12 16:24:55 +01:00
alexey.lysiuk 02ed758447 Merge branch 'master' into vulkan2
# Conflicts:
#	src/posix/cocoa/i_video.mm
2019-03-09 16:45:49 +02:00
Christoph Oelckers 99c8ba1288 - use uAddColor instead of uObjectColor2 for the ending color of a special colormap range.
Unlike uObjectColor2, this is more global state. uObjectColor2 is part of gradient calculation which may later be offloaded to a secondary buffer which already resulted in only conditionally setting it, resulting in broken special colormap application for the software renderer.
2019-03-09 12:12:33 +01:00
Magnus Norddahl b313f91ab0 - add layout location decl to all postprocess shaders 2019-03-05 18:55:31 +01:00
Magnus Norddahl 56afcd210b - fix: gl_PointSize is required in Vulkan when drawing points
- fix: add depthstencil attachment when stencil is active while depth is not
2019-03-03 23:30:36 +01:00
Magnus Norddahl f8aa48d053 - fix blinking caused by uninitialized clipping planes 2019-03-02 14:16:11 +01:00
Magnus Norddahl 05a6896d4f - Pass vertex color and normal via uniform buffer when the attribute isn't available 2019-03-02 01:56:08 +01:00
Magnus Norddahl d4118a755c - load all the shaders and use the right one for each renderpass 2019-03-01 02:40:02 +01:00
Magnus Norddahl 2e0b34ca72 - hook up enough of renderstate to enable all of main.vp and main.fp 2019-02-28 00:26:49 +01:00