1900 Commits

Author SHA1 Message Date
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
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
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
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
yvt
fc34c60f42 feat(draw): increase the blur kernel radius for the sharpening effect 2021-01-17 23:43:03 +09:00
yvt
0f17bc5549 perf(draw): turn off the sharpening code section if the effect factor is zero 2021-01-17 23:43:03 +09:00
yvt
aeb69b7b71 feat(draw): raise the upper bound of luminance to sharpen 2021-01-17 23:43:03 +09:00
yvt
a26a9c7a26 feat(draw): apply sharpening effect during the color correction pass
This effect frags two deuces with one grenade. Firstly, it enhances the
image's clarify for aesthetic reasons. Secondly, it offsets OpenSpades'
fog density, which is often claimed to be denser than the original
client. Technically, the fog density function is mostly identical
between these two clients. However, OpenSpades applies the fog color in
the linear color space, which is physically accurate but has tendency to
strengthen the effect because the human light perception is logarithmic.

The effect amount can be adjusted by `r_sharpen` config variable.
2021-01-17 23:43:03 +09:00
yvt
ae12df59cc feat(draw): apply the temporal AA pass after the lens dust filter
The lens dust filter adds a film grain, which would lower the neighbor
clamping technique's effectiveness if applied first.
2021-01-17 23:42:36 +09:00
yvt
99f3f79e7f Merge branch 'feat-taa-translation' 2021-01-17 22:36:46 +09:00
yvt
debf3aa8b0 feat(draw): improve the numerical precision of the reprojection matrix calculation 2021-01-17 22:36:36 +09:00
yvt
26faf05d92 feat(draw): take camera translation into account for reprojection 2021-01-17 22:27:05 +09:00
yvt
03a8b97168 fix(draw): ensure that temporal AA's output will never fall negative 2021-01-17 00:37:06 +09:00
yvt
4da14fced2 feat(draw): make the motion blur amount adjustable 2021-01-17 00:36:16 +09:00
yvt
6b54ce0cb5
Merge pull request #936 from yvt/feat-taa
Temporal antialiasing
2021-01-16 23:50:59 +09:00
yvt
c8ad6ba012 feat(gui): hide the temporal AA option as it's still experimental
The users can enable it anyway by toggling `r_temporalAA`.
2021-01-16 23:39:07 +09:00
David CARLIER
457b9eba38
Little step further to fix M1 build. (#937)
opusfile native for ARM is existing.
Angelscript needs update to have ARM64 calling convention.
2021-01-13 14:38:33 +09:00
yvt
fb7004a3a5 Remove an unused function 2021-01-08 21:31:30 +09:00
yvt
31dbe3649d Implement temporal AA
Fixes #597.

Currently, reprojection is done by taking only the camera rotation into
account. The result is not very satisfactory.
2021-01-08 21:28:19 +09:00
yvt
c073c92c6a fix(client): don't pass nullptr to std::nan, don't use std::nan at all
`std::nan` converts a given string to a quiet NaN value in an
implementation-defined way. It accepts an empty string, but that doesn't
mean you can pass `nullptr`. Passing `nullptr` causes a segmentation
fault on Linux but does not on macOS, which I think is why I missed that
in the first place.

Actually, `std::nan` isn't even really needed here, hence I replaced it
with `NAN`.
2021-01-05 16:22:17 +09:00
yvt
d8efb424be
feat(i18n): update translations
Contributors (sorted by language):

Norwegian Bokmål: TheNekOz
Turkish: Emircan (EmircanGRBZ)
2020-12-20 15:43:44 +09:00
yvt
656af7f3c4
chore(i18n): add project_id 2020-12-20 15:39:38 +09:00
yvt
684753ab27 chore(cmake): rename the executable to OpenSpades.exe on Windows 2020-12-18 05:56:44 -08:00
yvt
7c27e5b25c
Merge pull request #928 from yvt/chore-msvc-paks
Improve the asset building in MSVC

- The pak building step now tracks its dependencies correctly. Consequently, it will not run if the input files are unchanged.
- The build process now copies `PackageInfo.json` to the correct output directory.
2020-12-18 22:54:15 +09:00
yvt
deee473715
chore(cmake): support disabling non-GPL file downloading 2020-12-18 22:53:22 +09:00
yvt
861ae3651f
chore(cmake): describe OPENSPADES_RESOURCES correctly 2020-12-18 22:36:40 +09:00
yvt
0af62bc50d chore(cmake): create bin/$<CONFIGURATION>/Resources before copying files into it 2020-12-18 05:28:19 -08:00
yvt
8f1b51a469 chore(cmake): add comments to build steps 2020-12-18 05:22:16 -08:00
yvt
18d3220034 chore(cmake): specify mkpak.*'s dependencies precisely 2020-12-18 05:22:15 -08:00
yvt
a20ce5f47a chore(cmake): handle MSVC multi-config more elegantly 2020-12-18 05:22:15 -08:00
yvt
a5a22653b9 chore(cmake): copy PackageInfo.json in MSVC builds 2020-12-18 05:22:15 -08:00
yvt
4d078e7376
Merge pull request #924 from yvt/patch-vcpkg
Adopt vcpkg and streamline the build process
2020-12-18 22:15:55 +09:00
yvt
2a72668cda
doc: convert is not needed for macOS builds 2020-12-18 22:04:02 +09:00
yvt
e7822118f7
chore(ci): remove the Travis CI configuration 2020-12-18 22:00:07 +09:00
yvt
9b7673d8d2 chore: get rid of Sources/Externals
We don't need it anymore since we now use vcpkg to fetch dependencies.
2020-12-18 04:54:27 -08:00
yvt
a66cad2d8f chore(ci): setup GitHub workflow for Windows builds 2020-12-18 04:40:23 -08:00
yvt
ae7ce2f029 chore: link libraries statically when building for x86-windows 2020-12-18 04:40:23 -08:00
yvt
528a5a5cdc chore(cmake): get vcpkg-based build working on Windows (again) 2020-12-18 04:40:23 -08:00
yvt
cb5f0d9284
fix: remove any remaining references to cg_smp
Fixes #923.
2020-12-17 00:39:23 +09:00
yvt
665b7ee799
doc: clarify network usage during building 2020-12-14 00:31:57 +09:00
yvt
d27e646242
chore: delete the Xcode project 2020-12-14 00:20:50 +09:00
yvt
cdf2bcd9a5
chore: download libysrspades.dylib automatically when building for macOS 2020-12-14 00:14:13 +09:00