Commit graph

259 commits

Author SHA1 Message Date
Magnus Norddahl
8ec576c3bd Begin work on a new GPU raytracer that uses ray queries instead of the raytracing pipeline 2022-06-30 23:26:31 +02:00
RaveYard
04d8aabc92 Fix ambient occlusion pass not considering sky as a miss 2022-06-30 15:55:44 +02:00
RaveYard
443d447fcb Remove unused indirect samples buffer 2022-06-30 12:31:28 +02:00
Magnus Norddahl
44b1d90968 Fix missing ShInitialize call 2022-06-30 10:42:10 +02:00
Magnus Norddahl
d88c2ef41c Update builders to use the new form also used by the gzd backend 2022-06-29 20:12:36 +02:00
nashmuhandes
29d38a2969 Suffix _line to the linedef sample distance UDMF property as its naming is too close to the ZDRayInfo sample distance property 2022-06-29 15:04:52 +08:00
nashmuhandes
18e291c13a Update documentation (per surface sampling distance) 2022-06-29 14:56:19 +08:00
RaveYard
023d75f879 Add line_horizont support 2022-06-24 22:39:29 +02:00
RaveYard
4d40108906 Fix top side textures not counting towards sky
I checked how GZDoom and chocolate Doom behave and it turns out that the top texture is irrelevant
but the bottom one is relevant
2022-06-24 22:36:42 +02:00
RaveYard
ce3060708d Add --dump-mesh option and improve LevelMesh::Export 2022-06-24 20:53:44 +02:00
RaveYard
867af9edcc Update CheckSkySectors to consider floors 2022-06-24 16:24:03 +02:00
RaveYard
3e701313dc Fix printf and conversion warnings 2022-06-24 14:00:15 +02:00
RaveYard
114b5c68d2 Fix certain broken normals 2022-06-22 14:30:56 +02:00
RaveYard
038259a590 Add support for most common slope types
Certain actors used to make slopes aren't still supported
2022-06-22 14:30:51 +02:00
RaveYard
152b5092b9 Display percentage progress instead of dots 2022-06-16 22:43:07 +02:00
RaveYard
0479d4fce3 Support customizable sampling distance per surface
- Fix sampleDistance UDMF

- Refactoring code

- Handle 3D floors sides via lm_sampledist_mid per each wall in the
  applied sector
2022-06-16 15:33:28 +02:00
nashmuhandes
4107176f0d Standardize and finalize the naming conventions for the new UDMF keys to everything lightmap-related to use an "lm_" prefix. 2022-06-15 23:32:26 +08:00
nashmuhandes
5124788013 Strip quotes from the sun color string 2022-06-15 19:24:43 +08:00
nashmuhandes
b2b4dd4cfc - Moved ZDRayInfo properties back to UDMF keys... the idea to put these as thing args in the first place wasn't a good idea after all. :P
- Use a hex color string for the sun color on ZDRayInfo, because UDB's color picker usually uses strings for colors values.
2022-06-15 15:28:40 +08:00
nashmuhandes
3a1cf7fc43 Temporarily disable surface lights too. Same reason as previous commit 2022-06-15 14:52:08 +08:00
nashmuhandes
5bb277ff31 Disable light bounces for now, after some internal discussion pertaining to future improvements 2022-06-15 14:42:02 +08:00
RaveYard
f4479a17d5 Add default auto probe grid size 2022-06-14 19:51:05 +02:00
nashmuhandes
a0935ba604 If arg0str is used for a spotlight's color, convert that string to an int and pass that value as the light color. UDB's color picker interface uses the arg0str field for spotlight color. 2022-06-03 02:55:52 +08:00
nashmuhandes
bfb23302ef - Report sun vector
- Various styling fixes to the messages
2022-02-20 08:42:30 +08:00
nashmuhandes
25345c2477 Replace Thing UDMF keys for the ZDRayInfo with args instead 2022-02-20 04:46:19 +08:00
nashmuhandes
05eed4d4a2 Add "line" suffix to the surface light keywords to clearly label their intended usage 2022-02-20 04:28:28 +08:00
nashmuhandes
f38995889d Remove 'lightintensity' UDMF key from Things, replaced it with the Thing's alpha instead 2022-02-20 04:17:45 +08:00
nashmuhandes
7f822dd250 Use ZDRayInfo's angle and pitch to determine the sun direction 2022-02-16 06:42:33 +08:00
nashmuhandes
3f191651aa For static light things, have ZDRay use args instead of UDMF keys. This aligns them with dynamic lights, and will help with UDB integration.
Only 'lightintensity' remains as a UDMF key, because there is no more free arg slots for it.

