Em uma Matriz TBN, os vetores normal, tangente e tangente sempre são perpendiculares?

Isso está relacionado a um problema descrito em outra pergunta (imagens lá):

Problemas de sombreamento Opengl - artefatos de reflexão de luz estranhos

Eu tenho um importador obij que cria uma estrutura de dados e calcula as tangentes e bitangents. Aqui estão os dados para o primeiro triângulo no meu objeto:

Minha compreensão do espaço tangente é que o normal aponta para fora do vértice, a tangente é perpendicular (ortogonal?) Ao vetor normal e aponta na direção do positivo S na textura, e o bitangente é perpendicular a ambos. Eu não tenho certeza do que você chama, mas eu pensei que esses 3 vetores formavam o que se pareceria com um eixo x, y, z girado ou transformado. Eles não seriam 3aleatoriamente vetores orientados, certo?

Também meu entendimento: as normais em um mapa normal fornecem um novo vetor normal. Mas nos mapas de textura do espaço tangente não existe uma orientação embutida entre a normal codificada em RGB e a normal em por vértice. Então você usa uma matriz TBN para preencher a lacuna e colocá-los no mesmo espaço (ou obter a iluminação no espaço certo).

Mas então eu vi os dados do objeto ... Minha estrutura tem 270 vértices e todos eles têm um 0 para a tangente Y. Isso é correto para dados tangentes? Essas tangentes são como um espaço normal do vértice ou algo assim? Ou eles simplesmente parecem completamente errados? Ou estou confuso sobre como isso funciona e meus dados estão certos?

Para chegar mais perto de resolver o meu problema na outra questão, preciso ter certeza de que meus dados estão corretos e minha compreensão de como funciona a matemática espacial de iluminação tangente.

questionAnswers(1)

yourAnswerToTheQuestion