Раздел:
Max Payne II: Моддинг

Введение

От грамотного использования текстур зависит процентов тридцать визуального качества создаваемого уровня, остальное, можно списать на качество геометрии и собственно дизайна. Порой неправильно подобранная или наложенная текстура может очень сильно испортить общую картинку. Но сегодня мы поговорим не о том, как правильно подбирать и накладывать текстуры, а как, используя различные свойства материалов сделать картинку вашей карты более красивой и разнообразной…

Свойства материалов

Для начала давайте рассмотрим свойства материалов, которые используются в редакторе Max ED 2.0.
Вызвать свойства используемого в данный момент материала можно нажав сочетание клавиш Alt+Enter, или дважды кликнув ЛКМ по необходимому материал в Палитре Материалов. Так же вы можете кликнуть по необходимому материалу ПКМ и в выпадающем списке выбрать пункт Properties.
Name - данный параметр указывает имя основной текстуры (изображения или диффузной текстуры) и полный путь к ее расположению.
Dualsided - данный параметр позволяет отображать текстуру с двух сторон одного полигона.
Adult Content - данный параметр, используется в том случае, если используемая текстура содержит запретный для несовершеннолетних конвент. И в режиме защиты она отображаться не будет.
Name - имя и путь текстуры. В случае если вы хотите сделать анимированную текстуру вы можете выбрать последовательность и различный формат текстур.
Default width - данный параметр задает ширину текстуры по умолчанию
Default height - данный параметр задает высоту текстуры по умолчанию
UI Visible Frame - данный параметр задает тот кадр (в случае если текстура анимирована) который отображается в редакторе.
Framerate - данный параметр контролирует частоту смены кадров в анимированной текстуре.
Normal - данный вариант использования текстуры является стандартным и выбран по умолчанию.
Alpha compare - при использовании этого варианта рендринга текстуры альфа канал используется вкупе с дополнительным сглаживанием, которое регулируется с помощью двух нижеследующих параметров. В данном случае текстура должна быть в формате DDS DXT 3 или DDS DXT 5 и содержать альфа канал соответственно.
Edge Blend - данный параметр доступен в случае если вы используете Alpha compare. Он имитирует стандартный alpha blended. В случае если данная функция не задействована, текстура будет выглядеть резкой
Reference value - величина 0-255 которая контролирует сглаженность альфа канала.
Alpha Blend - при использовании данного параметра текстура использует имеющийся альфа канал без дополнительных сглаживаний. (Текстура должна быть в формате DXT3 или DXT5).
Additive - рендринг текстуры происходит таким образом, что весь черный цвет в текстуре становиться прозрачным.
With detail texture - текстура детализации может использоваться только с нормальными текстурами, не использующими альфа канал. Если вы используете текстуру детализации, то в данной строке указывается имя текстуры и путь к ней.
Reflection - карта отражения. Вы можете использовать как обычные текстуры, так и кубические карты отражения сохраненные в формате DDS.
Gloss - имя и путь используемой карте блеска (gloss map). Карта блеска контролирует силу псевдо-отражения.
Light Layer Texture - данный параметр не используется.

Псевдоотражения от извлечения к использованию

