Operação OpenGL Básica
O diagrama a seguir ilustra como o OpenGL processa dados. Conforme mostrado, os comandos entram da esquerda e prossseguem por meio de um pipeline de processamento. Alguns comandos especificam objetos geométricos a serem desenhados e outros controlam como os objetos são tratados durante vários estágios de processamento.
Os estágios de processamento na operação básica do OpenGL são os seguintes:
Lista de exibição Em vez de fazer com que todos os comandos prossiga imediatamente pelo pipeline, você pode optar por acumular alguns deles em uma lista de exibição para processamento posterior.
Avaliador O estágio de processamento do avaliador fornece uma maneira eficiente de aproximar a curva e a geometria da superfície avaliando comandos polinômios de valores de entrada.
Operações por vértice e assembly primitivo O OpenGL processa pontos primitivos geométricos, segmentos de linha e polígonos, dos quais são descritos por vértices. Os vértices são transformados e iluminados, e os primitivos são recortados no visor em preparação para rasterização.
Rasterization O estágio de rasterização produz uma série de endereços de buffer de quadro e valores associados usando uma descrição bidimensional de um ponto, segmento de linha ou polígono. Cada fragmento tão produzido é alimentado nas últimas operações por fragmento.
Operações por fragmento Essas são as operações finais executadas nos dados antes que eles sejam armazenados como pixels no framebuffer.
As operações por fragmento incluem atualizações condicionais para o framebuffer com base em valores z de entrada e armazenados anteriormente (para buffer z) e mesclagem de cores de pixel de entrada com cores armazenadas, bem como mascaramento e outras operações lógicas em valores de pixel.
Os dados podem ser inseridos na forma de pixels em vez de vértices. Os dados na forma de pixels, como podem descrever uma imagem para uso no mapeamento de textura, ignoram o primeiro estágio de processamento descrito acima e, em vez disso, são processados como pixels, no estágio de operações de pixel. Nas seguintes operações de pixel, os dados de pixel são:
- Armazenado como memória de textura, para uso no estágio de rasterização.
- Rasterizado, com os fragmentos resultantes mesclados no framebuffer como se fossem gerados com base em dados geométricos.