Open GL Computao Grfica O que Open GL

  • Slides: 11
Download presentation
Open. GL Computação Gráfica

Open. GL Computação Gráfica

O que é Open. GL? • Uma linguagem de programação gráfica de baixo nível

O que é Open. GL? • Uma linguagem de programação gráfica de baixo nível • Projetada para gráfico interativo 2 D e 3 D • Uma interface para o hardware gráfico • Descendente do GL • Cínicos dizem que é GL com variáveis de nomes mais longos e sem gerenciamento de janela

 • Implementações • Para Sparcs e Linux PCs tem o Mesa, uma implementação

• Implementações • Para Sparcs e Linux PCs tem o Mesa, uma implementação livremente disponível • SGIs tem implementações SGI’s ~ 1500% mais rápidas.

Como funciona? • Um conjunto de variáveis de estado como cor, parâmetros de visualização

Como funciona? • Um conjunto de variáveis de estado como cor, parâmetros de visualização corrente, largura delinha, propriedades de materiais, etc. . . • Estas variáveis então se aplicam a todo comando de desenho subsequente • Variáveis de estado possuem valores default no início

O que ele cobre? • Primitivas Open. GL’s são pontos, linhas e polígonos •

O que ele cobre? • Primitivas Open. GL’s são pontos, linhas e polígonos • Não faz “windowing”. Use Xforms (FLTK? ). . . (ou outro qualquer).

Acertando uma janela de trabalho • • Coordenadas para os extremos gl. Ortho(left, right,

Acertando uma janela de trabalho • • Coordenadas para os extremos gl. Ortho(left, right, bottom, top, near, far); e. g. , gl. Ortho(0, 100, -1, 1); near & far devem ser sempre -1 & 1 (pelo menos por enquanto)

Limpando uma janela • • gl. Clear. Color(r, g, b, a); a is the

Limpando uma janela • • gl. Clear. Color(r, g, b, a); a is the alpha channel; set this to 0. gl. Clear(GL_COLOR_BUFFER_BIT); gl. Clear pode limpar outros buffers assim também, mas usamos por enquanto apenas o buffer de cor

Estabelecendo uma cor • Todas as primitivas subsequentes serão desta cor. • Modelo de

Estabelecendo uma cor • Todas as primitivas subsequentes serão desta cor. • Modelo de cor Red, Green & Blue • Components são 0 -1 (normalizados) • Nota: convenção de nomes Open. GL é: – gl<Command>[234][sifd][v] (args. . . ) – s - short, i - integer, f - float, d- double – v – ponteiro para um array

Desenhando um polígono • • gl. Begin(GL_POLYGON); Envie então os pontos construindo o polígono

Desenhando um polígono • • gl. Begin(GL_POLYGON); Envie então os pontos construindo o polígono gl. Vertex 2 f(x 0, y 0); gl. Vertex 2 f(x 1, y 1); gl. Vertex 2 f(x 2, y 2). . . Diga que o polígono terminou gl. End(); That’s it .

Truques especiais • No lugar de GL_POLYGON: – GL_POINTS: plot points – GL_LINES: draw

Truques especiais • No lugar de GL_POLYGON: – GL_POINTS: plot points – GL_LINES: draw lines – GL_LINE_LOOP: framed polygon • Gouraud Shading: – Mude a cor entre cada comando e GL fará um shading suave entre as cores dos diferentes vértices. • Fazendo Flush do pipeline : gl. Flush();

Desenhando uma caixa • Make. Window("Box", 400); /*Sua rotina de criar janela*/ gl. Ortho(-1,

Desenhando uma caixa • Make. Window("Box", 400); /*Sua rotina de criar janela*/ gl. Ortho(-1, 1, -1, 1); gl. Clear. Color(0. 5, 1); gl. Clear(GL_COLOR_BUFFER_BIT); gl. Color 3 f(1. 0, 0. 0); gl. Begin(GL_POLYGON); /* or GL_LINES or GL_POINTS. . . */ gl. Vertex 2 f(-0. 5, -0. 5); gl. Vertex 2 f( 0. 5, 0. 5); gl. Vertex 2 f(-0. 5, 0. 5); gl. End();