Поскольку движок MaxFX 2.0 достаточно старый мы не можем позволить использовать очень, много, отражающих поверхностей, которые обрабатывались бы в реальном времени. Тем более мы не можем использовать их на небольших динамических объектах. В данном случае нам помогут текстуры с псевдоотражениями, то есть отражениями, которые предварительно сохранены в графический файл. Чаще всего эффект псевдоотражения достигается за счет использования двух отдельных текстур Reflection и Gloss, примененных к основной диффузной текстуре. Но давайте обо всем по порядку.
Reflection map – является картой искусственного отражения, которая содержит собственно картинку отражения, точнее она может представлять не только одно обычное изображение, а целый комплект из шести изображений. По одной картинке на каждое направление в трехмерном пространстве. Называется такая карта отражения кубической. Используют данные изображения формат DDS DXT! С использованием mipmaps.
===
===
Слева на право: 1. обычная карта отражения (одиночная), 2. кубическая карта отражения (вид из обычного XnWiev), 3. кубическая карта отражения (но уже открытая в Adobe Photoshop).
Gloss map – является картой блеска и отвечает не только за общую интенсивность (отражение может быть четким или блеклым) но и за собственно наличие самого отражения на поверхности. По своей сути карта блеска, является копией диффузной текстуры, с поправкой на то что изображена в черно-серых тонах. Где черный цвет это полное отсутствие отражения на поверхности, а белый цвет соответственно самое четкое отражение на поверхности. Используя данное свойство, глосс карт вы можете имитировать очень правдоподобные царапины на полированной поверхности метала.
===
===
Слева на право: 1. стандартная карта блеска для металла, 2. карта уже в редакторе, 3. конечный материал с применением Gloss и Reflection карт.
Вы можете создавать карты отражения самостоятельно, а может прибегнуть к использованию уже созданных разработчиками Max Payne 2. При использовании утилиты ldb2rip карты отражения по каким-то причинам не извлекаются. По этому, прибегнем к использованию сторонних программ, в данном случае нам поможет программа чешской фирмы Nova Software – Extractor 2.4.
Итак, запускаем программу, выбираем нужный формат – dds. Затем указываем файл для сканирования, возьмем, например 04_Warehouse.ldb и жмем кнопку «Начать» После окончания сканирования выбираем все найденные файлы и жмем + в левом нижнем углу окна, затем нажмите кнопку «Извлечь»… Все текстуры извлечены. Зайдите в папку с извлеченными файлами и ищите нужные вам текстуры. Программа работает таким образом, что текстуры карт Gloss и Reflection всегда находятся в самом конце. Найти их достаточно просто поскольку выглядят они весьма специфично.
===
===
Рассматривать создание Gloss карт не имеет смысла, так как очень легко понять, как они устроены, если посмотреть на карты, предложенные разработчиками. В конце концов, здесь все зависит от вашего умения пользоваться Photoshop’ом. А вот создание карт Reflection скорее дело техники, чем ваших рук. Что бы сделать правдоподобное отражение комнаты у объектов сцены. Вам следует построить куб в самом центре нужной комнаты. Выберите построенный объект и в режиме F5 и щелкнув по объекту выберите Generate Cubic Reflection Map (Генерировать кубическую карту отражения) После этого выберите разрешение будущей карты. Чем больше объект тем больше разрешение должно быть у карты отражения. Хотя чаще всего идеальный вариант это 128х128. По умолчанию после генерации карта сохраняется в tga формате в развернутом виде. Что бы использовать ее откройте полученную карту в Photoshop и сохраните в формате DDS DXT1. В случае необходимости вы можете ее подкорректировать. Важно отметить, что в момент генерации вы должны убрать координатную сетку и другие подобные «ненужные» детали – таким образом, что бы картинка в редакторе выглядела идентично той, что будет в игре. В противном случае все эти прелести вы будите наблюдать на вашей карте. Кстати возможно в некоторых случая вам может пригодиться обесцвечивание карты отражения или снижение уровня ее контрастности. У разработчиков к слову практически все карты сделаны с минимальной контрастностью.
Естественно в случае использования текстур с RM и GM объект должен использовать Polygroups с активными параметрами Smooth Lightmaps Smooth Geometry. В противном случае текстура будет отображаться не совсем корректно. Учитывая то что текстура отражения копирует координаты диффузной текстуры, все нестыковки на гранях будут заметны даже с использованием полигональных групп. По этому при текстурировании сложных объектов используйте копирование координат текстур.

Эффект хромированного металла

