Правильное текстурирование треугольников SFML (3д)
Я делаю свой 3д
движок и хочу текстурировать треугольники. Я знаю что так может 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
Разные треугольники на одной гране (применяется отсечение ,так что треугольников > 2):