Проблема со швом при отображении текстуры на сферу в OpenGL

Я пытаюсь создать геометрию для представления Земли в OpenGL. У меня есть более или менее сфера (хотя ближе к эллиптическому геоиду, чем Земля). Я отображаю текстуру земной поверхности (это, вероятно, проекция Меркатора или что-то подобное). UV-координаты текстуры соответствуют широте и долготе геометрии. У меня есть две проблемы, которые я не могу решить. Я использую OpenSceneGraph, но я думаю, что это общий вопрос программирования OpenGL / 3D.

Там есть текстурный шов, который очень очевиден. Я уверен, что это происходит, потому что я не знаю, как отобразить координаты UV в XYZ, где происходит шов. Я только сопоставляю координаты UV до последней вершины, прежде чем оборачиваться ... Вам нужно отобразить две разные координаты UV в одну и ту же вершину XYZ, чтобы устранить шов. Есть ли обычно используемый прием, чтобы обойти это, или я просто делаю это неправильно?

На полюсах происходит сумасшедшее искажение. Я предполагаю это, потому что я отображаю одну точку УФ на полюсах (для Земли я использую [0,5,1] для Северного полюса и [0,5,0] для Южного полюса). Что бы ты сделал, хотя? Я могу с этим смириться ... но это особенно заметно в сетках с низким разрешением.

Я приложил изображение, чтобы показать, о чем я говорю.

Ответы на вопрос(6)

Ваш ответ на вопрос