Вопрос

У меня есть сфера с нормалями для каждой вершины, и я пытаюсь получить координаты текстуры для объекта, используя алгоритм:

U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5

С текстурой в горошек я получаю:

Misaligned textures

Вот тот же объект без примененной текстуры:

No textures

Проблема, на которую я обращаю особое внимание (я знаю, что их несколько), заключается в несоосности текстур.

Я склонен полагать, что проблема заключается в моем использовании этих алгоритмов, поскольку зеркальная подсветка (которая не использует никаких текстур, но полагается на правильность нормалей), похоже, не имеет артефактов.

Есть какие-нибудь идеи?

Это было полезно?

Решение

Разве вы не можете просто настроить свои UVS, пока строите сферу?

Тогда:

 u = theta / (2 * PI);
 v = phi / PI;

Редактировать:Я мог бы также указать , что , вероятно , что - то не так с вашими нормалями , учитывая черную точку сверху ...Также появляются выделенные линии вдоль краев многоугольника.Это снова указывает на вероятные сомнительные нормали ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top