Commit Graph

22 Commits (5e37f84bc7207eea696b6fa08777ae64c4134ef2)

Author SHA1 Message Date
Tomasz Kapuściński 33b7c893cb Allow length of the light direction vector to influence strength of the light source.
This fixes the issue with objects and terrain being darker than they should be. As it turns out, most levels have not normalized light direction which happens to make light brighter and this is the expected result. To keep in line with GL14 engine, newer engines should use the length of the vector to make light brighter.
2020-07-31 22:01:33 +02:00
Mateusz Przybył 2d32e3a798
Merge pull request #1255 from timgott/smooth_shadows_gl21
Smooth shadows in gl21
2020-07-21 20:55:47 +02:00
Martin Doucha 69aba7c352 Fix OpenGL 3.3 specular lighting 2019-12-29 14:46:39 +01:00
Martin Doucha 0d30624119 Fix OpenGL 2.1 specular lighting 2019-12-29 14:46:39 +01:00
Tim Göttlicher e9a153df14 Smoother shadows on OpenGL 2.1 2019-04-28 01:27:12 +02:00
AbigailBuccaneer 0d6fffd91f Improve shadow quality and performance in gl33
If CONFIG_QUALITY_SHADOWS is defined (which it always is) then the
fragment shader code that samples the shadow map will take five samples
in a cross shape around the point to be sampled, to apply antialiasing.

Currently, the offset of these samples is hardcoded to 0.00025× the
shadow map resolution. This is very inconsistent: if the shadow map
resolution is 128×128, then these samples are 0.032 texels apart, which
is a waste of four texture samples, and essentially means that no
antialiasing is applied. If the shadow map resolution is 8192×8192, then
these samples are 2.048 texels apart, which causes visual artefacts
around shadow edges, instead of giving smoother shadows.

The correct thing to do is to always sample exactly one texel away from
the original position. This is easy in GLSL 3.30, as it includes a
textureOffset function which offsets a texture fetch by an exact number
of texels. This is faster than manually calculating an offset ourselves,
it fixes visual artefacts at high resolutions, and it properly applies
antialiasing at low resolutions.
2018-05-02 16:30:45 +01:00
Tomasz Kapuściński 9bdd83771e Optimizations and changes in OpenGL 2.1 device.
* Limited number of lights to 4
* Only directional lights
* Per-pixel lighting
* Improved dynamic shadows a bit
2017-01-02 16:35:40 +01:00
Tomasz Kapuściński 7bb3245092 Optimizations and changes in OpenGL 3.3 device.
* Limited number of lights to 4
* Only directional lights
* Per-pixel lighting
* Improved dynamic shadows a bit
* Optimized texture changes
2017-01-01 17:16:54 +01:00
Tomasz Kapuściński 4c6f8239fa Renamed and moved GL33 shader files to separate directory 2016-03-14 21:44:25 +01:00
Tomasz Kapuściński cec942b4fd Renamed and moved GL21 shader files to separate directory 2016-03-14 21:24:27 +01:00
Tomasz Kapuściński 2774fcd8a2 Small changes in the GL21 shader 2016-03-14 20:02:31 +01:00
Tomasz Kapuściński 78e877d9a8 Changes in framebuffer creation, framebuffer error detection and small other graphical things 2016-02-29 16:42:01 +01:00
Tomasz Kapuściński 0eaf3a9ac4 Added rendering modes and shaders to OpenGL 3.3 engine and fixed problem with detecting extensions in core profile 2016-02-18 00:57:37 +01:00
Tomasz Kapuściński 6b7e6cbc75 Added rendering modes and implemented additional OpenGL 2.1 shaders 2016-02-13 03:54:49 +01:00
Tomasz Kapuściński b6faadca03 Rewritten OpenGL 2.1 engine's two-sided lighting 2016-02-11 15:04:07 +01:00
Tomasz Kapuściński 32b480b226 Rewritten lighting in OpenGL 2.1 engine 2016-02-10 23:38:49 +01:00
Piotr Dziwinski 3b585d9f51 Some style and whitespace fixes 2015-08-02 11:36:36 +02:00
Tomasz Kapuściński 66d865942c Added OpenGL 2.1 shaders for per-pixel lighting 2015-06-02 16:55:03 +02:00
Tomasz Kapuściński e1a0f5b1c7 Added OpenGL 2.1 engine 2015-05-27 22:12:02 +02:00
Tomasz Kapuściński 08bf066f78 Added shadow color setting 2015-05-27 21:58:32 +02:00
Tomasz Kapuściński fa67e815b8 Implemented per-vertex lighting and set it as default in OpenGL 3.3 engine 2015-05-22 18:53:51 +02:00
Piotr Dziwinski b1e8341475 Move OpenGL 3.3 shaders to main repository 2015-05-20 23:30:46 +02:00