Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Как работать с материалами чамсов?

Keep Ev0lving, Stay Fatal
Эксперт
Эксперт
Статус
Оффлайн
Регистрация
6 Фев 2018
Сообщения
1,559
Реакции
588
Простите, но я серьёзно еблан и не умею делать их правильно нахуй
Увидел ебучий код с юц глой чамсов:
Код:
Expand Collapse Copy
std::ofstream("csgo/materials/glowOverlay.vmt") << R"#("VertexLitGeneric" {
 
    "$additive" "1"
    "$envmap" "models/effects/cube_white"
    "$envmaptint" "[1 1 1]"
    "$envmapfresnel" "1"
    "$envmapfresnelminmaxexp" "[0 1 2]"
    "$alpha" "0.8"
})#";
И сука да, я увидел хуету "$envmaptint" "[1 1 1]" , которая закрепляет белый цвет
НО ЕСЛИ Я ЕЁ УБЕРУ НИХУЯ НЕ МЕНЯЕТСЯ ОТ СЛОВА НАХУЙ
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
auto var = MATERIAL->FindVar("$envmaptint", nullptr);
var->SetVecValue(config.R, config.G, config.B);
 
auto var = MATERIAL->FindVar("$envmaptint", nullptr);
var->SetVecValue(config.R, config.G, config.B);
- если у тебя есть IMaterialVar
если у тебя его нет -
C++:
Expand Collapse Copy
bool found = false;
auto pVar = material->FindVar("$envmaptint", &found);
if (found && pVar)
{
      (*(void(__thiscall**)(int, float, float, float))(*(DWORD*)pVar + 44))((uintptr_t)pVar, rgba.r() / 255.0f, rgba.g() / 255.0f, rgba.b() / 255.0f);
}
 
Кста красивый материал
Кста я так понимаю что тебе $ignorez нахуй не нужен?
1580143700062.png
 
Я конечно извиняюсь нахуй, но как сделать такую хуйню с IMaterial
Что блять?

У нас есть материал чамсов.
C++:
Expand Collapse Copy
IMaterial* Glow = nullptr;
После объявления мы в него что-то загружаем.
C++:
Expand Collapse Copy
Glow = g_MatSystem->FindMaterial("glowOverlay", TEXTURE_GROUP_OTHER);
Далее мы хотим изменить цвет И ТУТ, мы вместо MATERIAL ставим своё название. В примере я указал "Glow", так что пишем -
C++:
Expand Collapse Copy
bool found = false;
auto pVar = Glow->FindVar("$envmaptint", &found);
if (found && pVar)
{
      (*(void(__thiscall**)(int, float, float, float))(*(DWORD*)pVar + 44))((uintptr_t)pVar, rgba.r() / 255.0f, rgba.g() / 255.0f, rgba.b() / 255.0f);
}
P.S. Надеюсь понятно что такое rgba.r(), rgba.g(), rgba.b(), rgba.a(), но на всякий случай скажу что это цвета.
 
Что блять?

У нас есть материал чамсов.
C++:
Expand Collapse Copy
IMaterial* Glow = nullptr;
После объявления мы в него что-то загружаем.
C++:
Expand Collapse Copy
Glow = g_MatSystem->FindMaterial("glowOverlay", TEXTURE_GROUP_OTHER);
Далее мы хотим изменить цвет И ТУТ, мы вместо MATERIAL ставим своё название. В примере я указал "Glow", так что пишем -
C++:
Expand Collapse Copy
bool found = false;
auto pVar = Glow->FindVar("$envmaptint", &found);
if (found && pVar)
{
      (*(void(__thiscall**)(int, float, float, float))(*(DWORD*)pVar + 44))((uintptr_t)pVar, rgba.r() / 255.0f, rgba.g() / 255.0f, rgba.b() / 255.0f);
}
P.S. Надеюсь понятно что такое rgba.r(), rgba.g(), rgba.b(), rgba.a(), но на всякий случай скажу что это цвета.
Я так понимаю твой вариант просто наложится на оригинальную модельку, а не заменит ее?
 
Назад
Сверху Снизу