Commit Graph

488 Commits

Author SHA1 Message Date
Ivan Avdeev
ccab9e6ea6 make ray_interop.h a bit more self-sufficient 2021-12-21 22:56:34 -08:00
Ivan Avdeev
8d552b5d94 update todo 2021-12-21 22:56:34 -08:00
Ivan Avdeev
fa63aedce9 rtx: fix too verbose logs for emissive patch 2021-12-21 18:50:41 -08:00
Ivan Avdeev
b593be9695 rtx: delete patched surfaces with zero emission
fix #286
2021-12-21 18:37:04 -08:00
Ivan Avdeev
659402cb2a patch: enable live reloading
Does not yet reload emissive patches ("_light" argument for surfaces).
Does not reload deleted surfaces.
2021-12-21 18:37:04 -08:00
Ivan Avdeev
8b1971e0d1 fix mass patching and removing, fix #283 2021-12-20 14:34:55 -08:00
Ivan 'provod' Avdeev
0a05adaabc rtx: add reinhard tonemapping 2021-12-20 13:48:49 -08:00
Ivan 'provod' Avdeev
985ea278f8 rtx: fix uninitialized texture memory in base_color and normal channels 2021-12-20 13:16:27 -08:00
Ivan 'provod' Avdeev
2ac0413a28 rtx: remove second gamma correction
On stream E180 after working on it for almost a year we found out that we're doing double gamma correction. Our swapchain colorspace is already SRGB, so no need to sqrt() in shaders.

Also, comment on the fact that we need to HDRize skyboxes, and leave the curren hack intact.
2021-12-20 13:16:27 -08:00
NightFox
4d5dbd7f1e fix #60 and tune refract 2021-12-19 19:07:51 -08:00
NightFox
50ac0c3efa remove obsolete vk_device_list 2021-12-11 13:14:54 -08:00
350ab21209 engine: add a method to retrieve all available GPUs (only for Vulkan), add r_refdll_loaded cvar to indicate current loaded renderer 2021-12-11 13:14:54 -08:00
NightFox
84b358b096 Revert "fix C90"
This reverts commit 4e761ee485.
2021-12-11 13:14:54 -08:00
NightFox
a55b260905 fix C90 2021-12-11 13:14:54 -08:00
NightFox
2502c212d4 change default value for vk_device_target_id 2021-12-11 13:14:54 -08:00
NightFox
e03e738d26 fix vk_core.rtx init 2021-12-11 13:14:54 -08:00
NightFox
907b3f40b3 add GPU selector logic and...
rename VK_LoadCvarsRTX to VK_LoadCvarsAfterInit
2021-12-11 13:14:54 -08:00
NightFox
ea1767f2c2 cvar improvements №2
added vk_only for old -rtx behavior (full disable rtx pipeline)
remove -vkskipdev and skip_first_device as unused and obsolete
remove obsolete check ("missing ray tracing extensions")
addedv VK_LoadCvarsRTX for rtx commands
remove vk_rtx_prev_frame_blend_factor as an outdated command
added vk_deviceid as a stub for video device selection
vk_rtx_reload_materials no longer shown when vk_core.rtx = 0
2021-12-11 13:14:54 -08:00
Ivan Avdeev
b0e3ebfc32 rtx: add mass-patching, fix #275 2021-12-11 12:52:29 -08:00
Ivan Avdeev
803889e54f
Merge pull request #272 from a1batross/vulkan
Various patches, sync with upstream
2021-12-10 17:50:18 -08:00
Ivan Avdeev
cad38d0d17
Merge pull request #273 from 0x4E69676874466F78/rads
Update rads
2021-12-09 20:39:04 -08:00
deeb84c5eb engine: get rid of stupid XASH_VULKAN. Vulkan support must be decided by the platform-code, not during build-time, and available if possible. Otherwise it can always return nothingness and refuse to create REF_VULKAN context 2021-12-10 02:58:26 +03:00
a99e1ca509 Merge master into vulkan 2021-12-10 01:12:04 +03:00
3a8a7f290d ref_vk: wscript: split rtx shaders into new build target for specific glslc flags 2021-12-10 01:01:28 +03:00
ffd618b382 rtx: print all unsupported extensions 2021-12-10 01:00:38 +03:00
Ivan Avdeev
f59fadec51 rtx: improve barycentric triangle sampling
, #265
2021-12-08 12:35:49 -08:00
Ivan 'provod' Avdeev
6e9b54869c rtx: fix shadows for surfaces with alpha mask 2021-12-08 12:08:26 -08:00
Ivan Avdeev
e831a9c9dd rtx: fixup point/spot light attenuation after sampling fixes 2021-12-08 11:27:04 -08:00
Ivan Avdeev
8d041d3fb0 rtx: fixup emissive color, #145 2021-12-08 11:26:26 -08:00
Ivan Avdeev
f9fc8fd2f2 rtx: read _xvk_radius instead of radius in patch files to disambiguate, fix #259 2021-12-08 11:25:39 -08:00
Ivan Avdeev
4becafc02c Merge branch 'sample-emissive-lights-textures' into E177
Also do not multiply emissive textures by emissive color. similar to how
original lighting works.
qrad lighting treats emissive surfaces as constant color w/o paying
attention to texture contents. And then the rederer just draws textures
w/o lightmaps.

