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

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

Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes.

Apresentações semelhantes


Apresentação em tema: "Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes."— Transcrição da apresentação:

1 Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes

2 O que é OpenGL? Open Graphics Library  Uma interface do software com o hardware gráfico  Camada de abstração entre o programa de aplicação e o hardware  OpenGL não é uma linguagem de programação, é uma poderosa e sofisticada API (Application Programming Interface) para criação de aplicações gráficas 2D e 3D.

3  Projetada para aplicações gráficas interativas 2D e 3D  Independente do sistema operacional  Permite criar programas interativos que produzem imagens coloridas de objetos em movimento  Opção independente de plataforma de hardware Características

4  Padrão gráfico para aplicações industriais, entretenimento, visualização, etc.  Opção independente de plataforma de hardware  Compete com DirectX (Direct3D)  Utilizado para implementar conceitos como Realidade Virtual e Aumentada Importância

5  Primitivas geométricas pontos, linhas e polígonos  Primitivas de Imagens  Não gerencia eventos de controle (mouse, exibição, teclado, etc) Funcionamento

6 Primitivas Geométricas Todas primitivas geométricas são especificadas por vértices GL_POLYGON GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_POINTS GL_LINES GL_LINE_LOOP GL_LINE_STRIP GL_TRIANGLES GL_QUADS GL_QUAD_STRIP

7 glVertex3fv( v ) Numero de Componentes Tipo de Dados Vector 2 - (x,y) 3 - (x,y,z) 4 - (x,y,z,w) b - byte ub - unsigned byte s - short us - unsigned short i - int ui - unsigned int f - float d - double omit “v” for scalar form glVertex2f( x, y ) Formato dos Comandos em OpenGL

8 AGL, GLX, WGL “cola” entre OpenGL e o sistema de janelas GLU (OpenGL Utility Library) parte de OpenGL NURBS, tessellators, quadrics, etc GLUT (Graphics Library Utility Toolkit) API para gereciamento de janelas portável não é parte oficial de OpenGL APIs Relacionadas

9  Biblioteca de software que se integra com OpenGL (autor: Mark J. Kilgard - SGI)  Habilita acesso aos eventos do sistema operacional necessários em programas interativos mouse, teclado, display, etc. GLUT

10  Fácil de Programar  Independente do sistema de janelas nativo*  Programas de tamanho pequeno e médio  Não apresenta muitos recursos de interface (apenas menus)  Programação orientada a eventos* Filisofia de Projeto de GLUT

11  Iniciam com prefixo glut  (0,0) canto superior esquerdo da janela  Incluir diretiva #include  Inicialização glutInit( int *argc, char **argc) glutInitWindowPosition glutInitWindowSize Rotinas

12  Processamento de Eventos void glutMainLoop( void )  Gerenciamento de janelas int glutCreateWindow( char *name ) void glutPostRedisplay( void )  Registro de rotinas de callback glutDisplayFunc glutReshapeFunc glutKeyboardFunc glutMouseFunc  Objetos Pré-definidos glutSolidSphere, glutWireCube, glutSolidTeapot Rotinas

13  Configura e cria a janela  Initializa estado de OpenGL  Registra as callback functions de GLUT renderização redimensionamento entrada: teclado, mouse, etc.  Chama laço principal de processamento Estrutura de um Programa

14  Windows já possui uma implementação do OpenGL  Necessário utilizar um sistema de janelas no desenvolvimento das aplicações  GLUT  Baixar o GLUT em: http://www.cin.ufpe.br/~mdc/GLUT.rar  Descompactar o GLUT.rar em algum diretório C:\Temp\  Após descompactar, definir os diretórios de include e library no Visual Studio  Para definir tais diretórios, deve-se seguir: Menu Tools -> Options Selecionar Projects -> VC++ Directories Configurando o GLUT

15

16 Para o diretório de include: Selecionar a opção Include files Clicar no ícone do diretório e indicar o diretório include que se encontra abaixo do diretório GLUT, previamente descompactado Para o diretório de libraries: Selecionar a opção Library files Clicar no ícone do diretório e indicar o diretório lib que se encontra abaixo do diretório GLUT, previamente descompactado Após definir os diretórios de include e library, clicar em OK GLUT já está devidamente configurado para o desenvolvimento de aplicações OpenGL com sistema de janelas

17

18

19

20 Criando um projeto No menu File -> New -> Project... Escolher Visual C++ Projects -> Win32 -> Win32 -> Console Project Selecionar o nome do projeto, por exemplo,OpenGL Cube Selecionar o nome da solução, por exemplo, OpenGL Apps Selecionar o caminho do projeto, por exemplo, C:\ Clicar em OK Clicar em Application Setings -> Empty, para criar um projeto vazio Clicar em Finish Criando uma Aplicação

21

22

23

24 Após a criação do projeto, é necessário copiar o arquivo glut32.dll e o freeglut.dll para a pasta do projeto baixar em http://www.cin.ufpe.br/~rsm2/glut2.rarhttp://www.cin.ufpe.br/~rsm2/glut2.rar Adicionar um arquivo que conterá a função main e o código da aplicação OpenGL Clicar na pasta de fontes do projeto com o botão direito e seleciona Add -> Add New Item... Selecionar a opção C++ File (.cpp) e fornecer o nome do arquivo Clicar em Open e o arquivo criado será aberto no editor Configurando o GLUT

25

26

27 Resolva as questões abaixo baseadas neste código: http://www.cin.ufpe.br/~mdc/questao1.txthttp://www.cin.ufpe.br/~mdc/questao1.txt 1 - Caso você tente redimensionar a janela, observará que o fundo da tela não será "limpo" e que a posição do quadrado é variável dentro da janela. Porque ocorrem estas duas situações? Como corrigi-las? 2 - Tente desenhar outros objetos, ao invés de um quadrado um triângulo por exemplo. 3 - Vamos supor que você queira mudar interativamente a posição onde o quadrado é desenhado via teclado, ou seja, suponha que pressionando-se determinada tecla o quadrado deva mover-se 20 pixels acima e à direita da posição corrente. Como você faria isto? 4 - O clique do mouse na verdade causa 2 mudanças de cor em seguida, muito rápidas. Porque isto acontece? Como você mudaria o código acima para a cor do quadrado mudar somente uma vez quando o mouse é pressionado?

28 Resolva as questões abaixo baseadas neste código: http://www.cin.ufpe.br/~mdc/segundaquestao 1 - Faca com que os cubos girem em sentido contrários 2 – Mude a posicao dos cubos para que eles girem de cabeca para baixo e que estejam bem mais distante que no inicio.


Carregar ppt "Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes."

Apresentações semelhantes


Anúncios Google