CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

Documentos relacionados
CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

2º Exame. Computação Gráfica

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 2º Exame 15 de Julho de 2010

1º Exame. Computação Gráfica

1º Exame. Computação Gráfica

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Revisões. Módulos Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 228. Instituto Superior de Engenharia do Porto

Iluminação. Aula 6. Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto. Paulo Gandra de Sousa

Matriz de transformação

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Exame de Recurso 29 de Junho de 2011

Transformações geométricas

Sist. Coordenadas Câmera (SCC)

Iluminação. Módulo 10. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 186. Instituto Superior de Engenharia do Porto

Uma API para geração de gráficos

FCG2006 Prova sobre OpenGL e Rastreamento de Raios

Introdução ao OpenGL e à Programação Baseada em Eventos

Computação Gráfica OpenGL 05 3D

Animação e Visualização Tridimensional

Projeções e Visualização

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções

IntMu.Lab5. Importe os ficheiros disponibilizados em

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio. OpenGL: o que é? Interface para programador de aplicação. Aplicação API abstrata

Computação Gráfica II

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. 1º Exame 6 de Junho de 2011

Estrutura de um programa gráfico

Computação Gráfica OpenGL 05 3D

Cap. 4: Janelas, Visores & Recorte Gráfico

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

Iluminação em OpenGL. André Tavares da Silva.

Computação Gráfica - 13

André Tavares da Silva

Visualização. - Aula 4 -

Pipeline de Visualização Câmara Virtual

Programação Gráfica Cap 2

Computação Gráfica OpenGl 03

OpenGL. Parte I: Geometria. Waldemar Celes Departamento de Informática Tecgraf/PUC-Rio

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

Computação Gráfica OpenGl 01

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)

António Costa. Paulo Roma Cavalcanti

INTRODUÇÃO A OPENGL. Computação Gráfica

Engenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)

OpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

Introdução à Computação Gráfica OpenGL Básico. Claudio Esperança Paulo Roma Cavalcanti

No enunciado existem duas páginas para rascunho devidamente identificadas. Estas não serão consideradas na avaliação.

Desenho de uma matriz de retângulos Serve de base para o exercício das cores

Computação Gráfica. Iluminação

- INF Remoção de faces ocultas Aula 21

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

OpenGL, GLU e GLUT. GLUT (OpenGL Utility Toolkit) OpenGL. Linguagem. OpenGL. Esqueleto de um programa em PyOpenGL

Transformações Geométricas

OpenGL. Computação Gráfica ISEL/DEETC/SP Computação Gráfica

n À primeira vista: basta desenhar n Uma subrotina para desenhar cada tipo de objeto n Mas... n Como fazer interação? n Como estruturar a cena?

Computação Gráfica. Iluminação

Introdução ao OpenGL

Pipeline de Visualização Câmara Virtual

2º Exame de Animação e Visualização Tridimensional

Introdução Programando com OpenGL Exemplos. O que é OpenGL? [1]

3D no OpenGL. Visualização e Transformações Perspectiva. Transformações do Modelview. Processo

Iluminação. Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho

Câmara Virtual Simples

FUNDAMENTOS E APLICAÇÕES. Luis Valente

Fundamentos de Computação Gráfica. Iluminação

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio

Engenharia Informática Computação Gráfica

PROGRAMAÇÃO OPENGL LIVRO: TEORIA DA COMPUTAÇÃO GRÁFICA

Objetos definidos no seu próprio sistema de coordenadas

Introdução a OpenGL. Profª. Alessandra Martins Coelho

Professor: Rodrigo Caetano Filgueira

Pipeline de Visualização Câmara Virtual

Computação Gráfica - OpenGl 02

Computação Gráfica - 13

2º Exame de Animação e Visualização Tridimensional

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Projeções e Transformações em 3D

2º Exame de Animação e Visualização Tridimensional

1º Teste Computação Gráfica

Iluminação (lighting) e Sombreamento (shading)

Computação Gráfica - 07

OpenGL. Introdução ao OpenGL. Sistemas de Coordenadas. OpenGL 29/04/2010. Profa. M. Cristina Profa. Rosane. Application Programming Interface (API)

Conceitos importantes da Computação Gráfica [3]

Seleção & feedback. Módulo 12. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 333. Instituto Superior de Engenharia do Porto

feedback Aula 8 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

1º Teste de Computação Gráfica

Introdução Prática à Programação em OpenGL

Introdução à Programação em OpenGL. Prof. Márcio Bueno

Transformações Geométricas

OpenGL. Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Introdução. Introdução. Carlos Carreto

