Commit Graph

4519 Commits

Author SHA1 Message Date
Ivan Avdeev 84babdfff8
Merge pull request #719 from w23/stream-E352
Stuff done during streams E352-E354

- [x] tune emissive/additive blending so that it matches original, fixes #668
- [x] make additive studio and brush models single-sided, fixes #665
- [x] convert override_color (from TriApi) to linear space together with gamma
- [x] apply soft-alpha-depth universally, fixes #722
2023-12-29 09:17:36 -08:00
Ivan Avdeev 3bc293d8aa vk: rt: compute legacy blending in sRGB-γ colorspace
This makes all blending look very close to the original, and fixes a
whole class of blending-looking-wrong issues.

Fixes #668
2023-12-29 12:10:54 -05:00
Ivan Avdeev 1028564eec vk: rt: enable soft alpha depth globally
Fixes #722
2023-12-28 12:09:04 -05:00
Ivan Avdeev 46e95f1255 vk: rt: linearize kusochki.color/override_color 2023-12-28 11:21:32 -05:00
Ivan Avdeev 310ecff585 vk: rt: make additive brush models single-sided
Fixes #665
2023-12-22 15:19:24 -05:00
Ivan Avdeev 180f3ed9cb vk: rt: allow per-model back face culling
Make transparent studio models, e.g. holograms, single-sided.

Related: #665
2023-12-22 15:14:27 -05:00
Ivan Avdeev caac371681 vk: rt: tune emissive/additive blending so that it matches original
To match original more closely it additive geometry should be added to
final color in sRGB-γ space. You might not like that it is physically
incorrect, but this is what peak compatibility looks like.

Related to #668
2023-12-22 14:23:22 -05:00
Ivan Avdeev 59f7d264c2
Merge pull request #716 from 0x4E69676874466F78/rad&patches
Add new rad files
add c2a5a.rad c2a5d.rad c2a5e.rad
2023-12-21 06:35:33 -08:00
Ivan Avdeev 57fcd5aea8
Merge pull request #717 from Aty-0/bluenoise-micro-fix
Fix traditional render tries to load bluenoise, #710
2023-12-21 06:35:09 -08:00
Aty_0 c60d851ad8 Fix traditional render tries to load bluenoise 2023-12-20 23:43:12 +03:00
NightFox 0a6b40e0ab
Add new rad files 2023-12-20 18:15:54 +03:00
Ivan Avdeev 4b605810f3
Merge pull request #713 from 0x4E69676874466F78/rad&patches
Update patches

Fix texture coordinates for monitors (c1a0, c1a1f)
2023-12-20 06:41:54 -08:00
Ivan Avdeev c3d4d0fbe9
Merge pull request #715 from w23/stream-E350
Stuff done during stream E350

- [x] Restore skybox reflection
- [x] Improve skybox log messages
2023-12-20 06:41:12 -08:00
Ivan Avdeev e33185c04c vk: update overall agenda a bit 2023-12-19 12:05:33 -05:00
Ivan Avdeev 239d7bc362 rt: try to clear temporal buffers on discontinuities once more
Found out that it wasn't really clearing anything.
Now it does call clear, but still there are temporal denoising
artifacts. The issue remains elusive.

Related: #661
2023-12-19 11:35:37 -05:00
Ivan Avdeev 7d7535c5c5 vk: improve logs around skybox loading 2023-12-19 10:18:57 -05:00
Ivan Avdeev d52d44e0ce vk: rt: restore skybox sampling for bounces 2023-12-19 10:06:28 -05:00
NightFox fc1a553bc7
Fix texture coordinates for monitors (c1a0, c1a1f) 2023-12-19 01:48:02 +03:00
Ivan Avdeev a0b36a4301 vk: trad: allow rendering with replaced PBR textures
Use `vk_use_material_textures` cvar to show new PBR material textures
for traditional rendering.
Note that they're often sampled in an incorrect colorspace, so they look
different from RT.

Fixes #711
2023-12-18 09:57:01 -08:00
Ivan Avdeev 7e0553d408
Merge pull request #708 from w23/stream-E346
Skybox improvements (E346-E349)

- [x] #706 
  - [x] Do not load skybox if map doesn't have any `SURF_DRAWSKY` surfaces.
  - [x] Cache: do not reload the same skybox.
  - [x] Enable loading packed KTX2 cubemaps as skyboxes in engine/imagelib
- [x] Reuse existing imagelib cubemap loading routines, remove custom skybox loading code
- [x] Allow hiding `SURF_DRAWSKY` surfaces via `"_xvk_remove_all_sky_surfaces" "1"`, #579 
- [x] #677 
  - [x] Add skybox exposure control for HDR skyboxes
  - [x] Allow reloading skyboxes when reloading patches
2023-12-18 09:56:04 -08:00
Ivan Avdeev 5659fb0b6f imagelib: c90-ize ktx2 loader even more 2023-12-18 12:43:52 -05:00
Ivan Avdeev 6d79e84f5b imagelib: c90-ize ktx2 loader face cursors 2023-12-18 12:39:21 -05:00
Ivan Avdeev bec1e0f558 vk: rt: add tunable skybox exposure
E.g. add `desert.mat` alongside `desert.ktx2` (or
`desrt_{rt,lf,...}.png` files) with the following contents:
```
exposure 0.3
```
Skybox texture color will be multiplied by this value.
2023-12-18 12:26:01 -05:00
Ivan Avdeev 356f7bdf71 imagelib: load KTX2 cubemaps directly 2023-12-18 11:37:46 -05:00
Ivan Avdeev 2776373652 imagelib: do not overwrite the correct image size when building cubemap
For some very unknown reason there's a line that fixes image size to
w*h*4, which would correspond to RGBA8 pixel format w/o alignment.

