The v1 build of dead.air has a few geometry holes, presumably from node shenanigans. The map is UDMF and a large portion of the map's vertices are off-grid, which is likely what's throwing ZDBSP off.
Some gzdoom screenshots (clickable thumbnails) w/coordinates of the 4 reported trouble-spots:
The first 3 only manifest in GZDoom but #4 results in an ugly HOM in ZDoom as well, for those hunting for the issue.
This may be a "can't do much because floating point precision/rounding/whatnot" thing, but it's worth a report. I'll see if I can spot-fix these map-side in the meantime, but #4 in particular has resisted attempts to oust it so far.
[EDIT] Added a direct link to the old v1 build of the wad, since the v2 release patches up the symptoms mod-side.
Last edited by Xaser on Wed Dec 28, 2016 12:33 am, edited 2 times in total.
Indeed missing geometry is caused by fractional part of vertex coordinates. Running ZDBSP from command line with -w options will output all of problems encountered:
Segs 35638* and 35643 have duplicate end vertex 14699 (-1275, 661)
Segs 43237* and 3313 have duplicate start vertex 1945 (3659, 133)
Segs 43237* and 3313 have duplicate end vertex 16645 (3659, 133)
Segs 55531* and 55528 have duplicate start vertex 19699 (-233, 14958)
Segs 60256* and 60258 have duplicate start vertex 20858 (833, 12984)
Segs 60256* and 60258 have duplicate end vertex 8944 (832, 12984)
Segs 61571* and 61564 have duplicate start vertex 21185 (232, 11665)
Segs 63660* and 63661 have duplicate start vertex 21707 (-1386, 13494)
Segs 63660* and 63661 have duplicate end vertex 8015 (-1380, 13493)
Unclosed subsector 223, from (-382,-959) to (-379,-926)
Unclosed subsector 224, from (-379,-926) to (-382,-959)
Unclosed subsector 539, from (1159,1764) to (1120,1832)
Unclosed subsector 547, from (1107,1824) to (1159,1764)
Unclosed subsector 550, from (1120,1832) to (1107,1824)
Unclosed subsector 688, from (363,780) to (432,748)
Unclosed subsector 689, from (432,748) to (363,780)
Unclosed subsector 915, from (1027,16) to (1007,36)
Unclosed subsector 916, from (1007,36) to (1027,16)
Unclosed subsector 945, from (2898,1322) to (3125,927)
Unclosed subsector 947, from (3125,927) to (3016,1153)
Unclosed subsector 948, from (3016,1153) to (2992,1160)
Unclosed subsector 949, from (2992,1160) to (2898,1322)
Unclosed subsector 1038, from (2856,772) to (2824,767)
Unclosed subsector 1039, from (2824,767) to (2856,772)
Unclosed subsector 1051, from (2897,713) to (2888,776)
Unclosed subsector 1052, from (2888,776) to (2897,713)
Unclosed subsector 1307, from (1274,661) to (1153,592)
Unclosed subsector 1311, from (1153,592) to (1274,661)
Unclosed subsector 1334, from (1364,1381) to (1157,1737)
Unclosed subsector 1335, from (1157,1737) to (1364,1381)
Unclosed subsector 1470, from (2248,1443) to (2423,1140)
Unclosed subsector 1471, from (2344,1277) to (2423,1140)
Unclosed subsector 1471, from (2423,1140) to (2248,1443)
Unclosed subsector 1472, from (2222,1489) to (2312,1332)
Unclosed subsector 1473, from (2423,1140) to (2344,1277)
Unclosed subsector 1474, from (2312,1332) to (2222,1489)
Unclosed subsector 1474, from (2222,1489) to (2408,1166)
Unclosed subsector 1475, from (2408,1166) to (2222,1489)
Unclosed subsector 1492, from (2500,2032) to (2413,1982)
Unclosed subsector 1493, from (2334,1936) to (2306,1919)
Unclosed subsector 1493, from (2413,1982) to (2500,2032)
Unclosed subsector 1494, from (2528,2048) to (2389,1968)
Unclosed subsector 1495, from (2306,1919) to (2334,1936)
Unclosed subsector 1496, from (2389,1968) to (2223,1872)
Unclosed subsector 1497, from (2223,1872) to (2084,1792)
Unclosed subsector 1498, from (2560,2066) to (2528,2048)
Unclosed subsector 1499, from (2072,1748) to (2222,1489)
Unclosed subsector 1500, from (2222,1489) to (2152,1609)
Unclosed subsector 1501, from (2152,1609) to (2072,1748)
Unclosed subsector 1502, from (2136,1637) to (2216,1498)
Unclosed subsector 1503, from (2056,1776) to (2136,1637)
Unclosed subsector 1504, from (2180,1625) to (2164,1653)
Unclosed subsector 1505, from (2084,1792) to (2211,1828)
Unclosed subsector 1505, from (2100,1764) to (2056,1776)
Unclosed subsector 1506, from (2164,1653) to (2100,1764)
Unclosed subsector 1510, from (2216,1498) to (2180,1625)
Unclosed subsector 1512, from (2516,2004) to (2544,2020)
Unclosed subsector 1513, from (2544,2020) to (2560,2066)
Unclosed subsector 1516, from (2405,1940) to (2516,2004)
Unclosed subsector 1517, from (2350,1908) to (2405,1940)
Unclosed subsector 1519, from (2239,1844) to (2350,1908)
Unclosed subsector 1520, from (2211,1828) to (2239,1844)
Unclosed subsector 1601, from (2440,1110) to (2431,1126)
Unclosed subsector 1678, from (2305,200) to (1883,-50)
Unclosed subsector 1679, from (1883,-50) to (2305,200)
Unclosed subsector 1680, from (2446,284) to (2024,33)
Unclosed subsector 1687, from (2492,330) to (2446,284)
Unclosed subsector 1689, from (2495,313) to (2492,330)
Unclosed subsector 2006, from (-541,312) to (-486,280)
Unclosed subsector 2007, from (-486,280) to (-541,312)
Unclosed subsector 2030, from (-231,829) to (-185,841)
Unclosed subsector 2031, from (-185,841) to (-231,829)
Unclosed subsector 2162, from (-1598,-1696) to (-1802,-1407)
Unclosed subsector 2163, from (-1802,-1407) to (-1598,-1696)
Unclosed subsector 2164, from (-1553,-1760) to (-1745,-1487)
Unclosed subsector 2165, from (-1745,-1487) to (-1553,-1760)
Unclosed subsector 2276, from (-1314,-749) to (-1368,-787)
Unclosed subsector 2277, from (-1368,-787) to (-1314,-749)
Unclosed subsector 2420, from (-859,-514) to (-753,-673)
Unclosed subsector 2421, from (-753,-673) to (-859,-514)
Unclosed subsector 2422, from (-871,-496) to (-788,-619)
Unclosed subsector 2423, from (-762,-600) to (-832,-496)
Unclosed subsector 2424, from (-832,-496) to (-762,-600)
Unclosed subsector 2425, from (-788,-619) to (-871,-496)
Unclosed subsector 2633, from (-5768,2277) to (-5704,2167)
Unclosed subsector 2634, from (-5704,2167) to (-5768,2277)
Unclosed subsector 2653, from (-3746,1989) to (-3682,1879)
Unclosed subsector 2654, from (-3682,1879) to (-3746,1989)
Unclosed subsector 3185, from (-1150,737) to (-1088,702)
Unclosed subsector 3186, from (-1088,702) to (-1150,737)
Unclosed subsector 3191, from (-1275,661) to (-1275,661)
Unclosed subsector 3316, from (-1880,492) to (-1987,317)
Unclosed subsector 3317, from (-1987,317) to (-1880,492)
Unclosed subsector 3346, from (-1871,1256) to (-1882,1012)
Unclosed subsector 3348, from (-1732,1272) to (-1871,1256)
Unclosed subsector 3349, from (-1677,1368) to (-1732,1272)
Unclosed subsector 3350, from (-1668,1384) to (-1677,1368)
Unclosed subsector 3352, from (-1882,1012) to (-1818,1123)
Unclosed subsector 3353, from (-1818,1123) to (-1732,1272)
Unclosed subsector 3354, from (-1732,1272) to (-1668,1384)
Unclosed subsector 3397, from (-3815,1086) to (-3735,948)
Unclosed subsector 3398, from (-3735,948) to (-3799,1059)
Unclosed subsector 3400, from (-3815,1031) to (-3735,948)
Unclosed subsector 3401, from (-3799,1059) to (-3815,1031)
Unclosed subsector 3403, from (-3796,1087) to (-3815,1086)
Unclosed subsector 3405, from (-3704,1088) to (-3796,1087)
Unclosed subsector 3406, from (-3735,948) to (-3704,1088)
Unclosed subsector 3782, from (6400,144) to (6276,232)
Unclosed subsector 3783, from (6276,232) to (6400,144)
Unclosed subsector 4991, from (4672,-1067) to (4432,-1104)
Unclosed subsector 4992, from (4432,-1104) to (4672,-1067)
Unclosed subsector 5036, from (4173,-1367) to (3920,-1407)
Unclosed subsector 5042, from (3925,-1439) to (4173,-1367)
Unclosed subsector 5043, from (4195,-1511) to (3942,-1551)
Unclosed subsector 5045, from (3920,-1407) to (3925,-1439)
Unclosed subsector 5051, from (3947,-1583) to (4195,-1511)
Unclosed subsector 5053, from (3942,-1551) to (3947,-1583)
Unclosed subsector 5394, from (381,-959) to (383,-993)
Unclosed subsector 5395, from (384,-992) to (381,-959)
Unclosed subsector 5396, from (383,-993) to (384,-992)
Unclosed subsector 5701, from (3056,-686) to (3088,-682)
Unclosed subsector 5702, from (3088,-682) to (3056,-686)
Unclosed subsector 5818, from (2564,-187) to (2585,-342)
Unclosed subsector 5819, from (2585,-342) to (2564,-187)
Unclosed subsector 5892, from (4192,-209) to (4225,-253)
Unclosed subsector 5916, from (4225,-253) to (4192,-209)
Unclosed subsector 5927, from (4033,-682) to (3971,-602)
Unclosed subsector 5928, from (3971,-602) to (4033,-682)
Unclosed subsector 6001, from (2024,33) to (2552,-101)
Unclosed subsector 6002, from (2552,-101) to (2512,192)
Unclosed subsector 6087, from (3659,133) to (3659,133)
Unclosed subsector 6105, from (4164,974) to (3927,1073)
Unclosed subsector 6108, from (3927,1073) to (4164,974)
Unclosed subsector 6113, from (3842,868) to (3885,970)
Unclosed subsector 6116, from (3885,970) to (3842,868)
Unclosed subsector 6147, from (3690,708) to (3726,796)
Unclosed subsector 6148, from (3726,796) to (3690,708)
Unclosed subsector 6199, from (4812,647) to (4882,613)
Unclosed subsector 6201, from (4882,613) to (4812,647)
Unclosed subsector 6239, from (2509,208) to (2504,244)
Unclosed subsector 6240, from (2504,244) to (2495,313)
Unclosed subsector 6244, from (2512,192) to (2509,208)
Unclosed subsector 6255, from (3277,306) to (3275,307)
Unclosed subsector 6260, from (3069,485) to (2985,540)
Unclosed subsector 6261, from (2985,540) to (3069,485)
Unclosed subsector 6263, from (2938,412) to (2917,564)
Unclosed subsector 6264, from (2917,564) to (2938,412)
Unclosed subsector 8307, from (-4776,3328) to (-4656,2843)
Unclosed subsector 8310, from (-4656,2843) to (-4576,2982)
Unclosed subsector 8312, from (-4560,2954) to (-4576,2926)
Unclosed subsector 8313, from (-4576,2926) to (-4497,2843)
Unclosed subsector 8315, from (-4497,2843) to (-4560,2954)
Unclosed subsector 8316, from (-4576,2982) to (-4496,2843)
Unclosed subsector 8317, from (-4496,2843) to (-4776,3328)
Unclosed subsector 8620, from (-4910,3456) to (-4655,3896)
Unclosed subsector 8621, from (-4655,3896) to (-4910,3456)
Unclosed subsector 9940, from (-233,14958) to (-232,14958)
Unclosed subsector 10654, from (228,15050) to (284,15469)
Unclosed subsector 10668, from (284,15469) to (228,15050)
Unclosed subsector 10739, from (-320,15740) to (-401,16357)
Unclosed subsector 10740, from (-401,16357) to (-320,15740)
Unclosed subsector 11395, from (833,12984) to (832,12984)
Unclosed subsector 11766, from (232,11665) to (232,11665)
Unclosed subsector 11856, from (319,10884) to (400,10266)
Unclosed subsector 11857, from (400,10266) to (319,10884)
Unclosed subsector 11981, from (2114,9229) to (1948,9325)
Unclosed subsector 11993, from (2143,9120) to (2069,9100)
Unclosed subsector 11994, from (2069,9100) to (2143,9120)
Unclosed subsector 11996, from (2017,9285) to (2114,9229)
Unclosed subsector 12001, from (1948,9325) to (1948,9325)
Unclosed subsector 12002, from (1948,9325) to (2017,9285)
Unclosed subsector 12029, from (1688,8810) to (1771,8762)
Unclosed subsector 12032, from (1715,8794) to (1688,8810)
Unclosed subsector 12033, from (1771,8762) to (1715,8794)
Unclosed subsector 12237, from (-996,12316) to (-1106,12442)
Unclosed subsector 12238, from (-915,12224) to (-996,12316)
Unclosed subsector 12239, from (-1106,12442) to (-915,12224)
Unclosed subsector 12376, from (-1396,13495) to (-1386,13494)
Unclosed subsector 12376, from (-1396,13495) to (-1380,13493)
Unclosed subsector 12519, from (-1518,11361) to (-1918,11818)
Unclosed subsector 12520, from (-1918,11818) to (-1518,11361)
Unclosed subsector 12591, from (-1325,11585) to (-1403,11484)
Unclosed subsector 12593, from (-1321,11563) to (-1325,11585)
Unclosed subsector 12595, from (-1379,11487) to (-1321,11563)
Unclosed subsector 12597, from (-1403,11484) to (-1379,11487)
Unclosed subsector 12717, from (-424,10270) to (-795,10344)
Unclosed subsector 12718, from (-795,10344) to (-424,10270)
Unclosed subsector 12754, from (-1795,8675) to (-1657,8755)
Unclosed subsector 12755, from (-1657,8755) to (-1795,8675)
Some time ago I made a fairly simple hack for ZDBSP: I added a tolerance (or rather coordinate rounding) for vertices in UDMF which in theory should "solve" such issues automatically.
It worked more or less OK but I never tested it extensively.
Grid size 1 is too coarse to do the entire map, but probably the trouble spots can be snapped to 1 without causing any jaggies. I'd love to snap everything to, say, 0.25, but GZDB doesn't do fractional grid sizes and SLADE doesn't have a "snap vertices to grid" feature... though maybe I ought to feature suggest that already.
I'm curious to know if your hacked ZDBSP will fix the issues. It's a real-world test case at least.
So it is indeed the selection algorithm screwing up on too short lines. Just like I expected. I just posted in another thread a few days ago that Randi outright refused to address the bug where it could have been fixed for (in my opinion laughable) performance considerations (yeah, broken nodes are definitely better than a 5% speed loss...)
For what it's worth, I made a sweep for short linedefs and deleted quite a few (seems the last time I did this for the map was prior to adding the end arena; welp). This fixed the holes in screenshots #2 and #4, but #1 and #3 still persist, so there's still some voodoo at play.
Xaser wrote:Grid size 1 is too coarse to do the entire map, but probably the trouble spots can be snapped to 1 without causing any jaggies. I'd love to snap everything to, say, 0.25, but GZDB doesn't do fractional grid sizes and SLADE doesn't have a "snap vertices to grid" feature... though maybe I ought to feature suggest that already.
I'm curious to know if your hacked ZDBSP will fix the issues. It's a real-world test case at least.
I uploaded my ZDBSP build here. Compiled from the latest sources with my rough rounding hack.
Removed 13 lines with 0 length.
Removed 26 unused sidedefs.
Unclosed subsector 7342, from (-4412,3774) to (-4412,3774)
Unclosed subsector 11075, from (857,14429) to (856,14428)
Unclosed subsector 11214, from (284,15469) to (283,15469)
Honestly I have no idea what problems my hack can introduce. You can give it a try if you want but use it on your own risk.
Super-thanks! That seems incredibly useful for evading this sort of thing in the future. If it fixes all the visible issues, then hurrah!
I'll bet those missing lines are legit mapping errors. There were several vestigial short linedefs I removed in my working copy; between that and some vertex jiggling I was able to oust the issues for the next release, but I'll probably use this ZDBSP build going forward to avoid having to do the vertex snap. Also because it may solve issues with another (secret, unreleased) map -- that's a side-note, but worth mentioning for funsies.