We need to figure out what to do with pbr path tracer.
2021-12-08 10:43:11 -08:00
Ivan Avdeev
e3e8693b13 rtx: attenuate lights based on solid angle, not distance and area, #145
breaks previous tuning
2021-12-05 13:38:16 -08:00
NightFox
de2a52dd71 Update ref_vk/vk_cvar.c
Co-authored-by: Ivan Avdeev <me@w23.ru>
2021-12-04 22:02:34 -08:00
NightFox
fb79c1937f Update text for disabled rtx 2021-12-04 22:02:34 -08:00
NightFox
8e0be3c372 add vk_rtx_extension cvar for rtx options, more smart vk_rtx cvar 2021-12-04 22:02:34 -08:00
NightFox
e3cbb785e2 Add FCVAR_READ_ONLY and unlock FCVAR_GLCONFIG (temporary solution for some commands) 2021-12-04 22:02:34 -08:00
NightFox
c6f92b0664 Add ClearBits for FBitSet
Because otherwise the condition will be called all the time.
2021-12-04 22:02:34 -08:00
Ivan Avdeev
3de2a98db4 rtx: fix skipping the last leaf when clustering lights, fix #97
apparently model_t->leafs goes from 1 to model_t->numleafs, not from 0
to model_t->numleafs-1
2021-12-03 11:37:10 -08:00
Valery Klachkov
3b6898f701 force rtx if supported card found, remove flag 2021-12-03 11:29:06 -08:00
NightFox
152748b657 fix error: implicit declaration of function 2021-12-03 11:26:50 -08:00
NightFox
f501f8255d add reload 2d pipeline 2021-12-03 11:26:50 -08:00
Ivan Avdeev
1dabdc67d6 sample emissive lights textures 2021-12-03 09:57:24 -08:00
NightFox
fcb56ccb45 Update vk_materials.c 2021-12-01 19:14:40 -08:00
NightFox
b517205269 Add new locations for materials.mat
pbr/sprites/materials.mat
pbr/gfx/env/materials.mat
2021-12-01 19:14:40 -08:00
Ivan Avdeev
f70f5bfe82 rtx: add scalar parameters for material overrides, fix #238 2021-12-01 13:19:01 -08:00
Ivan Avdeev
0e0f1913a1 rtx: add scalar parameters for material overrides, fix #238 2021-12-01 10:32:32 -08:00
NightFox
5917fff727 Update ref_vk/vk_framectl.c
Okay

