En una Matriz TBN, ¿son los vectores normal, tangente y bitangente siempre perpendiculares?

Esto está relacionado con un problema descrito en otra pregunta (imágenes allí):

Problemas de sombreado de Opengl - artefactos de reflexión de luz extraños

Tengo un importador .obj que crea una estructura de datos y calcula las tangentes y bitangentes. Aquí están los datos para el primer triángulo en mi objeto:

Mi comprensión del espacio tangente es que los puntos normales hacia afuera del vértice, la tangente es perpendicular (¿ortogonal?) Al vector normal y los puntos en la dirección de S positiva en la textura, y el bitangente es perpendicular a ambos. No estoy seguro de cómo se llama, pero pensé que estos 3 vectores formaban lo que se vería como un eje x, y, z girado o transformado. Ellos no serian 3al azar vectores orientados, ¿verdad?

También mi comprensión: las normales en un mapa normal proporcionan un nuevo vector normal. Pero en los mapas de textura de espacio tangente no hay una orientación integrada entre la codificación normal rgb y la normal por vértice. Por lo tanto, utiliza una matriz TBN para cerrar la brecha y colocarlas en el mismo espacio (u obtener la iluminación en el espacio correcto).

Pero luego vi los datos del objeto ... Mi estructura tiene 270 vértices y todos ellos tienen un 0 para la Tangente Y. ¿Es eso correcto para los datos de la tangente? ¿Son estas tangentes en un espacio de vértice normal o algo así? ¿O simplemente se ven completamente mal? ¿O estoy confundido acerca de cómo funciona esto y mis datos son correctos?

Para acercarme más a la solución de mi problema en la otra pregunta, necesito asegurarme de que mis datos son correctos y mi comprensión de cómo funciona la matemática de iluminación de espacio tangente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta