Você está na página 1de 3

OpenGl

Biblioteca OpenGL (Open Graphics Library) Consrcio, formado por grande fabricantes de hardware e software, como IBM, HP , Sun, Microsoft e Silicon Graphics, entre outras, administra a especificao da biblioteca. Existem verses da OpenGl rodando em ambientes: UNIX (AIX, HP-UX, Solaris); Linux; Windows; Machintosh Para alcanar esse grau de portabilidade a OpenGL no prev em sua especificao funes que dependam de plataforma. O controle de eventos, manipulao de janelas, interaes com o usurio, via teclado ou mouse, so tratados acionando-se as rotinas do sistema operacional que estiver sendo utilizado. Com isso garantido que a parte OpenGL de qualquer aplicao pode facilmente ser portada para qualquer sistema que possua uma implementao da biblioteca.

OpenGL

OpenGL

Hoje a OpenGL tornou-se a biblioteca de programao grfica mais utilizada, principalmente em ambientes e aplicaes de mdio e grande porte. No ambiente Windows seu nico concorrente o Direct3D da prpria Microsoft. A Sun Microsystems tambm est no mercado com a linguagem Java3D, extenso da linguagem Java com suporte grfico. O projeto da OpenGL uma aplicao como uma mquina de estados. O ambiente OpenGL assume um determinado estado quando da sua criao. Esse estado permanece at que um evento induza uma mudana. A partir desse momento, a mquina assume um novo estado. Esse ir perdurar at que um novo evento ocorra e modifique novamente seu estado.

Nas bibliotecas complementares as rotinas so construdas com base nas funes da prpria OpenGL. Duas bibliotecas auxiliares : glu e glaux. Na OpenGL existem funes para manipular as transformaes geomtricas: translao, rotao e escala, onde basta o programador fazer a chamada da funo; Um dos pontos fortes da OpenGL seu suporte a manipulao de objetos definidos no espao tridimensional. Nesse espao o posicionamento do observador um fator importante na definio da imagem a ser gerada. A OpenGL disponibiliza uma srie de funes com o objetivo de definir e manipular uma cmera virtual (sinttica), controlar a sua posio no espao, tipo de projeo entre outras facilidades.

OpenGl

OpenGl

A imagem de uma cena ganha muito mais realismo quando existe a interao das fontes de luz e os objeto. A OpenGL suporta fontes de luz, onde possvel controlar parmetros como: posio, cor, tipo, forma de interao com os materiais entre outras propriedades. Para a composio de materiais heterogneos, como madeira, granito, mrmore.., utiliza-se de uma tcnica denominada mapeamento de textura. A OpenGL possui funes para tratamento de texturas. No final do pipeline de uma aplicao grfica teremos a gerao dos pixels que sero armazenados no frame buffer, e que iro formar a imagem final do modelo. A OpenGL trabalha com uma srie de buffers para a gerao e manipulao da imagem final.

A OpenGL trabalha com o conceito de primitivas grficas. So elas os elementos geomtricos bsicos disponibilizados pela biblioteca para que o usurio possa construir seus modelos. As principais primitivas suportadas so:

GL_POINTS; GL_LINES: GL_LINE_STRIP; GL_LINE_LOOP; GL_POLYGON; GL_QUADS; GL_QUAD_STRIP; GL_TRIANGLES; GL_TRIANGLE_STRIP; GL_TRIANGLE_FAN;

Primitivas Geomtricas

Primitivas Geomtricas

OpenGL conta com 10 primitivas geomtricas, sendo divididas da seguinte forma:


Ponto

a primitiva responsvel em desenhar pontos na tela GL_POINTS O cdigo no exemplo abaixo desenha 3 pontos na tela. Cada vrtice torna-se um ponto glBegin( GL_POINTS ); glVertex2f( xf, yf); glVertex2f( xf, yf); glVertex2f( xf, y glEnd(); f);

um tipo de ponto trs tipos de linhas seis tipos de polgonos

Os vrtices so definidos pelo comando Vertex glVertex2f( float x, float y); // vrtice para um eixo 2D glVertex3d(double x,double y, double z); // vrtice para um eixo 3D As primitivas precisam ser delimitadas atravs de Begin ... End conforme abaixo: Begin ( nome da primitiva); ... // aqui sero colocados comandos Vertex. End (void);

Primitivas Geomtricas

Primitivas Geomtricas

Linhas

GL_LINES --> No caso de serem colocados nmeros mpares de vrtices, o ltimo ignorado n Se houvesse um quarto vrtice, uma nova linha entre o terceiro e quarto vrtice seria exibida GL_LINE_STRIP --> cria linhas consecutivas, ligando o primeiro vrtice com o segundo, o segundo com o terceiro e assim por diante GL_LINE_LOOP --> Funciona de maneira semelhante ao anterior, porm o ltimo vrtice ligado a primeira, devido a isso o LOOP no seu nome. O espessura de uma linha pode ser modificada atravs do comando glLineWidth (GLint espessura), bastando passar como parmetro a espessura da linha

Polgonos reas formadas por vrias linhas conectadas Arestas do polgono no podem se cruzar Devem ser reas convexas O nmero de segmentos do polgono no restrito OpenGL assume que todos os polgonos so simples Problema da superfcie construda a partir de quadrilteros Quadrilteros so polgonos no planares Caso seja feita alguma transformao, podem deixar de ser polgonos simples Para evitar que isto acontea, sempre bom utilizar tringulos para compor as superfcies, pois tringulos so sempre coplanares

Primitivas Geomtricas

Primitivas Geomtricas

Polgonos

Polgonos

GL_POLYGON --> Desenha polgonos convexos de acordo com as especificaes das coordenadas. n semelhante ao LINE_LOOP no fato de ligar a ltima coordenada a primeira GL_TRIANGLE_STRIP --> Desenha uma srie de tringulos que so conectados uns aos outros ao longo dos lados que podem ser compartilhados

GL_TRIANGLES --> Gera como resultado tringulos independentes. Ela ignora os dois ltimos vrtices, pois cinco vrtices no formam dois tringulos independentes GL_QUAD_STRIP --> Desenha uma srie de quadrilteros entre os lados compartilhados GL_QUADS --> Desenha quadrilteros independentes. Ela ignora os dois ltimos vrtices, pois 6 vrtices no formam dois quadrilteros independentes

GL_TRIANGLE_FAN --> Funciona de forma semelhante ao anterior , mas os tringulos criados possuem a mesma origem

Cores

Exerccio

As cores em OpenGL so determinadas pelo comando Color Seguem o padro RGB (Red Green Blue) adotados em diversos sistemas Em OpenGL: Color3 {f,d} ( XRed, XGreen, XBlue), onde : XRed: porcentagem de vermelho (variando de 0.0 a 1.0) XGreen: porcentagem de verde (variando de 0.0 a 1.0) XBlue: porcentagem de azul (variando de 0.0 a 1.0)

Criar uma casa 2D colorida.

Você também pode gostar