Commit Graph

265 Commits

Author SHA1 Message Date
Eric Wasylishen 7cb6c6553b tests: add ClipStackWinding benchmark, qvec benchmark 2023-11-03 21:27:29 -06:00
Eric Wasylishen 8362ffa385 qbsp: fix memory/.bsp file corruption if map contains a texture name longer than 31 characters 2023-09-24 19:42:42 -06:00
Eric Wasylishen e6d9605b86 light: fix lightgrid assertion failure if lightgrid gets a nan (separate bug) 2023-09-17 20:27:29 -06:00
Eric Wasylishen ec7b848f76 tests: fix issue where stray bsp's in testmaps/ folder cause false test failures
- typically the CI tests read maps from testmaps/foo.map and write to cmake-build-release/tests/foo.bsp.
- having a stray testmaps/foo.bsp would cause the qbsp part of the test to write to cmake-build-release/tests/foo.bsp
- then the "light" part of the test would prefer to read the bad testmaps/foo.bsp instead of the correct cmake-build-release/tests/foo.bsp
2023-09-17 17:03:42 -06:00
Eric Wasylishen 872f5fe8a0 build: copy + install mingw dll's libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll 2023-09-16 14:28:06 -06:00
Eric Wasylishen 20f7a83efa tests: fix bad expectation for q1_sunlight 2023-09-11 22:11:33 -06:00
Eric Wasylishen 507c315f78 light: fix missing textures accidentally activating "suntexture" feature and breaking sunlight
Fixes #376
2023-09-11 21:44:38 -06:00
Eric Wasylishen f8886b6e60 style: remove all "using namespace std" 2023-08-07 15:28:50 -06:00
Eric Wasylishen a02a4ec316 imglib: fix wad3 loading (thanks to erysdren for the fix)
add a basic half-life test case (box map)
2023-07-18 17:57:51 -06:00
Eric Wasylishen 40a10b2c52 bspinfo: serialize missing textures (offset -1) to json as null
previously, we were writing a json dictionary which was confusing

- bspfile: fix reading a valid texture followed by a missing texture
(offset -1)

