Funções para serem usadas no exercício de Lab

Slides:



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

Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Daniel de Vasconcelos Campos
Computação Gráfica Mapeamento de textura
OpenGL Clique para adicionar texto Soraia Musse 6/4/2011.
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
Visualização e Projeções I
Navegador de cenas com openGL e rastreamento de raios
OpenGL Conceitos Básicos
Sistemas de Interfaces com o Usuário e OpenGL/Glut
OpenGL Alberto B. Raposo.
Linha de produção de imagens com o OpenGL™ (OpenGL Rendering Pipeline)
Alberto B. Raposo e Marcelo Gattass
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
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.
Funções para serem usadas no exercício de Lab nos dias (18/03/2010 e 24/03/10) Visualização 3D Estruturas de Dados Básica (Global) para Construção de uma.
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Laboratório de Computação Gráfica OpenGL
Superfícies de Bézier Visualização 3D
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
OpenGL – Uma abordagem prática e objetiva
Introdução + Transformações Geométricas
Computação Gráfica Iluminação e Texturas.
Movimentos de Câmara – Modo Explorador
Computação Gráfica – Transformações Geométricas
Simulação Massa-Mola para Tecidos
Introdução à Computação Gráfica Projeções
Transformações Geométricas
Animações Independentes na Mesma Cena
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};
Transformações Geométricas no Plano e no Espaço
Iluminação e Sombreamento
Computação Gráfica – Visibilidade
Computação Gráfica Mapeamento de textura
Ambient Occlusion Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan Carlos Avelino Rocha Departamento de Informática.
Computação Gráfica Introdução ao OpenGL.
Introdução à Computação Gráfica OpenGL Básico
COMPUTAÇÃO GRÁFICA E INTERFACES
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
Computação Gráfica – Transformações Geométricas
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Introdução à Multimídia
OpenGL Aula Prática.
Visualização Tridimensional
Viewport.
Computação Gráfica – Animação
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Transformações Geométricas Profa. Mercedes Gonzales Márquez.
Visualização Tridimensional. Quando se trabalha em três dimensões, o SRU (Sistema de Referência do Universo) passa a ser composto por três eixos ortogonais.
Felipe Cavalcanti Ferreira Fernando Valente Kakimoto
Modelo e Câmera e Projeção no OpenGL
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Vetores Normais.
Manipulação de Imagens em OpenGL
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.
Objetos Predefinidos da GLUT
Iluminação.
Por Anderson Afonso Cardozo UNIVERSIDADE CATÓLICA DE PELOTAS
Linguagem de Programação
Computação Gráfica – Transformações Geométricas Profa. Mercedes Gonzales Márquez.
Superfícies de Bézier Visualização 3D
Transcrição da apresentação:

Funções para serem usadas no exercício de Lab Explicação mais Detalhada // Especifica a projeção perspectiva(angulo,aspecto,zMin,zMax) GLvoid gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble nearClip, GLdouble farClip ) Um Grande fovy é como olhar através de uma lente grande Um pequeno fovy é como olhar através de um telescópio O aspecto é a largura/altura do plano de projeção

Nome gluLookAt — define a viewing transformation Especificação em C void gluLookAt ( GLdouble eyeX , GLdouble eyeY , GLdouble eyeZ , GLdouble centerX , GLdouble centerY , GLdouble centerZ , GLdouble upX , GLdouble upY , GLdouble upZ ); Parametros eyeX, eyeY, eyeZ especificam a posição do observador CenterX, CenterY, CenterZ especificam a posição do alvo upX, upY, upZ especificam a direção da câmera Description gluLookAt cria uma matriz de visualização a partir de um visualizador em um ponto, um ponto de referência indicando um alvo na cena e um vetor indicando para onde a câmera está apontada.

Objetos Pré-definidos no OpenGL Nome: glutSolidSphere, glutWireSphere – renderiza uma esfera sólida ou wireframe SYNTAX: void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); ARGUMENTOS: radius -> raio da esfera; slices -> número de subdivisões em torno do eixo Z (similar a linhas de longiture); stacks -> númeero de subdivisões no eixo Z (similar a linhas de latitude). DESCRIÇÃO: renderiza uma esfera no centro do sistema de coordenadas.