Co-authored-by: Ivan Avdeev <marflon@gmail.com>
2021-11-30 19:53:06 -08:00
NightFox
1bf72f6a1a Add vk_rtx command
For enable or disable ray tracing mode
2021-11-30 19:53:06 -08:00
NightFox
564359ffe2 Remove requirement -vkdebug for some console cmds
vk_rtx_reload
vk_rtx_reload_rad
vk_rtx_freeze
2021-11-30 19:53:06 -08:00
Ivan Avdeev
431cd79072 clear studio model vertex memory; #241 2021-11-29 21:32:52 -08:00
Ivan Avdeev
c833d0e320 rtx: make default light radius smaller, fix #242 2021-11-29 21:17:22 -08:00
Ivan Avdeev
93fba1018c fix incorrect surface indexing when patching
fix #239
2021-11-29 10:06:07 -08:00
Ivan Avdeev
5c85d1b648 rtx: add radius property for point/spot lights
it is not handled correctly in shader yet
2021-11-28 14:05:54 -08:00
Ivan Avdeev
39de6ad170 improve ui_unfotool crosshair alignment 2021-11-28 13:51:59 -08:00
Ivan Avdeev
ee52562e46 rtx: propagate patched emissive color 2021-11-28 13:51:30 -08:00
Ivan Avdeev
7ca6c2128c rtx: allow patching light entities
change light position and color example:
```
{
	"_xvk_ent_id" "217"
	"_light" "255 0 255 1000"
	"origin" "-2016 300 -432"
}
```

delete light example:
```
{
	"_xvk_ent_id" "219"
}
```
2021-11-28 13:38:01 -08:00
Ivan Avdeev
cd2804b659 attempt to read skybox images from pbr/env/<name>.png first, #155 2021-11-28 12:43:35 -08:00
Ivan Avdeev
5a7cb651ca rtx: allow patching emissive color for brush surfaces, #117 2021-11-28 11:15:02 -08:00
Ivan Avdeev
c4c97b2822 Merge branch 'vulkan' into patch 2021-11-28 09:56:25 -08:00
Ivan Avdeev
a394038f22 rtx: do not treat SURF_SKY as light source, fix #232 2021-11-27 20:22:32 -08:00
Ivan Avdeev
28d047a904 rtx: enable patching surface textures
example:
```
{
	"_xvk_surface_id" "489"
	"_xvk_texture" "#maps/test_material.bsp:debug_normal1.mip"
}
```

if _xvk_texture is empty, then the surface will be deleted

surfaces can be deleted or their
2021-11-26 23:59:48 -08:00
Ivan Avdeev
c2748ff034 fix random crashes on map load
how about not freeing stuff and then trying to use it?
2021-11-25 15:08:16 -08:00
Ivan 'provod' Avdeev
f0aaa3cd10 materials: enable force-reloading textures
mark such materials as `"force_reload" "1"`
2021-11-25 14:38:03 -08:00
Ivan 'provod' Avdeev
1624f4620a mat: load materials from multiple sources; abs paths
- look for materials in:
  - pbr/materials.mat
  - pbr/models/materials.mat
  - pbr/wadname.wad/materials.mat
  - pbr/maps/mapname.bsp/materials.mat

- all paths are relative to their materials.mat, except for ones that begin with '/', which are relative to `pbr` dir

pbr dir should be placed in modname dir, e.g. 'valve'

#155
2021-11-25 13:51:39 -08:00
Ivan 'provod' Avdeev
405a9ecbb4 rtx: skybox srgb workaround for #230 2021-11-25 12:31:36 -08:00
Ivan 'provod' Avdeev
a9d5e4dd22 rtx: draw skybox on SURF_SKY surfaces only
- change how shadows for environment lights work: should cast light only when hitting SURF_SKY
- add SBT_RECORD_SIZE to specialization; need this for sky/shadow closest hit shader

fix #140
2021-11-25 11:53:44 -08:00
Ivan Avdeev
12565a35a1 reorient skyboxes to vulkan spec 2021-11-23 09:07:58 -08:00
Ivan Avdeev
9920dc6674 unload cubemaps 2021-11-23 09:07:21 -08:00
Ivan Avdeev
1ad13817fe add cubemap support; add misaligned skybox 2021-11-21 14:53:51 -08:00
Ivan Avdeev
714d825956 deduplicate creation of VkImages 2021-11-21 13:40:11 -08:00
Ivan Avdeev
dc3e75bd44 add skybox from which we only render UP plane kek #140 2021-11-19 11:46:44 -08:00
Ivan Avdeev
335be32cff rtx: fix additive when hitting sky 2021-11-19 11:46:44 -08:00
Ivan Avdeev
10dab2f021 fix materials application to studio models, fix #216
1. make sure that it can find studio textures by name exactly (no wad or
   other weird prefixes necessary)
