Commit Graph

77 Commits

Author SHA1 Message Date
Christoph Oelckers ad7aaa8f2a - specify fragment output locations in the shader source.
OpenGL has been supporting this since version 3.3 and Vulkan requires it so it's the way to go.
2018-06-12 23:52:33 +02:00
Christoph Oelckers 286846a8ec 2D must consider brightmaps. 2018-04-27 08:59:59 +02:00
Christoph Oelckers 832df6d43a - implemented desaturation for the legacy GL renderer's 2D.
A lot of work that's only needed to be able to use the hardware renderer's 2D code with the software renderer.
2018-03-30 18:14:42 +02:00
Christoph Oelckers 811d96e07e D3D 2D code refactored but not tested yet. 2018-03-29 23:21:25 +02:00
Christoph Oelckers a40e085a46 - 2D drawer implementation complete for hardware renderer.
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Christoph Oelckers 25999c1c6a - looks like the 2D drawer sources did not get committed...
- This also adds the missing draw modes to the GLSL shader.
2018-03-28 19:07:43 +02:00
Christoph Oelckers d586d774cf - adjusted GL renderer to the new rules for alpha textures. This means that the translation fallback is only needed for the legacy renderer now. Modern GL can use the regular texture and will apply a grayscale mapping instead of merely using the red channel. 2018-03-22 20:42:17 +01:00
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