Commit Graph

3237 Commits

Author SHA1 Message Date
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
Jonathan 4c68ba42d3 simplify sample again 2022-07-10 14:11:17 -04:00
Jonathan a329c901c6 just use sample difference instead of trying to re-calculate it 2022-07-10 13:47:08 -04:00
Jonathan 2a70cafa32 kinda fix overbrightness? still needs work..
allow lmshift force on light
2022-07-10 13:31:38 -04:00
Jonathan b30d200543 remove `entity` from functions that no longer need it
EmitVertices as its own phase
2022-07-10 12:50:16 -04:00
Eric Wasylishen 54a6762a05 qbsp: add edge sharing test 2022-07-10 01:25:28 -06:00