Ivan 'provod' Avdeev
1fadbce860
vk: remove flag attribute in vertex
...
make color computation more uniform and not mode-specific
2023-02-25 18:38:22 -08:00
Ivan 'provod' Avdeev
e4ad18f220
vk: do not modulate beam color twice
...
color is already applied at model/ubo level
2023-02-25 16:58:59 -08:00
Ivan 'provod' Avdeev
f2182bb255
vk: fix beams per-vertex blending
2023-02-25 16:47:23 -08:00
Ivan Avdeev
26ad10483f
Merge pull request #432 from w23/sprite-improvements
...
- [x] fixes #297
- [x] fixes #256
- [x] Sprite rendering differs from GL, especially with glow(3) and solid/transalpha(4)
2023-02-25 14:27:20 -08:00
Ivan 'provod' Avdeev
1d17e55101
rt: hack all blending as additive
...
this is not correct, but at least we get to see something
need to figure out how should blending work in rt:
- translucent materials that absorb light
- reflective+refractive
- etc
2023-02-25 13:22:56 -08:00
Ivan 'provod' Avdeev
3e2689b7f8
rt: improve sprite blending even moar
...
fixes most glaring sprite blending issues for ray tracing
2023-02-25 12:46:46 -08:00
Ivan 'provod' Avdeev
9f72a804e0
vk: improve traditional blending universally
...
it is now almost on par with the gl renderer
2023-02-25 12:09:20 -08:00
Ivan 'provod' Avdeev
ce27bdb1b1
vk: fix studio models being modulated by ent color
2023-02-24 23:57:49 -08:00
Ivan 'provod' Avdeev
cd524c20cf
vk: make transparent brushes closer to gl
...
some of render modes are not affected by light, disable lightmaps for them
2023-02-24 23:54:41 -08:00
Ivan 'provod' Avdeev
03efb6ce83
fixup linux compiler warnings
2023-02-24 23:52:09 -08:00
Ivan 'provod' Avdeev
487c94662a
rt: HACK flickering lerping sprites
...
Lerping between sprite frames means drawing two coplanar quads blended the right way. This is not something ray tracing can accommodate easily for all blending modes.
Disable lerping for now
2023-02-24 22:52:38 -08:00
Ivan 'provod' Avdeev
005b7c84eb
vk: pass model color explicitly
...
Instead of passing model color around as an implicit global state, pass it per-model.
This makes it (a) easier to track, (b) easy to fix blending issues. E.g. this fixes incorrect coloring of brush and studio models, which is also different.
2023-02-24 22:48:26 -08:00
Ivan 'provod' Avdeev
92b1e78d85
vk: make trad sprites more like gl ones
...
still not fully there:
- glow is slightly off
- TransAlpha has wrong blending mode
apparently pipeline settings for brushes, models, and sprites are substantially different, need different pipelines
2023-02-24 17:43:07 -08:00
Alibek Omarov
7e9d46689c
engine: client: fix multiline CenterPrint
2023-02-24 19:46:02 +03:00
Ivan 'provod' Avdeev
a5b977c8a3
rt: make emissive surfaces ignore external light
...
this is not fully correct, but it fixes slightly off sprite colors for now
2023-02-23 20:08:02 -08:00
Ivan 'provod' Avdeev
41809b8952
vk: do not depth-test glow sprites
...
makes them more like gl ones
still not fully fixed though, need to work on their transparency, it should be also scaled
2023-02-23 20:07:06 -08:00
Ivan 'provod' Avdeev
4f6d51c368
vk: fix most of random sprite flickering
...
it was due to leaving garbage in vertex fields.
some animated spritest still flicker though
2023-02-23 20:05:58 -08:00
Ivan Avdeev
d6d9011dcc
Merge pull request #431 from w23/better-extensions
...
change how device extensions are checked
make nv_checkpoint not depend on rt
split it logically from aftermath
don't crash when this extension is not available
2023-02-23 19:06:31 -08:00
Ivan Avdeev
ad5e1b2b86
vk: fixup compilation w/o aftermath sdk
2023-02-23 18:59:14 -08:00
Ivan Avdeev
8514e2c7b8
ci: update vulkan sdk and distro versions
2023-02-23 14:18:02 -08:00
Ivan 'provod' Avdeev
1a6e967ddb
vk: change how device extensions are checked
...
make nv_checkpoint not depend on rt
split it logically from aftermath
don't crash when this extension is not available
2023-02-23 13:48:41 -08:00
Alibek Omarov
b6347d17c9
engine: client: sound: don't print sound/ twice in soundlist command
2023-02-19 12:25:03 +03:00
Alibek Omarov
8293bc91d4
engine: client: sound: fix PickDynamicChannel to correctly find channel with minimum time left
2023-02-18 03:37:20 +03:00
Alibek Omarov
fb0f184d6b
engine: common: lib_common: fix offset by one UB
2023-02-17 22:51:56 +03:00
Alibek Omarov
58e95c7d6f
engine: client: console: elinimate unneeded Sys_DoubleTime call in Con_DrawDebug
2023-02-17 22:50:42 +03:00
Alibek Omarov
7a5381e658
engine: common: mod_studio: fix uninitialized adj array
2023-02-17 22:50:12 +03:00
Alibek Omarov
375c06400c
engine: server: avoid unaligned access in pfnMessageEnd
2023-02-17 22:48:56 +03:00
Ivan Avdeev
55ff27c5d4
Merge pull request #428 from w23/merge-from-upstream-2023-02-16
...
Merge from upstream
2023-02-16 11:05:50 -08:00
Ivan Avdeev
e61b45b8b6
disable flatpak build due to #430
2023-02-16 10:54:30 -08:00
Ivan Avdeev
ac1665558f
disable vulkan for nswitch
2023-02-16 10:54:08 -08:00
Ivan Avdeev
053d26e870
move ref_vk to ref/vk
2023-02-16 10:30:31 -08:00
Ivan Avdeev
604bd702d4
Merge remote-tracking branch 'upstream/master' into merge-from-upstream-2023-02-16
2023-02-16 10:19:30 -08:00
Alibek Omarov
e481c86ba2
engine: client: console: fix NXPrintf newlines, small refactoring
2023-02-15 05:53:39 +03:00
Ivan Avdeev
1f774c6400
Merge significant ray tracer improvements #341 from w23/better-sampling-passes
...
Initial observation: our vgpr story is abysmal, so need to split the one uber-rt-shader into pieces.
Done here:
- ray tracing pipeline uber shader is split into separate compute phases -> perf x2 (with a possibility of further radical improvements)
- "programmable render": read spirv, extract bindings, auto-create missing resources, etc.
- better light sampling, significant image quality improvements
- better synchronization. cpu can continue preparing the next frame while previous one is still being drawn on GPU
- lots of other small fixes
2023-02-14 13:00:53 -08:00
Ivan 'provod' Avdeev
4dd793569c
rt: add alpha-quality alpha blending
...
Do translucency in bounce stage. It's not great, but lets us see thing through.
Also fix reading OOB uninitialized memory for color/alpha.
2023-02-14 12:55:40 -08:00
Alibek Omarov
21b9f07323
engine: platform: sdl: remove legacy XASH_NANOGL macro from vid code, it's only relevant for ref_gl
2023-02-14 18:52:51 +03:00
Alibek Omarov
0bff62e696
engine: sprite: migrate header to stdint.h, remove usage of enums in data structs for portability, add static sizeof checks
2023-02-14 18:29:27 +03:00
Alibek Omarov
858597832d
engine: alias: migrate header to stdint.h, remove usage of enums in data structs for portability, add static sizeof checks
2023-02-14 18:29:18 +03:00
Alibek Omarov
9b0ac7cb32
common: add shared synctype_t definition header, borrowed from Quake's modelgen.h
2023-02-14 18:18:16 +03:00
Alibek Omarov
3c27384b6b
filesystem: speedup fs_ext_path case in FS_FindFile
2023-02-13 06:49:52 +03:00
Alibek Omarov
1e8c26a527
filesystem: wad: fix loading WADs by absolute paths
2023-02-13 06:49:29 +03:00
Alibek Omarov
f4069de7f2
engine: move SlerpBones, CalcBonePosition/Quaternion from engine to libpublic
2023-02-13 05:23:13 +03:00
Alibek Omarov
e95161aa14
filesystem: fix ClearSearchPath
2023-02-12 17:09:53 +03:00
Ivan Avdeev
eaf8b3c55a
Merge pull request #421 from w23/denoiser-massage
...
1. Denoise different channels (diffuse, specular, indirect) differently.
2. Make indirect bounce half res.
2023-02-11 12:39:07 -08:00
Ivan 'provod' Avdeev
64ac964dfc
rt: make indirect light run at half res
2023-02-11 12:12:57 -08:00
Ivan 'provod' Avdeev
218bd0a9c2
rt/denoiser: blur different channels differently
2023-02-11 11:36:45 -08:00
Ivan 'provod' Avdeev
e9712f36e3
rt/denoiser: split into diffuse/specular/direct/indirect channels
...
apply to lighting only, not to the final color
2023-02-11 11:06:33 -08:00
Alibek Omarov
0984368a31
engine: server: GoldSrc compliant pfnServerExecute(), don't execute config.cfg for server!
2023-02-11 07:22:04 +03:00
Alibek Omarov
f4961d9da7
engine: client: return empty string in pfnGetLevelName if no map is loaded yet
2023-02-11 06:50:46 +03:00
Alibek Omarov
f42a174482
engine: client: empty current map name in CL_ClearState
2023-02-11 06:45:20 +03:00