A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

18/7/2015OpenGl1/24 Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL.

Apresentações semelhantes


Apresentação em tema: "18/7/2015OpenGl1/24 Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL."— Transcrição da apresentação:

1 18/7/2015OpenGl1/24 Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL

2 OpenGl2/24 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?

3 Introdução

4 18/7/2015OpenGl4/24 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.

5 18/7/2015OpenGl5/24 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.

6 18/7/2015OpenGl6/24 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.

7 18/7/2015OpenGl7/24 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.

8 18/7/2015OpenGl8/24 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.

9 18/7/2015OpenGl9/24 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.

10 18/7/2015OpenGl10/24 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.

11 18/7/2015OpenGl11/24 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

12 18/7/2015OpenGl12/24 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

13 Como Utilizar

14 18/7/2015OpenGl14/24 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.

15 18/7/2015OpenGl15/24 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.

16 18/7/2015OpenGl16/24 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).

17 18/7/2015OpenGl17/24 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

18 18/7/2015OpenGl18/24 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.

19 18/7/2015OpenGl19/24 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.

20 18/7/2015OpenGl20/24 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.

21 18/7/2015OpenGl21/24 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

22 18/7/2015OpenGl22/24 Pipeline Gráfico

23 18/7/2015OpenGl23/24 Pipeline Gráfico Vertex Transformation 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.

24 18/7/2015OpenGl24/24 Pipeline Gráfico Primitive Assembly 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 view frustum Back face culling Early Z culling

25 18/7/2015OpenGl25/24 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

26 18/7/2015OpenGl26/24 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

27 18/7/2015OpenGl27/24 Pipeline Gráfico Resumo Visual

28 18/7/2015OpenGl28/24 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

29 18/7/2015OpenGl29/24 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.

30 18/7/2015OpenGl30/24 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

31 18/7/2015OpenGl31/24 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

32 Iluminação 18/7/2015OpenGl32/24 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.

33 Iluminação 18/7/2015OpenGl33/24 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

34 Iluminação – Fontes de Luz 18/7/2015OpenGl34/24 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

35 Iluminação – Atenuação 18/7/2015OpenGl35/24 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

36 OpenGL Shaders - GLSL 18/7/2015OpenGl36/24 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

37 OpenGL Shaders - Tipos 18/7/2015OpenGl37/24 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.

38 18/7/2015OpenGl38/24

39 18/7/2015OpenGl39/24

40 18/7/2015OpenGl40/24

41 18/7/2015OpenGl41/24

42 18/7/2015OpenGl42/24

43 18/7/2015OpenGl43/24

44 18/7/2015OpenGl44/24

45 18/7/2015OpenGl45/24

46 Dúvidas

47 18/7/2015OpenGl47/24 Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL


Carregar ppt "18/7/2015OpenGl1/24 Grasielle Valença (gval) Marcela Bezerra (mbs) Thiago Burgo (tbb) Paulo Thiago (ptgs) Introdução a Multimídia OpenGL."

Apresentações semelhantes


Anúncios Google