Cálculo de dos vectores perpendiculares al tercer vector en 3D

Cuál es elmejor (el más rápido) ¿Cómo calcular dos vectores que son perpendiculares al tercer vector (X) y también perpendiculares entre sí?

Así es como estoy calculando estos vectores en este momento:

// HELPER - unit vector that is NOT parallel to X
x_axis = normalize(X);
y_axis = crossProduct(x_axis, HELPER);
z_axis = crossProduct(x_axis, y_axis);

Sé que hay infinitas soluciones para esto, y no me importa cuál será mi solución.

¿Qué hay detrás de esta pregunta? Necesito construir una matriz de transformación, donde sé qué dirección debe señalar el eje X (primera columna en la matriz). Necesito calcular los ejes Y y Z (segunda y tercera columna). Como sabemos, todos los ejes deben ser perpendiculares entre sí.

Respuestas a la pregunta(5)

Su respuesta a la pregunta