Also made constants for the various thing types to reduce coding mistakes.
2022-02-16 02:14:21 +08:00
nashmuhandes
15b31f0526 Only create lights for the actual static light things 2022-02-15 22:10:32 +08:00
Magnus Norddahl
c5d09682a0 Fix threadIndex mistakenly getting captured by reference 2022-02-15 14:35:32 +01:00
Kevin Caccamo
9ae145358f
Fix GCC compilation errors 2022-01-25 10:19:17 -05:00
Magnus Norddahl
0772f148c4 Improve the AO pass 2021-11-25 01:13:53 +01:00
Magnus Norddahl
bde4c60f82 Add an ambient occlusion pass 2021-11-24 03:37:46 +01:00
Magnus Norddahl
583f720007 Limit the number of lights per trace to 50 2021-11-16 02:15:14 +01:00
Magnus Norddahl
95232aedf4 Add progress dots for CPU tracer and streamline how they look 2021-11-16 00:57:06 +01:00
Magnus Norddahl
4cb0f59f66 Minor file structure cleanup 2021-11-16 00:30:54 +01:00
Magnus Norddahl
8b26826cee Replace zlib with miniz as that is much easier to link with and removes a linker warning 2021-11-16 00:04:05 +01:00
Magnus Norddahl
955632f1f8 Remove worker class 2021-11-15 23:36:29 +01:00
Magnus Norddahl
e61f10af24 Flip surface sort order for better lightmap packing and add some border between the surfaces 2021-11-14 19:54:44 +01:00
Magnus Norddahl
346f71e60a Improve lightmap atlas and add some more error checks 2021-11-13 04:52:13 +01:00
Magnus Norddahl
5d0fe12221 Align the uniforms as the Nvidia 10 series requires that 2021-11-13 01:06:36 +01:00
Magnus Norddahl
fc56a552fd Remove the KHR_RAY_QUERY requirement as it isn't being used anyway 2021-11-13 00:43:53 +01:00
Magnus Norddahl
cb42f82bfc Replace the vector/matrix classes with something behaving a bit more like glsl 2021-11-12 22:40:29 +01:00
Magnus Norddahl
6b4fef6a2b Fix missing normalization of the first plane vector after cross product 2021-11-12 17:00:07 +01:00
Magnus Norddahl
2a91f530c9 Fix some more compile errors 2021-11-12 16:24:27 +01:00
Magnus Norddahl
e54477cb93 Fix linux compile errors 2021-11-12 17:08:15 +01:00
Magnus Norddahl
edc22ed06f Fix the include error 2021-11-12 16:49:11 +01:00
Magnus Norddahl
581b87a745 Merge branch 'master' of https://github.com/dpjudas/ZDRay 2021-11-12 16:17:52 +01:00
Magnus Norddahl
04b01426e6 Add automatic fallback to CPU ray tracing if no vulkan device supports the ray tracing extension 2021-11-12 16:17:44 +01:00
dpjudas
d407d73c36 Remove unused code 2021-11-12 05:11:19 +01:00
dpjudas
f44e73d8d0 Fix error when baking a map with no lights in it 2021-11-12 05:07:57 +01:00
Magnus Norddahl
5035f3671f Adjust usage print slightly 2021-11-11 05:52:40 +01:00
Magnus Norddahl
031dc4a4db Move sample distance, bounces and light probe grid size settings to the zdrayinfo actor as they affect map visuals 2021-11-11 05:51:00 +01:00
Magnus Norddahl
cd3563759c Rewrite the CPU ray tracer 2021-11-11 05:04:33 +01:00
Magnus Norddahl
96b31d8a69 Implement light probe tracing on the GPU 2021-11-10 02:25:03 +01:00
Magnus Norddahl
43bdb1cbca Improve performance by tracing all lights in one shader 2021-11-10 00:37:56 +01:00
Magnus Norddahl
be1a94931b Improve tracing times and remove the map size limitation 2021-11-09 19:53:45 +01:00
Magnus Norddahl
0c4199b281 Implement bounces and emissive surfaces 2021-11-07 23:52:44 +01:00
Magnus Norddahl
8df36944eb Split shaders into three types (light, sun, bounce) 2021-11-07 04:05:19 +01:00
Magnus Norddahl
9ce4c027bd Remove unused SurfaceLight class 2021-11-06 03:03:07 +01:00
Magnus Norddahl
ca5c48836f Trace sunlight on the GPU 2021-11-06 02:51:36 +01:00
Magnus Norddahl
b12f31f182 Minor code clean up 2021-11-05 23:50:19 +01:00
Magnus Norddahl
9ebe31ee72 Remove the old dlight based ray tracer and add an option to choose between the CPU and GPU ray tracers 2021-11-05 23:42:01 +01:00
Magnus Norddahl
c7b220c2ba Add surface and sunlight to the new CPU ray tracer 2021-11-05 23:31:23 +01:00
Magnus Norddahl
75798fae9b Move glsl shader code to files 2021-11-05 18:23:31 +01:00
Magnus Norddahl
973a5b28b7 Improve direct light sampling quality
Fix command line argument bug
2021-11-05 03:17:06 +01:00
Magnus Norddahl
2efd031fa2 Raytrace direct light sources on the GPU 2021-11-05 00:19:38 +01:00
Magnus Norddahl
178c918af6 Fix closest hit and miss shaders not working 2021-11-04 20:24:38 +01:00
Magnus Norddahl
ef4b67ea04 Setup images for ray tracing and hook up renderdoc 2021-11-04 18:38:33 +01:00
Magnus Norddahl
f42c515b16 Oops, this wasn't meant to be committed 2021-11-03 23:31:24 +01:00
Magnus Norddahl
b1a06fda5e Successfully call vkCmdTraceRaysKHR without validation errors 2021-11-03 23:30:57 +01:00
Magnus Norddahl
0b9705a1d8 Minor adjustments 2021-11-01 02:55:58 +01:00
Magnus Norddahl
d573f9e907 Create the pipeline 2021-11-01 02:20:57 +01:00
Magnus Norddahl
df1172346d Remove old NV ray tracing builders 2021-11-01 02:20:41 +01:00
Magnus Norddahl
fb86b2054c Move stack trace capture out of gpuraytracer.cpp 2021-10-31 19:20:23 +01:00
Magnus Norddahl
5d514f8c4b Compile a rgen shader 2021-10-31 18:32:55 +01:00
Magnus Norddahl
edc4b159d0 Update shader builder to latest shader compiler version 2021-10-31 18:32:33 +01:00
Magnus Norddahl
b06f1b6128 Fix vulkan validation errors 2021-10-31 03:05:43 +01:00
Magnus Norddahl
1b29ef02b9 Create top level acceleration structure 2021-10-31 01:15:49 +02:00
Magnus Norddahl
0065d91f44 Build the bottom level acceleration structure using the KHR raytracing extension 2021-10-30 03:21:27 +02:00
Magnus Norddahl
3e11f81d5a Add first steps in using the GPU for the ray tracing 2021-10-28 23:27:25 +02:00
Magnus Norddahl
47494dd3b2 Add a new raytracer that bounces using path tracing 2021-10-21 06:31:58 +02:00
Magnus Norddahl
f0c7e5fb9a Merge branch 'master' of https://github.com/dpjudas/ZDRay 2021-10-20 05:28:51 +02:00
Magnus Norddahl
fa1d2fb215 Prepare the code for writing a new ray tracer 2021-10-20 05:28:41 +02:00
dpjudas
fb6cf06771 Fix compile error 2021-10-17 03:26:48 +02:00
Magnus Norddahl
e5816c7df4 Apply a 3x3 blur on the lightmap 2021-10-16 04:46:53 +02:00
Magnus Norddahl
c76bf98834 Remove sorting light probes by subsector 2021-10-15 04:22:04 +02:00
Magnus Norddahl
539bd9fd1d Only create 3 probe layers per sector (covering the entire volume is too many probes) 2021-10-15 01:26:32 +02:00
Magnus Norddahl
199d5d7043 Remove unused function 2021-10-14 17:20:44 +02:00
Magnus Norddahl
a647f21501 Add the gzdoom model loaders 2021-10-14 17:12:05 +02:00
Magnus Norddahl
8f097378d5 Add the delauney triangulator (not used, but I don't want to lose this code in case I decide to use it after all) 2021-10-14 15:49:27 +02:00
nashmuhandes
f67852c9a8 Allow auto-probe grid size to be set on the command line 2021-10-14 16:56:04 +08:00
Magnus Norddahl
af83883b40 Merge branch 'master' of https://github.com/dpjudas/ZDRay 2021-10-14 06:13:40 +02:00
Magnus Norddahl
4f3005de9e Add automatically generating a grid of light probes 2021-10-14 06:13:31 +02:00
nashmuhandes
6fa8bf706e Change the sunlight DoomEdNum to 9890, to prevent clash with PointLightStatic 2021-10-05 13:11:12 +08:00
Magnus Norddahl
2f7b97854a Update docs 2021-10-04 23:56:55 +02:00
Magnus Norddahl
3a1968782d Add SunLight thing support 2021-10-04 23:47:19 +02:00
Magnus Norddahl
d8bf0bafc4 Add some code exporting the lit level mesh to .obj for debugging (helps figuring out if a problem is in GZDoom or ZDRay) 2021-10-02 22:15:57 +02:00
Magnus Norddahl
5f23b75c10 Fix some UDMF properties getting lost after merging the code with dlight 2021-10-02 04:26:26 +02:00