Почему я могу увидеть этот артефакт сферического отображения OpenGL в GLSL? - PullRequest
2 голосов
/ 08 декабря 2011

Globe Artifact

Я пытаюсь наложить текстуру глобуса на сферу. Я использую проекцию карты Carrée (Equirectangular), и есть этот меридиан, который имеет это «размывание». Что странно, так это то, что размытие не связано с особенностью в моей текстуре (которая происходит в Тихом океане в этом примере). Вместо этого дефект возникает около точки (s, t) = (0,5,?).

Я сделал что-то действительно глупое?

РЕДАКТИРОВАТЬ: И чтобы доказать, что модель не странно, вот то же самое на чайнике:

Teapot Artifact

1 Ответ

6 голосов
/ 08 декабря 2011

Вы не можете сгенерировать текстурные координаты подобным образом.

Проблема в том, что это действительно довольно просто.При 359 градусах координата текстуры S будет примерно равна 0,95 или около того.Близко к 1,0, но не равно 1,0.При 0 градусах, которые физически - это позиция, непосредственно примыкающая к последней позиции, координата текстуры будет равна 0,0.Таким образом, вы будете интерполировать между 0,95 и 0,0.Это не идет другим путем.

Это одна из многих причин, почему существуют кубические карты.Вы не можете обойти эту проблему без кубических карт или изменения топологии вашей сетки.

...