Commit Graph

97 Commits

Author SHA1 Message Date
Magnus Norddahl c7c0ffadb5 Move SSAO pass to be before translucent rendering
Fix depth sampling location when not using fullscreen scene
2016-09-25 00:19:16 +02:00
Magnus Norddahl 09bec67821 Resolve multisampling depth in shader 2016-09-25 00:19:16 +02:00
Magnus Norddahl a246b58673 Change SSAO blur to be depth aware 2016-09-25 00:19:16 +02:00
Magnus Norddahl 723eb746f6 Add ssao random texture 2016-09-25 00:19:15 +02:00
Magnus Norddahl 9076d46261 Added SSAO pass 2016-09-25 00:19:15 +02:00
raa-eruanna 2339b18b01 Quick fix: prevents negative values being passed to pow. 2016-09-22 09:23:26 +02:00
raa-eruanna 72491049e0 Changes to the contrast/brightness/gamma formula for both hardware and shader gamma correction. Mainly makes a correction with the shader version where contrast/brightness being negative values would clip them inappropriately. 2016-09-22 09:23:25 +02:00
Magnus Norddahl f7b6b1433c Added exposure pass calculating the bloom/tonemap exposure based on what the eye is seeing 2016-09-22 09:13:32 +02:00
Magnus Norddahl f2a3b8978d Added declaration in the shader that was missing 2016-09-17 00:30:03 +02:00
Gaerzi d99d43aeba Fixes to fuzz shaders 2016-09-17 00:30:03 +02:00
Magnus Norddahl dc39a006dc Fix palette tonemap precision and compile error on Intel 2016-09-04 02:37:59 +02:00
Christoph Oelckers 589936f570 - draw the colormap blend after postprocessing, not before it.
- added colormap shader to postprocessing.

This replaces the in-place application of fullscreen colormaps if renderbuffers are active. This way the fully composed scene gets inverted, not each element on its own which is highly problematic for additively blended things.
2016-09-01 17:14:51 +02:00
Christoph Oelckers 3389a5a74e - removed most of the specific options for legacy hardware and consolidated them in one variable (does not work yet.) 2016-09-01 11:52:52 +02:00
alexey.lysiuk 2f893af857 Fixed palette tonemap mode for OpenGL 2.x 2016-08-24 11:44:33 +03:00
Magnus Norddahl 25645d901e Add Palette LUT tonemap mode 2016-08-23 09:18:18 +02:00
Christoph Oelckers 250be72939 - added handling for drawing with uniform vertices. It draws something but in the wrong place. Right now I have no idea what's happening... 2016-08-22 15:31:23 +02:00
Christoph Oelckers 7ba5acfb35 - added quad drawer interface so that this part can be done without altering a vertex buffer.
So far it's only the framework, the new code is not active yet.
2016-08-22 14:00:25 +02:00
Magnus Norddahl 0e2d9affb2 Make sure tonemap shader never takes the sqrt of a negative number
Fix bug where the old hardcoded exposure bias was still being used in the uncharted2 tonemap
2016-08-16 00:22:00 +02:00
Magnus Norddahl a8d1197ea7 Make sure we never pass a negative value to pow, and optimize gamma uniform 2016-08-16 00:01:18 +02:00
Magnus Norddahl 210fce1193 Fix bloom shader missing its target 2016-08-14 09:05:50 +02:00
Christoph Oelckers 675822004d - use static buffer data and a uniform to handle the texture positioning of the present shader.
That's again one less write access to the buffer. The uniform method was chosen because this way a buffer update can be completely avoided, and setting a single uniform is a lot cheaper and simpler to handle.
2016-08-08 16:06:02 +02:00
Magnus Norddahl 346badf25f Moved state to FGLPostProcessState and merged vertex shaders 2016-08-06 11:51:08 +02:00
Magnus Norddahl 6fc7596d52 Fix aspect ratio and texture clipping in lens shader 2016-08-04 15:47:15 +02:00
Magnus Norddahl 6b9529d70f Added lens distortion shader 2016-08-02 17:32:21 +02:00
Magnus Norddahl 7709db4bb0 Fix broken viewport/backbuffer location for WriteSavePic 2016-07-31 16:23:21 +02:00
alexey.lysiuk 7de242930a Removed obsolete gamma correct shader used on macOS only 2016-07-30 15:30:35 +03:00
Magnus Norddahl 5849c83028 Added bloom and tonemap to menus
Added gl_renderbuffers CVAR that disables render buffers
Added patch shader support to FShaderProgram
Added OpenGL 2 fallback support to render buffers
2016-07-29 21:31:20 +02:00
Magnus Norddahl 0efee85bd8 Added tonemapping and sector based exposure control 2016-07-29 00:36:43 +02:00
Magnus Norddahl 69f52cc898 Added bloom shaders 2016-07-27 21:50:30 +02:00
Magnus Norddahl aeb7df09de Added hardware gamma option and improved window handling on Windows 2016-07-27 11:15:19 +02:00
Magnus Norddahl 669238db66 Fix Apple GLSL compile errors 2016-07-23 17:27:19 +02:00
Magnus Norddahl c08fc8f5a8 Fix depth calculations for R_DoomLightingEquation and make it an exact match of what zdoom does 2016-07-23 17:27:19 +02:00
Christoph Oelckers 3334b28a02 - don't let the light go completely black with software-emulated lighting. 2016-05-04 14:30:10 +02:00
Christoph Oelckers 9f91fa8f43 - make the warp2 shader's formula match the software renderer's.
This fixes some jerkiness with vertical scrollers due to a bad sine period and makes the overall appearance of the effect what it was originally supposed to be. The old warp2 shader was not created by replicating the formula but by trial and error until it looked close enough.

