Computação grafica
Primitivas tridimensionais . curvas em 3D . superfícies . volumes
Hardware faz bem . processar pontos . renderizar polígonos planos
Características convenientes dos modelos . descritos por suas superfícies (ocos) . geometria definida por vértices . superfícies definidas ou aproximadas por polígonos planos convexos, especialmente triângulos
Obs.: polígonos não planos podem produzir imagens inconsistentes
Etapas de geração da imagem (rendering) modelagem conversão para o sistema de coordenadas da câmera (ou do observador) recorte projeção remoção de superfícies escondidas rasterização
Modelagem de um cubo
geometria localização dos vértices topologia composto de 6 faces cada face é um quadrilátero as faces se encontram em vértices cada vértice é compartilhado por 3 faces pares de vértices definem arestas cada aresta é compartilhada por duas faces
face externa: vértices fornecidos no sentido anti-horário
Estrutura de dados
GLfloat vertices[][3] =
{{-1.0,-1.0,-1.0},{1.0,-1.0,-1.0},{1.0,1.0,-1.0},
{-1.0,1.0,-1.0}, {-1.0,-1.0,1.0},{1.0,-1.0,1.0}, {1.0,1.0,1.0}, {-1.0,1.0,1.0}};
GLfloat colors[][3] = {{0.0,0.0,0.0},{1.0,0.0,0.0},{1.0,1.0,0.0}, {0.0,1.0,0.0},{0.0,0.0,1.0},{1.0,0.0,1.0}, {1.0,1.0,1.0},{0.0,1.0,1.0}};
void polygon (int a, int b, int c , int d)
{
glBegin(GL_POLYGON); glColor3fv(colors[a]); glVertex3fv(vertices[a]); glColor3fv(colors[b]); glVertex3fv(vertices[b]); glColor3fv(colors[c]); glVertex3fv(vertices[c]); glColor3fv(colors[d]); glVertex3fv(vertices[d]); glEnd();
}
void colorcube(void)
{
polygon(0,3,2,1); polygon(2,3,7,6); polygon(0,4,7,3); polygon(1,2,6,5); polygon(4,5,6,7); polygon(0,1,5,4);