equipe onildo ferraz hélder manoel lima e silva felipe batista
TRANSCRIPT
![Page 1: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/1.jpg)
![Page 2: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/2.jpg)
Equipe
Onildo FerrazHélder Manoel Lima e SilvaFelipe Batista
![Page 3: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/3.jpg)
• O que é OpenGL• Motivações• História• Aplicações• Pipeline• OpenGL x Direct3D• Arquitetura do OpenGL• Bibliotecas
Roteiro
![Page 4: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/4.jpg)
O que é opengl?
Open Graphics Library
É a especificação de uma API para programação em computação gráfica.
Em outras palavras, OpenGL define um conjunto de funções fazer aplicações em computação gráfica.
![Page 5: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/5.jpg)
OpenGL não é...
Uma linguagem de programação
Não tem comandos paracriação e gerenciamento de janelaslidar com entradas do usuário
Não tem comandos de alto-nível para descrição de objetos 3D
![Page 6: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/6.jpg)
Motivação Desenvolver aplicativos gráficos era
difícilFalta de padronizaçãoEsforços duplicados
Era necessário uma plataformaAbstração de hardwarePortávelFácil de usar
![Page 7: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/7.jpg)
História PHIGS – anos 80 IRIS GL – final dos anos 80 pela SGI OpenGL é criado em 1992 – mantido pela
OpenGL ARB (Architecture Review Board) Evans&Sutherland HP IBM Intel Matrox NVIDIA Sun Silicon Graphics (SGI)
Direct3d – Microsoft 1995 Desde 2006, OpenGL é parte do Khronos Group
![Page 8: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/8.jpg)
Evolução OpenGL 2.0
Substituição do pipeline fixo por shaders OpenGL Shading Language
OpenGL 2.1OpenGL Shading Language revision 1.20sRGB texture formats
OpenGL 3.0DirectX 10 level hardware
![Page 9: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/9.jpg)
Utilizações no mercado
Moonlight Creator
Ferramentas CAD
![Page 10: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/10.jpg)
Modelagem e Desenho
Photopia
![Page 11: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/11.jpg)
Visualização e Simulação
![Page 12: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/12.jpg)
Hardware-Assisted Rendering
glutrad (radiosity, hemicube approximation)
![Page 13: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/13.jpg)
Animação e Efeitos Especiais
Vídeo do trem do filme “The Prototype”
NewTek Light Wave 3d
![Page 14: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/14.jpg)
Jogos
OpenGL Linux Chess
Call of Duty
Quake 3
Counter Strike
![Page 15: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/15.jpg)
Pipeline
![Page 16: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/16.jpg)
Pipeline Objetos definidos no seu proprio sistema de coordenadas
Transformaçoes de modelagem orientam os objetos de acordo com um sistema de coordenadas comum
UNIVERSO
![Page 17: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/17.jpg)
Transformações
![Page 18: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/18.jpg)
Transformações
AS TRANSFORMACOES AFIM PRESERVAM LINHAS PARALELAS
![Page 19: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/19.jpg)
Pipeline Modelo de Phong
Vetor normal
Posição da fonte de luz
![Page 20: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/20.jpg)
Modelo de Phong
Emissão: contribuição que não depende de fontes de luz (fluorescência)
Ambiente: contribuição que não depende da geometria
Difusa: contribuição correspondente ao espalhamento da reflexão lambertiano (independe da posição do observador)
Especular: contribuição referente ao comportamento de superfícies polidas
![Page 21: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/21.jpg)
Componentes do Modelo de Phong
Difusa Especular Ambiente
![Page 22: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/22.jpg)
Reflexão Difusa
Atenuações…
![Page 23: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/23.jpg)
Reflexão Especular
![Page 24: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/24.jpg)
Luz Ambiente
![Page 25: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/25.jpg)
Luz Ambiente
![Page 26: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/26.jpg)
Iluminação - Geometria
A posição dos vértices com relação ao olho e a fonte luminosa contribui no cálculo dos efeitos atmosféricos
O vetor normal é fundamentalNão é calculado automaticamente
![Page 27: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/27.jpg)
Posição da fonte de luz
![Page 28: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/28.jpg)
Pipeline Coordenadas em relação a câmera
Tipos de projeção
![Page 29: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/29.jpg)
Pipeline Coordenadas em relação a câmera
Tipos de projeção
![Page 30: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/30.jpg)
Transformação de câmera
![Page 31: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/31.jpg)
Projeções - perspectiva
Porção do universo selecionada para visualização
Plano de projeção
Centro de projeção
![Page 32: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/32.jpg)
Projeções - ortogonal
![Page 33: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/33.jpg)
Perspectiva X Ortogonal
![Page 34: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/34.jpg)
Pipeline Eliminar o que não está dentro do volume de visualização
![Page 35: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/35.jpg)
Pipeline Conversão de polígonos para pixels (DISCRETO)
![Page 36: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/36.jpg)
Pipeline Eliminar o que está obstruído
![Page 37: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/37.jpg)
Pipeline
![Page 38: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/38.jpg)
OpenGL x Direct3D
Direct3D é parte da DirectX API proprietária Aceleração 3D em hardware Plataforma Windows
OpenGL API aberta Pode usar aceleração 3D em hardware Maioria dos SO's modernos.
![Page 39: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/39.jpg)
OpenGL x Direct3DPortabilidade D3D
Implementado apenas p/ a família Windows Incluindo XBOX e Sega Dreamcast
Há tentativas de portar p/ sistemas Unix Requer engenharia reversa (processo difícil)
OGL Implementado para Windows e UNIX
Mac OS X, Linux, Playstations, Wii, iPhone. SO's que permitem aceleração 3D: API primária
![Page 40: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/40.jpg)
OpenGL x Direct3DPortabilidade
OGL Windows suporta aceleração por HW
apenas após a instalação de um driver da fabricante da GPU
![Page 41: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/41.jpg)
OpenGL x Direct3DFacilidade de Uso
No início D3D frustrava muitos programadores.
John Carmack pediu à MS para abandoná-lo em favor do OGL (1997)
Após muita evolução, a crítica mudou John Carmack diz ser uma das melhores
APIs com que já trabalhou (2007) OpenGL não teve esse problema
![Page 42: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/42.jpg)
OpenGL x Direct3DLinhas diferentes de pensamento
D3D foi feita p/ ser uma interface p/ HW 3D OGL foi feita p/ ser um sistema de
renderização 3D que pode ser acelerado por HW
D3D espera que a aplicação gerencie os recursos de HW
Desenvolvedor aloca os recursos OpenGL faz o driver gerenciar os recursos de
HW
![Page 43: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/43.jpg)
OpenGL x Direct3DLinhas diferentes de pensamento
Ambas as APIs provêem aproximadamente o mesmo nível de funcionalidade
![Page 44: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/44.jpg)
OpenGL x Direct3DUso no mercado profissional
OGL sempre dominou o D3D Muitas placas gráficas suportavam
apenas OGL. Hoje em dia é diferente Razões históricas
Aplicações gráficas originalmente escritas em IRIS GL, e depois portadas para OGL.
![Page 45: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/45.jpg)
OpenGL x Direct3DUso no mercado profissional
Outra razão: Marketing e Design D3D não foi marketeada nem criada para
este propósito OGL é uma API 3D de propósito mais geral
![Page 46: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/46.jpg)
OpenGL x Direct3DUso no mercado de jogos
No início cada placa aceleradora tinha seu software exclusivo
Tempo da Voodoo da 3dfx e da Matroxx Software de uma não rodava na outra
OGL e D3D emergiram como competidores Suporte da indústria a uma biblioteca multi-
plataforma 1990: Domínio do OpenGL
Facilidade de uso
![Page 47: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/47.jpg)
OpenGL x Direct3DUso no mercado de jogos
1990: Domínio do OpenGL Facilidade de uso
2000: Desenvolvedores passaram a preferir D3D
Desde 1990 D3D sofreu várias melhorias Hegemonia do Windows no mercado de
jogos para Desktop
![Page 48: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/48.jpg)
OpenGL x Direct3DUso no mercado de jogos
2005: Chegada da sexta e sétima geração de consoles
De Sega Dreamcast a Playstation 3 O mercado de consoles cresceu muito Desenvolvimento multi-console passou a ser
mais visado OpenGL -> suportado por todos os
consoles, exceto os da Microsoft OpenGL passou a ser mais interessante
![Page 49: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/49.jpg)
Arquitetura do OpenGL
Conjunto de centenas de funções Acesso a praticamente todos os recursos do
HW de vídeo Internamente é uma máquina de estados
Cada estado diz à placa de vídeo o que fazer Cuidado com os estados indesejados
Cliente-servidor Protocolo padronizado
![Page 50: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/50.jpg)
Arquitetura do OpenGL
Comandos não são imediatamente jogados para o HW
Otimiza o uso da rede e abre margem p/ outras otimizações
![Page 51: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/51.jpg)
Bibliotecas relacionadas ao OpenGL
OpenGL Utility Library (GLU) Fornece diversas rotinas para auxiliar na
montagem de matrizes de visualização e projeção, desenho de superfícies e imagens 3D.
Biblioteca fornecida juntamente com todas as implementações do OpenGL
Todas as funções desta biblioteca têm o prefixo glu.
![Page 52: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/52.jpg)
Bibliotecas relacionadas ao OpenGL
OpenGL foi feito para ser independente de qualquer sistema de janelas.
Consequentemente não tem comandos para abrir janelas ou ler eventos do teclado e mouse
Infelizmente é impossível escrever um programa gráfico completo sem o uso de ao menos uma janela
![Page 53: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/53.jpg)
Bibliotecas relacionadas ao OpenGL
Para cada ambiente de janelas, existe uma biblioteca que estende a funcionalidade do sistema para suportar renderização OGL.
O sistema X possui o GLX O Windows possui a extensão WGL O IBM OS/2 tem o PGL
![Page 54: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/54.jpg)
Bibliotecas relacionadas ao OpenGL
OpenGL Utility Toolkit (GLUT) Sistema de janela independente de sistema Criado por Mark Kilgard Esconde as complexidades das APIs de
diferentes ambientes de janelas Interface simples para a criação de uma
aplicação OpenGL
![Page 55: Equipe Onildo Ferraz Hélder Manoel Lima e Silva Felipe Batista](https://reader036.vdocuments.com.br/reader036/viewer/2022062400/570638541a28abb8238fa722/html5/thumbnails/55.jpg)
Referências OpenGL Programming Guide (Woo, Neider, Davis -
Addison-Wesley ) http://www.humus.ca/index.php?page=News http://www.soe.ucsc.edu/classes/cmps203/Fall04/finalreports/P
rojectPaper_JerryYee.pdf http://tools.devshed.com/c/a/Web-Development/OpenGL-vs-Dir
ectX-A-Comparison/ http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Dire
ct3D http://www.xmission.com/~legalize/d3d-vs-opengl.html http://www.inf.pucrs.br/~manssour/OpenGL/ http://www.songho.ca/opengl/gl_pipeline.html http://www.cgl.uwaterloo.ca/~vtluu/Talks/OpenGL/ http://www.inf.ufrgs.br/~nedel/inf01047/05-openGL.pdf www.cin.ufpe.br/~marcelow