Commit Graph

3246 Commits

Author SHA1 Message Date
Jonathan 98610982c9 export the final dbrush_t right in ExportBrushList_r instead of doing it ahead of time 2022-08-03 05:09:39 -04:00
Jonathan 58d1e5230e remove hullbrush_t; just directly work via the bspbrush_t since we have the bevels pre-calculated in mapbrush_t
track the mapbrush we were created from in bspbrush_t; we use this later for outputting the collision brush for q2bsp. bevels are busted though..
2022-08-03 04:47:50 -04:00
Jonathan 24168c8e40 clang pass 2022-08-02 21:57:33 -04:00
Jonathan 5f35575c02 remove map.faces and map.brushes; now, brushes are stored inline in mapentity_t, and faces are stored inline in mapbrush_t
calculate brush bounds (and winding) and add bevels after all of the rest of the map has loaded, so that it has proper world extents
calculate world extents right after the map is loaded
2022-08-02 20:59:08 -04:00
Jonathan 9ca28dff61 bevel 2022-08-02 19:48:17 -04:00
Jonathan e14c2772a6 add ability for winding storages to reserve memory (for clip mainly, so it doesn't need to allocate on each addition; we know the winding will have at least the input number of points) 2022-08-02 18:10:20 -04:00
Jonathan 4c6d952841 plane hashing 2022-08-02 17:44:14 -04:00
Jonathan a75f4239e3 node_t planenum 2022-08-02 16:04:48 -04:00
Jonathan 46a643c3f0 face_t using planenum 2022-08-02 15:45:06 -04:00
Jonathan e57aa36e2e use stats rather than logging every time these specific instances occur
restore the "how close the match is" block
2022-08-02 15:18:53 -04:00
Jonathan 1d729ba573 side_t using planenums 2022-08-02 14:55:38 -04:00
Jonathan 1ad0eb530d going back to using planenums, but going for the qbsp3-esque system 2022-08-02 14:17:59 -04:00
Jonathan 93655913c0 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
# Conflicts:
#	include/qbsp/qbsp.hh
2022-08-02 06:24:46 -04:00
Jonathan dd287f30d4 Merge branch 'brushbsp-midsplit' into brushbsp 2022-08-02 06:09:28 -04:00
Jonathan 53adb9fed5 split winding_base_t into two types, so that we can switch out the backing storage
default winding_t for the main polylib to use heap-based, exact-memory-usage-only, winding
2022-08-02 06:09:20 -04:00
Jonathan 8476e2861c this all matches release now 2022-08-02 04:29:36 -04:00
Eric Wasylishen e05a2bdf75 qbsp: "-add additional.map" feature 2022-08-01 19:13:10 -06:00
Jonathan cc9dd986c6 adopt parent node bounds if a leaf is unbounded now too
move midsplitbrushes into same group as blocksize
always return a split rather than erroring
list out which method is used of the three
2022-08-01 15:51:57 -04:00
Eric Wasylishen 52dff47a86 fix linux build 2022-08-01 12:47:20 -06:00
Eric Wasylishen 1751733ddc qbsp: add experimental MidSplit re-implementation, enabled by default 2022-08-01 12:30:04 -06:00
Eric Wasylishen da4c45d62f qbsp: fix crash on DM6 2022-08-01 12:13:21 -06:00
Jonathan 755a9e65ca use std::set instead of vector for original_brushes since we need them implicitly sorted and no dupes
parallelize PruneNodes_R and CalcTreeBounds_r
2022-08-01 13:19:50 -04:00
Jonathan 26a18d5cc3 add logging::header/funcheader to easily and consistently print function or "active routine" headers
add OOP percent_clock wrapper to make printing percents easier, not used yet
2022-08-01 09:35:21 -04:00
Eric Wasylishen aac9513417 qbsp: parallelize MakeTreePortals 2022-07-31 21:39:47 -06:00
Eric Wasylishen f665cd5cb6 testqbsp: rename our copy of base1.map to base1-test.map
for easier loading in game in Q2
2022-07-31 21:29:25 -06:00
Jonathan d1c3b56e1d don't jitter sun entities 2022-07-31 09:15:51 -04:00
Jonathan 6a3e971a11 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2022-07-30 06:39:20 -04:00
Jonathan e60babdb9c add q3map2-style -blocksize option, using the same algorithm from it. it's optional and disabled by default.
pass through the "use mid split" boolean again
remove node_t::side; appeared to be unused in our current code, and needs to be removed anyways to support the other plane splitters
re-introduce ChooseMidPlaneFromList, but comment it out as it currently fails on a lot of BSPs.
2022-07-30 06:39:14 -04:00
Eric Wasylishen e1b6aba014 portals.cc: log number of tree portals 2022-07-30 00:29:54 -06:00
Jonathan 360daea172 fix test failure from map parsing 2022-07-29 22:41:57 -04:00
Jonathan d8fd13d481 use <= gating for brightness for surface and bounce lighting, since these can often be very small values (provides a moderate speed increase as well, counter-balancing the next change)
bounce lighting generates a grid of bounces rather than a single light, improving lighting in conditions with larger faces or where the midpoint is blocked by other geometry
2022-07-29 22:26:07 -04:00
Jonathan 91124d296f fix mismatch in surface lighting cull calculation 2022-07-29 21:29:04 -04:00
Jonathan 521daad432 always use world entity for looking for _wad key 2022-07-29 21:20:10 -04:00
Jonathan 77e5990016 set default subdivision to Q2 non-software maximum when Q2 is used (twice as large as Q1) 2022-07-29 13:42:26 -04:00
Jonathan ea5e7f5874 fix reported bounce light count 2022-07-29 13:27:31 -04:00
Jonathan 85f25bbc78 Q2-specific fix; -1 lightmaps are always fullbright, which can cause actual full-dark areas to be full bright by mistake 2022-07-29 10:40:02 -04:00
Jonathan 14ac139cce fix race condition; map operator[] modifies if it doesn't exist 2022-07-29 09:42:11 -04:00
Jonathan b1b4cb0e09 try relative to current working dir if can't find archive (need to search relative to .map too) 2022-07-29 04:49:54 -04:00
Jonathan 3ee28fc416 fix crash in light from bounce lighting storage
move bounce lights to a forwardly linked list
fix minlight affecting style 0 for switchables
2022-07-29 00:41:24 -04:00
Jonathan 7810875860 strip trailing spaces from keys 2022-07-28 20:41:43 -04:00
Jonathan dd39bf9940 better print for areaportal warnings 2022-07-28 20:41:33 -04:00
Jonathan 6399c743a7 fix bogus brush splits from old Q2 world extents 2022-07-28 20:00:43 -04:00
Jonathan d33acbe12c remove snapvertices cmd 2022-07-28 09:25:19 -04:00
Jonathan faa4c38985 fix logging being disabled wrongly at the last steps
remove vertex snapping done as a post-processing step; it causes hall of mirrors and doesn't work the same way as qbsp3. need to find a better option.
2022-07-28 09:21:42 -04:00
Jonathan 1d8a0c1df3 clang-format pass 2022-07-28 06:14:54 -04:00
Jonathan e03d99d807 fix spacing 2022-07-28 05:59:06 -04:00
Jonathan d9a9046e46 fix some foot-guns with qbsp_plane_t - type is auto-set now 2022-07-28 05:51:55 -04:00
Jonathan 64cd39c229 add optional vertex snapping to match qbsp3 2022-07-28 03:56:12 -04:00
Jonathan 3fc6225fee although it's rare, if there's a case where a zero-angle triangle is *required* to close up a face (MWT determines it's part of the optimal case), we'll just let it through 2022-07-28 01:35:12 -04:00
Jonathan c9935aaa38 hook up merge and subdivide stats 2022-07-27 23:02:09 -04:00