2043 Commits

Author SHA1 Message Date
yvt
52d579cf16 Merge branch 'master' into feat-vfog2 2021-05-03 00:04:52 +09:00
yvt
f141208322
Merge pull request #844 from yvt/patch-modernize
Modernize
2021-05-02 23:57:20 +09:00
yvt
b1022213f3 Merge branch 'master' into patch-modernize 2021-05-02 23:39:03 +09:00
yvt
28a283cc82 Merge branch 'master' into feat-vfog2 2021-04-10 21:39:52 +09:00
yvt
4d71214d04 feat(draw): extrapolate depth values using a tangent in the bilateral filter
Improve the SSAO quality of surfaces seen from a grazing angle.
2021-04-10 19:36:38 +09:00
yvt
e4e38d85c0 fix(core): remove the exception specification of IStream::~IStream
The exception specification isn't really useful.

Fixes build failure on Windows + MSVC.
2021-04-10 12:09:01 +09:00
yvt
12364d4151 feat(draw): add r_scaleFilter
- 0: Nearest neighbor
 - 1: Bi-linear
 - 2: Bi-cubic
2021-04-10 00:12:18 +09:00
yvt
5e9835c0fa fix(draw): do not blit depth bits from a framebuffer lacking a depth attachment
Fixes the visual corruption of the level 3 water rendering after
live-editing `r_scale` cvar.
2021-04-09 23:11:35 +09:00
yvt
6ccd397681 Fix an issue causing the first frame to be corrupted 2021-04-09 20:49:39 +09:00
yvt
a27caab565 3D render scaling (r_scale) 2021-04-09 20:14:10 +09:00
yvt
d2b9a2defc feat(draw): use jittered sampling
Dithered sampling turned out to be insufficient to remove banding.
2021-04-09 19:45:10 +09:00
yvt
2d972c00c7
Merge pull request #945 from hourai-dev/shader-fix
Fix crash due to shader program linking error
2021-03-07 14:14:08 +09:00
hourai-dev
0cda35b616
Fix crash due to shader program linking error
When built from master, Openspades would crash at startup with the
following error:
```
Error while linking a program: 'Shaders/BasicBlock.program'

error: unresolved reference to function 'PrepareForRadiosityForMap_Map'
```
The culprit was said function's definition in `MapRadiosityNull.vs`
which was missing a parameter. Fixes #944
2021-03-07 00:03:19 -05:00
yvt
43c857b201 refactor(draw): store a long-lived instance of GLFogFilter2 in GLRenderer::fogFilter2 2021-03-04 01:20:49 +09:00
yvt
d2daa7537c Merge branch 'master' into feat-vfog2 2021-02-10 01:23:03 +09:00
yvt
b6f70c3619 perf(draw): lower the AO sample count and ray distance
This doesn't severely affect the output quality thanks to the denoising
pass.
2021-02-10 01:21:06 +09:00
yvt
95c73193d1 feat(draw): alleviate the AO blurring artifact on chunk boundaries 2021-02-10 00:55:07 +09:00
yvt
533e1028c1 feat(draw): mitigate light leaks near corners by modifying AO texture coordinates in VS
This only mitigates the light leaks on terrain surfaces. It remains to
be seen how to do the same on other surfaces.
2021-02-10 00:41:02 +09:00
yvt
0d53d6fcc8 feat(draw): mitigate the AO under-shadowing by limiting the blurring from airborne voxels into by-surface voxels 2021-02-10 00:38:57 +09:00
yvt
1d23d22a44 Merge branch 'master' into feat-vfog2 2021-02-09 02:46:27 +09:00
yvt
62930e4d9e feat(draw): compensate for the under-shadowing caused by sampling AO terms away from surfaces 2021-02-09 02:45:13 +09:00
yvt
83ae6e7589 feat(draw): adjust for the change made in feat-improve-gi 2021-02-08 23:27:18 +09:00
yvt
cc2c4c623b Merge branch 'master' into feat-vfog2 2021-02-08 23:13:33 +09:00
yvt
d3d46d0881 feat(draw): apply cheap soft shadowing in r_fogShadow 2 2021-02-08 23:12:11 +09:00
yvt
2e5cf93ab0 feat(draw): calculate the contribution of each factor (direct sunlight, ambient, radiosity) more physically-correctly 2021-02-08 23:12:11 +09:00
yvt
2614f66c30 feat(draw): take the wavelength-dependent fog density into account in r_fogShadow 2 2021-02-08 23:12:10 +09:00
yvt
2f721d26c8
Merge pull request #942 from yvt/feat-improve-gi
Improve precomputed AO
2021-02-08 23:11:34 +09:00
yvt
b7ee51167f fix(draw): avoid zero division 2021-02-08 23:07:19 +09:00
yvt
98da38e1da feat(draw): sample the pre-computed AO at the center, not the corner, of each voxel 2021-02-08 22:14:28 +09:00
yvt
2d232da163 feat(draw): do not blur the pre-computed AO across walls 2021-02-08 21:23:12 +09:00
yvt
ed73991abf feat(draw): raise the AO quality 2021-02-08 20:38:58 +09:00
yvt
94ab95ce8d feat(draw): add gradient to the ambient fog term based on the angular distance to the sun 2021-01-29 20:11:32 +09:00
yvt
f6912b7a1d feat(draw): increase the effect of GLFogFilter2 in a near field 2021-01-29 20:01:28 +09:00
yvt
a517f5aefc feat(draw): do not require r_temporalAA to use r_fogShadow 2
I thought it would look bad without `r_temporalAA`. It wasn't that bad,
actually.
2021-01-29 19:45:56 +09:00
yvt
d8b06b63b9 feat(gui): add r_fogShadow 2 to the startup screen, move r_fogShadow to the top level
Since it can apply GI, it no longer belongs to "Local Illumination".
2021-01-29 19:35:22 +09:00
yvt
20a4972237 refactor(draw): use a preprocessor definition to pass USE_RADIOSITY to shaders 2021-01-29 19:22:23 +09:00
yvt
9a0f4d0f9a feat(draw): do not turn off GLFogFilter* when the fog color is pitch black
`GLFogFilter2` applies GI, so it does something even if the fog color
is black.
2021-01-29 19:17:45 +09:00
yvt
86f2e8630e feat(draw): take the fog GI into consideration when applying the sharpening effect 2021-01-29 19:16:43 +09:00
yvt
2d99ae5fff feat(draw): fade the radiosity term above the z = 0 plane 2021-01-29 19:04:05 +09:00
yvt
cdc8bf9546 feat(draw): apply GI to GLFogFilter2
It's incredibly beautiful and slow.
2021-01-29 18:42:48 +09:00
yvt
1e87f8e81e feat(draw): implement dithered sampling
The result is ...meh. Maybe we should switch to bi-lateral filtering?
2021-01-29 18:15:24 +09:00
yvt
77212b8c22 feat(draw): implement fog shadow
Re-scaling the in-scattering term by a desired fog density seems to be
working very well.
2021-01-29 17:57:55 +09:00
yvt
d5152eda48 feat(draw): gate GLFogFilter2 by r_radiosity and r_temporalAA
I intend the volumetric fog to receive GI. To simplify the
implementation, I decided not to support other cases.

