Текущее время: 06 апр 2020, 10:44

Часовой пояс: UTC + 2 часа




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Создание простой текстуры
СообщениеДобавлено: 25 ноя 2010, 12:31 
Не в сети
Модератор
Аватара пользователя

Зарегистрирован: 28 июл 2010, 18:04
Сообщения: 686
Что такое текстура?
Графическое покрытие в игре - стены, пол, потолок и т.д..

Текстура в Counter-Strike Source, что это?

Это так званый материал - 2 файлика с расширением vtf и vmt.

Что такое VTF?
Фактически это сама текстура, графическая картинка, в перекодированом и сжатом формате TGA. Бывают разные типа vtf текстур - базовые, бампы(карты рельефа, спрайты...)

Что такое VMT?

Файлик описания свойств материала(рельеф, предназначение, тип(камень, стекло, трава...)) предоставленый в текстовом формате.

Что такое базовая текстура?

Основное изображение текстуры.

Что такое бамп(или карта рельефа)?
Бамп(карта рельефа, нормал мап) - текстура, которая создана из базовой текстуры или нарисована отдельно и изображена только в 3х базовых цветах которые не смешиваются - красный, зеленый, синий. Даёт представление движку в виде цветовой карты о рельефе текстуры, к примеру шершавости кирпича.

Пример каменной стены(слева - базовая текстура, справа - бамп):
Изображение
Соединение базовой текстуры и бампа в материал и отображение их в игре:
Изображение

Для создания базовой текстуры нужно тайленое изображение(у нас кирпичной стены) 512 на 512 пикселей и выше(для движка Сурс) в режиме RGB 8 бит и сохраненное с шаблоном Compressed Texture с помощью прикрепленного в атаче плагина фотошопа.

Для создания бампа нужно перевести базовую текстуру в цвета бампа(удобно делать с помощью фильтра normal map в плагине к фотошопу Filter Forge - скачать) и сохранить с шаблоном Normal map плагина из атача.

Называть текстуры переведенные в vtf надо маленькими латынскими буквами, к бамп текстурам дописывать _normal.

Допустим мы создали 2 текстуры - brick.vtf(базовая) и brick_normal.vtf(бамп).

Осталось соединить их в материал.

Как создать vmt?
Создаем текстовый документ с названием базовой текстуры(у нас - brick) и расширением *.vmt. Открываем его блокнотом и прописуем:
"LightmappedGeneric"
{
"$basetexture" "Brick/brick"
"$bumpmap" "Brick/brick_normal"
"$surfaceprop" "brick"
"%keywords" "c17downtown"
}


Сохраняем в папке cstrike/materials/Brick 3 файлика - brick.vtf, brick_normal.vtf, brick.vmt. Вот и наша текстура.

В SDK есть программка VMT Create которая создает этот текстовый файлик при указании параметров.


Вложения:
vtf_plugin.zip [230.33 КБ]
Скачиваний: 192
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание простой текстуры
СообщениеДобавлено: 25 ноя 2010, 13:43 
Не в сети
Модератор
Аватара пользователя

Зарегистрирован: 28 июл 2010, 18:04
Сообщения: 686
VMT - текстовый файлик текстуры который описывает её свойства. Я розскажу про синтаксис и параметры которые в нем указываются.

"LightmappedGeneric" - шейдер, пишется в начале, указывает тип освещения текстуры. Используется для освещения на брашах.
"VertexLitGeneric" - шейдер, пишется в начале, указывает тип освещения текстуры. Используется для освещения на моделях.
"UnLitGeneric" - шейдер, текстура на которую не действует свет, она не реагирует на контрастность или тени, как нарисуете - так и будет изображена.
"WorldVertexTransition" - шейдер, нужен для работы блендинг текстуры, которую с помощью альфы делает мягкий переход с одной на другую.
"Water" - шейдер, нужен для созданий воды с соответствующими параметрами.
"Refract"- шейдер, работает корректно только на моделях, не факт что будет нормально работать до ХЛ2ЕП2(но я лично видел, жаль ток на моделях пашет).

Используется только один из этих типов освещения. Никогда не применяйте на брашах текстуры с типом освещения "VertexLitGeneric" .

"$basetexture" - указывает путь в базовой текстуре начиная с папки materials и без расширения. Например для текстуры primer.vtf в папке cstrike/materials/agri/ нужно использовать параметр так: "$basetexture" "agri/primer.vtf"

"$surfaceprop" - указывает тип поверхности(металл, камень, стекло..). Регулирует какие частички отскакивают от текстуры при попадании по ней пули, какой звук при попадании или ходьбе по ней. Пример : "$surfaceprop" "brick" сделает текстуре кусочки кирпича при попадании и соответствующий звук. Типы поверхностей которые можно использовать смотреть тут.

"$envmap" - указывает отражения текстуры. Отражение просчитывает от ближайшей ентити env_cubemap. Она ставится в определенных местах для правильного отображения и сохраняет 6 скриншотов по бокам, вверху и снизу.
Пример отображения комнаты на моделях с текстурами в которых указан этот параметр:
Изображение
Для такого отображения следует прописать "$envmap" "env_cubemap" - тогда отображения будет братся с ближайшего env_cubemap.

"$envmaptint" - устанавливает силу отражения текстуры, дробное значение от 0 до 1. Также можно ввести значение RGB для силы отражения определенного канала цвета. Цвета идут в порядке - красный зеленый синий. Пример: "$envmaptint" "0.5" или "$envmaptint" "32 55 255".

"$envmapcontrast" - устанавливает контраст текстуры. Целое число - 0 или 1.

"$envmapsaturation" - устанавливает цветность отражения. Целое число - 0 или 1.

"$envmapframe" - устанавливает кадр первой анимации отображения если такая есть? Числовое значение.

"$basealphaenvmapmask" - устанавливает видимую область отражения которая рисуется в альфа канале базовой текстуры. Светлее - неотражающие области, темнее - отражающие.

"$normalmapalphaenvmapmask" - устанавливает видимую область отражения которая рисуется в альфа канале текстуры бампа. Черный с белым работают наоборот чем в $basealphaenvmapmask: черный - неотражающие поверхности, белый - отражающие.

"$selfillum_envmapmask_alpha" - использует нарисованое в альфа канале базовой текстуры изображения для отображения совместно с параметром $selfillum.

"$selfillum" - придает материалу эффект "Glow" свечения. Целое число - 0 или 1. Также можно задать цвета свечения по RGB.

"$translucent" - параметр который имеет 2 значения - 0 и 1, регулирует видимость текстуры через другие текстуры.
Пример:
Изображение
Иногда, некоторые параметры как $envmap выключают $translucent.

"$alpha" - параметр регулирующий видимость текстуры. Дробное число от 0 до 1.

"$nocull" - устанавливает видимость текстур с другой стороны, применяется на func_detail, на простых брашах неимеет эффекта. Значения только 0 или 1.

"$reflectivity" - по идее отражение, если чесно то незнаю правильной работы :) ссылка на источник - link. Кто переведёт грамотно - поставлю плюс) и заодно добавлю в тутор. Насколько знаю используется только при создании воды для отражений не пo cubemap, а четких динамических отражений. Будет тутор по созданию воды - там отпишу.

"$bumpmap" - указывает путь к текстуре бампа, карты рельефов определяющий правильный рельеф и тени от него.

"$normalmap" - как $bumpmap, но для DirectX 9 и выше, чаще используется при создании текстур воды.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на форуме

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Copyright WanderGame © 2010
WanderGame в ВКонтакте - http://vkontakte.ru/club13851583