Вопрос Как сделать градиент-текстуру на сюрфейсах?

Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
660
Реакции[?]
396
Поинты[?]
16K
Код:
void render::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;

    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x, y + i, width, 1, colGradient);
    }
}

void render::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;

    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x + i, y, 1, height, colGradient);
    }
}
void render::rect_filled_fade(int x, int y, int w, int h, Color color, int a1, int a2) {
    g_csgo.m_surface->DrawSetColor(color);
    g_csgo.m_surface->DrawFilledRectFade(x, y, x + w, y + h, a1, a2, false);
}
 
Начинающий
Статус
Оффлайн
Регистрация
5 Авг 2021
Сообщения
19
Реакции[?]
1
Поинты[?]
0
Код:
void render::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;

    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x, y + i, width, 1, colGradient);
    }
}

void render::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;

    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x + i, y, 1, height, colGradient);
    }
}
void render::rect_filled_fade(int x, int y, int w, int h, Color color, int a1, int a2) {
    g_csgo.m_surface->DrawSetColor(color);
    g_csgo.m_surface->DrawFilledRectFade(x, y, x + w, y + h, a1, a2, false);
}
Можно позаимствовать?)
 
Mersiles the best
Начинающий
Статус
Оффлайн
Регистрация
2 Авг 2019
Сообщения
191
Реакции[?]
15
Поинты[?]
1K
Код:
void render::DrawRectGradientVertical(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)height;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)height;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)height;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)height;

    for (float i = 0.f; i < height; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x, y + i, width, 1, colGradient);
    }
}

void render::DrawRectGradientHorizontal(int x, int y, int width, int height, Color color1, Color color2)
{
    float flDifferenceR = (float)(color2.r() - color1.r()) / (float)width;
    float flDifferenceG = (float)(color2.g() - color1.g()) / (float)width;
    float flDifferenceB = (float)(color2.b() - color1.b()) / (float)width;
    float flDifferenceA = (float)(color2.a() - color1.a()) / (float)width;

    for (float i = 0.f; i < width; i++)
    {
        Color colGradient = Color(color1.r() + (flDifferenceR * i), color1.g() + (flDifferenceG * i), color1.b() + (flDifferenceB * i), color1.a() + (flDifferenceA * i));
        render::rect(x + i, y, 1, height, colGradient);
    }
}
void render::rect_filled_fade(int x, int y, int w, int h, Color color, int a1, int a2) {
    g_csgo.m_surface->DrawSetColor(color);
    g_csgo.m_surface->DrawFilledRectFade(x, y, x + w, y + h, a1, a2, false);
}
Мне не рект филед нужен а просто текстура градиента. Она мне нужна для заливки Полигона
 
t.me/maj0rblog
Дизайнер
Статус
Оффлайн
Регистрация
6 Окт 2018
Сообщения
976
Реакции[?]
619
Поинты[?]
12K
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
660
Реакции[?]
396
Поинты[?]
16K
Мне не рект филед нужен а просто текстура градиента. Она мне нужна для заливки Полигона
0-0 на форуме и на юц(ноад) лежит код для супримаси, с рендером текстур на сюрфейсе
 
Сверху Снизу