Commit graph

227 commits

Author SHA1 Message Date
drfrag
bd18250672 Revert "- prevent excessively bright pixels as this is actually visible on a HDR monitor"
This reverts commit 56d788f237181e04354042de4596135fd2fda193.

It caused graphics glitches with the partial invisibility effect.
2020-11-23 19:59:42 +01:00
drfrag
3ed0541647 Revert "- Fixed dithering in the present shader."
This reverts commit b359b65f35.

It gave a shader compile error on hardware not supporting GL 4.2.
2019-06-26 03:26:57 +02:00
Kevin Caccamo
d503d1ce9b Add additive color before applying object colors
Based on what I saw in this video (https://youtu.be/Yx1tflavea8), the 
additive colors are applied before the object colors
2019-06-23 14:11:03 +02:00
Kevin Caccamo
16a52cd8c8 Implement additive colour on walls and sprites
Also, don't modify the alpha channel when adding the additive colour.

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_walls.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/gl/scene/gl_weapon.cpp
2019-06-23 12:46:54 +02:00
Kevin Caccamo
575b660b20 Rename ColorAdd to AddColor, and use it ingame
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel

# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/hwrenderer/scene/hw_flats.cpp
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/utility/hw_draw2d.cpp

# Conflicts:
#	src/gl/scene/gl_flats.cpp
#	src/hwrenderer/scene/hw_flats.cpp
2019-06-23 11:45:03 +02:00
Magnus Norddahl
98607f594e - use the exact sRGB->linear transfer function in HDR mode as the 2.2 gamma approximation is visibly inaccurate in this case
# Conflicts:
#	src/rendering/gl/renderer/gl_postprocess.cpp
#	src/rendering/gl/renderer/gl_stereo3d.cpp
#	src/rendering/hwrenderer/postprocessing/hw_postprocess.h
#	src/rendering/vulkan/renderer/vk_postprocess.cpp
#	wadsrc/static/shaders/glsl/present.fp

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/stereo3d/gl_interleaved3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2019-06-21 14:21:03 +02:00
Magnus Norddahl
11faa63009 - prevent excessively bright pixels as this is actually visible on a HDR monitor 2019-06-21 13:02:43 +02:00
drfrag
b359b65f35 - Fixed dithering in the present shader. 2019-06-20 23:40:38 +02:00
Magnus Norddahl
7021e612b0 - add gl_dither for toggling dithered output on and off
# Conflicts:
#	src/gl/renderer/gl_stereo3d.cpp
#	wadsrc/static/menudef.txt

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/stereo3d/gl_interleaved3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2019-06-20 21:27:17 +02:00
Magnus Norddahl
888fba12ea - use a texture for the dither matrix
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_renderbuffers.h

# Conflicts:
#	wadsrc/static/shaders/glsl/present.fp
2019-06-20 18:20:33 +02:00
drfrag
7fdf558ad6 Revert "- add gl_dither for toggling dithered output on and off"
This reverts commit 770c676ac9.

# Conflicts:
#	wadsrc/static/menudef.txt
2019-06-20 18:04:30 +02:00
drfrag
8b7c5242cb Revert "Revert "- add dithering to present shader""
This reverts commit c2a3895bfe.

# Conflicts:
#	wadsrc/static/menudef.txt
2019-06-20 18:03:24 +02:00
Magnus Norddahl
3a76840f87 - remove shadow acne when dynlights perfectly align with planes 2019-04-18 17:49:57 +02:00
Magnus Norddahl
3d69fc327b - vWorldNormal is not normalized but R_DoomColormap requires this 2019-04-18 14:34:27 +02:00
Magnus Norddahl
b3cd6f4460 - fix vanilla light mode angle calculation 2019-04-18 12:50:25 +02:00
Magnus Norddahl
bafc5e6a3c - add vanilla lightmode that behaves exactly as Doom's original light did
# Conflicts:
#	src/hwrenderer/scene/hw_drawinfo.cpp
#	src/hwrenderer/scene/hw_renderstate.cpp
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/scene/hw_skyportal.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/g_level.cpp
#	src/gl/compatibility/gl_20.cpp
#	src/gl/renderer/gl_lightdata.cpp
#	src/gl/renderer/gl_renderstate.h
#	src/gl/scene/gl_skydome.cpp
#	src/gl/scene/gl_weapon.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/hwrenderer/utility/hw_lighting.cpp
2019-04-18 12:50:03 +02:00
Christoph Oelckers
8368331481 - more options for Doom 64 style gradients on walls:
* Colors can npw be defined per sidedef, not only per sector.
* Gradients can be selectively disabled or vertically flipped per wall tier.
* Gradients can be clamped to their respective tier, i.e top and bottom of the tier, not the front sector defines where it starts.

The per-wall colors are implemented for hardware and softpoly renderer only, but not for the classic software renderer, because its code is far too scattered to do this efficiently.

# Conflicts:
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/scene/hw_walls.cpp

# Conflicts:
#	src/gl/scene/gl_walls_draw.cpp
2018-11-16 21:16:15 +01:00
drfrag666
c2a3895bfe Revert "- add dithering to present shader"
This reverts commit 60ae0915b9.

This was extremely slow on intel, the dither matrix was recreated on every frame even when not used.
2018-11-12 11:11:28 +01:00
Magnus Norddahl
ae532d88ee - fix distance attenuation for PBR materials 2018-10-17 09:36:01 +02:00
Magnus Norddahl
770c676ac9 - add gl_dither for toggling dithered output on and off
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_stereo3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2018-10-09 21:57:14 +02:00
Rachael Alexanderson
5d7411dd56 - change 'halfstep' in the dither shader to a #define 2018-10-09 13:23:22 +02:00
Rachael Alexanderson
c784411b13 - expand the dither matrix from 4x4 to 8x8 2018-10-09 13:23:21 +02:00
Rachael Alexanderson
d5f71ad3ce - further math tweaks 2018-10-09 13:23:07 +02:00
Rachael Alexanderson
213b33de16 - fix up a bit of math on the dither shader 2018-10-09 13:22:54 +02:00
Magnus Norddahl
60ae0915b9 - add dithering to present shader 2018-10-09 13:22:31 +02:00
Rachael Alexanderson
787638ff5f - always enforce a minimum distance for fog when fogmode is set to standard. without this, it was possible for the GPU to error out and stop rendering pixels for certain screen blocks
# Conflicts:
#	wadsrc/static/shaders/glsl/main.fp
2018-10-09 11:56:41 +02:00
Magnus Norddahl
811bd578cd - fix artifact in PCF filter when the texture coordinate wraps 2018-10-05 22:25:11 +02:00
Magnus Norddahl
33180fd4e8 - remove shadow acne from PCF shadowmap filter and add three quality levels 2018-10-05 10:20:02 +02:00
Magnus Norddahl
8997d5effb - fix the nearest shadow map filter to have no shadow acne and replace linear with nearest in the menu 2018-10-04 19:27:20 +02:00
Magnus Norddahl
7124ba8216 - add some comments to shadowmap.fp 2018-10-04 19:24:22 +02:00
Magnus Norddahl
9ad56a9f66 - fix diagonal linear shadow map artifact 2018-10-04 19:24:12 +02:00
Christoph Oelckers
24d09fe56a - some tweaking of shadowmap filter setting to allow changing the PCF filter's number of samplings.
# Conflicts:
#	src/gl/system/gl_cvars.h
#	src/gl/system/gl_menu.cpp
2018-10-04 19:19:56 +02:00
drfrag666
58b7967eea - enabled the linear shadowmap filter.
Although this doesn't look as good as the PCF version it is a lot less calculation intensive and therefore more suitable for weaker hardware.
It also tends to bleed through walls a lot less.
(refactored patch by Graf)
2018-10-04 19:08:49 +02:00
Magnus Norddahl
f9f81cdb32 - clamp the software light to never get brighter than the initial light level 2018-09-23 21:00:51 +02:00
Magnus Norddahl
9c74c9629a - rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function
# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/hwrenderer/textures/hw_material.cpp
#	src/r_data/gldefs.cpp
#	wadsrc/static/shaders/glsl/main.fp
2018-08-20 01:22:34 +02:00
drfrag666
1b7312c0d0 Revert "- check light direction in the shader."
This reverts commit e9f7383279.

It was not needed in the old version.
2018-05-25 20:38:26 +02:00
Christoph Oelckers
b3da533033 - fixed precision issue with dot product.
Apparently the shader math is not precise enough to ensure that two supposedly orthogonal vectors are truly orthogonal, resulting in a non-zero dot product

(cherry picked from commit cce6c9a085)
2018-05-24 20:45:17 +02:00
Christoph Oelckers
3703132794 - fixed shader compilation.
(cherry picked from commit 1266339c0f)
2018-05-23 10:22:12 +02:00
Christoph Oelckers
e9f7383279 - check light direction in the shader.
There are situations where lights on the wrong side of a linedef may be passed and those need to be skipped in the shader code.

(cherry picked from commit 3dc6ddbcc3)
2018-05-23 10:22:11 +02:00
Magnus Norddahl
4ffa344f7d - Fix black pixels when subtractive lights are in range for PBR materials 2018-03-26 00:01:52 +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
9b7bef59d2 - fixed Intel rendering glitch with uDynLightColor 2018-03-12 21:44:55 +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
94fbcacf22 Merge branch 'gzdoom' into materials 2018-02-10 00:08:17 +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