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

Slides:



Advertisements
Apresentações semelhantes
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
Advertisements

DCA-0114 Computação Gráfica
Tecnologia Hipermídia e Multimídia
OpenGL Clique para adicionar texto Soraia Musse 6/4/2011.
JOGOS.
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Projeções e OpenGL Alex F. V. Machado.
Modelos de ILuminação Alex F. V. Machado.
COMPUTAÇÃO GRÁFICA.
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica Colorização
Iluminação e Sombreamento
Gestão de telas e ambientes em jogos 2D
OpenGL Alberto B. Raposo.
INF 1366 – Computação Gráfica Interativa
INF 1366 – Computação Gráfica Interativa Grafos de Cena
A terceira dimensão.
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula8: Iluminação
Computação Gráfica: Rendering e Rasterização
Computação Gráfica: Aula6: Iluminação
The Industry’s Foundation for High Performance Graphics
Análise e Projeto de Sistemas
Computação Gráfica OpenGL.
Aplicação da modelagem 3D no setor Industrial
Computação Gráfica: Aula6: Iluminação
Introdução à Computação Gráfica Projeções
1 Fundamentos de SIG. - Sistemas de Informação
Faculdade de Computação Universidade Federal de Mato Grosso do Sul
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
Computação Gráfica aula 01
Reinventando o estilo 2D Proposta: enxergar os gráficos 2D como um estilo e não como limitação técnica. Objetivo: buscar formas de inovar e reinventar.
Prof. Leandro da Silva Taddeo
Gizmo 3d solução interactiva
Computação Gráfica – Visibilidade
Professor: Márcio Amador
Hardware assisted rendering of csg models
Visualização Tridimensional (Câmera Sintética)
Computação Gráfica Introdução ao OpenGL.
Sistemas Operacionais
Go3D! A 3D Graphics Engine Carlos Tosin. Divisão Estrutura dividida em 4 componentes Core (46 classes) Áudio (4 classes) Script (4 classes) Renderer (37.
Image Based Cartoon Style Rendering Jeronimo Silvério Venetillo Fabio Issao Nakamura.
Sistemas Operacionais
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Computação Gráfica – Introdução ao OpenGL
Introdução à Multimídia
ARToolkit Ademir José de Carvalho Junior Danilo Cavalcanti Torres
VRML. Roteiro  Introdução  A história de VRML  Visão geral  Potencial  Fundamentos  Ferramentas de software  Vantagens e Desvantagens  Conclusões.
Introdução à Computação Gráfica
Arthur Gonçalves Christian Diego Eudes Raphael Icamaan Botelho.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo.
Felipe Cavalcanti Ferreira Fernando Valente Kakimoto
Texturas em Jogos IA 725 – Computação Gráfica
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
OpenGL André Chagas Filipe Melo Jacinto Reis Jonathan Soares
Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista.
Artes Digitais. Arte digital é aquela produzida também em ambiente gráfico computacional. O objectivo de dar vida virtual as coisas e também mostrar que,
Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. KurauchiVictor K. Harada Orientador: Prof. Dr.
Prof. Wallace Borges Cristo
Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes.
Computação Gráfica: Aula6: Iluminação
Rendering Por Adinan Aguiar.
Educação e Mídias na Educação Matemática
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
Aline Oliveira Everton Godoy Gabriel Leoni Lenilton Rocha Nelson Deda.
Transcrição da apresentação:

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

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?

Introdução

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.

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.

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.

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.

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.

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.

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 O projeto é abandonado em 1999.

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

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

Como Utilizar

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.

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.

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).

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/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.

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.

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.

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

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

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.

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

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

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

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

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

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.

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

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

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.

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

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

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

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

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.

18/7/2015OpenGl38/24

18/7/2015OpenGl39/24

18/7/2015OpenGl40/24

18/7/2015OpenGl41/24

18/7/2015OpenGl42/24

18/7/2015OpenGl43/24

18/7/2015OpenGl44/24

18/7/2015OpenGl45/24

Dúvidas

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