A version of the old warp2 shader with a fixed sine period is still available as a custom hardware shader.
2016-05-04 13:47:40 +02:00
alexey.lysiuk f9022f3054 Fixed compilation of gamma correction shader with particular OpenGL setup 2016-05-02 16:13:54 +03:00
alexey.lysiuk 333560086d Calculate color values for gamma correction directly in shader
Gamma table texture is no longer needed
2016-05-02 11:24:42 +03:00
alexey.lysiuk 44b019413c Implemented gamma correction in OS X native backend using shader effect 2016-05-02 10:04:09 +03:00
Christoph Oelckers 70bf649364 - added clip planes for line portals and mirrors. This should eliminate the remaining problems with some visible geometry in front of the portal, it is also necessary to handle sprite splitting across line portals properly. 2016-04-29 12:26:57 +02:00
Christoph Oelckers 21283b18f4 - preparations for using clip planes on line portals. 2016-04-29 01:48:06 +02:00
Christoph Oelckers 86f38475b0 - shaders for last commit. 2016-04-27 02:10:42 +02:00
Christoph Oelckers f066457a48 - add shader patching to allow running the engine with GLSL 1.2.
- made some initial preparations for the shader-less fallback path.
2016-04-26 15:26:52 +02:00
Christoph Oelckers fc38728309 - made some changes to the shaders to allow downpatching them to GLSL 1.2:
* disable the dynamic light code if no buffers are available
 * added a duplicate of the getTexel function which cannot be patched without creating syntax problems.
 * fixe int<->float conversion warning, which on some compilers may be an error.
2016-04-26 11:31:27 +02:00
Christoph Oelckers a96d6ab072 Merge remote-tracking branch 'remotes/zdoom/master'
# Conflicts:
#	src/g_level.cpp
#	src/p_3dfloors.cpp
#	src/p_lnspec.cpp
#	src/p_saveg.cpp
#	src/p_spec.cpp
#	src/r_bsp.cpp
#	src/r_data/r_interpolate.cpp
#	src/r_data/r_translate.cpp
#	src/r_data/sprites.cpp
#	src/r_defs.h
#	src/r_sky.h
#	src/stats.h
#	src/textures/texturemanager.cpp
#	src/textures/textures.h
#	src/version.h
#	src/win32/fb_d3d9.cpp
#	src/win32/hardware.cpp
#	src/win32/i_system.cpp
#	wadsrc/static/actors/doom/doomarmor.txt
#	wadsrc/static/compatibility.txt
#	wadsrc/static/language.enu
#	wadsrc/static/mapinfo/common.txt
#	wadsrc/static/menudef.txt
#	wadsrc/static/xlat/eternity.txt
2016-03-01 18:50:45 +01:00
Randy Heit 55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers fc57180d7e - added necessary state to implement 3D light splitting using hardware clipping planes. 2016-01-30 23:01:11 +01:00
Christoph Oelckers 238990c871 don't leave any gaps in the used clip planes. 2016-01-27 12:32:39 +01:00
Christoph Oelckers 47db3252f4 - it's really not necessary to waste two clip planes for reflective surfaces because only one can be active at any time. 2016-01-27 12:30:55 +01:00
Christoph Oelckers b45c88fc4f - changed shaders. 2015-04-05 20:20:56 +02:00
Christoph Oelckers 020b02e073 - changed deprecated texture sampler access function names. 2014-11-28 12:28:45 +01:00
Christoph Oelckers 5638aab63c - fixed: Even though the name REDISALPHA implies otherwise, this render mode still needs to respect a texture's alpha channel to ensure that things get rendered properly. Otherwise the SmoothEdges function cannot be used which is necessary to ensure that filtered textures look correct. 2014-10-26 21:17:29 +01:00