TL; DR : los triángulos son lo suficientemente buenos como para resolver los problemas básicos de modelado y renderizado, y las técnicas basadas en ellos son lo suficientemente flexibles como para adaptarse a problemas avanzados. Simplemente no hay necesidad real de soportar otras primitivas.
¿Por qué triángulos?
La interacción con la luz es más fácil de simular para objetos completamente opacos, porque solo sus superficies deben tenerse en cuenta. Ese es un orden de magnitud menos datos en las descripciones. La forma más fácil de modelar superficies arbitrarias es aproximando mallas triangulares. Podría decirse que un triángulo es el elemento de superficie universal más simple: es el casco convexo de tres puntos. Un segmento de línea o un punto son aún más simples, pero no son superficies: no es posible usar solo un número finito sin grietas. Por otro lado, podemos usar tan pocos triángulos como queramos y todavía no tenemos espacios. En términos matemáticos, las mallas triangulares tienen continuidad de orden cero ([matemática] C_0 [/ matemática]).
¿Por qué no otra cosa?
Claro, otras primitivas podrían ser mejores en algún sentido. Los triángulos de Bézier, por ejemplo, proporcionarían una continuidad de orden superior (“suavidad”), pero pueden aproximarse razonablemente por triángulos planos más pequeños. El NV1 era capaz de rasterizar parches Bézier bi-cuadráticos (cuadriláteros), pero no se dieron cuenta. Los triángulos planos se convirtieron en el mínimo común denominador de las API de gráficos como OpenGL y Direct3D, y el resto es historia.
- ¿Qué es una explicación intuitiva del teorema maestro?
- ¿Las funciones del tipo x ^ 2, x ^ 3, x ^ n se consideran de naturaleza recursiva?
- Cómo desplazar cíclicamente a la derecha un número entero en C ++
- ¿Cómo podemos escribir un código eficiente para determinar números primos hasta un valor dado, de modo que el límite de tiempo para cada caso de prueba no exceda un segundo en lenguaje C?
- ¿La mayoría de los programadores encuentran las matemáticas fáciles?