I'd like to exploit temporal AA to reduce the sample count per pixel
by dithered sampling. It would perplex the users if the unfiltered
dither pattern was visible because temporal AA was turned off.
2021-01-29 17:39:22 +09:00
yvt
58899175af feat(draw): remove the existing ray marching code, refactor the ray determination by using a projection matrix 2021-01-29 17:32:58 +09:00
yvt
c17cad7422 feat(draw): use GLFogFilter2 for real 2021-01-29 17:16:27 +09:00
yvt
e2986217d6 feat(draw): disable coarse sampling in GLFogFilter2 2021-01-29 16:46:14 +09:00
yvt
6cbd347f4f feat(draw): add GLFogFilter2, which is activated by r_fogShadow 2 2021-01-29 16:36:50 +09:00
yvt
15db8e45b2
Merge pull request #935 from yvt/feat-sharpening
Sharpening post-processing effect
2021-01-24 13:56:59 +09:00
yvt
a3138dcc1a feat(draw): increase the sharpening amount if temporal AA is enabled 2021-01-23 15:14:20 +09:00
David CARLIER
ff428b4a6c
SDL2 few more paths proposal. (#939)
Adds `/opt/homebrew` to the SDL2 search path when building without vcpkg.
2021-01-21 15:01:29 +09:00