Координаты текстуры Сферы DirectX
-
20-09-2019 - |
Вопрос
У меня есть сфера с нормалями для каждой вершины, и я пытаюсь получить координаты текстуры для объекта, используя алгоритм:
U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5
С текстурой в горошек я получаю:
Вот тот же объект без примененной текстуры:
Проблема, на которую я обращаю особое внимание (я знаю, что их несколько), заключается в несоосности текстур.
Я склонен полагать, что проблема заключается в моем использовании этих алгоритмов, поскольку зеркальная подсветка (которая не использует никаких текстур, но полагается на правильность нормалей), похоже, не имеет артефактов.
Есть какие-нибудь идеи?
Решение
Разве вы не можете просто настроить свои UVS, пока строите сферу?
Тогда:
u = theta / (2 * PI);
v = phi / PI;
Редактировать:Я мог бы также указать , что , вероятно , что - то не так с вашими нормалями , учитывая черную точку сверху ...Также появляются выделенные линии вдоль краев многоугольника.Это снова указывает на вероятные сомнительные нормали ...