Пришло время разнообразить уровень собственными текстурами. Движок понимает только внутренний формат VTX (Volatile Texture), однако есть инструмент, позволяющий легко конвертировать в него обычные TGA-текстуры, PNG-текстуры, JPG-текстуры и BMP-текстуры.
Стандартный материал в игре обычно состоит из трех различных текстур: diffuse, normal и gloss. Первая текстура – это обычная текстура, задающая основную фактуру. Вторая – карта нормалей, позволяющая задавать попиксельный микрорельеф при динамическом освещении. И, наконец, третья попиксельно регулирует уровень блеска материала при динамическом освещении. Diffuse-текстуру вы можете создать в любом графическом редакторе (например, Photoshop) или позаимствовать из другой игры (учтите, что заимствованные текстуры вы можете использовать только для собственных нужд; распространять их незаконно). Дайте ей какое-либо имя (например, mytexture) и сохраните в формате TGA. Получится файл mytexture.tga. Normal-текстуру вы можете также откуда-либо взять или сгенерировать на основе heightmap, используя NVidia Photoshop Plugin. Если вы хотите использовать параллакс-маппинг для материала, создайте в normal-текстуре альфа-канал, в который сохраните height map. Сохраните текстуру как 24-битный (или 32-битный, если использовался альфа-канал) TGA-файл, добавив к имени текстуры окончание «_n»; например, mytexture_n.tga. Gloss-текстуру имеет смысл делать черно-белой и сохранять как 8-битный (grayscale) TGA с добавлением окончания «_g»; например, mytexture_g.tga. Черный цвет текстуры соответствует отсутствию блеска, белый – максимальному блеску. Если программа редактирования изображений не позволяет сохранить её в таком формате, сохраняйте в обычном, но в этом случае нужно будет указать параметр утилиты makevtx «-g» или «-ag» (см. ниже).
На все текстуры действует ограничение по размеру: он не должен превышать 2048 x 2048 пикселей.
Теперь текстуры надо перевести в формат VTX. Для этого служит утилита makevtx. Вызывать ее нужно через командную строку со следующими аргументами: makevtx [options] texturename.tga
Утилита преобразует выбранную TGA-текстуру в VTX-текстуру.
Опции командной строки таковы:
-ea: создает 16-битную текстуру с альфа-каналом из 8-битной Grayscale-текстуры, при этом цветовой канал копируется в альфа-канал. Опция полезна для создания текстур шрифтов.
-rg2la: ещё один способ создания 16-битной текстуры с альфа-каналом. В этом случае красный канал текстуры становится цветовым, а зелёный – альфой.
-d: текстура является detail-текстурой, малые mip-уровни при загрузке становятся серыми.
-n: текстура является картой нормалей.
-an: утилита автоматически распознает карту нормалей по окончанию имени (для карты нормалей это «_n»).
-с: текстура является кубической картой.
-a0: обрезать альфа-канал текстуры (если он есть).
-a1: альфа-канал текстуры однобитный (полезно для текстур, где альфа задает битовую маску «прозрачно-непрозрачно»).
-a8: альфа-канал текстуры 8-битный (это значение по умолчанию).
-clamp: текстурные координаты должны принадлежать диапазону (0, 1). Это может быть полезно для текстур в некоторых шейдерных скриптах.
-nc: текстура не будет сжиматься (используйте для высокодетализированных текстур, где сжатие может давать артефакты).
-np2: разрешить создание текстур, размер стороны которых не является степенью двойки. Не рекомендуется использовать, т.к. старые видеокарты не поддерживают эту возможность.
-f: задать частоту кадров анимированной текстуры.
-g: конвертировать текстуру в 8-битную чёрно-белую текстуру (убрать информацию о цвете).
-ag: утилита автоматически распознает карту блеска и карту отражений по окончанию имени (для карты блеска это «_g», для карты отражения это «_ref») и конвертирует их в 8-битные чёрно-белые изображения. При наличии альфы её значение умножается на интенсивность цвета.
Для создания анимированной текстуры или кубической карты нужно указать маску имени текстуры. В маске подстрока %d будет подменена на порядковый номер текстуры, начиная с 1. Если вы используете bat-файл, нужно указывать не %d, а %%d. Внимание: makevtx поддерживает разнообразные форматы TGA: 8-битные Grayscale, индексированные, полноцветные RGB и RGBA, с RLE-сжатием и без него. Кроме того, поддерживаются различные форматы PNG-файлов. Однако при сохранении PNG нужно быть внимательным: текстура может быть создана с альфа-каналом («белым») там, где это не было нужно. Во избежание проблем сохраняйте PNG-файлы, не содержащие альфы, только после склеивания слоёв (например, в Photoshop – Layer > Flatten Image). Последние версии makevtx поддерживают, кроме того, JPG и BMP форматы.
Для того, чтобы массово сконвертировать вышеописанные текстуры, создайте bat-файл следующего содержания:
code:@ECHO OFF
for %%i in (*.tga) do @C:\OptionImplicitDemo\system\makevtx.exe -an -ag %%i
pause
Вместо «C:\OptionImplicitDemo\system\makevtx.exe» укажите ваш путь к утилите makevtx. После запуска вы получите три текстуры: mytexture.vtx, mytexture_n.vtx и mytexture_g.vtx. Обратите внимание на опции «-an» и «-ag»: они позволяет распознавать карты нормалей, блеска и отражения при массовом создании текстур.
Вы можете разместить полученные текстуры в нужной папке в подпапке textures и использовать текстуру mytexture в редакторе. Карта нормалей и карта блеска будут загружены автоматически.
Кроме того, вы можете создавать сложные многослойные текстуры с различными эффектами, создавая соответствующие шейдерные скрипты. Подробнее об этом смотрите файл «Volatile3D II Shading Manual.doc» в папке sdk.
Скажите пожалуста опции командных строк, оптимальных для каждой из 3 текстур.(я так понимаю их для каждой несколько)
З Ы Глосс текстуру делать с серыми оттенками? (от 0 до 255).Или просто черный и белый цвет?(0 до 1).
И Paint.net дает сохранить только в 32 или 24 битном изображении.
Посоветуйте прогу (не фотошоп) которая может более опционально сохранять.
XaeroX
Заметил такую неприятность, вот ты апгрейднул Радиант на пути с пробелами.А батник отказывается что либо делать из за них. Ну я текстурку скомпилил. Но Gloss текстура 24 бита.Такая может идти?
PunkPaToB писал: А батник отказывается что либо делать из за них.
Ну так попробуй его убедить.
Чудес не бывает, если редактор запускает компилятор с путями, где есть пробелы, то и батник запустит.
Цитата:
PunkPaToB писал: Но Gloss текстура 24 бита.Такая может идти?
Нет.
Цитата:
Дядя Миша писал: Думаю что и Волатила делает так же.
Неа, не делает. Но надо будет прикрутить.
Я просто подумал, зачем тратить время на это? Один фиг, если глоссмапа не 8-битная, то она на диске кучу лишнего места занимает, а это уже баг.
Дядя Миша
Я ещё не вышел на уровень готовности движка, чтобы заняться исправлением косяков девелоперов модов и карт. Мне бы косяки девелопера самого движка исправить для начала.
Skaarj
Ну пример показан для того чтобы скопировать, и работать.
Я лишь показал что при таких условиях он не работает.
Не все же знают как работать с батниками.
В шк на информатике ничего путного не осваиваем.