Как мне создать карту нормалей Object-Space из карты высот?
Я могу преобразовать свою существующую карту высот в карту нормалей, выбрав окружающие пиксели, как в этом вопросе Генерация карты нормалей из карты высот? кроме того, что я делаю это на процессоре.
У меня есть сфера, которую я хочу, чтобы карта нормалей в объектном пространстве. Как применить приведенную выше карту нормалей к нормалям на вершинах моей сферы?
2 ответа
Карты нормалей не изменяют нормали вершин. Они используются для деталей меньше вершин.
В своем фрагментном шейдере найдите нормаль по координатам текстуры фрагмента и измените нормаль фрагмента с помощью него.
Как указывалось ранее, нормальное отображение выполняется для каждого пикселя, поэтому применение его к вершинам вашей сферы не будет работать.
В вашем фрагментном шейдере вы должны указать / вычислить тангенс и битангенс вместе с нормальными векторами сетки.
Затем вы можете использовать матрицу 3x3 нормалей, касательных и битангентных векторов и вектор нормали, который вы прочитали из карты нормалей, чтобы вычислить новый вектор нормалей.
Здесь есть отличное руководство по этой теме: http://ogldev.atspace.co.uk/www/tutorial26/tutorial26.html