2056 Commits

Author SHA1 Message Date
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
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
4aef2bbef8 Play hit sounds only once per attack
Fixes #925.
2020-12-17 00:59:09 +09: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