Eric Wasylishen
a2451a41fb
qbsp: rewrite of q1 contents representation in bspfile.cc
...
use q2-like bitflags so we can represent mixes like (water | mist), which we need within the compiler
2022-07-27 02:31:49 -06:00
Jonathan
4e3739c751
use a reader/writer-esque lock (shared_mutex) instead of exclusive-only recursive lock to speed up plane stuff
2022-07-24 19:05:28 -04:00
Jonathan
f8babef4e1
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-07-24 18:37:06 -04:00
Eric Wasylishen
876646eeeb
testqbsp: use "-tjunc rotate" on tests which are testing for a strict number of faces output
2022-07-22 22:40:24 -06:00
Jonathan
2357f4e660
remove test print
2022-07-22 23:00:54 -04:00
Jonathan
0561766bc9
fix overblown lighting if light color is specified for radiosity
2022-07-22 22:10:22 -04:00
Jonathan
f089d0db20
default -nosoftware for qbism
2022-07-22 20:01:36 -04:00
Jonathan
f6d6972b17
fix percents being output when not requested for submodels
...
tjunc using MWT algorithm
2022-07-22 12:25:06 -04:00
Jonathan
09a03d1668
remove delabella
2022-07-21 20:06:33 -04:00
Jonathan
46591c05f9
storing delaunay version
2022-07-21 20:05:55 -04:00
Jonathan
f1f11e6f3b
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-07-19 08:42:13 -04:00
Jonathan
989788cf71
add a switch to optimize compiles for no software mode (mainly for Q2)
...
fix tjunc 3 vert faces being destroyed
2022-07-19 08:41:59 -04:00
Eric Wasylishen
6025585f01
switch from std::any to class hierarchy for content_stats_t
...
Fixes bogus (huge integers) content stats reporting on macOS (also fix tjunc stats reporting)
having the non-copyable std::atomic<size_t> inside a std::any which must
be copyable was problematic
IMO this is slightly better because it lets us use non-copyable types
2022-07-18 20:13:33 -06:00
Jonathan
b6153e3084
use make_unique where appropriate
...
use unordered_map/set where ordering isn't important (faster for searching and smaller footprint)
2022-07-18 20:16:50 -04:00
Jonathan
6f4f3a56ad
make a few errors warnings
2022-07-18 11:27:48 -04:00
Jonathan
7e5c4fe311
fix animation loops
2022-07-18 11:24:22 -04:00
Jonathan
5e90c5c7a1
spacing
2022-07-18 08:57:50 -04:00
Jonathan
577592ce45
adjust tjunc output to match the step orders (input/deformations -> delaunay -> retopo -> rotation -> splitting)
2022-07-16 10:50:13 -04:00
Jonathan
acac6cb720
add in a "validator" setting which is just a thin wrapper to another setting type allowing for an additional validation step
...
simplify the face structure; now, "fragments" just mean the output windings (if you opt out of tjunction fixing, then there will only be 1 fragment with the same values as original_vertices)
move MakeTangentAndBitangentUnnormalized to qvec.hh since we will use it later
-tjunc allows for more fine-grained control now (-notjunc still exists)
-maxedges now throws if you specify a bad value (1 and 2)
remove the checks to OmitFaces - we can tell if a face was omitted because it will have an empty winding
remove static variables from tjunc
2022-07-16 10:45:24 -04:00
Jonathan
da9546e260
change settings semantics to be simpler and more clear:
...
- no more "isLocked" - use getSource directly (locked is a confusing name)
- no more split parse/setValue functions. there's only one entry point each now, and all they do is pass along the source passed to it from its parser.
- no separate setters, use setValue(value, source)
- add a "game target" source, which is low priority and indicates to the user that the value would have been default but was changed to a better value for the game target
2022-07-14 09:03:59 -04:00
Jonathan
feb6055b07
remove errors pertaining to MAXEDGES (except on output) since we dynamically expand now
...
allow command line to specify maxedges
default maxedges to 0 (no limit) for Quake II
2022-07-14 04:57:52 -04:00
Jonathan
4cf81197a3
fix SplitFaceIntoFragments
2022-07-14 02:18:41 -04:00
Jonathan
ae4c5cd365
change face output to be slightly more robust
...
fix tjunc multithreading; added `original_vertices` which is a copy of the `output_vertices` that is safe for tjunc to read from since tjunc writes to the former
2022-07-14 01:56:18 -04:00
Jonathan
a435f67f13
fix outputting noisy stuff
2022-07-13 22:26:08 -04:00
Jonathan
8240d753ee
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-07-13 04:35:46 -04:00
Jonathan
d9dc54d267
remove vertex rounding
...
fix vertex hash not including negative axis points
use angle instead of zero-area triangle
2022-07-13 04:35:42 -04:00
Eric Wasylishen
4c9227b39e
ci: "release only" tests are too slow to run with asan, at least for now
2022-07-13 01:14:37 -06:00
Eric Wasylishen
7f955a5247
testmaps: add q1_tjunc_angled_face
2022-07-13 00:59:46 -06:00
Eric Wasylishen
d30d4000bc
qbsp: fix log spam from BrushBSP
2022-07-13 00:30:53 -06:00
Eric Wasylishen
d38a65c709
qbsp: revert sidespace to 24
2022-07-13 00:29:45 -06:00
Eric Wasylishen
a604c448c1
testqbsp: relax detail_illusionary_intersecting to pass with new tjunc code
2022-07-13 00:22:36 -06:00
Eric Wasylishen
e2fe6f8963
testqbsp: turn on the q1 maps test on release builds
2022-07-12 23:36:55 -06:00
Eric Wasylishen
6d847fed85
testqbsp: rename quake map source to have -test suffix, for easier loading in an id1/maps directory
...
otherwise vanilla engines will load the original .bsp's from the pak files
2022-07-12 23:13:46 -06:00
Jonathan
cfb1bf0d2c
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-07-12 17:43:38 -04:00
Jonathan
0fb1b429a8
finish tjunc algorithm - can now retopologize by splitting fans up
...
lower zero-area triangle epsilon
2022-07-12 17:43:25 -04:00
Eric Wasylishen
f1f558b069
testqbsp: add detail_illusionary + water test
2022-07-12 00:07:39 -06:00
Eric Wasylishen
da7e36390f
testqbsp: start some contentflags tests
2022-07-12 00:02:05 -06:00
Jonathan
632facc6a7
implement a non-brute force method to reduce vertices to test
2022-07-11 08:29:53 -04:00
Jonathan
c1168bc8ae
fix tjunc output not actually outputting proper new vertices
...
allow for basic rotation of face to find a good orientation
2022-07-11 05:12:48 -04:00
Jonathan
1e84284977
fix tjunc using w instead of output_vertices
2022-07-11 02:43:37 -04:00
Jonathan
1aa2a9b250
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
...
# Conflicts:
# qbsp/qbsp.cc
2022-07-11 01:41:10 -04:00
Jonathan
f98dd05f56
new, simpler qbsp3-esque TJunc code;
...
- currently uses naive brute force approach to finding vertices on faces
- simplify 'face fragments', which now only need to contain vertex indices since they are already emitted
2022-07-11 01:40:10 -04:00
Eric Wasylishen
e8d2a53255
bspinfo, bsputil: rename options -> bspinfo_options, bsputil_options
2022-07-10 17:32:23 -06:00
Eric Wasylishen
f86a5343fb
qbsp: rename options -> qbsp_options
2022-07-10 17:30:00 -06:00
Eric Wasylishen
d32d6ea81d
light: rename options -> light_options
2022-07-10 17:28:28 -06:00
Eric Wasylishen
b7969eee49
vis: rename options -> vis_options
2022-07-10 17:26:55 -06:00
Eric Wasylishen
1c59cc3a44
tests: add INCLUDE_DIRECTORIES(${EMBREE_INCLUDE_DIRS})
2022-07-10 17:01:25 -06:00
Eric Wasylishen
050886f32c
tests: unify tests under one target
...
to ease sharing code. vis/light tests are going to need the testqbsp infrastructure.
2022-07-10 16:36:15 -06:00
Eric Wasylishen
a9b9892761
qbsp: disable tjunc for now
2022-07-10 14:49:04 -06:00
Jonathan
4feb2bd2c7
Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
2022-07-10 14:11:31 -04:00