Это старый вопрос, но мне недавно пришлось столкнуться с той же проблемой.
Когда текстура обтекает, скажем, цилиндр, возникает естественный шов там, где сходятся края карты.
Полоса треугольников, пересекающих эту границу, имеет координаты текстуры, которые заставляют рендерер сжимать всю текстуру назад в эти треугольники.
Просто глядя на координату U: треугольник, который не пересекает край текстуры, будет иметь координаты текстуры в направлении против часовой стрелки.Однако, когда треугольник пересекает границу (например), вы попадаете с противоположным порядком намотки, потому что точка, пересекающая границу, отображается обратно на противоположную сторону текстуры.Обычно вы видите треугольник с одной или двумя текстурными координатами в диапазоне 0,9-0,9999 U, а остальные координаты в диапазоне 0-0,1.
Когда средство визуализации видит это, оно делает именно то, что должно: оно интерполирует координаты текстуры лица от 0,9 до 0,1, что включает в себя большую часть текстуры.Ваш шов - это то, на что похожа текстура, когда она сжимается назад в маленькое пространство.
Решение состоит в том, чтобы разделить вершины, которые пересекают границу, чтобы каждая из затронутых вершин дважды появлялась в списке.Первый будет иметь текстурные координаты на левом конце карты, а другой будет иметь все свои текстурные координаты на другом конце, чтобы ни один край не перекрывал текстуру.
Обратите внимание, что вы не изменяете значения XYZ для вершины: просто UV.
Также обратите внимание, что этого не происходит с поверхностями, которые не разделяют вершины между разнородными ребрами.Самолеты иммунны.Ваше изображение примера больше не находится в сети, поэтому я не могу убедиться, что это то, что с вами происходит, но, скорее всего, оно основано на вашем кратком описании.