Dados de entrada
O pipeline do OpenGL exige que você insira vários tipos de dados:
- Vértices. Os vértices descrevem a forma do objeto geométrico desejado. Para especificar vértices, use funções glVertex* em conjunto com glBegin e glEnd para criar um ponto, linha ou polígono. Você também pode usar glRect para descrever um retângulo inteiro ao mesmo tempo.
- Sinalizador de borda. Por padrão, todas as bordas de polígonos são bordas de limite. Use glEdgeFlag* para definir explicitamente o sinalizador de borda.
- Posição do varredura atual. Especificada com glRasterPos*, a posição de varredura atual é usada para determinar coordenadas de varredura para operações de desenho de pixel e bitmap.
- Normal atual. Um vetor normal associado a um determinado vértice determina como uma superfície nesse vértice é orientada no espaço tridimensional; isso, por sua vez, afeta a quantidade de luz recebida pelo vértice específico. Use glNormal* para especificar um vetor normal.
- Cor atual. A cor de um vértice, juntamente com as condições de iluminação, determinam a cor final iluminada. A cor será especificada com glColor* se estiver no modo RGBA ou com glIndex* se estiver no modo de índice de cores.
- Coordenadas de textura atuais. Especificadas com glTexCoord*, as coordenadas de textura determinam o local em um mapa de textura a ser associado a um vértice de um objeto.
Observação
Quando glVertex* é chamado, o vértice resultante herda o sinalizador de borda atual, normal, cor e coordenadas de textura. Portanto, glEdgeFlag*, glNormal*, glColor*e glTexCoord* devem ser chamados antes de glVertex*, se forem para afetar o vértice resultante.