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.

Slides:



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

Continuidade: sem interrupções
Funções para serem usadas no exercício de Lab
Um programa em C Bibliotecas Variáveis globais
Computação Gráfica Mapeamento de textura
Introdução à Programação Exercício - Interação via Teclado - Estrutura de Repetição 2º Semestre 2010 > PUCPR > Design Digital Bruno C. de Paula.
2º Semestre 2011 > PUCPR > Design Digital
coloca todas as letras no formato de maiúscula.
Informática Aplicada.
OpenGL Clique para adicionar texto Soraia Musse 6/4/2011.
Projeções e OpenGL Alex F. V. Machado.
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
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.
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);
Funções para serem usadas no exercício de Lab Hoje glRotatef(GLfloat angulo, GLfloat x, GLfloat y, GLfloat z) glTranslatef(GLfloat x, GLfloat y, GLfloat.
Laboratório de Computação Gráfica OpenGL
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
Revisão da Linguagem C.
Computação Gráfica – Transformações Geométricas
Simulação Massa-Mola para Tecidos
Fundamentos Corel Draw Aula I Prof. David Bianchini
Introdução à Computação Gráfica Projeções
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
Computação Gráfica – Visibilidade
Computação Gráfica Mapeamento de textura
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica Introdução ao OpenGL.
APRESENTANDO O TECLADO
Introdução à Computação Gráfica OpenGL Básico
COMPUTAÇÃO GRÁFICA E INTERFACES
Aula Prática 3 Funções Monitoria Introdução à Programação.
Computação Gráfica – Transformações Projetivas
Luiz Fernando Marcio Neves Petrônio Gomes Thiago Monteiro Victor Hazin
Desenhos Tridimensionais
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 à.
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
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.
Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes.
Objetos Predefinidos da GLUT
4 Visualizações Principais (Viewports) Click com botão esquerdo do mouse ativa cada uma das Viewports.
Linguagem de Programação
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
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 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: // Função responsável por inicializar parâmetros e variáveis void WorkSpace(void) { // Notem que mudou sensivelmente o Menu, agora F1 também rotaciona (para incluir rotação a esquerda e direita) printf("\nAo Pressionar m essas Instrucoes sempre serao Reapresentadas\n"); printf("\n\n"); printf("Instrucoes\n\n"); printf("Pressione o Botao Esquerdo, Arraste e Solte para Transladar\n\n"); printf("Tecle F1, F2 e F3 para rotacionar a direita, esquerda e em y \n\n"); printf("Tecle F4 e F5 para escalonar\n\n"); printf("Use o Botao Direito para Acessar o Menu\n\n"); glutInitWindowPosition(0,0); glutInitWindowSize(LarWindow, AltWindow); glutCreateWindow("Exercicio Lab CG Demo 3, 2010-I 10/03/2010"); glClearColor(1, 1, 1, 0);

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Continua …… // Especifica as dimensões da Viewport glViewport(0, 0, LarWindow, AltWindow); GLfloat xMin = (GLfloat) -LarWindow/2.0; // largura minima GLfloat xMax = (GLfloat) LarWindow/2.0; // largura maxima GLfloat yMin = (GLfloat) -AltWindow/2.0; // largura minima GLfloat yMax = (GLfloat) AltWindow/2.0; // largura maxima gluOrtho2D (xMin, xMax, yMin, yMax); glMatrixMode(GL_MODELVIEW); //glMatrixMode(GL_PROJECTION); glLoadIdentity(); //glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]); //glEnable(GL_MAP1_VERTEX_3); //gluLookAt(1,0,0,0,0,0,1,1,0); }

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) // Wireframe predefinido no OpenGL para incluir um TeaPot // Substitui o desenho de primitivas – Apenas para dar aulas void DesenhaTeaPot() { glColor3f(R,G,B); glutWireTeapot(0.5); }

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) // Função callback de redesenho da janela de visualização void Desenha(void) { // Limpa a janela de visualização com a cor branca glClear(GL_COLOR_BUFFER_BIT); if (triangulo) DesenhaTriangulo(); if (quadrado) DesenhaQuadrado(); if (poligono) DesenhaPoligono(); if (teapot) /// Novidade!!! Agora desenha um TeaPot DesenhaTeaPot(); //Executa os comandos OpenGL glFlush(); //glutPostRedisplay(); }

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) // Teclado para Teclas Especiais void TecladoEspecial(int tecla, int x, int y) { switch(tecla) { case 'm': printf("\nAo Pressionar 'm', essas Instrucoes sempre serao Reapresentadas\n"); printf("\n\n"); printf("Instrucoes\n\n"); printf("Pressione o Botao Esquerdo, Arraste e Solte para Transladar\n\n"); printf("Tecle F1, F2 e F3 para rotacionar\n\n"); printf("Tecle F4 e F5 para escalonar\n\n"); printf("Use o Botão Direito para Acessar o Menu\n\n"); break; case GLUT_KEY_F1: // Rotaciona em X rotX = 1; glRotatef(2.0,rotX,0.0,0.0); /// Novidade!! Agora as variaveis de transformação são feitas aqui rotX = 0; /// Fora,m incluidas rotX, rotY e rotZ Globais (Retirar as variaveis de transformacao) glutPostRedisplay(); /// das funções de Desenho, como antes break;

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Continua,…… case GLUT_KEY_F2: // Rotaciona em Y rotY = 1; glRotatef(2.0,0.0,rotY,0.0); rotY = 0; glutPostRedisplay(); break; case GLUT_KEY_F3: // Rotaciona em Z rotZ = -1; glRotatef(2.0,0.0,0.0,rotZ); rotZ = 0; glutPostRedisplay(); break; case GLUT_KEY_F4: // Amplia glScalef(1.1,1.1,1.1); glutPostRedisplay(); break; case GLUT_KEY_F5: // Reduz glScalef(0.9,0.9,0.9); glutPostRedisplay(); break; case GLUT_KEY_INSERT: printf("\nPressionada a Tecla INSERT\n"); break; case GLUT_KEY_HOME: printf("\nPressionada a Tecla HOME\n"); break; }

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) void MouseMotion(int botton, int state, int x, int y) { switch(botton) { case GLUT_LEFT_BUTTON: switch(state) { case GLUT_DOWN: //printf("botao esquerdo foi pressionado em (x,y) = (%d,%d)\n\n",x,y); xini = x; yini = y; break; case GLUT_UP: GLfloat dx = (GLfloat)x - (GLfloat)xini; // Novidade!!! as variaveis de translação agora são atualizadas aqui GLfloat dy = (GLfloat)yini - (GLfloat)y; GLfloat dz = 0; //if (teapot) dx = dx/1000; dy = dy/1000; glTranslatef(dx/100.0,dy/100.0,0); dx = 0.0; dy = 0.0; xini = x; yini = y; glutPostRedisplay(); break; }; break; case GLUT_RIGHT_BUTTON: break; }

Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) // Controle de Primitivas int quadrado = 0, triangulo = 0, poligono = 0, teapot = 1; // Variáveis para controles de navegação GLfloat angle, fAspect; GLfloat rotX, rotY, rotZ; // Inlcuir opção para Teapot no menu agora é com vocês!!!

Exercícios com Pontuação 1- [Nível Básico]: Faça um programa básico em OpenGL para desenhar um TeaPot em 3D. 2- [Nível Médio]: Usando como FrameWork básico o programa de transformações de primitivas básicas do exercício da aula passada, inclua o Teapot3D no sistema. Observe o Demo na página da disciplina.