У меня есть ряд сферических координат долготы / широты для точек на сфере, которые мне нужно визуализировать. Для этого я преобразовал точки в декартовы координаты и построил сетку из треугольников, которую я могу визуализировать с помощью VTK. Пока работает.
Теперь я хочу использовать текстуру для модели сферы. Поэтому я преобразовал сферические координаты в текстурные координаты и назначил их каждой точке. Это работает для большинства поверхностных треугольников сферы, и результат выглядит приемлемым.
Но для треугольников на противоположной стороне основного меридиана, где оборачивается текстура, треугольники текстурированы неправильно: вместо того, чтобы повторять текстуру и отображать «поверх границы текстуры», вся текстура выдавливается на единый треугольник.
Вот изображение того, как это выглядит:
Линия zick-zack явно неправильная, вместо нее должна быть видна синяя линия. Вся текстура нанесена на треугольники, в результате чего появляются красные и белые полосы. Это имеет смысл, поскольку для рассматриваемых треугольников координаты текстуры охватывают все пространство текстуры.
Чтобы проиллюстрировать эту проблему, которая относится не только к сферам, но и ко всем закрытым объектам, я создал следующий рисунок:
В верхнем прямоугольнике мы видим треугольник, который охватывает границы текстуры с вычисленными координатами текстуры A, B и C. Поскольку текстуру можно разбить на мозаику, я бы хотел, чтобы треугольник отображался.
Нижний треугольник показывает, как координаты текстуры интерпретируются в настоящее время. Координаты ребер A, B и C совпадают, но на этот раз большая часть текстуры используется для треугольника, а не для наложения текстуры на границах.
Я уверен, что я совершил довольно распространенную ошибку, но пока не нашел ничего, что могло бы мне помочь. Есть намеки на меня?