Anar al contingut

Algoritme del pintor

De L'Enciclopèdia, la wikipedia en valencià
Algoritme del pintor

El algoritme del pintor és una de les solucions més simples per al problema de visibilitat en els gràfics 3D per computadora. Quan es proyecta una escena de tres dimensionés en un pla de dos, és necessari determinar qué polígons són visibles i quins no.

El nom "algoritme del pintor" es referix a un pintor que primer dibuixa els elements lluntans d'una escena i despuix els cobrix en els més propencs. L'algoritme del pintor ordena tots els polígons d'una escena en funció de la seua profunditat i despuix els pinta en eixe orde, pintant damunt de les parts que no són visibles i solucionant aixina el problema de la visibilitat.

Es pinten primer les montanyes lluntanes, seguides pel prat; finalment es dibuixen els objectes més propencs, els arbres.
Els polígons superposts poden provocar que l'algoritme falle.

L'algoritme pot fallar en determinats casos. En este eixemple, els polígons A, B i C estan superposts. No és possible determinar qué polígon està per damunt dels atres o quàn dos es intersecan en tres dimensions. En este cas, els polígons en qüestió deuen ser tallats d'alguna manera per a permetre la seua ordenació. l'algoritme de Newell propost en 1972 dona una solució per a tallar dits polígons. També s'han propost numerosos métodos en el camp de la geometria computacional.

En les implementacions més bàsiques, l'algoritme del pintor pot ser poc eficient, ya que força al sistema a renderizar cada punt de tots els polígons visibles, inclús si estos polígons estan amagats en l'escena final. Açò implica que, en les escenes detallades, l'algoritme del pintor pot consumir massa recursos.

Estes i atres causes varen dur al desenroll de les tècniques que ampren el Z-Buffer, que poden ser vistes com un desenroll de l'algoritme del pintor que resol els conflictes de profunditat píxel per pixel, reduint la necessitat d'una ordenació per profunditat. Inclús en estos sistemes, a voltes s'ampra una variant de l'algoritme del pintor. Com les implementacions de el Z-Buffer generalment es basen en un buffer llimitat de profunditat implementat per hardware poden produir-se problemes de visibilitat pels errors de grosseig, provocant la superposició en l'unió de dos polígons. Per a evitar-ho, alguns motors gràfics implementen el "sobrerenderizado", dibuixant les vores d'abdós polígons en l'orde impost per l'algoritme del pintor. Açò significa que alguns pixel es dibuixen dos voltes (com en l'algoritme del pintor normal), pero solament ocorre en chicotetes zones de l'image i a penes afecta al rendiment.