Commit Graph

125 Commits

Author SHA1 Message Date
sfan5 bb7f57b095 VBO-related optimizations and improvements (#14395) 2024-02-29 17:20:57 +01:00
sfan5 9e3a11534f
Allow fog color to be overriden properly (#14296) 2024-01-23 22:33:33 +01:00
DS e9233bc169
Fix typo in minimap bumpmapping shader (#14280) 2024-01-20 15:36:53 +01:00
Vitaliy 8093044f07
Support OpenGL 3 (#13321) 2024-01-16 21:09:18 +01:00
ROllerozxa 8e9d7611ae Apply saturation even if tonemapping is disabled 2024-01-03 21:55:53 +01:00
ROllerozxa de4cc5c20a Fix tonemapping effect 2024-01-03 21:55:53 +01:00
Lars e0d4a9d575 Make volumetric light effect strength server controllable
- Make volumetric light effect strength server controllable
- Separate volumetric and bloom shader pipeline
- Require bloom to be enable, scale godrays with bloom
2023-12-21 16:21:01 -08:00
x2048 04f0d545da Initial implementation of 'Godrays' 2023-12-21 16:21:01 -08:00
HybridDog b1aec1b5c8
Add dithering (#9014) 2023-12-19 20:18:11 +01:00
lhofhansl 0ade097e99
Allow the server to control fog_distance and fog_start via the sky-api (#13448) 2023-06-30 19:11:17 -07:00
x2048 c09a3a52ac
Add antialiasing filters (FXAA, SSAA) (#13253) 2023-06-28 05:30:08 +02:00
Thresher 180ec92ef9
Remove trailing whitespace (#13505) 2023-05-18 20:34:18 +02:00
x2048 1de8a1e962
Fix missing shadows when sun tilt is zero 2023-03-11 13:49:40 +01:00
x2048 4cd6b773bb
Fix no color values on bloom texture (#13197)
Align meaning of 'exposure' variable across different stages
Put 'exposure' variable behind ENABLE_AUTO_EXPOSURE
2023-02-10 21:04:37 +01:00
x2048 6d45c243f8
Add dynamic exposure correction (#12959)
* Add uniform for frame delta time
* Adjust exposure in logarithmic (EV) space
* Add network support and LUA API
* Add testing mod
2023-01-06 22:33:25 +01:00
lhofhansl 7bf64fc61a
Add configurable saturation (#12865)
* Add configurable saturation

Co-authored-by: Pevernow <3450354617@qq.com>
Co-authored-by: x2048 <codeforsmile@gmail.com>

Author:    Lars <larsh@apache.org>
2022-11-18 11:49:52 -08:00
Abdou-31 d1b80b462e
Fix typos and en_US/en_GB inconsistency in various files (#12902) 2022-11-09 11:57:19 -05:00
x2048 957a3e52fe Return correct variable when debugging bloom.
Fixes #12922
2022-11-03 08:43:31 +01:00
x2048 9b24041394
Improve bloom effect (#12916)
* Remove the built-in exposure factor of 2.5
* Add physics-based bloom (https://learnopengl.com/Guest-Articles/2022/Phys.-Based-Bloom)
* Add luminance scaling for bloom layer to simulate HDR
* Add setting to control bloom strength
2022-11-02 09:09:48 +01:00
sfan5 7a28f2c4fa Fix tone mapping being always enabled
broke in 579fc93c24
2022-10-09 19:11:04 +02:00
x2048 579fc93c24
Make bloom shaders compatible with GLES2 (#12834)
Co-authored-by: Muhammad Rifqi Priyo Susanto <muhammadrifqipriyosusanto@gmail.com>
2022-10-04 13:52:56 +01:00
x2048 9df79a4b2d
Bloom (#12791)
Adds configurable light exposure control and bloom effect (light bleeding) with client-side settings.
2022-09-29 20:34:05 +02:00
x2048 ff6dcfea82
Implement rendering pipeline and post-processing (#12465)
Co-authored-by: Lars Mueller <appgurulars@gmx.de>
Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: lhofhansl <lhofhansl@yahoo.com>
2022-09-06 08:25:18 +02:00
DS df1d215f48
Node vertex shader: Properly use the waved world position (#12665) 2022-08-10 18:04:12 +02:00
x2048 dc45b85a54
Improve shadow filters (#12195)
* Rewrite shadow filtering for the new distortion
* Calculate penumbra radius using a single sample
* Avoid peter-panning effect due to filtering of short shadows
* Add adaptive filter quality for soft shadows
* Avoid sharp shadows on surfaces without normals (e.g. plants)
* Increase default and maximum soft shadow radius
* Make line numbers in shader errors match the code
2022-05-21 16:49:30 +02:00
x2048 a5d29fa1d4
Implement shadow offsets for the new SM distortion function (#12191)
* Move shadow position calculation to vertex shaders
* Animate entire scene before rendering shadows to prevent lagging of shadows
* Remove unnecessary use of PolygonOffsetFactor
* Apply normal offset to both nodes and objects
* Rename getPerspectiveFactor -> applyPerspectiveDistortion
* Remove perspective distortion from fragment shaders
2022-04-14 22:49:30 +02:00
ShadowNinja 7993909fab Spacing fixes 2022-04-08 14:55:21 +01:00
x2048 48f7c5603e
Adjust shadowmap distortion to use entire SM texture (#12166) 2022-04-07 22:13:50 +02:00
x2048 31578303a4
Tune shadow perspective distortion (#12146)
* Pass perspective distortion parameters as uniforms
* Set all perspective bias parameters via ShadowRenderer
* Recalibrate perspective distortion and shadow range to render less shadow geometry with the same quality and observed shadow distance
2022-03-31 22:40:06 +02:00
x2048 0f25fa7af6
Add API to control shadow intensity from the game/mod (#11944)
* Also Disable shadows when sun/moon is hidden. Fixes #11972.
2022-03-26 16:58:26 +01:00
Dmitry Kostenko b651bbf446 Reuse normal offset calculation for nodes 2022-03-07 23:45:26 +01:00
Dmitry Kostenko 4801bdf45a Correct normal bias for entities
Remove use of magic constants.
Apply cameraOffset
Calculate distance projected on SM plane
2022-03-07 23:45:26 +01:00
Dmitry Kostenko 25c1974e0d Change normal bias for entities to avoid shadow acne 2022-03-07 23:45:26 +01:00
Dmitry Kostenko 12896b22d8 Remove debugging code 2022-03-07 23:45:26 +01:00
Dmitry Kostenko e531c59606 Ensure nightRatio is greater than zero in object shader 2022-03-07 23:45:26 +01:00
Dmitry Kostenko 97cb404822 Apply texture matrix when rendering shadowmap
Fixes shadows of animated sprite entities
2022-03-07 23:45:26 +01:00
Dmitry Kostenko a684a91bf5 Fix shadow rendering with filtering disabled 2022-03-07 23:45:26 +01:00
Dmitry Kostenko 54dccc480e Improve lighting of entities.
Pass correct natural & artificial light to the shaders
Use natural/artificial light ratio for correct rendering of shadows
2022-03-07 23:45:26 +01:00
Dmitry Kostenko f2cccf8da7 Improve self-shadowing based on light/normal angle
Add compatibility with colored shadows.
2022-03-07 23:45:26 +01:00
Dmitry Kostenko 10be033791 Copy shadow mapping shader from nodes to objects 2022-03-07 23:45:26 +01:00
Dmitry Kostenko 71317b8579 Make sure nightRatio is always greater than zero.
To avoid underfined behavior of GLSL pow()
2022-01-22 18:52:12 +01:00
x2048 835524654e
Fix shadow mapping when PCF is disabled (#11888) 2022-01-02 13:45:55 -08:00
x2048 cef016d393
Apply shadow only to the naturally lit part of the fragment color (#11722)
Fragment color for nodes is now calculated from:

 * Texture color, highlighted by artificial light if present (light color conveyed via vertex color).
 * Texture color highlighted by natural light (conveyed via vertex color) filtered by shadow.
 * Reflected day/moonlight filtered by shadow (color and intensity), assuming some portion of the light is directly reflected from the materials.
2021-10-31 19:18:30 +01:00
x2048 982e03f60d
Improvements to colored shadows (#11516) 2021-10-01 16:21:53 +02:00
sfan5 ea250ff5c5 Fix GLES2 discard behaviour (texture transparency) 2021-09-17 18:13:50 +02:00
x2048 bf3acbf388
Distribute shadow map update over multiple frames to reduce stutter (#11422)
Reduces stutter and freezes when playing.

 * Maintains double SM and SM Color textures
 * Light frustum update triggers incremental generation of shadow map into secondary 'future' textures.
 * Every incremental update renders a portion of the shadow draw list (split equally).
 * After defined number of frames (currently, 4), 'future' and 'current' textures are swapped, and DirectionalLight 'commits' the new frustum to use when rendering shadows on screen.

Co-authored-by: sfan5 <sfan5@live.de>
2021-07-25 12:36:23 +02:00
x2048 ff2d2a6e93
Add smooth light-shadow transition at noon (#11430)
Node faces with normals pointing East/West (+X/-X) will transition between light
and shadow at noon. This code makes the transition smooth.
2021-07-25 12:35:12 +02:00
x2048 f5706d444b
Improve shadow rendering with non-default camera FOV (#11385)
* Adjust minimum filter radius for perspective

* Expand shadow frustum when camera FOV changes, reuse FOV distance adjustment from numeric.cpp

* Read shadow_soft_radius setting as float

* Use adaptive filter radius to accomodate for PSM distortion

* Adjust filter radius for texture resolution
2021-07-11 08:15:19 -07:00
Liso c47313db65
Shadow mapping render pass (#11244)
Co-authored-by: x2048 <codeforsmile@gmail.com>
2021-06-06 18:51:21 +02:00
sfan5 69c70dd319 Fix swapped vertex colors on GLES2 2021-05-11 21:15:39 +02:00