Transcrição:

Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Primeiro Teste 6 de Outubro de 013 O teste tem a duração de 1h00, tolerância incluída. Responda às questões unicamente nestas duas primeiras folhas, justificando adequadamente as respostas de desenvolvimento. Só estas duas folhas deverão ser entregues, e como tal, serão as únicas avaliadas. Identifique ambas as folhas. As restantes folhas podem ser utilizadas como folhas de rascunho. Durante o exame apenas é permitido o uso de caneta. Não é permitido o uso de calculadoras ou telemóveis. Uma resposta errada nas perguntas de escolha múltipla desconta 1/3 da cotação da respectiva questão. Respostas: 1. [1.0v].a) [1.0v].b) [1.0v] A= B=.c) [1.0v] Cor: 3.a) [1.0v] 3.b) [0.5v] 3.c) [0.5v] 4.a) [1.0v] 4.b) [1.0v] 4.c) [1.0v]

5.a) [1.0v] 5.b) [1.0v] 6.a) [1.0v] 6.b) [1.0v] 6.c) [1.0v] 7.a) [1.0v] I = 7.b) [1.0v] = = h = 7.c) [1.0v] I a = I d = I s = 8.a) [1.0v] 8.b) [1.0v] R = G = B = 8.c) [1.0v] R = G = B =

30 o 45 o 60 o sin 0,5 0,707 0,866 cos 0,866 0,707 0,5 30 o 45 o 60 o sin 1 3 cos 3 1 void glutinitwindowsize(int width, int height); void glutinitwindowposition(int x, int y); void glviewport(glint x, GLint y, GLsizei width, GLsizei height); void glortho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval); void glulookat(gldouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx,gldouble upy, GLdouble upz); void gluperspective( GLdouble fovy, GLdouble aspect, GLdouble znear, GLdouble zfar);

1. [3.0v] Considere o seguinte programa em OpenGL. 01: int main(int argc, char *argv[]) { 0: glutinit(&argc, argv); 03: glutinitdisplaymode(glut_single GLUT_RGB); 04: glutinitwindowsize (400, 400); 05: glutinitwindowposition (-1, -1); 06: glutcreatewindow("teste"); 07: glutdisplayfunc(mydisplay); 08: glutreshapefunc(myreshape); 09: glutmainloop(); 10: return 0; 11: } 1: void myreshape(glsizei w, GLsizei h) { 13: glviewport(0, 0, w, h); 14: glmatrixmode(gl_projection); 15: glloadidentity(); 16: glortho(-.0f,.0f, -.0f,.0f, -.0f,.0f); 17: glmatrixmode(gl_modelview); 18: glloadidentity(); 19: } 0: void mydisplay(void) { 1: glcolor3f(0.0f, 0.0f, 0.0f); : glclearcolor(1.0f, 1.0f, 1.0f, 0.0f); 3 glclear(gl_color_buffer_bit); 4: glbegin(gl_polygon); 5: glvertex3f(-1.0, A, 0.5f); 6: glvertex3f(1.0f, -1.0f, 0.5f); 7: glvertex3f(1.0f, 1.0f, 0.5f); 8: glvertex3f(-1.0f, 1.0f, B ); 9: glend(); 30: glflush(); 31: } a) [1.0v ] O que faz a linha de código número 4? (escolha múltipla: indique a opção correcta na página de respostas) A: Preenche o viewport com a cor vermelha; B: Invoca a função mydisplay; C: Regista a callback mydisplay; D: Preenche o viewport com a cor azul; E: Cria uma janela de 400 por 400; F: Nenhuma das anteriores. b) [1.0v] Indique os valores de A e B de forma a que o código acima desenhe um quadrado. c) [1.0v] Com que cor será desenhado o quadrado?

. [1.0v] O pipeline de geometria do OpenGL transforma: (escolha múltipla: indique a opção correcta na página de respostas) A: Polígonos côncavos em triângulos; B: Coordenadas WCS dos vértices em coordenadas da janela; C: Triângulos em polígonos côncavos; D: Coordenadas WCS dos vértices em coordenadas VRC; E: Nenhuma das anteriores. 3. [.0v] Considere que é aplicada a um objecto uma transformação em 3D composta por uma rotação de 45 sobre o eixo ZZ, seguida de uma escala uniforme de. a) [1.0] Calcule as matrizes de transformação referentes à rotação e à escala. b) [0.5] Calcule a matriz da transformação composta. c) [0.5] Sabendo que o centro do objecto for dado pelo ponto P=[0 1 ] T, diga quais as coordenadas do centro do objecto após sofrer a transformação indicada acima. 4. [3.0v] Considere a cena D abaixo representada, onde a posição e direcção de um veículo são dadas pelo ponto E e pelo vector DOF, respectivamente. DOF V E U Sabendo que: Posição do veículo: = Direcção de veículo (não normalizada): =1 1 Pisca direito (no referencial do veículo): = 4

