Исходник Покраска любых материалов

Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
Покраска любого материала, всякие стекла, и т.д. (на них ColorModulate не действует)

C++:
bool bFound = false;
IMaterialVar* pMatVar= Material->FindVar("$envmaptint", &bFound);
if (bFound)
    (*(void(__thiscall * *)(int, float, float, float))(*(DWORD*)pMatVar+ 0x2c))((uintptr_t)pMatVar, rgba.r() / 255.f, rgba.g() / 255.f, rgba.b() / 255.f);

C++:
    bool bFound = false;
    IMaterialVar* pMatVar = Material->FindVar("$envmaptint", &bFound);
    if (bFound)
        (*(void(__thiscall * *)(int, float, float, float))(*(DWORD*)pMatVar+ 0x2c))((uintptr_t)pMatVar, rgba.r() / 255.f, rgba.g() / 255.f, rgba.b() / 255.f);

    Material->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, ignoreZ);
    Material->ColorModulate(rgba.r() / 255.0f, rgba.g() / 255.0f, rgba.b() / 255.0f);
    Material->AlphaModulate(rgba.a() / 255.0f);

    g_MdlRender->ForcedMaterialOverride(Material);

1570180315378.png1570180680243.png

Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Сверху Снизу