SteamDB

» » Создаём фейковую чёткость текстуры. [$detail]

Создаём фейковую чёткость текстуры. [$detail]

Нам понадобится...

  • Текстовый редактор, желательно Notepad++
  • Папка .../materials/detail/ существующая почти в любой Source игре.
  • Руки, растущие из нужного места.
  • Немного свободного времени.

Что такое $detail ?

$detail - это один из параметров, который прописывается в *.vmt для текстур Source Engine.
Этот параметр поддерживается практически всеми шейдерами.

$detail "detailplaster_detail_01" $detailscale "6.783" $detailblendfactor ".8" $detailblendmode "0"
Основные параметры
Параметр Описание $detail путь до текстуры $detailscale как часто текстура будет повторяться. 1 - это когда выбранная текстура будет растянута на всю основную $basetexture.
Свыше 1 уже будет повтор методом плитки, т.е. текстура в данном случае должна быть "бесшовная", чтобы не было видно явных стыков. $detailblendfactor На сколько явно будет видна детайл текстура смешиваясь с $basetexture. Адекватные параметр примерно от 0.0 до 3.0, более даёт сильную черноту. $detailblendmode Режим смешивания $detail и $basetexture.
Редко используемые параметры
Параметр Описание $detailtint Подкраска цветом $detail. Исполользуются параметры вроде "{255 255 255}" или "[0.2 5.0 1.8]" (RGB) $detailframe Анимированная $detail текстура (?). $detail_alpha_mask_base_texture Помогает смешивать текстуры шейдеру WorldVertexTransition. Используется только с ним, на брашах / displacement.

Режимы смешивания

Всего существует 12 типов смешивания. Извиняюсь, но я пратически не шарю в большинстве этих параметров, т.к. даже в интернете сложно найти подробное описание и визуализацию этих режимов. Я на 100% знаю только 0 и 5.

Режим Свойства 0 Самый обычный и стандартный режим. Обычное смешивание. 1 Additive режим, Режим, когда чёрный цвет на текстуре игнорируется. 2 Поддержка альфа канала $detail (?) 3 Crossfade - ??? 4 Blend over alpha - Режим смешивания на основе альфа канала $basetexture 5 Add post lighting - Режим, когда все цвета кроме чёрного на $detail текстуре как-бы начинают светиться поверх $basetexture. Чем больше параметр $detailblendfactor тем ярче будет свечение. 6 Additive selfillum - (?) 7 Alpha channel mix - use alpha channel of base to select between mod2x channels in r+a of detail (?) 8 Multiply - (?) 9 Detail - use alpha channel of detail to mask base (?) 10 SSBump - use detail to modulate lighting as an ssbump (?) 11 SSBump albedo - detail is an ssbump but use it as an albedo. shader does the magic here - no user needs to specify mode 11 (?) 12 No detail - не использовать $detail текстуру (?)

Визуальные примеры использования.

Для примера я буду использовать стены со своей ещё не вышедшей карты.
Где вы увидите, как можно из почти однотонной текстуры 512х512 сделать довольно таки детализированные стены, которые будут красиво смотреться, даже если стоять впритык и рассматривать как ваномас x).
  • Начнём с простого примера. Обычная почти белая текстура 512x512 нанесённая на стены (снизу) и та-же текстура, но уже с добавлением $detail текстуры (сверху).
  • Да, многие заметят, что стена становится более тёмная. Этого практически никак не избежать.
    Как вариант сделать $detail текстуру практически белой, но это даст меньший эффект детализации. Так-же затемнение зависит от $detailblendfactor (в моём случае это "2")
  • Если выставить $detailblendfactor "6" то получается слишком явная детализация, которая сильно зачерняет основную текстуру и будет "мельтешить" издалека.
    Так-же сильного мельтешения добавляет $detailscale, используйте с умом.
  • Далее я применяю например стандартную текстуру из папки mateials/detial "metal_detail_01.vtf"
  • Или например "rock_detail_01.vtf". Эта $detail текстура, используется практически на всех горах, которые можно увидеть, катаясь на багги в хл2 в главе Шоссе 17.

$detail текстура (часть) Эффект свечения
  • И ещё пример смешивания в режиме 5. Когда всё кроме чёрного с $detail светится поверх $basetexture (см. на руку).



Это интересно.

$detail текстура, не только добавляет детализации довольно мыльным текстурам, но и выполняет частично роль $bumpmap.
Если юзер выставляет практически минимальные настройки графики, когда $bumpmap отключается, то $detail текстура всё равно продолжает работать, оставляя внешний вид модели или карты на более высоком визуальном уровне, чем без $detail текстуры. скачать dle 10.6фильмы бесплатно