Perché l'hardware grafico rende solo i triangoli?
Gli algoritmi grafici 2D non rendono solo triangoli. In realtà è abbastanza efficiente disegnare un poligono arbitrario e, non solo, usando coordinate integrali piuttosto attente e l'algoritmo di Bresenham, per assicurarsi che non ci siano sovrapposizioni.
L'hardware 3D disegna tipicamente punti (e talvolta splats o fonts), linee e triangoli. Ci possono essere altre cose, ma vengono prima decomposte in triangoli. Questo perché un triangolo in 3-D specifica univocamente un piano. Altri vertici non lo fanno. Per i quadrilateri, a meno che tutti i vertici siano garantiti per giacere in un piano (molto difficile con gli errori in virgola mobile accumulati), si ottiene il problema del papillon, dove certi orientamenti di un quadrilatero lo faranno sembrare un papillon, Anche questo non sarebbe così male per il rendering, ma è desiderabile avere la parte anteriore e posteriore del poligono con proprietà diverse. È desiderabile, per esempio, fare il back face culling, per cui il lato posteriore di un poligono non viene mai disegnato, che di solito dà un buon incremento di velocità.
Disegnare solo triangoli semplifica l'hardware di disegno, rendendo possibile avere molti rendering di triangoli in corso allo stesso tempo. Questo parallelismo ha causato problemi per le implementazioni di OpenGL, che hanno tradizionalmente richiesto che le immagini apparissero come se fossero state disegnate in sequenza nello stesso ordine dato. Tuttavia, le schede moderne hanno trucchi per garantire che i triangoli appaiano come se fossero stati disegnati in un certo ordine quando in realtà non lo sono. Credo che il Silicon Graphics Reality Engine sia stato il primo a farlo, ma sono sicuro che sia stato implementato su molte delle schede grafiche più moderne.