crypt of decay - опаньки... [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

опаньки... [Jul. 6th, 2019|07:10 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

нашёл старый-старый баг (красиво посаженый лично мной почти в самом начале ковыряния в коде): ajbsp внутри себя хранит параметры splitting plane для бсп-ноды как интегеры. ойбля.

подробнее: бсп-ноды в думе хранят вершины лайндефа, который был использован для сплита. из этих вершин вавум делает плоскость, которая потом используется при обходе дерева. и всё бы хорошо, но… в оригинальном формате уровня вершины всегда имеют целочисленные координаты. а вот в UDMF координаты могут быть дробными. однако ajbsp всё равно пихает их в инты. после чего вавумчик использует эти округлённые координаты для вычисления коэффициентов уравнения плоскости, и закономерно получает поебень.

штука в том, что standalone ajbsp не умеет в UDMF, поэтому Эндрю не парился. всё остальное там даблы, а конкретно эти координаты нигде не используются всё равно, и смысла их хранить даблом не было. когда я перетаскивал ajbsp внутрь вавумчика, я не обратил внимания. то, что UDMF-карты считаются как пиздец — это я знал. но не врубался, где именно. то, что это от округлений — было ясно, но я читал код, везде даблы — и не понимал. да и вообще я не очень понимал тогда, как работает вавумов рендер.

а сегодня посмотрел внимательно — и ёлы ж ты палы, блядь! быстренько сделал даблами — и херак! UDMF-карты, которые раньше адово глючили, внезапно стали нормально рисоваться и ходиться. заодно там был ещё один мелкобаг с лишним вызовом «чистилки» дерева, которая нужна только для негл-нод. также это, скорее всего, был и источник странных багов с неправильным определением текущего субсектора (оно тоже делается по bsp).

возможно, я ещё что-то проглядел, но уже этот фикс починил овердофига.

также сделал простенькое рихтование полученых вертексов в 16.16 — возможно, это починит рандомные «прострелы» в клипере (а может и нет, хуй знает пока). в принципе, можно и более грубо рихтовать, наверное — но я не уверен.
Linkmeow!

Comments:
[User Picture]
From:[info]3d_camper
Date:July 6th, 2019 - 07:22 am
(Link)
Это вот про эти дыры в ХП?
[User Picture]
From:[info]id0
Date:July 6th, 2019 - 08:34 am
(Link)
не, про дыры в хэпэ это гл_дравдистанс, если я правильно понимаю,
можешь попробовать поменять
[User Picture]
From:[info]3d_camper
Date:July 23rd, 2019 - 02:57 pm
(Link)
в файле конфига или в настройках есть?
[User Picture]
From:[info]ketmar
Date:July 23rd, 2019 - 03:04 pm
(Link)
в консоли есть. меню опций — это такой кастрированый метод менять цвары, больше оно ровно ничего не делает. всё, что в консоли наменялось — то спокойно схоронится в конфиг по выходу. и автодополнение в консоли есть, конечно.
From:(Anonymous)
Date:July 6th, 2019 - 05:36 pm
(Link)
gl_max_draw или как-то так
From:(Anonymous)
Date:July 6th, 2019 - 11:52 am
(Link)
Ты крут!
[User Picture]
From:[info]ketmar
Date:July 6th, 2019 - 03:41 pm
(Link)
спасибо, смешная шутка.
From:(Anonymous)
Date:July 6th, 2019 - 07:23 pm
(Link)
это нифига не шутка.