Commit Graph

70 Commits

Author SHA1 Message Date
Magnus Norddahl 07fa310f23 - move material light modes to their own subshader lumps 2018-02-20 00:13:05 +01:00
Magnus Norddahl eb39e88682 - clean up the main.fp light handling code so that a single ApplyDynLights function applies all dynamic light 2018-02-19 02:01:33 +01:00
Magnus Norddahl 3207d8aef7 - generate uniform declarations from c++ 2018-02-09 23:29:31 +01:00
Magnus Norddahl 769867475c - Replaced max(dot(a,b), 0.0) with clamp as some rounding errors caused pow to receive negative values when then value was subtracted from 1.0 (undefined glsl behavior)
- Fixed that surface angle attenuation was getting applied twice
2018-02-03 23:56:55 +01:00
Magnus Norddahl 7b9a334f77 - Change PBR materials to use quadratic light falloff 2018-02-03 13:17:09 +01:00
Magnus Norddahl 747ef8324e - Improve sector light slightly for PBR 2018-01-29 19:09:24 +01:00
Magnus Norddahl 6deb51f23c - disable the tonemapping to let it bloom instead 2018-01-27 00:42:17 +01:00
Magnus Norddahl a6da1d356a - add PBR materials to main.fp 2018-01-27 00:22:15 +01:00
Magnus Norddahl 7a59bcde4c - move glossiness and specular level to GLDEFS 2018-01-25 19:53:55 +01:00
Magnus Norddahl 1875902414 - Do not flip the normal based on face direction 2018-01-23 23:59:58 +01:00
Magnus Norddahl 81c6808d2a - Add specular and normal map handling to main.fp 2018-01-23 23:10:28 +01:00
Magnus Norddahl e045fb57c9 - Declare new textures for specular and pbr modes 2018-01-23 20:51:48 +01:00
Magnus Norddahl 5f36b86013 - Add dynamic spot lights 2018-01-04 17:58:11 +01:00
Magnus Norddahl a6d4bfc748 - Added linear and nearest shadowmap filters (enabled with defines) 2017-08-13 13:49:02 +02:00
Magnus Norddahl 5c7b1ee8e1 - Significantly improve shadowmap light performance for faces with a large number of lights but where only a few applies to each individual fragment 2017-08-08 23:28:42 +02:00
Rachael Alexanderson 8d3d271484 - tweaked the banded software lightmode shader a bit more, looks a little closer (but still not quite...) to real ZDoom in paletted mode 2017-07-21 18:45:08 -04:00
Magnus Norddahl ddd1b629c3 - Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers 2017-07-09 19:01:34 +02:00
Rachael Alexanderson 1562d64580 - fixed: in the availability of gl_fogmode == 0, default to having square fog instead of radial fog in gl_lightmode == 8 2017-06-25 09:37:14 -04:00
Magnus Norddahl b6e035e796 - Implemented radial fog support in software light mode 2017-06-25 15:02:34 +02:00
Rachael Alexanderson 4229389680 - fixed: banded sw light was broken in a recent commit. Added back the 32 light levels and also made it prefer darker shades. 2017-06-21 19:10:39 -04:00
Magnus Norddahl 28acf2ad06 - Fix OpenGL software diminishing light to be identical to truecolor swrenderer and softpoly
All there is left is to make globVis an uniform and move the LightVisibility::SetVisibility calculations out of the software renderer.
That will make it 100% correct for all r_visiblity values and aspect ratios.
2017-06-22 00:01:57 +02:00
Magnus Norddahl 85a9984807 - Add OpenGL ES 3 support to GL renderer 2017-04-06 23:34:42 -04:00
Magnus Norddahl 59ec97d2d5 Fix shadow map acne and the attenuate flag 2017-03-10 22:08:55 +01:00
Magnus Norddahl b660493051 Add menu option for disabling shadow maps and detecting if storage buffers are available or not 2017-03-10 19:10:40 +01:00
Magnus Norddahl cb40c369cd Added PCF shadows 2017-03-08 01:35:07 +01:00
Magnus Norddahl 818b72fbf5 Reduce margin a little 2017-03-08 00:33:42 +01:00
Magnus Norddahl 6df3b3fbca Changed the light collision structure uploaded to the GPU to be a binary tree using AABBs for the nodes instead of a BSP plane 2017-03-07 15:58:22 +01:00
Magnus Norddahl 8515f9720a 1D shadow maps are now working 2017-03-04 09:14:01 +01:00
Magnus Norddahl 0d1deddae5 Bind shadow map texture for main.fp and sample from the shadowmap texture 2017-03-02 19:10:57 +01:00
Magnus Norddahl 538d516c9a Upload shadow map index for each light to main.fp
Move storage buffer binding location
2017-03-02 18:07:47 +01:00
Christoph Oelckers 12d073a27d - objectcolor stuff.
# Conflicts:
#	src/gl/renderer/gl_renderstate.cpp
2017-01-28 19:06:21 +01:00
Rachael Alexanderson 3154652885 - fixed possible AMD compilation error. 2017-01-24 22:24:53 +01:00
Rachael Alexanderson 9a777f719b - Added "gl_bandedswlight" to reduce the software light emulation gradient to 32 levels. 2017-01-24 22:24:53 +01:00
Magnus Norddahl 057060022a Merge remote-tracking branch 'gzdoom/master' into ssao 2016-11-27 09:59:57 +01:00
Christoph Oelckers bea625a42c - added an ATTENUATE flag to dynamic lights, this is set by default for attached lights. For placed lights this is off, because it'd interfere with many existing maps that depend on unattenuated lights. 2016-10-23 20:42:48 +02:00
Magnus Norddahl 14c1a77f8a Fix AmbientOcclusionColor bug where pixelpos was assumed to be in eye space coordinates 2016-10-13 18:08:04 +02:00
Magnus Norddahl 00e72028ef Add another gbuffer with normal data and make ssao pass use it 2016-10-05 07:57:27 +02:00
Magnus Norddahl ecb57d6cd9 Merge remote-tracking branch 'gzdoom/master' into ssao
# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/gl/scene/gl_scene.cpp
#	src/gl/shaders/gl_shader.cpp
#	wadsrc/static/language.enu
#	wadsrc/static/menudef.zz
2016-10-04 00:01:03 +02:00
Christoph Oelckers 4eb5f10b02 - use normals to have proper light attenuation. So far only implemented for walls and flats. Models are planned but need some thinking about how to efficiently collect all required lights for an object. 2016-10-03 16:09:32 +02:00
Magnus Norddahl d774136282 Added SceneData texture as the second colorbuffer when rendering a scene and placed fog data into it 2016-09-25 00:22:32 +02:00
Magnus Norddahl 9af34bac69 Add gbuffer pass support to FShaderManager and FRenderState 2016-09-25 00:22:32 +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
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 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 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
Christoph Oelckers fd3128a164 - fixed: When changing enhanced nightvision mode the shaders need to have their fixed colormap state reset to ensure that the new settings get used.
- fixed: The shader code for handling special fixed colormaps did not use the color vertex attribute which was most evident with the 'shadow' render style on the spectre.
2014-10-05 09:40:36 +02:00