This is extremely incorrect for other pixel format, e.g. compressed
ones.

Not sure why this size-fixing was there, but removing it fixes sided
KTX2 compressed skybox corruption.
2023-12-15 09:14:23 -05:00
Ivan Avdeev b1b333f74a vk: use imagelib cubemap/skybox loader
Engine imagelib already has skybox loader. It uses rgbdata_t
IMAGE_CUBEMAP flag.
1. Support IMAGE_CUBEMAP
2. Utilize imagelib skybox loader, do not try to load individual skybox
   sides manually.

This will allow loading KTX2 cubemaps directly.

Known issues:
1. Compressed KTX2 sides are not rotated correctly. Engine/imagelib is
   unable to rotate compressed images.
2. Some KTX2 sides are corrupted. Cause unknown.
2023-12-14 13:40:34 -05:00
Ivan Avdeev 6a11c6e64f vk: rt: add notes regarding engine imagelib
Also:
- add more info to texture upload debug logs
- remove obsoleted code
- prepare for engine/imagelib-side cubemaps
2023-12-14 12:41:11 -05:00
Ivan Avdeev 6fc318143e vk: rt: allow hiding all SURF_DRAWSKY surfaces while retaining skybox
Neede for getting rid of some skybox 𝘱𝘦𝘯𝘦𝘵𝘳𝘢𝘵𝘪𝘰𝘯 glitches, see #579
2023-12-14 10:54:07 -05:00
Ivan Avdeev 3cbc11a8f0 vk: rt: optimize hires skybox loading
- Do not load skybox at all if there are no SURF_DRAWSKY, #706, #579
- Do not reload the same skybox, #706

Also refactor skybox loading a bit. Prepare for KTX2 skyboxes.
2023-12-14 10:33:26 -05:00
Ivan Avdeev 9a0ff43a97
Merge pull request #707 from 0x4E69676874466F78/no_ray_warn
Improved warning when there are no ray extensions

fix #670
2023-12-12 14:42:44 -08:00
NightFox 726572b78c
minor reorganization 2023-12-13 01:13:48 +03:00
NightFox 0d3c9ba88d
Warning after getting a candidate 2023-12-12 19:46:04 +03:00
Ivan Avdeev f3f14ac968
Merge pull request #705 from w23/stream-E345
Thing done during stream E345

- [x] fix incorrect basecolor brdf multiplication, #666 
- [x] Do not patch sprite textures for traditional raster, #695
2023-12-12 07:07:50 -08:00
NightFox 852b7c28ba
Slight improvement of code 2023-12-12 14:56:35 +03:00
NightFox 1a9f97bb14
Added warnings about 32bit when configure 2023-12-12 14:31:20 +03:00
NightFox e1868c752f
Improved warning when there are no ray extensions
fix #670
2023-12-12 13:55:12 +03:00
Ivan Avdeev 5c42f34654 vk: rt: mark sky surfaces as non-geometry
SURF_SKY shouldn't receive any light, neither direct, nor indirect. Mark
it as non-geometry with ray length < 0.
2023-12-11 13:17:33 -05:00
Ivan Avdeev 4ac62076bb vk: use original texture for sprites in rasterization mode
Traditional rasterization should not use any of the patched textures.

Fixes #695
2023-12-11 12:55:32 -05:00
Ivan Avdeev c8123952a2 vk: rt: fix incorrect basecolor brdf multiplication
PBR model used implies the following rules:
- for metals both diffuse and specular components should be tinted by
  material base color.
- for dielectrics, only diffuse should be tinted, specular should remain
  as is.

Partially fixes #666
2023-12-11 11:48:44 -05:00
Ivan Avdeev 20da50ca7b
Merge pull request #701 from 0x4E69676874466F78/0x4E69676874466F78-rad-1
Add & update rad files
2023-12-08 07:37:52 -08:00
NightFox e89e44d94a
Add & update rad files
c2a4d.rad, c2a4e.rad, c2a4f.rad
2023-12-08 18:35:44 +03:00
Ivan Avdeev b6af3a6b56
Merge pull request #699 from 0x4E69676874466F78/0x4E69676874466F78-rad-1
Update c2a4a.rad
2023-12-07 07:59:16 -08:00
NightFox b22d87ae82
Update c2a4a.rad
add missing +A~FIFTIES_LGT2
2023-12-07 18:54:40 +03:00
Ivan Avdeev db4c3c50c7
Merge pull request #698 from 0x4E69676874466F78/0x4E69676874466F78-rad-1
Add new rad files & patch
2023-12-07 07:10:15 -08:00
NightFox 20cbe33f2f
add c2a3e.patch 2023-12-07 17:12:21 +03:00
NightFox 1bec8ad9b9
Add new rad files 2023-12-07 17:11:55 +03:00
Ivan Avdeev 80b524d643
Merge pull request #690 from w23/stream-E342
Stuff done during stream E342

- [x] revert back indirect specular kernel size
2023-12-05 09:59:57 -08:00
Ivan Avdeev 6cb45dda77 vk: update notes and todo 2023-12-05 12:59:30 -05:00
Ivan Avdeev e00f758594 vk: revert back indirect specular kernel size 2023-12-05 11:14:25 -05:00
Ivan Avdeev dc0b968028
Merge pull request #689 from 0x4E69676874466F78/0x4E69676874466F78-rad-1
Update rad files
2023-12-05 06:29:30 -08:00