Вопрос Imgui 3d filled circle

Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2017
Сообщения
386
Реакции[?]
32
Поинты[?]
8K
В чите когда делаю рендер 3д залитого круга через треугольники - видны линии 1px между треугольниками, а когда в круг заходишь - какая то часть треугольников под тобой не рисуется
Пример:
1659116658721.png
Код круга:

C++:
void render::TriangleFilled(float x1, float y1, float x2, float y2, float x3, float y3, Color clr)
{
    draw_list->AddTriangleFilled(ImVec2(x1, y1), ImVec2(x2, y2), ImVec2(x3, y3), GetU32(clr));
}

void render::DrawRing3D(int16_t x, int16_t y, int16_t z, int16_t radius, uint16_t points, Color color1, Color color2, float thickness)
{
    Vector pos = Vector(x, y, z);
    float step = (float)PI * 2.0f / points;
    for (float a = 0; a < (PI * 2.0f); a += step)
    {
        Vector start(radius * cosf(a) + pos.x, radius * sinf(a) + pos.y, pos.z);
        Vector end(radius * cosf(a + step) + pos.x, radius * sinf(a + step) + pos.y, pos.z);
        Vector start2d;
        Vector end2d;
        Vector Position;

        if (math::world_to_screen(start, start2d) &&
            math::world_to_screen(end, end2d) && math::world_to_screen(pos, Position))
        {
            render_line(start2d[0], start2d[1], end2d[0], end2d[1], color1);
            TriangleFilled(Position.x, Position.y, end2d.x, end2d.y, start2d.x, start2d.y, color2);
        }
    }

}
Вызов:
C++:
 render::DrawRing3D(m_vecStartPosition.x, m_vecStartPosition.y, m_vecStartPosition.z, 32 * flAnimationProgress, 32, Color(255, 255, 255, 150), Color(255, 255, 255, 100), 2);
Как сделать нормально рендер такого круга?
 
zzz
Участник
Статус
Оффлайн
Регистрация
25 Сен 2017
Сообщения
899
Реакции[?]
306
Поинты[?]
6K
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2017
Сообщения
386
Реакции[?]
32
Поинты[?]
8K
Сверху Снизу