Un vector de la normal (ie, un vector perpendicular a un plano) es requerido frecuentemente durante la generación de un mesh y puede también ser útil en path following y otras situaciones. Dados tres puntos en el plano, digamos los puntos de las esquinas de un triángulo mesh, es fácil encontrar la normal. Escoja cualquiera de estos tres puntos y luego restelos de cada uno de los otros dos puntos separadamente para dar dos vectores:-
var a: Vector3;
var b: Vector3;
var c: Vector3;
var side1: Vector3 = b - a;
var side2: Vector3 = c - a;
El producto cruz de estos dos vectores va a dar un tercer vector que es perpendicular a la superficie. La “regla de la mano izquierda” puede ser utilizada para decidir el orden en que los dos vectores deberían ser pasados para la función producto cruz. Al mirar hacia abajo la parte superior de la superficie (de cuál la normal va a apuntar hacia afuera) el primer vector debe barrer alrededor del sentido horario a la segunda: -
var perp: Vector3 = Vector3.Cross(side1, side2);
El resultado va a apuntar en exactamente la dirección opuesta si el orden de los vectores input se invierten.
Para meshes, el vector de la normal debe también ser normalizado. Esto puede ser hecho con la propiedad normalized, pero hay otro truco que es ocasionalmente útil. Usted puede también normalizar el vector perpendicular dividiéndolo por su magnitud:-
var perpLength = perp.magnitude;
perp /= perpLength;
Resulta ser que el área del triángulo es igual a perpLenght / 2. Esto es útil si usted necesita encontrar el área superficial de todo el mesh o quiera escoger los triángulos aleatoriamente con probabilidad basada en sus áreas relativas.