Eric Wasylishen
3eb5cb7c64
qbsp: omit func_detail_illusionary from bspx brushlist
...
also func_illusionary_visblocker
fixes #371
qbsp: fix bspx brushes
2023-11-26 01:17:03 -07:00
Eric Wasylishen
b58b976693
tests: add qbsp content type tests
2023-11-26 00:23:41 -07:00
Eric Wasylishen
ad9fd7fc59
common: structured bspxbrushes reading/writing
2023-11-25 17:28:26 -07:00
Eric Wasylishen
db0951dc40
light: support embree4 in addition to 3
2023-11-19 14:14:22 -07:00
Eric Wasylishen
c77f4ba2dd
qbsp: fix misc_external_map + -wrbrushes
...
- fix world extents not including external maps
- thanks @DaZombieKiller for pointing this out
Fixes #372
2023-11-18 15:14:38 -07:00
Eric Wasylishen
f8d432c861
tests: add empty brush test case
2023-11-18 11:22:18 -07:00
Eric Wasylishen
8888506821
qbsp: fix -notex option
2023-11-09 23:57:07 -07:00
Eric Wasylishen
a9838d9fc1
tests: fix build
2023-11-08 00:28:14 -07:00
Eric Wasylishen
e9532346c7
vis: partly fix perf regression of Oct 2021
...
- drops usage of winding_storage_hybrid
- makes pstack_t trivially default initializable again (like the C
original)
- we weren't making use of the unlimited size of winding_storage_hybrid;
the original vis already has an allowance for if a winding exceeds
the fixed stack allocation size (24) and we were still applying that
limit
before:
cmake-build-release\tests\tests.exe -r=xml -sf=*benchmark.cc
Testing started at 1:53 PM ...
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 45.15 | 22,149,002.06 | 0.1% | 0.01 | `create pstack_t`
| 47.04 | 21,256,429.80 | 0.1% | 0.01 | `create pstack_t + 1x AllocStackWinding`
| 48.28 | 20,710,594.32 | 0.2% | 0.01 | `create pstack_t + 2x AllocStackWinding`
| 128.52 | 7,780,603.30 | 0.3% | 0.01 | `setup + ClipStackWinding`
Benchmark from: https://www.quaddicted.com/tools/vis_benchmark
cmake-build-release\vis\vis.exe -nostate -nopercent gmsp3v2.bsp
153.31s elapsed
after:
cmake-build-release\tests\tests.exe -r=xml -sf=*benchmark.cc
Testing started at 1:46 PM ...
| ns/op | op/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 1.64 | 610,528,630.06 | 0.3% | 0.01 | `create pstack_t`
| 3.29 | 303,895,535.45 | 0.6% | 0.01 | `create pstack_t + 1x AllocStackWinding`
| 5.20 | 192,172,148.84 | 0.2% | 0.01 | `create pstack_t + 2x AllocStackWinding`
| 66.84 | 14,960,818.66 | 1.0% | 0.01 | `setup + ClipStackWinding`
Benchmark from: https://www.quaddicted.com/tools/vis_benchmark
cmake-build-release\vis\vis.exe -nostate -nopercent gmsp3v2.bsp
141.42s elapsed
2023-11-05 13:58:36 -07:00
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