Пятница, 26.04.2024, 11:35
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Оцените мой сайт
Всего ответов: 632

Начало » Статьи » Туториалы по текстурированию (HL2)

Создание материалов
Материалы это то что движок Source использует для определения какие текстуры (textures) (в формате .VTX) и шейдеры (shaders) (функции, которые определяют как рендерятся материалы на экране) используются на поверхностях (surfaces) (модели, поверхностях мира, спрайты и т.д). Материал также может объявлять прокси (proxies) с помощью которых может расширяться и модифицироваться способ его рендеринга.
Материалы определяются в файлах .VMT (Valve Material). Это высокоуровневый скрипт который подробно описывает как будет рендериться материал.
Рассмотрим пример такого .VMT файла:

"LightmappedGeneric"
{
// Строковые значения заключаются в кавычки
"$basetexture" "shadertest/LightmappedTexture"
"$envmap" "shadertest/LightmappedTexture_envmap"

// Векторные занчения заключаются в кавычки
"$color" "[1 0 0]"
// Вещественный и целые значения *не* заключаются в кавычки

"$alpha" 0.5
"$nocull" 1
}
Первая строка в .VMT файле это имя шейдера который будет использован. Переменные шейдера для этого материала определены внутри секции заключенной в фигурные скобки. Обратите внимание, что не нужно использовать символ '=' между переменной материала и ее значением.
Можно создавать комментарии используя символы '//' в начале строки - движок просто проигнорирует все символы что находятся правее знака коментария.
Если шейдер требует “нейтрализации” до более упрощенного шейдера - для менее производительных компьютеров, вы можите указать опциональный блок для переопределения переменных материала указаных в главной секции.
Вот пример:

"LightmappedGeneric"
{
"$basetexture" "shadertest/LightmappedTexture"

"$envmap" "shadertest/LightmappedTexture_envmap"

// Если версия шейдера снижается до "LightmappedGeneric_DX7",
// то environment map определенный в данной секции будет использоваться вместо
// определенного выше. Поскольку переменная $basetexture не определена в этой секции,
// будет задействована та которая определена в главной секции.
"LightmappedGeneric_DX7"
{
"$envmap" "shadertest/OverrideEnvMap"
}

// Если версия шейдера снижается до "LightmappedGeneric_DX6",
// то переменная $basetexture определенная в данной секции будет задейстована вместо
// определенной выше. Поскольку переменная $envmap не определена в этой секции,
// будет задействована та которая определена в главной секции.
"LightmappedGeneric_DX6"
{
"$basetexture" "shadertest/OverrideTexture"
}
}
Еще одна вещь которую вы могли заметить в .VMT файлах - это специальные переменные начинающиеся символом '%'.
Например:

"UnlitGeneric"
{
"$envmap" "shadertest/shadertest_envmap"
"%tooltexture" "shadertest/shadertest_envmap"
}
Попросту говоря - такие переменные используются только утилитами и не используются движком в самой игре. Из переменных которые начинаются символом '%' скорее всего вам понадобятся только '%tooltexture", "%keywords", "%detailtype" и все которые начинаются словом "compile", например "%compileWater" или "%compileHint".
Компиляция текстур для Source
Движок Source использует файлы .VTX (Valve Texture) для хранения данных текстур. Эти файлы содержат не только данные полученные из источника тексутры, кроме того они хранят данне для каждого МИП-уровня (mip-level) использующегося для рендеринга тексутры на разном удалении от точки наблюдения. .VTX фйалы создаются из TGA файлов с 16, 24, или 32 битной глубиной цвета при помощи утилиты Vtex. Данная утилита использует TGA файл и опциональный текстовый файл, который описывает дополнительные параметры для компиляции тексутры. Создавая .VTX, утилита пытается найти и использовать эти два файла. TXT файл содержащий парамтеры, должен името то же имя (до расширения .txt) и находится в той же директории что и TGA файл подлежащий компиляции. For example: the test.tga file must be in the same directory as the test.txt file for the tool to link the files properly.
Если TXT файл не существует, Vtex автоматически генерирует пустой файл с правильным именем и в правильной директории.
Исходный TGA дложен существовать в под-директории materialsrc, в директории вашего мода MOD. Эта директория является "зеркальным" отображением директории materials повторяя ее стркутуру поддиректорий и файлов, это позволяет утилитам корректно определять исходные и конечные пути файлов с которыми они работают. Для примера, если вы компилируете TGA файл находящийся в директории MyMod/materialsrc/test, конечный .VTX файл будет помещен в директорию MyMod/materials/test.
Для компиляции текстуры, просто перетащите в проводнике оба TXT и TGA файла на значек Vtex, или запустите с коммандной строки Vtex указав в качестве параметра путь и общее имя файла.
Вот пример для компиляции с помощью bat файла:
set BIN_PATH=C:\Progra~1\valve\steam\SteamApps\username\sourcesdk\bin\
set TGA_PATH=C:\Progra~1\valve\steam\SteamApps\ИМЯ_ПОЛЬЗОВАТЕЛЯ\sourcesdk\sdkcontent\materialsrc\

%BIN_PATH%vtex.exe %TGA_PATH%console\background01
С помощью bat файлов можно создавать пакетную обработку сразу для нескольких текстур.

Утилита выводит сообщение что она создала файл и .VTX будет создан в директории materials в той поддиректории где размещен материал в исходной директории.
Внимание: для того чтоб Vtex корректно работала и определяла пути, переменнная среды VPROJECT должна быть правильно установлена для вашего мода.

.VMT файл описывает как будет рендериться .VTX файл на экране. Существует большое количество шейдеров которые могут использоваться для рендера текстуры. Для наяала можно использовать простой шейдер: LightmappedGeneric. Данный шейдер используется для поверхностей мира, которые могут получать lightmap-ы.
Простейшее определение этого шейдера:

"LightmappedGeneric"
{ "$basetexture "test/MyTexture" }
Это приведет к рендерингу ”test/MyTexture” .VTX файла непрозрачным с применением lightmap (карта освещения). Наиболее часто используется для тексутр применяемых на брашевых поверхностях (например стены). С созданием .VTX и .VMT файла, мы можем использовать эту тексутру на поверхностях при создании карт в Hammer.
Уже существуют специальные программы которые позволяют выполнять компиляцию через удобный интрефейс.

Источник: http://source-inside.ru/index.php?id=132

Категория: Туториалы по текстурированию (HL2) | Добавил: DetLeR (12.05.2007) | Автор: DarkLight
Просмотров: 1719 | Рейтинг: 5.0 |

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7