Condividi tramite


Rasterizzazione

Rasterizing è il processo con cui una primitiva viene convertita in un'immagine bidimensionale. Ogni punto di questa immagine contiene informazioni quali i dati relativi a colori, profondità e trama. Un punto e le informazioni associate vengono denominate frammento . La posizione raster corrente, come specificato con glRasterPos*, viene usata in vari modi durante questa fase per disegnare pixel e bitmap. Problemi diversi si verificano durante la rasterizzazione di punti, segmenti di linea e poligoni. Inoltre, i rettangoli di pixel e le bitmap devono essere rasterizzati.

Con OpenGL è possibile controllare la rasterizzazione usando le funzioni seguenti:

  • Primitive. Controllare il modo in cui le primitive vengono rasterizzate usando funzioni che determinano le dimensioni e i modelli di stipple: glPointSize, glLineWidth, glLineStipplee glPolygonStipple. Controllare il modo in cui i visi anteriori e posteriore dei poligoni vengono rasterizzati con glCullFace, glFrontFacee glPolygonMode.
  • Pixel. Diverse funzioni controllano le modalità di archiviazione e trasferimento dei pixel. La funzione glPixelStore* controlla la codifica dei pixel nella memoria client e glPixelTransfer* e glPixelMap* controllare come vengono elaborati i pixel prima di essere inseriti nel framebuffer. Specificare un rettangolo di pixel con glDrawPixels; controllare la rasterizzazione con glPixelZoom.
  • Bitmappe. Le bitmap sono rettangoli di zeri e quelli che specificano un modello specifico di frammenti da produrre. Ognuno di questi frammenti ha gli stessi dati associati. La funzioneglBitmapspecifica una bitmap.
  • Memoria delle texture. Quando il texturing è abilitato, esso mappa una parte di un'immagine di trama specificata su ogni primitiva. Questo mapping viene eseguito usando il colore dell'immagine della trama nella posizione indicata dalle coordinate di trama di un frammento per modificare il colore RGBA del frammento. Specificare un'immagine di trama con glTexImage2D o glTexImage1D. Le funzioni glTexParameter* e glTexEnv* controllano come i valori della trama vengono interpretati e applicati a un frammento.
  • Nebbia. Per combinare un colore della nebbia con il colore post-texturing di un frammento rasterizzato, utilizzare un fattore di fusione che dipende dalla distanza tra il punto di osservazione e il frammento. Usare glFog* per specificare il colore della nebbia e il fattore di fusione.