Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMalu Aranha de Sequeira Alterado mais de 8 anos atrás
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
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
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
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
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.