в какой системе координат нормальный вектор рассчитывается по карте высот в? - PullRequest
1 голос
/ 05 июня 2019

Я прочитал много материала о карте высот и карте нормалей, и у меня много вопросов:

Мы можем сгенерировать карту нормалей из карты высот:

Если мы имеем в S и Tнаправление:

S(i,j)= <1,0,aH(i+1,j)−aH(i−1,j)>
T(i,j)= <0,1,aH(i,j+1)−aH(i,j−1)>

тогда мы можем вычислить нормальное значение N:

N(i,j)= (S(i,j) x T(i,j))normalize()

, затем мы сопоставим (Nx, Ny, Nz) с (r, g, b), это методмы используем, чтобы сгенерировать карту нормалей из карты высот.

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

Мои вопросы:

  • В какой системе координат находится этот нормальный вектор?

    Я чувствую, что это просто на поверхности объекта и указывает на нормальное.Является ли это так называемым пространством TBN?

    Но здесь нет информации о T и B.

  • Если t - касательное пространство, то для разных треугольников, у нас будет другой t, поэтому у другого треугольника будет другой вектор T / B / N?

  • Как рассчитать TBN по карте нормалей?Я немного запутался, читая книгу, и смотрю на эту матрицу:

    s1,t1 = < s1 − s0,t1 − t0 >
    s2,t2 = < s2 − s0,t2 − t0 >
    
       | Tx Ty Tz |              | s1 t1 | | Q1x Q1y Q1z |
       | Bx By Bz | = inverse of | s2 t2 | | Q2x Q2y Q2z |
    

    Что означают эти s2 и s1, я знаю (Q1x Q1y Q1z), они (x, y, z) также (r, g, b) значение из карты нормалей, s2 и s1 обозначает местоположение (x, y), местоположение пикселя на карте нормалей?

    enter image description here

...