Rasterizar
La rasterización es el proceso por el que se convierte un primitivo en una imagen bidimensional. Cada punto de esta imagen contiene información como datos de color, profundidad y textura. Un punto y su información asociada se denominan fragmento. La posición del ráster actual, como se especifica con glRasterPos*, se usa de varias maneras durante esta fase para dibujar píxeles y mapas de bits. Se producen diferentes problemas al rasterizar puntos, segmentos de línea y polígonos. Además, es necesario rasterizar rectángulos de píxeles y mapas de bits.
Con OpenGL, puede controlar la rasterización mediante las siguientes funciones:
- Primitivas. Controlar cómo se rasterizan los primitivos mediante funciones que determinan dimensiones y patrones de esptippla: glPointSize, glLineWidth, glLineStipple y glPolygonStipple. Controla cómo se rasterizan las caras delanteras y traseras de polígonos con glCullFace, glFrontFace y glPolygonMode.
- Píxeles. Varias funciones controlan el almacenamiento de píxeles y los modos de transferencia. La función glPixelStore* controla la codificación de píxeles en la memoria del cliente, y glPixelTransfer* y glPixelMap* controlan cómo se procesan los píxeles antes de colocarse en el framebuffer. Especifique un rectángulo de píxeles con glDrawPixels; controlar su rasterización con glPixelZoom.
- Bits. Los mapas de bits son rectángulos de ceros y los que especifican un patrón determinado de fragmentos que se van a generar. Cada uno de estos fragmentos tiene los mismos datos asociados. La función glBitmap especifica un mapa de bits.
- Memoria de textura. Cuando se habilita la texturización, la texturización asigna una parte de una imagen de textura especificada a cada primitivo. Esta asignación se realiza mediante el color de la imagen de textura en la ubicación indicada por las coordenadas de textura de un fragmento para modificar el color RGBA del fragmento. Especifique una imagen de textura con glTexImage2D o glTexImage1D. Las funciones glTexParameter* y glTexEnv* controlan cómo se interpretan y aplican los valores de textura a un fragmento.
- Niebla. Para combinar un color de niebla con el color post texturing de un fragmento rasterizado, use un factor de fusión que dependa de la distancia entre el punto de ojo y el fragmento. Use glFog* para especificar el color de niebla y el factor de mezcla.