Objetos Pré-definidos no OpenGL NOME: glutSolidCube, glutWireCube – renderiza um cubo sólido ou wireframe SYNTAX void glutSolidCube(GLdouble size); void glutWireCube(GLdouble size); ARGUMENTS size largura do lado do cubo.

Objetos Pré-definidos no OpenGL NOME: glutSolidTorus, glutWireTorus – renderiza um sólido ou wireframe em forma de torus; SYNTAX void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); ARGUMENTS innerRadius -> raio interno; outerRadius -> raio externo; nsides -> número de lados para cada raio; rings -> número de aneis

Objetos Pré-definidos no OpenGL NOME: glutSolidTorus, glutWireTorus – renderiza um sólido ou wireframe em forma de torus; SYNTAX void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); ARGUMENTS innerRadius -> raio interno; outerRadius -> raio externo; nsides -> número de lados para cada raio; rings -> número de aneis

Escopo das Transformações glPushMatrix (void): Função utilizada para empilhar a matriz de transformação corrente; glPopMatrix (void): Função utilizada para desempilhar a matriz de transformação corrente.

Exercício 1 Fazer um programa em OpenGL usando as funções de Transformações de Escopo. O programa deve conter o seguinte (Veja o Demo Na página da Disciplina): …. void Desenha() { //limpa a janela de visualização com cor de fundo definida previamente glClear(GL_COLOR_BUFFER_BIT); // empilha a matriz de tranformação corrente // translada e rotaciona // desenha um Torus, Cubo ou qualquer outro Objeto Geométrico Pré-definido na OpenGL // Desempilha a Matriz de Tranformação Corrente }

Desenha (continuação..) // empilha a matriz de tranformação corrente // translada e rotaciona // desenha um Torus, Cubo ou qualquer outro Objeto Geométrico Pré-definido na OpenGL // Desempilha a Matriz de Tranformação Corrente // executa os comando OpenGL glFlush(); }

Exercício 1 Fazer um programa em OpenGL usando as funções de Transformações de Escopo. O programa deve conter o seguinte: void EspecificaParametrosVisualizacao(void) { // especifica sistema de coordenadas de projeção // inicializa sistema de coordenadas de projeção // Espeficica a Projeção perspectiva gluPerspective(45,fAspect,0.5,500); // Especifica sistema de coordenadas do modelo // Iniciaiza sistema de coordenadas no modelo gluLookAt(0,60,150,0,0,0,0,1,0); }

Exercício 1 (continuação …) void AlteraTamanhoJanela (Glsizei w, GLSizei h) { if (h == 0) h = 1; // Especifica as dimensoes da ViewPort glViewPort(0, 0, w, h); // Calcula a correção do aspecto fAspect = (GLfloat) w/ (GLfloat) h; // Chama a funcao para definir parâmetros de Visualização EspecificaParametrosVisualizacao(); } void Teclado(unsigned char key, int x, int y) // permite encerrar o programa caso seja apertada a tecla ESC if (key == 27) exit(0); void Inicializa(void) // define a cor corrente como preta glClearColor(1.0f, 1.0f, 1.0f,1.0f);

Exercício 1 (continuação …) void main (void) { Aqui é feita a programação padrão … }

Exercício 2 Fazer um programa que dê a idéia de um Sistema Solar, só que com apenas 1 Sol e 1 Planeta pelo menos (Veja o Demo na Página da Disciplina): // Funções que devem ter Desenha() // Para desenhas os sistema solar usando funções de Escopo de Transformações glPushMatrix e glPopMatrix para cada objeto que desenhar. Lembre-se que o Sol e os Planetas podem ser desenhados com objetos pré-definidos glutSolidSphere No final da função deve chamar a função glutSwapBuffers();

Exercício 2 void Reshape(int w, int h) { glViewPort(… glMatrixMode(… glLoadIdentity(… gluPerspective(60.0, (GLfloat) w/ (GLfloat) h, 1.0, 20.0); glMatrixMode(GL_MODEVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); } KeyBoard() para rotacionar o planeta em torno do Sol e o Planeta em Torno dele mesmo Main()