1 / 47

Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs)

Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs). Introdução a Multimídia OpenGL. Roteiro. Introdução Conceito e Motivação História Comparativo - Análise de Competidores(Directx) Utilização de Mercado Como Utilizar Operação Normal

trisha
Télécharger la présentation

Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL OpenGl

  2. Roteiro • Introdução • Conceito e Motivação • História • Comparativo - Análise de Competidores(Directx) • Utilização de Mercado • Como Utilizar • Operação Normal • Principais Conceitos OpenGL • Formas de Representação Gráfica • Representação Gráfica Bidimensional • Representação Gráfica Tridimensional • Bibliotecas • Características do OpenGL • Estado da Arte • Dúvidas? OpenGl

  3. Introdução

  4. Conceito e Motivação • O sistema gráfico mais popular atualmente e o OpenGL (GL - Graphics Library) que provê características avançadas e pode ser utilizado em modo imediato ou com display list. • Oferecendo uma interface entre o software e o hardware gráfico, que aproveita recursos gráficos do um componente . • OpenGL é um padrão relativamente novo e é baseado na biblioteca GL das workstations IRIS da Silicon Graphics. OpenGl

  5. Conceito e Motivação • Código fonte disponível (MesaGL ou Mesa3D) • É um pacote de ferramentas que consiste em um conjunto de procedimentos e funções. • Permite manipulação gráficas fundamentais em 2D, 3D ao X. • Inclui especificação de parâmetros(matrizes de transformação e coeficientes de iluminação) • Métodos de Antialiasing e operações sobre pixels. • Pode ser usado com ou sem sistema de janela. OpenGl

  6. Conceito e Motivação • Ferramentas CAD. • Realidade virtual. • Simulações e visualizações científicas. • Desenvolvimento no campo dos videogames. • API implementada para várias plataformas • ARB (Architecture Review Board) • 3DLabs, Apple, ATI, Dell Computer, Evans & Sutherland, Hewlett- Packard, IBM, Intel, Matrox, Microsoft, NVIDIA, SGI e Sun. OpenGl

  7. História • Na década de 1980, era um verdadeiro desafio desenvolver softwares capazes de manipular uma vasta gama de hardwares gráficos: Os desenvolvedores de software escreviam interfaces gráficas e controladoras específicas para cada componente, um processo caro e cansativo. OpenGl

  8. História • Em 1990, a Silicon Grafics (SGI) foi líder no desenvolvimento de gráficos 3D. A API gráfica da empresa, o Iris GL, era considerado o Estado da Arte da época. • A API concorrente, PHIGS, além de difícil de usar, estava defasada em funcionalidade em relação ao OpenGL, que já fornecia renderização imediata. OpenGl

  9. História • SGI converteu o padrão IrisGL em um padrão aberto, para competir com o hardware para aplicações 3D suportadas pelas extensões do PHIGS (Sun Microsystems, HP e IBM ) . • APIs programáveis Íris Inventor e Íris Performer, para manter os clientes presos ao hardware da SGI e da IBM por alguns anos até evoluir com o suporte de vendas do OpenGL. • O Padrão OpenGL é lançado em 1º de Julho de 1992. OpenGl

  10. História • A Microsoft libera o Direct3D em 1995, o que se tornaria o concorrente principal da tecnologia OpenGL. Em 1997, a Microsoft e a SGI iniciaram o Projeto Farenheit, que tinha com objetivo unificar as tecnologias gráficas, com a inclusão da HP em 1998. O projeto é abandonado em 1999. OpenGl

  11. História • Versão 1.3 • Foi liberada em 14/08/2001 sendo a terceira revisão desde a original 1.0. • Compatível com as versões anteriores. • Mapeamento de textura previamente definido • Compressão de Textura, Texturas mapeadas em um cubo, Multisample, MultiTextura. • Versão 1.4 • Lançada em 24/07/2002, também compatível com as versões anteriores. • Fixed-function GL pipeline é encontrada nessa versão • Programa de extensão de vértice OpenGl

  12. História • Versão 1.5 • Lançada em 29/07/2003,também compatível com as versões anteriores. • Linguagem de especificação para OpenGL Shading e o GL_ARB_shader_objects, GL_ARB_vertex_shader, and GL_ARB_fragment_shader. • Shading, de alto-nível, pode ser carregada e usada no lugar do fixed-function pipeline. • Versão 2.0 OpenGl

  13. Como Utilizar

  14. Operação Normal • Seqüência de operações: • Abra uma janela gráfica; • Utilizar uma ou mais bibliotecas auxiliares que permitam abrir uma janelas na tela do computador: • tais como GLUT, WGL (para Windows), glX (para o sistema XWindow), AGL (para Apple) ou PGL (para OS/2). • Prepare OpenGL para desenhar na janela • Defina como OpenGL irá desenhar nesta janelapor exemplo, se será utilizado double buffering ou single buffering, e se as imagens serão geradas utilizando mapa de cores indexado ou diretamente no formato RGB. OpenGl

  15. Operação Normal • Defina o sistema de coordenadas e o estado inicial do OpenGL • Defina limites inferior e superior dos eixos coordenados. Defina as fontes de luz existentes, cores para desenho de polígonos, modos de preenchimento de superfícies etc. • Loop • Trate os eventos de mouse e teclado; • Mude a cena com base nos eventos ocorridos; • Redesenhe a cena com OpenGL. OpenGl

  16. Principais Conceitos OpenGL • Modos de desenho de pontos (escrita/xor/transparência); • Ajuste de largura de linhas; • Aplicação de transparência ; • Ativação/desativação de serrilhamento (aliasing); • Mapeamento de superfícies com textura; • Seleção de janela de desenho; • Manipulação de fontes/tipos de iluminação e sombreamento; • Transformação de sistemas de coordenadas; • Transformações em perspectiva; • Combinação de imagens (blending). OpenGl

  17. Formas de Representação Gráfica • Representação Gráfica Bidimensional • Se caracteriza por transferência de mapa de bits entre áreas de memória, onde cada mapa de bits existente na memória do computador ou da placa de vídeo representa uma figura. • Realizando a transferência de bits a uma taxa de constante, é possível reproduzir a sensação de animação igual ocorre com os desenhos animados. • Sprite é o nome dado ao composto de uma seqüência de imagens • Usa-se uma técnica conhecida como double buffering OpenGl

  18. Formas de Representação Gráfica • Representação Gráfica Bidimensional • Dois Tipos de Cenários: • Cenários retangulares (2D): • Os baseados em textura possuem uma figura em background, que pode ou não se movimentar dando a impressão de que o mundo está se mexendo. • Os baseados em tiles dividem o mundo em pequenos retângulos, onde cada um deles cuida de exibir a figura de fundo e os sprites que estejam em seu domínio. • Cenários isométricos:utilizam uma visão em perspectiva, o que cria a impressão de profundidade no jogo e possibilita uma boa jogabilidade. OpenGl

  19. Formas de Representação Gráfica • Representação Gráfica Tridimensional • Caracteriza por objetos representados por malhas de triângulos. • Para cada triângulo, texturas podem ser mapeadas fazendo com que os objetos fiquem mais reais. • Técnicas como iluminação dinâmica, neblina volumétrica, skybox, espelhamento e sistema de partículas. • Cenários: • Cenários puramente 3D; • Cenários isométricos. OpenGl

  20. Formas de Representação Gráfica • Representação Gráfica Tridimensional • Possuem um hardware especializado para realizar as operações que envolvem cálculos 3D. • Código dos jogos tridimensionais é mais complexo que os 2D. OpenGl

  21. Características do OpenGL • Vista do Programador • Especificar as características dos objetos a serem visualizados • Descrição das suas propriedades • Determina a forma como as cenas criadas devem ser visualizadas • Câmara virtual simples • Posicionamento e orientação são realizados através de um número reduzido de funções. • Funções para entrada através de um modelo de evento • Máquina de Estados • Dados que processa são a descrição de objetos geométricos (como segmentos de reta e polígonos) ou indivisíveis (como mapas de bits). • Pipeline Gráfico OpenGl

  22. Pipeline Gráfico OpenGl

  23. Pipeline Gráfico • VertexTransformation • Dados de entrada: • • Vértices com as coordenadas tal como especificadas na aplicação, e outros atributos como normais, cores, coordenadas de textura. • • Estado do OpenGL • Operações: • • Transformação do vértice de acordo com as matrizes • ModelView e Projection; • • Transformação de normais; • • Iluminação do vértice; • • Geração/Transformação das coordenadas de textura. OpenGl

  24. Pipeline Gráfico • PrimitiveAssembly • Dados de entrada: • Vértices transformados • Informação de conectividade (GL_TRIANGLE, GL_QUAD,...) • Operações: • Construção de primitivas gráficas com vértices já transformados • Clipping contra viewfrustum • Back face culling • Early Z culling OpenGl

  25. Pipeline Gráfico • Rasterization • Dados de Entrada • Primitivas construídas na fase anterior • Operações • Determina o conjunto de pixels cobertos por uma primitiva • geométrica • Para cada pixel é calculado o seu conjunto de atributos por • Interpolação dos atributos dos vértices da primitiva • Resultado: conjunto de fragmentos OpenGl

  26. Pipeline Gráfico • Texturização e Cor • Os dados de entrada desta fase são os valores interpolados na fase anterior para cada fragmento • Nesta fase aplicam-se as texturas e calcula-se a cor do fragmento. • Raster Operations • Dados de entrada • Localização do pixel • fragmentos processados (cor e profundidade) • Operações • Teste de scissor, alpha, stencil, profundidade (sem early Z cull) • Operações de blending: combina a cor do fragmento com a • Cor do pixel existente no color buffer OpenGl

  27. Pipeline Gráfico • Resumo Visual OpenGl

  28. Tipos de Funções OpenGL • Funções primitivas • Geométricas • Imagem • Funções de Atributos • Aspecto gráfico das primitivas • Funções de Visualização • Propriedades da câmara virtual • Funções de Apresentação e Interação • Permitem controlar as janelas e empregar mouses e teclados • Funções de Controle • Determinar as características de uma dada implementação OpenGl

  29. Biblioteca • GLU - OpenGL Utility Library: Define as matrizes para projeção e orientação da visualização, e fazer o rendering de uma superfície. • GLUT - OpenGL Utility Toolkit: • é um toolkit independente de plataforma • que inclui alguns elementos GUI (Graphical User Interface), • pop-up e suporte para joystick. • Escrita por Mark Kilgard. • O seu principal objetivo é esconder a complexidade das APIs dos diferentes sistemas de janelas. • As funções usam o prefixo glut. • É interessante comentar que a GLUT substitiu a GLAUX. OpenGl

  30. Biblioteca • GLX - OpenGL Extension to the X Window System • OpenGL para máquinas que usam o X Window System • Funções GLX usam o prefixo glX. Para Microsoft Windows 95/98/NT • Funções WGL fornecem as janelas para a interface OpenGL • IBM/OS2, a PGL é a Presentation Manager para a interface OpenGL, e suas funções usam o prefixo pgl. • Apple, a AGL é a interface para sistemas que suportam OpenGL, e as funções AGL usam o prefixo agl OpenGl

  31. Biblioteca • FSG - Fahrenheit Scene Graph • Toolkit orientado à objetos e baseado em OpenGL • Fornece objetos e métodos para a criação de aplicações gráficas 3D interativas • Escrito em C++ • Habilidade de trocar dados em outros formatos gráficos OpenGl

  32. Iluminação • Essencial para a representação de um ambiente 3D • Maior realidade = Maior custo computacional e menos performance • O modelo de iluminação e sombreamento do OpenGL foi projetado para ser extremamente eficiente e muito geral. • O OpenGL prioriza a performance e por isso optou por usar um modelo de iluminação simplista e pouco realista, o Modelo de Phong (Iluminação local) • O modelo de iluminação local considera que a cor de um determinado ponto depende somente da sua relação com as fontes de luz contidas na cena, sem considerar os outros objetos. OpenGl

  33. Iluminação • O modelo adotado pelo OpenGL não modela sombras, reflexão diretas e indiretas, refração e outros fenômenos físicos, no entanto disponibiliza truques para simular esses efeitos OpenGl

  34. Iluminação – Fontes de Luz • No Mundo Real: • Fontes luminosas podem assumir o diferentes formas, tamanhos e intensidades/cores. • A natureza complexa da luz torna sua representação complexa. Muitas variáveis devem ser consideradas. • No OpenGL: • Por simplificação/performance cada fonte de luz é considerada pontual (adimensional) e tem intensidade constante e é representada por um valor RGB. • Um valor constante simula as interreflexões OpenGl

  35. Iluminação – Atenuação • A atenuação é a perda gradativa de intensidade luminosa à medida em que objetos se afastam da fonte luminosa. • É um efeito de reprodução simples e que traz ótimos resultados visuais OpenGl

  36. OpenGL Shaders - GLSL • GLSL – OpenGL Shading Language • O suporte a sharders nada mais é que a possibilidade de carregar programas baseados em uma linguagem de Shader que permite adicionar funcionalidades de processamento gráfico que não foram previamente inseridos no ambiente 3D. • Tem ainda a vantagem de trabalhar diretamente com a GPU (Unidade de Processamento Gráfico) • Se divide basicamente em três tipos OpenGl

  37. OpenGL Shaders - Tipos • Tanto o DirectX quanto OpenGL usam três tipos de shaders: • Vertex shaders: afeta os vertices de um modelo 3D modificando propriedade como posicao, cor, coordenada de textura etc. • Geometry shaders:possibilidade de adicionar ou remover vértices/faces de um modelo, pode ser usado tambem para gerar dinamicamente modelos o que seria muito custoso se feito pelo CPU. • Pixel shaders: Intera pixel a pixel pelo modelo 3D fazendo modificacoes mais refinadas, tais como BumpMapping, NormalMapping etc. OpenGl

  38. OpenGl

  39. OpenGl

  40. OpenGl

  41. OpenGl

  42. OpenGl

  43. OpenGl

  44. OpenGl

  45. OpenGl

  46. Dúvidas

  47. Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL OpenGl

More Related