Кстати Reflection карты можно использовать не совсем стандартным образом. Предположим, что вы решили сделать объект из металла, который имеет идеально ровную отражающую поверхность (идеальный аналог в данном случае хромированный металл). Этот эффект очень легко достичь используя вместе с диффузной текстурой Reflection map. В нашем случае Reflection map должна иметь минимальную контрастность для усиления эффекта металлической поверхности. Собственно на этом все так как в этом и заключается основная фишка данного трюка, мы используем только Reflection map без Gloss map, что и позволяет достичь нам нужного эффекта. Единственный недостаток данного метода в том, что объект использующий текстуру только с Reflection map, в темных помещениях очень сильно поглощает свет и на фоне остальных объектов выглядит слишком темным. Из этой ситуации есть, пусть не идеальный но, выход. выберите объект и принудительно выберите ему освещение.

Текстуры детализации

Текстуры сам по себе вещь достаточно древняя и использовалась она еще во времена первой части Max Payne. К сожалению ни отечественные моддеры ни западные в своих картах данный эффект не используют. Не знаю с чем это связанно так как сделать текстуру детализации достаточно просто. Полученный эффект конечно нельзя сравнить с современным эффектом бамп маппинга. Но придать картинке какое-то разнообразие он вполне способен.
Итак, рассмотрим структуры текстуры детализации для использования ее в Max Payne 2. Для этого совершим краткий экскурс в далекое прошлое, если быть точнее в Max Payne 1.
Если распаковать ресурсы данной игры то в …Max Payne\data\database\sharedtextures можно найти текстуры детализации для разных поверхностей представленным файлами в формате .jpg и .pcx - соответственно растровое изображение и его альфа канал. Мы не будем использовать эти форматы, а используем более современный и удобный dds. Для проведения эксперимента возьмем ТД дерева.
===
===

1. Растровое изображение, 2. Альфа канал.

Откроем в Photoshop оба файла и сделаем дубликат канала у растрового изображения в полученный дубликат скопируем альфа-канал. Проверьте что бы режим изображения был установлен в RGB Color. Теперь сохраните полученный файлt в формате DDS DXT3 без mipmaps. Теперь применим полученную текстуру детализации на какую-либо текстуру дерева.
Как видите результат достаточно неплохой. Но использование текстур детализации из игры 2001 года не самая хорошая идея. Я считаю что в STALKER текстуры и качественнее, и разрешение у них побольше. Единственный недостаток в том что если их наложить в редакторе Max ED оригинальная текстура становится как бы немного белесой. Этого можно избежать, для этого откройте ТД и понизьте у альфа канала яркость и контрастность до такой степени, что бы он стал похож на тот, который представлен выше. С самой текстурой тоже надо сделать небольшие изменения – обесцветить ее и повысить контрастность. Вот и все ТД из сталкера готова к нормальному употреблению в Max Payne 2.

Файл Flares. Эффекты бликов

Ну и напоследок, хотя это касается материалов, достаточно посредственно, приведу параметры настройки эффекта Flare
TextureFilename - файл, используемый как графическая основа для эффекта блика. Во время использования применяется эффект блендинга (черный цвет в изображении автоматически становится прозрачным).
Directional - в случае если включена данная функция эффект ориентируется на ось Z. То есть основное излучение эффекта сияния направлено по оси Z. В противном случае эффект отображается по всем осям.
DirExp Hotspot - данный параметр это подобие степени интенсивности ярких участков. Чем выше значение данного параметра, тем более высокая плотность света.
Size - данный параметр задает диаметр эффекта сияния в метрах.
Color - данный параметр задает цвет эффекта, и состоит из трех составляющих типа ( 255.0, 255.0, 255.0 )
Intensity - данный параметр является множителем величины цветности.
Rotation - данный параметр задает исходную величину поворота в градусах.
RotationSpeed - данный параметр задает скорость вращения в градусах согласно изменению расстояния от эффекта до персонажа.
UpdateInterval - данный параметр задает количество пропущенных кадров.