- add missing texture testcase
2023-07-18 00:17:24 -06:00
Eric Wasylishen f93a36c295 qbsp: don't write 0 size textures
write them as offset -1 in dmiptexlump_t::stream_write()
2023-07-17 23:32:38 -06:00
Eric Wasylishen aa74b76815 common: add qmat::transpose() 2023-07-06 17:13:14 -06:00
Eric Wasylishen 1c85bb882a light: minimize includes 2023-06-26 01:19:54 -06:00
Eric Wasylishen 3cfe9aeb67 build: fix build with PCH disabled 2023-06-25 14:52:01 -06:00
Eric Wasylishen 51def3282c tests: disable currently failing tests 2023-06-19 22:12:43 -06:00
Eric Wasylishen 010fbe5a3b tests: restore "sky gets an optimized lightmap" test
now that it's fixed
2023-06-19 21:59:06 -06:00
Eric Wasylishen 9a4f27a0de light: fix sky emitting light, disable test 2023-06-19 00:39:30 -06:00
Eric Wasylishen 8034215b3a tests: add "minlight doesn't bounce" test 2023-06-10 16:36:17 -06:00
Eric Wasylishen 502a490e5b light: hack around surface lights getting a black spot when a luxel lines up with a surflight emission point 2023-06-06 22:29:51 -06:00
Eric Wasylishen d38ef2d8af qbsp: allow _litwater/_splitturb as a bmodel key
supports both opt-in and opt-out
2023-05-28 23:44:57 -06:00
Eric Wasylishen f6d5e6e24d qbsp: fix test failure in last commit (stale pointers in map.hashedges) 2023-05-28 16:51:20 -06:00
Eric Wasylishen 731bafd9fe qbsp: fix edge reuse causing software renderer artifacts with liquids
fixes q1_liquid_software.map in tyrquake
thanks to Mankrip for reporting this
2023-05-28 16:28:33 -06:00
Eric Wasylishen 2533e7e40d qbsp: support _mirrorinside 0 in Q1 mode
to disable mirroring water surfaces
2023-05-28 14:00:08 -06:00
Eric Wasylishen 31ab43a181 tests: add q1_liquid_software.map (renders badly in tyrquake) 2023-05-28 11:37:35 -06:00
Eric Wasylishen fa890456f6 qbsp: don't merge faces across sky boundaries 2023-05-27 23:42:33 -06:00
Eric Wasylishen c649e3a0c8 tests: add ExportWad test 2023-05-27 17:05:41 -06:00
Eric Wasylishen 896da81bd6 bsputil: refactor into a static lib 2023-05-27 13:45:45 -06:00
Eric Wasylishen 9c466dd813 tests: add q1 hull1 failure example 2023-05-20 19:17:59 -06:00
Eric Wasylishen f14f327a9a common: more robust hexen2 detection
Fixes  #355
2023-05-13 00:46:02 -06:00
Random c6ea63ba95
made CMake relative for use as a sub-project within other CMake projects (#356) 2023-05-10 19:45:51 -06:00
Eric Wasylishen a73075234e light: fix inheriting worldspawn _minlight_color by bmodels 2023-05-08 00:24:53 -06:00
Eric Wasylishen d9e16a943a qbsp: add -noextendedsurfflags flag to suppress .texinfo writing (for testing/debugging) 2023-05-07 23:56:30 -06:00
Eric Wasylishen c9e41ab4db style: remove GLM_ prefix (no longer using glm) 2023-05-07 21:44:29 -06:00
Eric Wasylishen 3e446e6ea6 qbsp, light: fix inheriting minlight from worldspawn
Update q2_light_group.map to support this
2023-05-07 21:44:29 -06:00
Eric Wasylishen cfd3336644 test: lightmap artifacts on a low luxel scale 2023-04-30 17:53:19 -06:00
Eric Wasylishen 5f7e08d0ef light: CalcPoints: fix check for luxels being too far from the face to be visible 2023-04-29 19:52:31 -06:00
Eric Wasylishen fa7da0b4a2 tests: add test where CaclPoints + low luxel scale fails 2023-04-29 17:14:43 -06:00
Eric Wasylishen bc7f08abe5 test: add broken case where func_detail_wall generates splits 2023-04-25 23:48:09 -06:00
Eric Wasylishen 50d97321d7 qbsp: add -bmodelcontents flag 2023-04-22 19:15:55 -06:00
Eric Wasylishen a2d89e3307 qbsp: q1: fix visportals being created to solid leafs
fixes crash on ej3_cc.map
2023-04-17 23:42:00 -06:00
Eric Wasylishen cd2926534f qbsp: q1: fix so just DETAIL is considered is_empty 2023-04-17 21:10:28 -06:00
Eric Wasylishen ed756bd602 common: add support for writing .rst documentation from settings 2023-04-16 14:55:43 -06:00
Eric Wasylishen e069d7b9b8 style: update settings api to follow current coding style 2023-04-16 11:55:38 -06:00
Eric Wasylishen 984d00c5a9 tests: mark q1_lightignore as mayfail until it's investigated 2023-04-16 11:43:24 -06:00
Eric Wasylishen 93f985a9e5 tests: add q1_lightignore.map test 2023-04-12 00:04:56 -06:00
Eric Wasylishen ac21db8722 common: add png loader test 2023-04-10 14:06:35 -06:00
Eric Wasylishen addc6e922b tests: add test case for culling of surface lights in the void 2023-04-09 12:39:19 -06:00
Eric Wasylishen c2a787f6a3 light: add missing model offset for luxel occlusion check against bmodels with origin brush 2023-04-08 12:37:44 -06:00
Eric Wasylishen 8d368060eb qbsp: sealing: in hull1/2 treat onnode point entities as being in empty space 2023-04-07 17:06:56 -06:00
Eric Wasylishen ab2569486d qbsp: q1: fix sky + detail_solid not sealing 2023-03-27 23:13:40 -06:00
Eric Wasylishen 68eaf37e40 qbsp: q1: fix detail to be non-sealing again 2023-03-27 21:43:54 -06:00
Eric Wasylishen a3d55f905e qbsp: fix structural solid not eating other content types 2023-03-26 17:13:34 -06:00
Eric Wasylishen 6e064ae3c7 qbsp: restore detail to non-sealing 2023-03-26 16:20:10 -06:00
Eric Wasylishen 7b7cabaf09 qbsp: don't merge above- and below- water faces in Q1 mode
works around caustics effects in ezQuake/nQuake leaking onto above-water faces.
2023-03-13 23:50:32 -06:00
Eric Wasylishen 8130843fb3 qbsp: search for wad's relative to cwd 2023-02-26 23:27:38 -07:00
Eric Wasylishen 7a8898c9a0 decompiler: fix q1 decompiler
Decompiling a leaf in Q1 can output more than one brush, because of texturing.
Previously we were outputting 1 invalid brush.
2023-02-26 22:06:42 -07:00
Eric Wasylishen 0f53fd0870 tests: change decompiler test to an easier to debug setup 2023-02-26 21:47:26 -07:00
Eric Wasylishen c5efefd4b7 tests: allow disabling threading when debugging tests
with `-threads 1`
2023-02-25 23:50:35 -07:00
Eric Wasylishen 88a9cb6bb4 tests: add q1 decompiler test 2023-02-25 23:18:13 -07:00
Eric Wasylishen 505efbf885 tests: standardize map naming convention 2023-02-25 12:46:22 -07:00
Eric Wasylishen 1c22f45b47 qbsp: avoid tjunc interaction between func_detail_wall and worldspawn 2023-02-22 23:12:40 -07:00
Eric Wasylishen dea7bce763 build: work around macOS compile error 2023-02-22 01:31:21 -07:00
Eric Wasylishen 3c1cd97d63 build: work around macOS compile error 2023-02-22 01:18:26 -07:00
Eric Wasylishen 096f347a12 qbsp: fix func_detail_fence/func_detail_wall with DETAIL set on brushes 2023-02-22 01:16:32 -07:00
Eric Wasylishen 60dea4af4c qbsp: fix func_detail_wall in q2 mode 2023-02-22 00:57:31 -07:00
Eric Wasylishen 2fb75ede17 tests: add q2 func_detail_wall and func_detail_fence test case 2023-02-22 00:11:30 -07:00
Eric Wasylishen 029cc01f61 tests: refactor "detail properties" test to run on all games 2023-02-21 23:18:46 -07:00
Eric Wasylishen 58da610207 tests: add func_detail_wall tjunc test (currently fails) 2023-02-21 19:49:36 -07:00
Eric Wasylishen 8438232d99 tests: add a first test case for vis 2023-02-20 16:37:04 -07:00
Eric Wasylishen b17633f746 cleanup: set PackConstructorInitializers: Never 2023-02-20 10:23:59 -07:00
Eric Wasylishen f8b189c527 light: fix sample occlusion / object channel mask interaction 2023-02-20 01:03:12 -07:00
Eric Wasylishen dd6e49c89f light: support _object_channel_mask on func_group 2023-02-20 00:07:08 -07:00
Eric Wasylishen eda6155844 cleanup: run ./clang-format-all.sh
clang-format version 15.0.7
2023-02-18 22:59:43 -07:00
Eric Wasylishen 8516bfb5e2 light: skip lightmapping sky faces if lightgrid is in use 2023-02-17 17:41:49 -07:00
Eric Wasylishen 8cc7b0e3f3 light: add test for sky getting an optimized lightmap 2023-02-17 00:24:08 -07:00
Eric Wasylishen 641fb780ac light: allow customizing _world_units_per_luxel on func_group etc. 2023-02-17 00:07:43 -07:00
Eric Wasylishen 71a0ce77ac qbsp: q2: set leaf 0's cluster to -1
leaf 0 is the invalid placeholder leaf, but we were giving it
cluster 0 which is valid. instead, give it cluster -1
2023-02-07 23:17:55 -07:00
Eric Wasylishen 1c16a467f1 testqbsp: add a basic lit water test 2023-02-04 14:41:26 -07:00
Eric Wasylishen 302d600f4c qbsp: strip _tb_ keys, convert __TB_empty to skip 2023-01-30 00:28:31 -07:00
Eric Wasylishen 9edad10b0f common: add convenience version of EntData_Parse 2023-01-30 00:08:45 -07:00
Eric Wasylishen 23e98c0e94 test: remove unwanted doctest::may_fail() from light tests 2023-01-29 16:53:23 -07:00
Eric Wasylishen 439d0de7f2 testmaps: test case for hint brush causing faces to be deleted 2023-01-29 15:06:55 -07:00
Eric Wasylishen 6ede7925bc light: apply model offset to embree meshes
Fixes shadows in incorrect places when using shadow-casting rotators
Fixes https://github.com/ericwa/ericw-tools/issues/326
2023-01-24 20:18:14 -07:00
Eric Wasylishen 83d3774714 tests: hack for spurious test failure on CI only 2023-01-24 01:40:21 -07:00
Eric Wasylishen 2d64108ea4 light: add basic test case for _sun 1 entities 2023-01-24 00:57:26 -07:00
Eric Wasylishen fa8af3845b light: fix default _sunlight angle to be pointing straight down 2023-01-24 00:52:28 -07:00
Eric Wasylishen ee5c016b57 fix macOS build 2023-01-08 20:43:31 -07:00
Eric Wasylishen a497254874 tests: add q2 light cone test 2023-01-08 20:26:32 -07:00
Eric Wasylishen a2399ab48c tests: add dirt / object_channel_mask interaction test
was already working correctly
2023-01-08 19:59:19 -07:00
Eric Wasylishen e9cd29a394 tests: add test case for WINDOW being non-mirrored 2023-01-06 12:07:30 -07:00
Eric Wasylishen 64c0d8c0c4 qbsp: fix AUX to be non-mirrorinside by default 2023-01-06 12:00:32 -07:00
Eric Wasylishen aa928e1515 tests: add q2 ladder test case 2023-01-03 17:40:56 -07:00
Eric Wasylishen c43371213e tests: move benchmarks to new file, add clip benchmark 2023-01-03 16:20:22 -07:00
Eric Wasylishen a9a11159f4 light: add _surface_minlight_scale light key
for tweaking minlight given to faces matching surface light templates.

minlight = _surface_minlight_scale * light

lower default from 64 to 1 in q1 mode
2022-12-30 23:06:28 -07:00
Eric Wasylishen 710e70d74b testqbsp: add (failing) test case with off-grid geo and missing faces 2022-12-23 00:04:22 -07:00
Eric Wasylishen 1fb53cbe4d qbsp: fix area assignment on leaking q2 maps
reverts c9243d4fea
2022-12-21 21:18:06 -07:00
Eric Wasylishen fe5ce3765a test: add a few more area-related assertions 2022-12-21 20:56:18 -07:00
Eric Wasylishen 20af42c9aa test_ltface: disable "surface lights minlight" test for now 2022-12-21 01:10:39 -07:00
Eric Wasylishen 3d0c756b4f light: fix minlight color on surface lights
- extra `* 255` was unnecessary, setting_color already does this
- don't use qvec3b as it was causing colors to wrap around the 0..255 range
2022-12-20 23:44:21 -07:00
Eric Wasylishen 108d299482 test_ltface: test case for minlight surflight 2022-12-20 22:54:22 -07:00