Ну чтожы, работа над компиляторами потихоньку движется к завершению.
Я правда не исключаю варианта, что мне придется всё же опять вернуться к лайтмапам (зависит от того, насколько хорошим будет деномическое освещение), поэтому сам формат пока оставлю кутришным, не буду его переделывать.
Осталось добавить статические декали и разобраться с генерацией клип-брашей для некоторых случаев.
Так же начерно реализовал обещанную концепцию скриптовых компилерных энтить, вот пример для общеизвестного func_group
C++ Source Code:
1
"func_group"
2
{
3
movePrimitives( "classname", "worldspawn" );
4
removeEntity();
5
}
Внутри описания находятся команды, что сделать с данной энтитью. Ну в данном случае - отправить примитивы в энтить, которую мы ищем по класснему и этот класснейм - ворлдспавн. Но конечно возможна и классическая связка "targetname" "target". Это в первую очередь полезно потому что, вот этих компиляторных энтить существует великое множество и делать поддержку этого зоопарка внутри кода просто неразумно.
В идеале я хочу вообще избавиться от константных имён внутри кода XashNT. Ну кроме игровой дллки конечно.
Дядя Миша что ты планируешь показать народу в качестве демки на новом движке? Идеи есть? Мб Monorail Quest, если Thambs согласится его портировать? Или p2? Всё это звучит и выглядит здорово, кабы не было похоже на очередной Generic Engine с кучей фич, продемонстрированных на нескольких перекомпиленных картах из других игр. С Xash3D такой ситуации не возникло, потому что ты завёл там совместимость с голдсорсом, и база того, во что можно погамать, получилась просто огромной.
Добавил важную штуку - детальные сепараторы, которые не ликуют.
В ку2 такие были. Это детайлы которые остаются полноценной частью уровня, но при этом не участвуют в создании порталов для виза.
Естественно классические детайлы тоже никуда не делись, но теперь благодаря новой системе описания компиляторных энтить можно завести и такие и такие.
Я еще вот что планирую сделать - подгрузку smd моделей для энтить.
Вот например у нас func_door который делают брашами, ну в крайнем случае патчами. А можно просто указать .smd модель ему и будет сразу дверь моделькой и с коллизией. И вагончик халфовский можно будет точно так же делать, да что угодно. Чтобы не заниматься дурной работой, когда дверь делается из клипбрашей и к ней аттачится визуальная часть.
А тут просто загрузил модельку, клипбрашы сами сгенерились.
Решил проверить оригинальный код текстурирования террайна (на его базе когда-то выросли параноевские ландшафты, но в параное попиксельные слои, а тут повертексные). Ну вообщем грасс_тест раскрасил, сижу жду.
Уже минут пять наверное. В стоке какой-то дико неоптимальный код.
В q3map2 алгоритм получше, но загрузчик текстуры альфа-мапы остался какой-то кастомный, в результате он почти никогда не может найти эту грёбаную текстуру. Поэтому и кутримапные ландшафты тоже никто и никогда не юзал. Юзеры они ведь как - если не сработало с первого раза забывают навсегда.
Хех, по скрину можно все пиксели сосчитать. Я так понимаю там текстурка 64х64? Выглядит уродливо, надо какую нить сглаживалку сделать, чтобы убрать пиксельность.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!