2. do not apply HACK_reflective to chrome that already has a patched
   material
2021-11-19 11:46:44 -08:00
Ivan Avdeev
10c48e86b3 take tangent from bsp data directly, fix #218 2021-11-19 11:46:44 -08:00
Ivan Avdeev
97999e1f8e rtx: specular reflective hack back temporarily 2021-11-17 11:20:29 -08:00
Ivan Avdeev
430d56af5f rtx: enable partial texture overrides in materials 2021-11-17 11:11:34 -08:00
Ivan Avdeev
a736b223c9 fix emissive surfaces being too dark, #145 2021-11-17 10:27:58 -08:00
Ivan Avdeev
f938427771 work around validation bug
see https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/3350
2021-11-17 09:43:18 -08:00
Ivan Avdeev
6df830dd0a add initial normalmaps support 2021-11-17 09:43:10 -08:00
Ivan Avdeev
311e6214c8 fix linux build 2021-11-16 09:34:36 -08:00
Ivan 'provod' Avdeev
bd4de6128c rtx: add metalness and roughness map support
overrides existing textures. loads override data from pbr/materials.map
2021-11-16 09:34:36 -08:00
Ivan 'provod' Avdeev
e8359b12e8 rtx: add material support stub 2021-11-16 09:34:36 -08:00
NightFox
5691f1aafd
fix transition c1a1f<->c1a1b 2021-11-14 23:45:22 +03:00
Ivan 'provod' Avdeev
25ed4598b4 rtx: slightly denoise specular (bad) 2021-11-12 10:43:14 -08:00
Ivan 'provod' Avdeev
499adafaed rtx: pass normals to denoiser 2021-11-12 10:42:56 -08:00
Ivan 'provod' Avdeev
fdad4fa016 rtx: make denoiser kernel gaussian 2021-11-12 09:40:08 -08:00
Ivan 'provod' Avdeev
59a15a0580 rtx: do not kill bounces too early
fixes dark roughness blots
2021-11-12 09:13:03 -08:00
Ivan 'provod' Avdeev
87095c59da Merge remote-tracking branch 'origin/vulkan' into E164 2021-11-12 08:28:46 -08:00
NightFox
82cdf72970
fix +0~TNNL_LGT4 on c0a0c 2021-11-11 14:47:15 +03:00
Anton Baskanov
c17a53c78f Pass stationary UV coordinates to computeAnisotropicEllipseAxes.
The coordinates must match the ones in the uvs array. Fixes blur of
func_conveyor textures.
2021-11-10 00:12:23 -08:00
Anton Baskanov
593be43b58 Pass world positions to computeAnisotropicEllipseAxes().
Fixes #197.
2021-11-10 00:12:23 -08:00
Ivan 'provod' Avdeev
4712b7c1eb rtx: fix gbuffer destruction 2021-11-09 11:06:35 -08:00
Ivan 'provod' Avdeev
a152fb8ac1 rtx: add specular and additive channels 2021-11-09 10:59:36 -08:00
Ivan 'provod' Avdeev
6f8bbb277b rtx: split lighting into diffuse and specular components 2021-11-09 10:35:29 -08:00
NightFox
187b359293
Update rad: remove compiled SDK map
Happened to be here by accident, sorry.
2021-11-09 18:14:46 +03:00
Anton Baskanov
499559308d Compute texcoord gradients with anisotropy.
Fixes #167 (this time for real :-)). The original function did not
account for anisotropy, so use code from a different paper.
2021-11-08 16:52:20 -08:00
Ivan Avdeev
c949b7f214 fix linux build 2021-11-07 13:49:44 -08:00
Ivan 'provod' Avdeev
4cfe76dc40 rtx: split color into base and diffuseGI; add dumb denoiser 2021-11-07 13:49:44 -08:00
Ivan 'provod' Avdeev
0627c612c3 rtx: s/rgba8/rgba16f/ for color textures 2021-11-07 13:49:44 -08:00
Ivan 'provod' Avdeev
f570e59961 rtx: move upscaling back from denoiser 2021-11-07 13:49:44 -08:00