a) [1.0] Apresente a matriz de transformação composta, que realiza a mudança do referencial UV para o sistema de coordenadas do mundo. b) [1.0] Indique as coordenadas do pisca direito do veículo,, em coordenadas do mundo. c) [1.0] Caso o veículo se deslocasse duas unidades no sentido DOF, qual seria a nova posição do veículo,, em coordenadas do mundo? 5. [.0v] Considere o seguinte excerto de código de OpenGL void displayer(); { glpushmatrix(); glscalef( 0.5, 1.0,.0); // Transformação S1 glpushmatrix(); gltranslatef( -10.0, 10.0, 100.); // Transformação T1 showobject( obj1); glpopmatrix(); glrotatef( -90.0, 0.0, 1.0, 0.0); // Transformação R1 glscalef(.0, 1.0, 0.5); // Transformação S showobject( obj); glpopmatrix(); showobject( obj3); glrotatef( 180.0, 1.0, 0.0, 0.0); // Transformação R showobject( obj4); glpopmatrix(); glflush(); } a) [1.0v] Quais são as transformações que afectam o objecto obj quando a função displayer () é executada. b) [1.0v] Após a execução da função Displayer qual o conteúdo da Matriz ModelView? 6. [3.0v] Considere o seguinte comando OpenGL glorto (-10, 10, -0, 0, 100, 00); O OpenGL efectua uma transformação de normalização para o volume de visualização ortogonal canónico. a) [1.0v] Quais são os limites desse volume? b) [1.0v] Considerando que a transformação de normalização consiste no produto de duas matrizes geométricas T * T 1 Calcule a matriz correspondente à transformação T. c) [1.0v] Qual a transformação que é efectuada pela matriz T 1?

7. [3.0v] Considere o seguinte extrato de código OpenGL: GLfloat ambient[] = { 0.1, 0., 0., 1.0 }; GLfloat diffuse[] = { 0.8, 0.4, 0.4, 1.0 }; GLfloat specular[] = { 0.4, 0.6, 0.6, 1.0 }; GLfloat position[] = { 0.0, 10.0, 0.0, 1.0 }; gllightfv(gl_light0, GL_AMBIENT, ambient); gllightfv(gl_light0, GL_DIFFUSE, diffuse); gllightfv(gl_light0, GL_SPECULAR, specular); gllightfv(gl_light0, GL_POSITION, position ); GLfloat mat_ambient[] = { 0.5, 0.0, 1.0, 1.0 }; GLfloat mat_diffuse[] = { 0.0, 0.5, 0.5, 1.0 }; GLfloat mat_specular[] = { 0.0, 0.0, 0.7, 1.0 }; glmaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient); glmaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse); glmaterialfv (GL_FRONT, GL_SPECULAR, mat_specular); glmaterialf (GL_FRONT, GL_SHININESS,50.0); glloadidentity(); glulookat(0.0,.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ); glbegin(gl_triangle); glnormal3f(1.0, 0.0, 0.0); glvertex3f(1.0, 0.0, 0.0); // Ponto A glnormal3f(0.0, 1.0, 0.0); glvertex3f(0.0, 0.0, 0.0); // Ponto B glvertex3f(0.0, 0.0, 1.0); // Ponto C glend(); a) [1.0v] Escreva a fórmula de cálculo da intensidade num ponto segunda o Modelo de Iluminação de Blinn-Phong para uma única fonte de luz pontual e sem considerar a atenuação atmosférica. b) [1.0v] Calcule o valor dos versores,, h usados no cálculo da cor do vértice B. c) [1.0v] Calcule o valor das intensidades ambiente, difusa e especular da componente Azul do ponto B: 8. [4.0v] Considere o rectângulo com os seguintes vértices: A = (10, 0) B= (0, 0) C=(0, 10) D=(10, 10) As cores desse vértices são: A=(100, 100, 0), B=(00, 00, 0), C=(00, 00, 0), D=(100, 100, 0) a) [1.0v] Indique qual o algoritmo que o OpenGL usa para efectuar o cálculo da iluminação. b) [1.0v] Considere que o OpenGl está a usar o algoritmo de sombreamento constante (flat shading). Nesse caso calcule a cor do ponto D=(15, 5). c) [1.0v] Considere que na função de inicialização do programa é usado o seguinte comandoopengl: glshademodel(gl_smooth). Calcule a cor na mesma quadrícula D=(15, 5).