Laboratório de Computação Gráfica OpenGL

Slides:



Advertisements
Apresentações semelhantes
Sistemas de Interfaces com o Usuário e Glut/OpenGL
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Funções para serem usadas no exercício de Lab
Computação Gráfica Mapeamento de textura
OpenGL Computação Gráfica.
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
03/08/2011 Professor Leomir J. Borba- –
Programação II Estruturas de Dados
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
OpenGL Clique para adicionar texto Soraia Musse 6/4/2011.
Excel Profa. Cristina M. Nunes.
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Recursividade Inhaúma Neves Ferraz
COMPUTAÇÃO GRÁFICA.
Introdução a OpenGL (parte final).
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica OpenGL Básico
Computação Gráfica Interativa - Gattass
OpenGL Conceitos Básicos
Sistemas de Interfaces com o Usuário e OpenGL/Glut
OpenGL Alberto B. Raposo.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Iluminação Para programar um sistema de iluminação, dois passos principais devem ser considerados: c) Que tipo e posição de Iluminação se deseja b) Que.
Computação Gráfica: Aula2: Curvas e Superfícies
Computação Gráfica: Aula2: Curvas e Superfícies
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
OpenGL – Uma abordagem prática e objetiva
Computação Gráfica OpenGL.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Orientador: Prof. Bernardo M. Rocha Bolsista: Agilian Lucas
Computação Gráfica – Transformações Geométricas
Simulação Massa-Mola para Tecidos
Programação Orientada a Objetos com Java
Introdução à Computação Gráfica Projeções
PROGRAMAÇÃO ESTRUTURADA II
Salas de Matemática.
Animações Independentes na Mesma Cena
AULA 5 Função Logarítmica.
Seminário 1: Revisão de C
Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};
EXERCÍCIOS PARA GUARDA-REDES
Introdução à linguagem C
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Computação Gráfica Mapeamento de textura
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica Introdução ao OpenGL.
Introdução à Computação Gráfica OpenGL Básico
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Uso de parâmetros na linha de comando. Parâmetros da função main:
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica – Transformações Geométricas
OpenGL Aula Prática.
Viewport.
Felipe Cavalcanti Ferreira Fernando Valente Kakimoto
OpenGL André Chagas Filipe Melo Jacinto Reis Jonathan Soares
Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx; GLfloat Ty; // Variáveis que guardam os valores mínimos.
Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes.
Silvânia de Assis Guilherme de Melo Moisés Tadeu Cardoso Isabela de Oliveira Glauber Ataíde Henrique de Araujo 1.
Por Anderson Afonso Cardozo UNIVERSIDADE CATÓLICA DE PELOTAS
Transcrição da apresentação:

Laboratório de Computação Gráfica OpenGL Centro Universitário da FEI Curso de Ciência da Computação Laboratório de Computação Gráfica OpenGL Prof. Paulo Sérgio Rodrigues www.fei.edu.br/~psergio

Introdução a OpenGL O que é o OpenGL 10

Introdução a OpenGL O que é o OpenGL 11

Introdução a OpenGL 12

Introdução a OpenGL 13

Introdução a OpenGL 14

Bibliotecas Introdução a OpenGL GLU - OpenGL Utility Library: GLUT - OpenGL Utility Toolkit: BIBUTIL - 16

Bibliotecas Introdução a OpenGL GLU - OpenGL Utility Library: contém várias rotinas que utilizam os comandos OpenGL de baixo nível para executar tarefas como, por exemplo, definir as matrizes para projeção e orientação da visualização, e fazer o rendering de uma superfície. Esta biblioteca é fornecida como parte de cada implementação de OpenGL, e suas funções usam o prefixo glu [Woo 1999]. 17

Bibliotecas Introdução a OpenGL 18

Bibliotecas Introdução a OpenGL 19

