Академический Документы
Профессиональный Документы
Культура Документы
Sumrio
Introduo
! Muito mais rpido do que implementao puramente em software, como: motores de grficos ou software de ray-tracing.
Introduo
! Inicio:
! Biblioteca grfica desenvolvida para rodar aplicaes grficas sobre o hardware proprietrio da Silicon Graphis Inc. (SGI). ! Primeira verso foi o IRIS GL, biblioteca grfica das estaes IRIS Graphics da SGI.
! Hardware que provia transformaes de matrizes com altssima performance.
! OpenGL surge da deciso de portar a IRIS GL para um padro aberto, para suportar outros fabricantes de dispositivos grficos, outras plataformas de hardware e outros sistemas operacionais.
Introduo
! OpenGL ARB:
! ! ! API aberta no pode ser de propriedade de uma empresa apenas. Surge ento o OpenGL Architecture Review Board (ARB) Consrcio, originalmente, formado por SGI, Digital Equipament Corporation, IBM, Intel e Microsoft. Outras empresas fazem parte do consrcio, como: SUN, nVIDIA, ATI, ... 01/07/1992 sai a primeira verso da especificao da OpenGL. A partir de 2006 SGI transfere o controle sobre o padro OpenGL para o grupo de trabalho The Khronos Group (www.khronos.org). Atualmente, este grupo promove o OpenGL e outros padres como o OpenGL ES (para dispositivos mveis). OpenGL est na verso 2.0.
! !
! !
Introduo
! Software x hardware:
! ! ! ! SW tem muito menos performance que HW e alguns efeitos especiais podem ser proibitivos nas aplicaes grficas. SW pode executar em qualquer plataforma sem que o usurio necessite de hardware especial, no caso hardware grfico. HW tem performance, porm maior custo. OpenGL interage com o hardware. Uma aplicao grfica que use a OpenGL necessitar que o dispositivo grfico (placa-devdeo) e o driver grfico implementem a especificao da OpenGL.
Introduo
! Como funciona a OpenGL
! ! ! ! ! ! ! API Procedural. Programador invoca comandos OpenGL para compor uma cena. OpenGL no renderiza uma cena descrita, ela deve ser programada em cdigo. De forma mais bsica, os objetos so desenhados com primitivas grficas: pontos, linhas e polgonos em 3D. Permite visualizao de objetos em qualquer ponto de um espao 3D. OpenGL suporta tambm iluminao e sombreamento, mapeamento de textura, blending, transparncia, animao e diversos outros efeitos especiais. Faz a converso das primitivas para imagem rasterizao. No possui funcionalidades para gerenciamento de janela, interao com o usurio ou acesso a arquivos (I/O). necessrio utilizar alguma biblioteca adicional (GLUT, SDL, ...) Tambm no existe nenhum formato de arquivo associado ao OpenGL para modelos ou ambientes virtuais. O programador deve fazer a carga e interpretao dos formatos de arquivos comuns e converter para primitivas grficas.
Modelo de Aplicao
Dados 2D/3D Modelo da Aplicao
OpenGL/GLUT/SDL/DirectX
Sistema Grfico
Modelo de Aplicao
Dados 2D/3D Modelo da Aplicao
GLUT
Modelo de Aplicao
Dados 2D/3D Modelo da Aplicao
Headers:
! ! gl.h header de prototipao das funes OpenGL glu.h header de prototipao das funoes GLU
OpenGL no faz interao com usurio, portanto, no gerencia entrada e sada de dados. necessrio o uso de alguma biblioteca para gerenciamento de GUI. Padro GLUT.
tambm podem ter seu estado definido/alterado apenas como ligado ou desligado.
! o caso da iluminao:
! glEnable(GL_LIGHTING)
Vlidos
Invlidos
! Modo de polgono:
! glPolygonMode(<lado>,<modo>) ! <lado>
! GL_FRONT_AND_BACK ! GL_FRONT ! GL_BACK
! <modo>
! GL_POINT ! GL_LINE ! GL_FILL
! GL_PROJECTION
! A matriz de projeo controla como a cena 3-D projetada em 2-D
! GL_TEXTURE
! A matriz de texturas (geralmente pouco conhecida e utilizada) transforma as coordenadas das textura para obter efeitos como projetar e deslocar texturas
! Coordenadas de Tela
! glViewport(x, y, width, height)
! Transformaes:
! Modelagem
! glTranslate{fd}(x, y, z) ! glRotate{fd) (angle, x, y, z ) ! glScale{fd}(x,y,z)
! Renderizao de textos:
! Usado em fonte
! ! ! ! ! ! ! GL_BITMAP_8_BY_13 GL_BITMAP_9_BY_15 GL_BITMAP_TIMES_ROMAN_10 GL_BITMAP_TIMES_ROMAN_24 GL_BITMAP_HELVETICA_10 GL_BITMAP_HELVETICA_12 GL_BITMAP_HELVETICA_18
OpenGL
! Fake or Real?
Bibliografias
Bibliografias
! Red Book
! ! ! ! ! ! http://fly.cc.fer.hr/~unreal/theredbook/ http://www.ingleza.com.br/opengl/index.html http://pyopengl.sourceforge.net/documentation/manual/ http://pyopengl.sourceforge.net/documentation/index.html http://www.wxpython.org/onlinedocs.php http://www.wxpython.org/tutorial.php
! Tutorial de OpenGL (Portugus) ! Referncia (API) para PyOpenGL ! Documentao para PyOpenGL ! Referncia (API) para wxPython ! Tutorial bsico de wxPython
Referncias bibliogrficas
Benjamin; HAEMEL, Nicholas. OpenGL Superbible: Comprehensive Tutorial and Reference. 4ed.: Addison-Wesley. 2007.