Правильное текстурирование треугольников SFML (3д)

Рейтинг: 0Ответов: 0Опубликовано: 05.06.2023

Я делаю свой движок и хочу текстурировать треугольники. Я знаю что так может OpenGL, но не знаю, как можно применить это в SFML. На данный момент текстурирование треугольников заключается в том, что я заполняю треугольник текстурой. При движении камеры куб (из треугольников) начинает "плыть", при отдалении от треугольника текстура очень сильно уменьшается (так, что саму текстуру не видно, только какой-то шум) + если подойти близко, можно увидеть, что текстура на грань куба не одна (так как 2 треугольника на грань), можете подсказать, как можно внедрить OpenGL и решить проблему или как-то поменять функцию заливки текстурой (когда я пытался сделать свою, ФПС падал до 0-3). Код отрисовки сейчас:

void TextureTriangle(Texture textr, vec3 color, vec3 dot1, vec3 dot2, vec3 dot3, RenderWindow &wind){
    ConvexShape Triangle(3);
    Triangle.setPoint(0, sfvec(dot1));
    Triangle.setPoint(1, sfvec(dot2));
    Triangle.setPoint(2, sfvec(dot3));
    Triangle.setTexture(&textr);
    Triangle.setFillColor(sfcolor(color));
    wind.draw(Triangle);
}

sfvec - моя функция для конвертации из моего vec3 в sf::Vector2f (формат dotN - {x, y, 0})

sfcolor - моя функция для конвертации из моего vec3 в sf::Color

Шум: 1

Разные треугольники на одной гране (применяется отсечение ,так что треугольников > 2): введите сюда описание изображения

Ответы

Ответов пока нет.