Commit Graph

247 Commits

Author SHA1 Message Date
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
Eric Wasylishen f652af9c7d bsputils: add .lit loader 2022-12-20 22:46:20 -07:00
Eric Wasylishen bf75ae8717 test_ltface: refactor to allow q1 tests as well 2022-12-20 00:19:05 -07:00
Eric Wasylishen 35fe26b7a6 qbsp: fix FindTargetEntity (was breaking hiprotate) 2022-12-19 00:55:20 -07:00
Eric Wasylishen 6ac564c64f build: remove unused subprocess.h dependency 2022-12-19 00:36:04 -07:00
Eric Wasylishen 6451a3f2aa qbsp: fix _mirrorinside 1 on func_detail_fence (q2) 2022-12-15 00:18:22 -07:00
Eric Wasylishen 8caaf7236f test: add q2 test case for alpha mask textures 2022-12-14 23:19:58 -07:00
Eric Wasylishen 82aa1e4396 light: make "_light_alpha 0" behave as expected (invisible to light) 2022-12-14 21:46:36 -07:00
Eric Wasylishen 513c47406b light: fix surface lights to check channel mask 2022-12-14 00:26:38 -07:00
Eric Wasylishen 287ac96363 light: fix sunlight to check object channel mask 2022-12-14 00:15:23 -07:00
Eric Wasylishen ccb72a3bf5 light: expand test case for light channels 2022-12-13 23:42:26 -07:00
Eric Wasylishen 6ebd4eba58 tests: log .bsp copying 2022-12-12 17:58:02 -07:00
Eric Wasylishen 63cac32f88 light: quick experiment with a _light_group feature for lights that only affect linked bmodels 2022-12-11 15:36:08 -07:00
Eric Wasylishen bded0ab344 light: fix negative lights breaking when bounce in use 2022-12-10 15:10:36 -07:00
Eric Wasylishen a5b83e088b light: work around visblocking opaque liquids causing light artifacts with -visapprox vis
in cases when we actually want light to shine through these surfaces
2022-12-09 00:07:50 -07:00
Eric Wasylishen 924847661c test_ltface: add test for `-visapprox vis` issue with opaque liquids 2022-12-08 21:46:35 -07:00
Eric Wasylishen a70c8f4835 light: fix artifacting with translucent shadows
Embree is allowed to call the filter function more than necessary.
The previous implementation had side effects that would cause
the translucent shadows to get darker in this case.

As a limitation, we're back to only allowing 1 layer of glass per ray.
2022-12-07 00:23:26 -07:00
Eric Wasylishen 7ce14a376f qbsp/light: make liquids not cast shadows by default
previously opaque Q2 liquids (e.g. lava, opaque water) were casting shadows / dirt
2022-12-06 17:03:39 -07:00
Eric Wasylishen eae434736a light: support _minlightMottle on worldspawn 2022-12-06 15:18:16 -07:00