Estrutura Básica de um Programa em OpenGL Introdução a OpenGL Estrutura Básica de um Programa em OpenGL void funçao_call_back() { // definição dos parâmetros // de desenho // desenho } Módulo de Funções CallBack int main(void) { //inicialização de Janelas //Definição de Funções //de Callback //Geração de Fluxos } Módulo Principal 20

Estrutura de um Programa OpenGL/GLUT Introdução a OpenGL Estrutura de um Programa OpenGL/GLUT #include “GL/glut.h” // headers // outros headers void Display(void) { // rotina callback ….. } // outras rotinas callback int main(int argc, char* argv[]) { glutInit(&argc, argv); // inicialização da glut glutInitDisplayMode(mode); // modo de inicialização de display glutCreateWindow(nome da janela); // cria uma janela glutDisplayFunc(Display); // registra uma função callback // outras funcoes de Callback glutMainLoop(); // dispara o loop principal return 0; 24

Convenções para os Nomes das Funções Introdução a OpenGL Convenções para os Nomes das Funções <PrefixoBiblioteca> <ComandoRaiz> <ContadorArgumentosOpcional> <TipoArgumentosOpcional> EXEMPLOS: void glColor3f (GLfloat red, GLfloat green, GLfloat blue) Argumento Descrição gl Prefixo que representa a biblioteca gl Color Comando raiz que indica o objetivo da função 3 Número de argumentos que a função possui f Indica que os argumentos são ponto flutuante 25

Introdução a OpenGL Exemplo de Programa 26

Exemplo de Programa Introdução a OpenGL 28

Máquina de Estados Introdução a OpenGL OpenGL é uma máquina de estados. Isso significa que é possível colocá-la em vários estados (ou modos) que não são alterados a menos que uma função seja chamada para isto. 30

Máquina de Estados Introdução a OpenGL Current Values and Associated Data State Variable Description Attribute Group Initial Value Get Command GL_CURRENT_COLOR Current color current 1, 1, 1, 1 glGetIntegerv() , glGetFloatv() GL_CURRENT_INDEX Current color index 1 GL_CURRENT_TEXTURE_COORDS Current texture coordinates 0, 0, 0, 1 glGetFloatv() GL_CURRENT_NORMAL Current normal 0, 0, 1 32

Máquina de Estados Introdução a OpenGL Transformation State Variable Description Attribute Group Initial Value Get Command GL_MODELVIEW_MATRIX Modelview matrix stack -- Identity glGetFloatv() GL_PROJECTION_MATRIX Projection matrix stack GL_TEXTURE_MATRIX Texture matrix stack GL_VIEWPORT Viewport origin and extent viewport glGetIntegerv() 34

Máquina de Estados Introdução a OpenGL Coloring State Variable Description Attribute Group Initial Value Get Command GL_FOG_COLOR Fog color fog 0, 0, 0, 0 glGetFloatv() GL_FOG_INDEX Fog index GL_FOG_DENSITY Exponential fog density 1.0 GL_FOG_START Linear fog start 0.0 36

Máquina de Estados Introdução a OpenGL Lighting State Variable Description Attribute Group Initial Value Get Command GL_LIGHTING True if lighting is enabled lighting /enable GL_FALSE glIsEnabled() GL_COLOR_MATERIAL True if color tracking is enabled lighting 38

Tipos de Dados Introdução a OpenGL Tipo de dado OpenGL Representação interna Tipo de dado C equivalente  Sufixo Glbyte 8 bits integer Signed char b Glshort 16 bits integer Short s GLint, Glsizei 32-bit integer int ou long I GLfloat, GLclampf 32-bit floating-point float f GLdouble, GLclampd 64-bit floating-point double d GLubyte, GLboolean 8-bit unsigned integer unsigned char ub GLushort 16-bit unsigned integer unsigned short us GLuint, GLenum, GLbitfield 32-bit unsigned integer unsigned long ou unsigned int ui 40

Comando OpenGl para definir o Espaço de trabalho: glmatrixMode(GL_PROJECTION) glLoadIdentity(); Estes comandos inicializam o sistema de coordenadas 54

Exemplo // Callback de redimencionamento da Janela // Registro na Main glutReshapeFunc(AlteraTamanhoJanela) // definição void AlteraTamanhoJanela(Glsizei lar, Glsizei alt) { GLsizei largura = lar, altura = alt; glViewPort(0,0,largura,altura); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (largura <= altura) glOrtho2D(xmin,xmax,xmin*altura/largura,xmax*altura/largura); else glOrtho2D(xmin,xmax,xmin*largura/altura,xmax*largura/altura); } 56

Introdução a OpenGL 58

Introdução a OpenGL 60

Introdução a OpenGL 62

GLUT: Callbacks de interação humana- computador Introdução a OpenGL GLUT: Callbacks de interação humana- computador Eventos de teclado: void glutkeyboardFunc (unsigned char key, int x, int y) void glutMouseFunc (int button, int state, int x, int y) void glutReshapeFunc(int larg, int alt) void glutKeyboardFunc(unsigned char key, int mouse x, int mouse y) 64

Interação com o mouse void myMouse( int button, int state, int x, int y ) { if ( button == GLUT_LEFT_BUTTON && state == GLUT_DOWN ) drawDot( x, screenHeight - y ); else if ( button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN ) exit(-1); glFlush(); } button pode assumir os seguintes valores: GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON e GLUT_RIGHT_BUTTON. State pode assumir os seguintes valores: GLUT_UP ou GLUT_DOWN 66

Interação com o teclado void myKeyboard ( unsigned char key, int mouseX, int mouseY ) { GLint x = mouseX; GLint y = screenHeight - mouseY; switch( key ) case 'p': drawDot ( x, y ); glFlush(); break; case 'e': exit ( -1 ); default : } Posição do mouse quando a tecla é pressionada Tecla pressionada 68

Introdução a OpenGL 70

Introdução a OpenGL 72

Introdução a OpenGL 74

Introdução a OpenGL 76

Introdução a OpenGL 78

Introdução a OpenGL 80

Bibliografia OpenGL: uma abordagem prática e objetiva Marcelo Cohen Isabel Harb mansur Editora novatec

Bibliografia OpenGL: programming Guide Seventh Edition Dave Shreiner Editora Addison Wesley Melhor Comprar a Vesão 3.1, Sétima Edição

Bibliografia Computação Gráfica Teoria e Prática Aura Conci Campus

Exercícios 1) [Nível Básico] Faça um programa em OpenGL para desenhar primitivas gráficas com as seguintes funções: a) GL_TRINGLES, GL_LINES, GL_POINTS, GL_TRIANGLES_STRIP. 2) [Nível Intermediário] Use o programa anterior para criar interações de Callback com o Mouse e Teclado, para fazer as seguintes tarefas: b) permitir que seja definido interativamente os pontos das primitivas; c) permitir que as características de cor sejam alteradas pelo teclado, bem como o tipo de primitiva; c) Crie teclas especiais para realizar as mesmas tarefas.