Как сделать rainbow wireframe hands?

Пользователь
Статус
Оффлайн
Регистрация
18 Июл 2016
Сообщения
435
Реакции[?]
109
Поинты[?]
0
Хочу сделать wireframe rainbow hands по типу как в кисуне
Сурс обычного WireFrame:
else if (HandsStyle == 3)
{
static IMaterial* OpenFlat = CreateMaterial(true, false, true);
static IMaterial* CoveredFlat = CreateMaterial(true, true, true);
IMaterial *wire_weapon = ChamsStyle == 1 ? CoveredFlat : OpenFlat;
float alpha = 1.f;
flColor[0] = (Menu::Window.GUITab.WireframeColorR.GetValue() / 255.f);
flColor[1] = (Menu::Window.GUITab.WireframeColorG.GetValue() / 255.f);
flColor[2] = (Menu::Window.GUITab.WireframeColorB.GetValue() / 255.f);
Interfaces::RenderView->SetColorModulation(flColor);
Interfaces::RenderView->SetBlend(alpha);
Interfaces::ModelRender->ForcedMaterialOverride(wire_weapon);
oDrawModelExecute(thisptr, ctx, state, pInfo, pCustomBoneToWorld);
}
 
Пользователь
Статус
Оффлайн
Регистрация
11 Апр 2017
Сообщения
263
Реакции[?]
38
Поинты[?]
0
Код:
static IMaterial* OpenFlat = CreateMaterial(true, false, true);
static IMaterial* CoveredFlat = CreateMaterial(true, true, true);
IMaterial *memes = 1 ? OpenFlat : CoveredFlat;

            static int counter = 0;
            static float colors[3] = { 1.f, 0.f, 0.f };

            if (colors[counter] >= 1.0f)
            {
                colors[counter] = 1.0f;
                counter += 1;
                if (counter > 2)
                    counter = 0;
            }
            else
            {
                int prev = counter - 1;
                if (prev < 0) prev = 2;
                colors[prev] -= 0.0005f;
                colors[counter] += 0.0005f;
            }




            Interfaces::RenderView->SetColorModulation(colors);
            Interfaces::ModelRender->ForcedMaterialOverride(memes);
 
midnight.im
Администратор
Статус
Оффлайн
Регистрация
1 Июл 2015
Сообщения
1,649
Реакции[?]
2,171
Поинты[?]
161K
На сколько я знаю создается два материала, один из них wireframe и накладывается поверх материала с заливкой цвета.
 
Сверху Снизу