Garry's Mod

Garry's Mod

27 ratings
Основы материаловедения (металлы)
By Pro100_Red_Mushroom and 1 collaborators
Как-то не встретил ни одного гайда, раскрывающего интересный костыль для рендера на гмодовском бранче сурса. Так что решил написать самостоятельно, вдруг вам это поможет на голову поднять визуал ваших работ в мастерской.
Стоит понимать, что в руководстве рассматривается только шейдер $VertexLitGeneric.
2
   
Award
Favorite
Favorited
Unfavorite
Предисловие
Используемые программы:
  • Blender для запекания карты альбедо
  • VMT Editor[github.com] для удобного составления самого .vmt файла.
  • Materialize[boundingboxsoftware.com] для создания текстурных карт и масок.
  • Ну и любой удобный для вас растровый редактор.
Понадеемся, что вы уже знакомы с базовым созданием vmt материалов.

Практичнее всего организовать отдельную папку с картами экспонент, к которым можно будет удобно ссылаться в дальнейшем (это же применимо и для всех остальных универсальных карт)
Также не забываем разделять по материалам металлы и неметаллы — иначе закалебётесь настраивать спекулар маску.

PBR НЕ НУЖОН.
Так что перейдём сразу к делу
$phongexponenttexture и $phongalbedotint.
Из карты экспоненты нам понадобится её зелёный канал, что отвечает за маску оттенка блика (она устанавливает оттенок блика равным цвету соответствующего текселя на текстуре альбедо ($basetexture)). Чтобы его задействовать, обязательно надо указать $phongalbedotint 1 в материале. Это станет для нас дешёвой заменой карты металла.

И так, чем выше яркость пикселей в зелёном канале, тем ближе цвет блика к цвету альбедо (а стоит учесть, что именно для металлов характерен цветной блик). — Можно смело пихать вашу карту металла в этот канал, она будет работать исправно (в рамках рендера гмода).
детализировать красный канал (глянцевость, glossiness) необязательно — для металлов стоит установить сплошную яркость пикселей в 5-20, оно уже будет выглядеть презентабельно.

Так же можно нарисовать универсальную карту со сплошной заливкой текстуры, хоть 8х8 пикселей, в этом случае лучше конвертировать в BGR888, чтобы точно избежать артефактов:

  • Важно учесть, что после использования зелёного канала через ключ $phongalbedotint 1 интенсивность цветных бликов будет в разы меньше — придётся выкручивать фонг и конечно же углы Френеля (тут можно доводить до абсурдных значений выше единицы, сурс стерпит);
  • Учтите, ключ $phongalbedotint 1 работает тогда и только тогда, когда вы не трогали цвет бликов через $phongtint.
$lightwarptexture
Для металлов можно использовать лайтварп карту $lightwarptexture, подобную этой:


Это уменьшит температуру цвета на границах модели и может создать лёгкий эффект римлайта. Ну и не забывайте про сам $rimlight.

В итоге получаем следующий результат:
С $lightwarptexture:





Без $lightwarptexture:
$envmap
Ключ $envmap позволяет использование отражений.
Как параметр к ней обычно используется "env_cubemap". Если есть отдельная сферическая текстура (spheremap), подогнанная к сурсу, то можно использовать и ее, указав в параметре путь к ней.

С $envmap "models/reflections/cubetest":

(Здесь кастомная сферическая текстурка, хотя любая другая тоже может подойти)


Без $envmap:






Однако у этого метода есть огромный недостаток: отражения не учитывают текущую освещённость модели, ведь их интенсивность зависит только от собственной яркости.
Как явное последствие этого — модели могут блестеть в кромешной тьме.
Это можно кое-как решить использованием прокси, как это было сделано в https://gtm.steamproxy.vip/workshop/filedetails/?id=2459720887 (там же используется и отдельная карта отражений), но модель может часто пересвечиваться. Также все зависит от того, как маппер осветил свой уровень.
Примеры материалов



И как это все соответственно выглядит:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2831904880
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2831933591
Выделяются цвета побежалости, ну тут слабовато.


https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2831990076
Авторы
Автор: Nickolp











Редактор: Pro100_Red_Mushroom

3 Comments
ꑭ¦KLIM|FOX¦ꑭ 5 Apr @ 7:18am 
так, я уже скачал папку с приложеннием и пытаюсь в него войты через файл "VTFCmd" но он у меня чот не запускаеться.
Kazik The Gambler 13 Jul, 2022 @ 11:42am 
Мне в шараге этой пауаши хватило, а теперь ещё и в гаррис моде
DKONy 10 Jul, 2022 @ 9:30pm 
.