Commit graph

290 commits

Author SHA1 Message Date
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
Magnus Norddahl
ef7caddb2c Fix light probe Z coordinate 2021-09-25 19:55:17 +02:00
Magnus Norddahl
ba36819da9 Seems thing.height is not a reliable value in zdray? 2021-09-25 19:39:42 +02:00
Magnus Norddahl
53328e8f65 Don't try link the baked light probes with the original actors as that's problematic on the gzdoom end of things 2021-09-25 18:38:12 +02:00
Magnus Norddahl
3b57fa7f79 Merge remote-tracking branch 'nash/master' 2021-09-25 18:36:53 +02:00
nashmuhandes
d28ed6b9c8 Fixed spotlight math to match GZDoom's 2021-09-25 23:55:29 +08:00
Magnus Norddahl
fe282e6f6d Add light probes 2021-09-25 17:47:21 +02:00
Rachael Alexanderson
c0aff53de5 - fix building in GCC-10 2021-09-25 06:11:38 -04:00
Magnus Norddahl
aebcfe4342 Remove light cells 2021-09-24 17:02:40 +02:00
Magnus Norddahl
82c0837928 Some mesh export functionality and name size changes, supposedly 2021-09-24 16:54:33 +02:00
Magnus Norddahl
28d7bb586f - remove some code duplication 2018-12-31 17:37:19 +01:00
Magnus Norddahl
d03ded7f94 - move allocBlocks to LightmapTexture 2018-12-31 17:23:54 +01:00
Magnus Norddahl
79d0b257e1 - remove some old broken debug code 2018-12-31 16:53:16 +01:00
Magnus Norddahl
8f564c9210 - improve distribution of work between worker threads 2018-12-31 16:43:50 +01:00
Magnus Norddahl
96d705fbef - change the multisample option to sample in a more predictable manner 2018-12-31 15:03:16 +01:00
Magnus Norddahl
78a3da5b8c - make indirect light bounces optional (--bounce=1 to enable) 2018-12-30 22:24:20 +01:00
Christoph Oelckers
4dd0edbd3a - also create 3D floor references if the tag is defined through 'moreIDs'. 2018-12-30 10:37:52 +01:00
Christoph Oelckers
72ad99fe96 - parse all data from the map to allow complete slope creation. 2018-12-30 10:18:35 +01:00
Christoph Oelckers
bb488236d1 - parse all needed fields from things for slope definition. 2018-12-30 09:27:28 +01:00
Christoph Oelckers
03a95e090f - changed UDMF plane parser to use the same rules as GZDoom, namely to accept the plane only if all 4 parameters are present. 2018-12-30 09:04:23 +01:00
Magnus Norddahl
2555eec131 - simplify outer interface slightly 2018-11-10 00:47:20 +01:00
Magnus Norddahl
ce7074f646 - rename surfacelight file 2018-11-09 22:20:31 +01:00
Magnus Norddahl
b3250f4bac - rename LightSurface to SurfaceLight 2018-11-09 22:17:36 +01:00
Magnus Norddahl
908c048464 - rename classes and enums that used the _t typedef convention 2018-11-09 21:55:07 +01:00
Magnus Norddahl
75e18b10e1 - normalize some whitespace and remove useless "documentation" comments 2018-11-09 21:46:34 +01:00
Magnus Norddahl
7756bba61f - remove unused Pluecker and Rand classes 2018-11-09 21:28:03 +01:00
Magnus Norddahl
4ceab7cec7 - remove kex prefix from classes 2018-11-09 21:26:00 +01:00
Magnus Norddahl
9a84d487dc - split map loading code from surface mesh code 2018-11-09 08:42:37 +01:00
Magnus Norddahl
73724c111c - minor adjustments 2018-11-09 06:47:54 +01:00
Magnus Norddahl
b55a9671e5 - use the cheaper any hit test when possible 2018-11-09 06:21:25 +01:00
Magnus Norddahl
63715b855d - add indirect light pass 2018-11-08 21:15:29 +01:00
Magnus Norddahl
ef3257e062 - Write light cells into the lump 2018-11-07 04:20:11 +01:00
Magnus Norddahl
2d970672e8 - add support for tracing light cells 2018-11-07 01:31:50 +01:00
Magnus Norddahl
639bc29085 - minor adjustments 2018-11-06 23:04:29 +01:00
Magnus Norddahl
57b39458f0 - spread light surface sample points evenly across walls 2018-11-06 14:58:05 +01:00
Magnus Norddahl
c3494a045d - Fix the light surface math so the correct angles are being used 2018-11-06 12:50:58 +01:00
Magnus Norddahl
e046e7a508 - fix floor light surfaces not working 2018-11-06 11:08:02 +01:00
Magnus Norddahl
58f2411002 Merge branch 'master' of https://github.com/dpjudas/ZDRay 2018-11-06 10:18:25 +01:00
Magnus Norddahl
d6c3b7e8ef - removed explicit keyword 2018-11-06 10:18:16 +01:00
Kevin Caccamo
61378b1fef Fix compilation error on Ubuntu 16.04 2018-11-05 08:24:32 -05:00
Magnus Norddahl
1c1a4a3bc0 Merge branch 'master' of https://github.com/dpjudas/ZDRay 2018-11-05 12:52:28 +01:00
Magnus Norddahl
440b4d0b3c - don't waste time ray tracing surfaces out of range 2018-11-05 12:52:19 +01:00
Magnus Norddahl
1165ef26d7
Merge pull request #2 from Talon1024/master
Add comment option to zdray help
2018-11-05 02:43:08 +01:00
Magnus Norddahl
ce518820ff - add SSE implementation for the most time critical function 2018-11-05 01:40:12 +01:00
Magnus Norddahl
e21679a4d7 - improve speed by saving some calculations 2018-11-05 00:54:25 +01:00
Kevin Caccamo
b010e00e24 Add comment option to zdray help 2018-11-04 18:46:08 -05:00
Magnus Norddahl
d3d7174c77 - inline kexBBox::Center and kexBBox::Extents as they are also time critical 2018-11-04 23:20:33 +01:00
Magnus Norddahl
be5b3a79db - inline the vector classes as they are so time critical 2018-11-04 23:14:20 +01:00
Magnus Norddahl
5cbe1e18e7 - fix compile error when SSE is enabled 2018-11-04 18:12:05 +01:00
Kevin Caccamo
8d930df8fd Fix compilation errors on Ubuntu 16.04 2018-11-04 05:19:16 -05:00
Magnus Norddahl
0ac4781d5e - fix 3d floor sides 2018-11-04 03:37:36 +01:00
Magnus Norddahl
6baa8a47d2 - VS2017 needs more QA 2018-11-04 03:37:01 +01:00
Magnus Norddahl
5ea89ac1b6 - add 3d floor ceiling and floor surfaces 2018-11-03 22:43:00 +01:00
Magnus Norddahl
0f6da0df5d - make the LIGHTMAP_MAX_SIZE define actually work if someone changes it 2018-11-03 19:37:50 +01:00
Magnus Norddahl
ed983935ec - class Init functions are so 1995 2018-11-03 19:35:46 +01:00
Magnus Norddahl
cf61394714 - get rid of the naked new and deletes 2018-11-03 19:33:59 +01:00
Magnus Norddahl
e89aa8a5d4 - remove kexTrace class 2018-11-03 19:01:47 +01:00
Magnus Norddahl
e5dbc83bc9 - remove zdbsp viewer 2018-11-03 18:25:41 +01:00
Magnus Norddahl
a66ec939fb - move mapdata to level 2018-11-03 18:22:04 +01:00
Magnus Norddahl
fde3e5f3b6 - moved binfile and halffloat to framework 2018-11-03 18:16:14 +01:00
Magnus Norddahl
265da537ab - remove common.h
- move math classes
2018-11-03 18:08:45 +01:00
Magnus Norddahl
8fac445226 - Switch from NULL to nullptr 2018-11-03 17:47:29 +01:00
Magnus Norddahl
627098b671 - use the standardized typedefs for sized integers 2018-11-03 17:43:42 +01:00
Magnus Norddahl
ef8dfe3744 - remove d_inline 2018-11-03 17:35:02 +01:00
Magnus Norddahl
6400fd1597 - clean up common.h 2018-11-03 17:31:57 +01:00
Magnus Norddahl
e37ea126ce - remove memheap 2018-11-03 17:12:39 +01:00
Magnus Norddahl
de8983a382 - remove kexStr 2018-11-03 16:49:51 +01:00
Magnus Norddahl
dcb4f083a3 - remove kexArray 2018-11-03 16:43:58 +01:00
Magnus Norddahl
f86358daf5 - reduce executable size by 12 megabytes! 2018-11-03 03:50:14 +01:00
Magnus Norddahl
dce5c510e3 - use subdivide on line surface lights as well
- removed some dead code
2018-11-03 00:45:29 +01:00