Дядя Миша
У меня следующая бНОПНЯ, каким образом в компиляторе/игре определяется число субдивайдов в q3-патчах, возможно ли его вынести в необязательные параметры статика для удобства стыковки всяких труб и пр.?
thambs писал: У меня следующая бНОПНЯ, каким образом в компиляторе/игре определяется число субдивайдов в q3-патчах
а никаким
Они делятся пока уровень ошибки станет меньше заданного значения.
Т.е. вот этот параметр r_patch_subdivision это на самом деле r_patch_maxerror. А эксплиситного субдивайда в ку3 нет, его только в дуум3 сделали.
Кстати вот да, подтверждаю насчёт путей, в ку3 это полная жопа, он постоянно не может что-то найти, что лежит у него под носом. Вот не вижу и всё тут. Идиотизм.
Добавлено 13-01-2020 в 14:32:
А я тем временем собрал сипульчер своими компиляторами. Заняло около двух минут
Нашёл жырный баг в SplitBrush, функцию скопировали из ку2 в ку3. В q3map2 она непофикшена, подозреваю и в волатиле тоже. В лёгких случаях приводит просто к утечке памяти. Ну а если над компилятором ведутся фундаментальные работы, ну вот как в моём случае, добавляются CSG и прочие михонизмы, тут-то всё гавно наружу и полезло.
Добавлено 13-01-2020 в 22:01:
Попробую китайскую формулу для выбора секущей в ку3. Интересно будет ли толк.
Добавлено 13-01-2020 в 22:46:
Только приступил - уже ляп нашёл, валидные размеры считаются только для корневной и впоследствии только для аксиальных нод. Для неаксиальных они равны родительской. Просто не стали заморачиваться.
Эффективное дерево так не построишь. Ну просто для ку3 на многие моменты забили.
Дядя Миша писал: Ну а если над компилятором ведутся фундаментальные работы, ну вот как в моём случае, добавляются CSG и прочие михонизмы, тут-то всё гавно наружу и полезло.
А в халфлайфовских компиляторах есть какие-то подобные серьёзные упущения?
XaeroX писал: Почему-то в VMap тоже есть "CSG и прочие михонизмы", и гавно ни в движок не утекло, ни наружу не полезло.
Всё ещё впереди
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
SNMetamorph писал: А в халфлайфовских компиляторах есть какие-то подобные серьёзные упущения?
Ну вот я и сделал p2st чтобы исправить ихние недостатки.
Цитата:
XaeroX писал: и гавно ни в движок не утекло, ни наружу не полезло
когда гавно утикает в движок, это типа означает - я ничего не могу с этим поделать. А когда гавно лезет на ружу, тут-то сразу и понятно кто вредитель.
Добавил в функцию выбора секущей волшебную китайскую формулу из VHLT. Стало лучшы, но буквально на пару процентов. Ну то есть было в дереве 2009 нодов, а стало 1936. Вот это максимальный профит по идее. Ну на сепульчере чуть получше конечно, было 11300 нодов, стало 10495. Вообщем для такого дерева мало что можно оптимизировать, не вижу смысла дальше копать в этом направлении. Другой важнейший вопрос меня занимает - как удалить невидимые фейсы воды, соприкасающиеся друг с другом.
Я за эти несколько дней подробно проштудировал этот вопрос и вот что выяснилось. В халфе этим занимается CSG, который брашы не только вычитает, но и склеивает. Но склеивает-то он не сами брашы, а их сурфейсы, в противном случае его возможности были бы куда скромнее.
Добавить в CSG объединялку брашей несложно, брашы вообще легко склеивать, но разумеется это при условии, что на выходе получится аксиальная фигура с ббоксом, точно равным сумме ббоксов двух брашей.
А если у воды один браш шире, а другой уже, подобной фигуры уже не получится. В ку2 я долгие годы ошибочно полагал, что склеиванием воды тоже занимается CSG. Так вот нет, оказывается там фейсы генерятся из порталов на ноде, при условии что нода не солидная. Изящное решение, но мне опять таки не подходит - в ку3, как мы помним на ноде не лежат фейсы, дерево другого типа. Их можно попытаться найти по плоскости, но чёт мне кажется это стрёмная затея. К тому же вода детайлом так точно не найдется. Значит остаётся всего один вариант - мержить финальные дравсурфсы.
Добавлено 14-01-2020 в 15:58:
Вообще, если вам интересно, я ведь именно по той причине и отказался от кутришного формата карт в 2008-м году, потому что он воду не склеивал. То есть все халфовские карты просто шли лесом, не говоря уже о битых полигонах. Ну вот, спустя годы, я снова возвращаюсь к этой задачке.
Добавлено 14-01-2020 в 19:34:
Вариант с отсечением порталами отпал сразу - порталы не лежат на сурфейсах, да они вообщем-то и не должны, это просто в ку2 так совпадало, из-за организации дерева. Значит буду делать полноценный CSG по сурфейсам, как в халфе. Вариант с брашами я тоже пожалуй оставлю, он для коллизии полезен. Впрочем всё это будет легко отключить параметрами.
Я планирую сделать такой файлик настроек, makebsp.def и сохранять его рядом с gameinfo.txt и пусть там лежат настройки компилятора и описание компиляторных энтить, ну всяких там func_group, func_detail и прочих.
Описание и порядок операций - мувнуть брашы в мировую энтить, перед этим поставить им контентс детайл. Типа такого.
Подключил CSG, пропали межводяные стенки
Правда надо еще подумать как его полутьшы встроить, чтобы ничего не паламать. Типа того жы тумана. Поидее из фейсов CSG можно строить улутьшенное дерево, т.е. более оптимальное.