В ксаше наконец-то появилась поддержка ovierview
В отличие от халфовской обладает следующими достоинствами:
1. кнопки управления овервью всегда соответствуют основному направлению движения, в отличие от халфы, где стоит взять не развернутую карту, типа bounce.bsp и сразу у нас кнопки влево-вправо начинают двигать карту вперед-назад, а уж если инвертировать зуум, то вообще психоделика творится в этом смысле. В ксаше этого нет, кнопки всегда двигают карту правильно.
2. появилась возможно сделать овервью "одним кликом". Просто подгоните карту в окне как требуется (или оставьте настройки по умолчанию), нажмите кнопку снятия скриншота и ксаш автоматически рескейлит скриншот в 1024х768 (если текущее разрешение отличается от 1024х768), сожмет входное пространство цветов до 8-бит и создаст скриптовой файлик с нужными параметрами, поместив всё это добро в папку overviews. Данный режим активен только при dev_overview 1, но поскольку никто никогда не делает скриншоты с карты при dev_overview 1, то вероятность случайной перезаписи другого овервью (например стандартного вальвовского) стремится к нулю. При dev_overview 2 ксаш ведет себя в точности так, как и обычная халфа - создает самый обычный скриншот карты, который вы можете самостоятельно подредактировать в фотошопе и пережать в 8-бит.
3. игрок во время включенного овервью не бегает по карте и падает в разные интересные места с лавой и прочей пакостью.
ну вот загрузку 32-битных текстур прикручу и выложу.
Добавлено 22-08-2011 в 17:45:
Вот тестовая обновленная версия.
В ней присутствует dev_overview (см. выше) и загрузка полноцветных текстур в формате .tga. Если кому-то не нужны полноцветные текстуры, то их всегда можно отключить кваром host_allow_materials (по умолчанию включено).
Алгоритм поиска текстур следующий:
Сначала ищется tga-текстура по адресу materials/mapname/texturename.tga
Если таковой не обнаружено, ищется текстура по адресу materials/common/texturename.tga
Если и таковой не обнаружено, либо какой-то умник подсунул вместо текстуры разное говно, то ксаш загружает текстуру из вада.
Далее, если полноцветная текстура была успешно загружена, ксаш пытается загрузить полноцветную luma-текстуру. Это когда на текстуре отдельные участки в темноте светятся. luma-текстуры можно изготовлять самостоятельно прямо из обычных текстур. Для этого следует оставить на ней те участки, которые по вашему мнению должны светится, нетронутыми, а всё остальное просто закрасить ч0рным цветом. Чорный цвет - это 0 0 0, иначе будет некрасиво выглядеть. Текстуру следует назвать texturename_luma.tga. Вы также можете класть её либо в специфичную папку с именем текущей карты, либо в папку common, независимо от того, где находится основная текстура. Ксаш её найдет и загрузит по алгоритму, описанному выше.
Внимание! если по каким-либо причинам загрузка внешней luma-текстуры не удалась, ксаш не будет грузить внутреннюю.
Обратное тоже верно - нельзя для внутренних текстур назначать внешние luma-текстуры, по аналогии с детайл-текстурами.
--------------------------
Тестируйте пока эту версию, в дальнейшем добавлю поддержку полноцветных текстур для моделей.
Вложение: xash.rar (471.6 кб)
Этот файл был скачан 827 раз. Дядя Миша проверил это вложение на вирусы 22-08-2011 в 13:46
Вот над вторым дастом поиздевался. Не сильно удобно то, что ксаш перезапускать надо чтоб он эти текстуры загрузил, не плохо было бы их при рестарте подгружать.
n00b писал: не плохо было бы их при рестарте подгружать.
увы никак. Ксаш же вцепляется в текущую текстуру вплоть до того момента пока она не перестает использоваться на карте.
Можешь принудительно выгружать эти текстуры методом загрузки такой маленькой карты-коробки с одной текстурой типа блэк.
А хранение обоих видов текстур в видеопамяти - это уже маразм.
В квейках вон вообще отключить невозможно, приходится текстуры убирать из папки.
А вот и продолжение банкета - поддержка полноцветных текстур на студиомоделях
Поразительно что нигде толком нету этих самых текстур высокого разешения. В результате я почти час их доискивался и целых десять минут писал код.
Итак: при загрузке полноцветных текстур со студиомоделей загрузчик не заглядывает в папку common, только в указанную папку для модели.
путь к этой папке должен иметь вид: materials\models\modelname\texturename.
Например вы хотите сделать текстуру для аптечки (обычной халфовской).
Вам следует положить её вот так:
materials\models\w_medkit\medkit_top.tga
если вы хотите сменить текстуру, например для игрока, то путь становится сложнее:
materials\models\player\barney\barney\helmet_chrome.tga
двойная папка barney - это не опечатка. Путь строится исходя из реальных папок местонахождения модели + имя модели представлено как очередная папка. Возможно это не слишком удобный подход, но зато текстуры от разных моделей гарантированно не перемешаются.
Есть же такие мапперы, которые заводят папку models\mapobjects и туда кидают модели с аналогичными именами, но совершенно другими текстурами. На одном уровне получилась совершенная дрянь и неразбериха. Кроме того, в дальнейшем я предполагаю кидать в эти же папки текстовые файлики - описание материалов, чи шойдеры.
Ограничения: нельзя подменять colormap-текстуры, поскольку весь их смысл - именно в наличии палитры. Также теоретически можно навертеть дырок в альфа-канале для любой студиотекстуры, но совсем не факт, что это будет правильно работать.
ЗЫ, Надеюсь буржуи теперь успокоятся со своим говнокодом
Добавлено 23-08-2011 в 22:43:
ЗЗЫ, также добавлены отладочные команды pointfile и linefile.
первая читает pts-файл, вторая lin-файл. Обе команды предназначены для поиска дырок на карте (если таковые конечно имеются) и отличаются лишь тем, что команда pointfile строит линию до дырки из партиклей, а linefile - из лучей лазера красного цвета.
Вложение: xash.rar (472.0 кб)
Этот файл был скачан 818 раз. Дядя Миша проверил это вложение на вирусы 23-08-2011 в 18:44
Спасибо, Дядя Миша, за проделанную работу!
>>Также теоретически можно навертеть дырок в альфа-канале для любой студиотекстуры, но совсем не факт, что это будет правильно работать.
Конечно, было бы здоров, если бы это правильно работало. Часто стоит необходимость в такой опции, ибо прозрачные части есть хорошая оптимизация для моделей =)
Кстати, а как насчет полу-прозрачных частей модели? (например, стекла)
PoD-Stas писал: Конечно, было бы здоров, если бы это правильно работало.
я имею в виду, что оригинал должен быть дырявый и для него стоять соответствующий флаг в самой модели. А если произвольную текстуру заменять дырявой, то может не сработать. Но опять же - я не проверял.
Цитата:
PoD-Stas писал: Кстати, а как насчет полу-прозрачных частей модели? (например, стекла)
ну есть аддитив и в ксаше есть секретный зарезервированный флаг
#define STUDIO_NF_BLENDED 0x0010 // rendering as semiblended
Я потом его заюзаю именно для этих целей.
Цитата:
thambs писал: а для брашевых текстур это можно сделать?
ну так же как и обычные решетки с префиксом {.
Цитата:
thambs писал: было бы удобно так делать стёкла, с лайтмэпоми
лайтмапы на стёклах отключены СПЕЦИАЛЬНО! потому что некрасиво.
Чтобы было боле-мене нормально надо править рад, подбирать коэффициент освещения таких стёкол.