Pero, ¿cómo se hace la detección de colisión en formas hechas de pequeños triángulos?
Al no hacerlo.
La detección de colisión contra una colección de triángulos arbitraria (o peor, entre dos colecciones de triángulos arbitrarios) es prohibitivamente costosa.
En cambio, generalmente realizamos la detección de colecciones de forma jerárquica, comenzando primero con formas extremadamente crudas y simples (como cajas o esferas) que se aproximan (pobremente) al objeto subyacente.
Esto nos permite rechazar rápidamente la mayoría de las colisiones potenciales por "no ocurrir", que es el caso habitual. En el caso de que se apruebe una verificación tan cruda, eso indica una posible colisión real, y procedemos a realizar la verificación contra una aproximación más detallada de la forma subyacente (como una hecha de múltiples formas de cápsulas ajustadas, o muchas cuadros delimitadores alineados).
Esencialmente, la detección de colisión comienza con pruebas crudas y, a medida que pasan esas pruebas, continúa con una representación cada vez más detallada. Esta imagen, proporcionada por Shiro en un comentario a la respuesta de Alexandre , ilustra cómo un modelo complejo (un humano) puede ser representado por una serie de formas más simples:
En raras ocasiones, necesitamos realizar una colisión a nivel de triángulo individual, y cuando lo hacemos, usualmente usamos los métodos más crudos para profundizar en un conjunto muy pequeño de triángulos potenciales para probar. En ese punto, se utilizan algoritmos específicos para realizar las pruebas, al igual que probaría si se superponen dos rectángulos. Por ejemplo, puede determinar si un rayo golpea un triángulo y dónde lo hace .