computação gráfica - técnico lisboa · o transformar no triângulo t’. b) [1.0v] ... (0, 0,...
TRANSCRIPT
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Computação Gráfica
Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark
Repescagem
12 de Janeiro de 2016
A repescagem de um dos testes tem a duração de 1h00. Na repescagem de ambos os testes
a prova tem a duração de 2h00. A classificação obtida nesta prova não substitui a nota
anteriormente obtida na componente teórica. Na repescagem de cada teste conta para
avaliação final a melhor das duas notas.
Identifique todas as folhas. Folhas não identificadas não contam para a classificação
final. Durante a prova não é permitido o uso de calculadoras ou telemóveis. As respostas
devem ser escritas a caneta. Uma resposta errada nas perguntas de escolha múltipla
desconta 1/3 da cotação da respectiva questão. Não é autorizado o uso de folhas de
rascunho. Pode usar as páginas em branco existentes no enunciado para o efeito. No verso
desta página encontra informação de suporte à realização da prova.
Boa sorte!
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 2
30o 45o 60o
sin 0,5 0,707 0,866
cos 0,866 0,707 0,5
tan 0,578 1,0 1,732
30o 45o 60o
sin 1
2
√2
2
√3
2
cos √3
2
√2
2
1
2
tan
1
√3
1 √3
void glutInitWindowSize(int width, int height);
void glutInitWindowPosition(int x, int y);
void glutCreateWindow(char *name);
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);
void glTexImage2D(GLenum target, GLint level, GLint internalFormat,
GLsizei width, GLsizei height,
GLint border,GLenum format,
GLenum type, const GLvoid * data)
void glTexEnvi(GLenum target, GLenum pname, GLint param);
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 3
+++ PRIMEIRO TESTE +++ +++ PRIMEIRO TESTE +++ +++ PRIMEIRO TESTE+++
1. [1.2v] No contexto da matéria leccionada na cadeira, o que significa fps? (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: First Person Shooter;
B: Frames per Second;
C: Force per Set;
D: Flashes per Second;
E: Nenhuma das anteriores;
Opção correcta: ________
2. [2.2v] Considere o seguinte programa em OpenGL.
1: void main(int argc, char** argv) {
2: glutInit (&argc, argv);
3: glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB);
4: glutInitWindowSize (600, 400);
5: glutInitWindowPosition (-1, -1);
6: // algum codigo omitido....
10: glutMainLoop();
11: }
Qual o resultado de execução da linha 5 ?
Resposta:
_______________________________________________________________________________________________
_______________________________________________________________________________________________
_______________________________________________________________________________________________
(espaço intencionalmente deixado em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 4
(página intencionalmente deixada em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 5
3. [0.9v] Uma das áreas em Computação Gráfica é a representação ou rendering. Diga
o que entende por este conceito: (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: Foca a criação de imagens a partir de modelos;
B: Aborda a especificação analitica da forma e aparência;
C: Permite a criação do movimento a partir de uma sequência de imagens;
D: Permite a facilidade na realização e visualização de objectos;
E: Nenhuma dos anteriores
Opção correcta: ________
4. [0.9v] Diga qual é o objectivo da computação gráfica em tempo real: (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: Dar ao utilizador controlo interactivo da cena em aplicações de visualização;
B: Gerar um conjunto de frames a partir de uma cena;
C: Desenhar, através do pipeline gráfico, o desenho de primitivas 3D à medida que
estas estão disponiveis no dispositivo 2D;
D: Optimizar o pipeline Gráfico 3D pelo uso de triângulos com vértices partilhados;
E: Nenhuma dos anteriores
Opção correcta: ________
5. [1.8v] Considere o seguinte programa em OpenGL.
01: int main(int argc, char *argv[]) {
02: glutInit(&argc, argv);
03: glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
04: glutInitWindowSize (800, 800);
05: glutInitWindowPosition (-1, -1);
06: glutDisplayFunc(myDisplay);
07: glutReshapeFunc(myReshape);
08: glutMainLoop();
09: return 0; }
Qual a função que está em falta para o código executar correctamente?
_______________________________________________________________________________________________
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 6
6. [3.0v] Considere o seguinte programa em OpenGL.
01: void myDisplay (void) {
02: glClearColor (0.0f,0.0f,0.0f);
03: glClear(GL_COLOR_BUFFER_BIT);
04: glColor3f (1.0f,1.0f,0.0f);
05: glBegin (GL_POLYGON);
06: glVertex3f(-1.0f,1.0f,0.0f);
07: glVertex3f(1.0f,1.0f,0.0f);
08: glVertex3f(0.0f,-1.0f,0.0f);
09: glEnd();
10: glFlush(); }
a) [1.5v] Descreva a forma e orientação do objecto produzida por este código.
______________________________________________________________________________________
b) [1.5v] Qual a cor do objecto e do fundo?
______________________________________________________________________________________
(espaço intencionalmente deixado em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 7
7. [2.5v] Considere os triângulos T={A, B, C} e T’={A’, B’, C’} representados na
figura abaixo.
a) [1.5] Indique a matriz de transformação a aplicar ao triângulo T para
o transformar no triângulo T’.
b) [1.0v] Calcule as coordenadas do ponto P’ resultante da aplicação ao
ponto P da transformação ao triângulo T para o transformar no
triângulo T’, referida na alínea anterior.
(0,0) x
y
10 20
A
C
B
10
20
A
B C
P
30
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 8
8. [1.0v] Assumindo que o topo da pilha de matrizes activa contém a matriz
identidade. Indique qual o conteúdo do topo da pilha após se executar o
comando OpenGL:
glRotatef(90, 0.0f, 0.0f, 1.0f); glTranslatef(3.0f, 2.0f, -1.0f);
9. [2.5v] Modelou um jipe em duas dimensões, centrado na origem do seu
referencial UV, com a frente em U=10 e a traseira em U=-10. Este modelo
tem uma roda suplente colocada na posição PUV=(-10, 2).
c) [1.6v] Sabendo que o jipe se encontra na posição JWCS=(20,20) e está
virado para o ponto DWCS=(40, 40), calcule a matriz de transformação
composta 𝑀𝑈𝑉→𝑊𝐶𝑆 que realiza a mudança do referencial do jipe
para o sistema de coordenadas do mundo.
d) [0.9v] Qual a posição da roda suplente em coordenadas do mundo? (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: PWCS= (-2, 10)
B: PWCS= (20 − 4√2, 20 + 6√2)
C: PWCS= (50 , 20)
D: PWCS= (3√2/2 , √2/2)
E: Nenhuma das anteriores
Opção correcta: ________
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 9
10. [4.0v] Considere o código abaixo:
01: glMatrixMode(GL_MODELVIEW);
02: glLoadIdentity();
03: glMatrixMode(GL_PROJECTION);
04: glLoadIdentity();
05: gluPerspective(90.0f, 1.0f, 1.0f, 2.0f);
06: glBegin(GL_POINTS);
07: glVertex3f(0.5f,0.5f,1.0f); // ponto A
09: glVertex3f(1.5f,1.5f,3.0f); // ponto B
10: glVertex3f(-1.5f,0.5f,0.5f); // ponto C
11: glVertex3f(1.5f,-1.5f,0.0f); // ponto D
12: glEnd();
e) [2v] Escreva o conteudo da matriz CTM após a execução da linha 05
b) [1.1v] Indique quais os pontos (A,B,C,D) que se encontram dentro do
volume de visualização, após a execução da linha de código 12
______________________________________________________________________________________
c) [0.9v] O volume de visualização em coordenadas do Modelo definido
pela transformação da linha 5 acima é descrito por: (escolha múltipla: indique a opção correcta)
A: Um Paralelelepipedo com a face anterior em Z=1
B: Um Paralelelepipedo centrado em (0, 0, 0, 1)T
C: Um Tronco de Cone com a base em z=2;
D: Nenhuma das anteriores;
Opção correcta: ________
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 10
(página intencionalmente deixada em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 11
+++ SEGUNDO TESTE +++ +++ SEGUNDO TESTE +++ +++ SEGUNDO TESTE+++
1. [0.9v] Indique qual dos trechos de código OpenGL deve ser usada para
definir uma fonte de luz direcional. (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: GLfloat v[] = { 0.0f, 0.5f, 0.5f, 1.0f };
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, v );
B: GLfloat v[] = { 0.0f, 0.5f, 0.5f, 1.0f };
glLightfv(GL_LIGHT0, GL_POSITION, v );
C: GLfloat v[] = { 0.0f, 0.5f, 0.5f };
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, v );
D: GLfloat v[] = { 0.0f, 0.0f, 0.0f, 1.0f };
glLightfv(GL_LIGHT0, GL_POSITION, v );
E: Nenhuma das opções anteriores
Opção correcta: ________
2. [2.1v] Considere que tem uma fonte de luz pontual em definida nas linhas
de código abaixo, que está activo o cálculo da iluminação e que não existe
nenhuma componente de luz ambiente global. Tal como ilustrado na figura,
o observador olha para um ponto P na superfície segundo um ângulo ø de
30° graus e que o ângulo θ entre a recta que liga o ponto observado e a
fonte de luz é de 60°.
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 12
GLfloat ambient[] = { 0.3, 0.0, 1.0, 1.0 };
GLfloat diffuse[] = { 1.0, 0.5, 0.5, 1.0 };
GLfloat specular[] = { 1.0, 1.0, 1.0, 1.0 };
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
GLfloat mat_ambient[] = { 0.1, 1.0, 1.0, 1.0 };
GLfloat mat_diffuse[] = { 0.6, 1.0, 0.5, 1.0 };
GLfloat mat_specular[] = { 0.0, 0.0, 0.5, 1.0 };
glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT, mat_ambient);
glMaterialfv (GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
glMaterialf (GL_FRONT, GL_SHININESS, 2.0);
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.0);
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.0);
a) [0.9v] Qual o ângulo α entre o halfway vector e a normal à superfície?
α = _________________________
b) [1.2v] Tendo em conta as propriedades do material definidas no
código, indique qual o valor da três componentes da cor para esse
ponto P, utilizando o modelo de Phong modificado.
PR = ____________________ PG = ____________________ PB = ____________________
3. [2.1v] Considere o quadrado ABCD ilustrado na figura abaixo e definido pelos
pontos A = [5 5]T, B = [20 5] T , C = [20 20]T e D = [5 20]T. Calcule a cor RGB do ponto
no centro do quadrado, utilizando sombreamento de Gouraud, sabendo que as
cores nos vértices são dadas por Cor𝐴 = [0.2 0.4 0.3], Cor𝐵 = [0.2 0.0 0.6],
Cor𝐶 = [0.0 0.4 0.4] e Cor𝐷 = [0.0 0.4 0.3].
(0,0) x
y
10 20
A
C
B10
20D C
A B
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 13
CorR (P)= _________________________
CorG (P)= _________________________
CorB (P)= _________________________
4. [0.9v] Para determinar a cor numa quadrícula, o sombreamento de Phong ... (escolha múltipla: indique a opção que conclui a frase correctamente. Resposta errada desconta 1/3 da cotação)
A: … interpola as normais nos vértices do polígono;
B: … interpola as cores nos vértices do polígono;
C: … usa a média das cores nos vértices do polígono;
D: … usa a cor do primeiro vértice do polígono;
E: Nenhuma das opções anteriores.
Opção correcta: ________
(espaço intencionalmente deixado em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 14
(página intencionalmente deixada em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 15
5. [2.0v] Considere a Figura em que o polígono ABCD é recortado pela aresta
esquerda, WS, de um rectângulo de Recorte.
a) [0.5v] Qual o nome do algoritmo que é usado para efectuar o recorte
de polígonos
______________________________________________________________________________________
b) [0.7v] Considere o segmento de recta DA. Quais são os vértices que
irão pertencer ao polígono recortado?
______________________________________________________________________________________
c) [0.8v] Considere agora o segmento de recta CD. Quais são os vértices que
irão pertencer ao polígono recortado?
______________________________________________________________________________________
6. [2.1v] Pretende discretizar, usando o algoritmo de linha de varrimento, o
triângulo com vértices A (1,1), B (1,6) e C (6,6):
a) [0.7v] Para aumentar a eficiência do processo de discretização cada
aresta é representada por um tuplo. Qual o significado de cada um
dos elementos desse tuplo?
______________________________________________________________________________________
W
C
B
D
A
S
C´
A´
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 16
b) [0.7v] Na linha de varrimento 2 qual é o conteúdo das Tabelas de
Arestas Activas?
______________________________________________________________________________________
c) [0.7v] Na linha de varrimento 6 quais são as quadrículas que vão ser
preenchidas?
______________________________________________________________________________________
7. [0.9v] O algoritmo back-face culling permite (escolha múltipla: indique a opção que conclui a frase correctamente. Respostas erradas descontam 1/3 da cotação)
A: … Remover polígonos côncavos;
B: … Discretizar polígonos convexos ;
C: … Remover faces dianteiras;
D: … Discretizar segmentos de recta :
E: Nenhuma das opções anteriores.
Opção correcta: _________
(espaço intencionalmente deixado em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 17
8. [2.4v] Considere uma imagem com resolução de 1000 x 1000 pixéis. Imagine que quer sintetizar uma imagem por traçado de raios (ray-tracing) a partir de uma
cena com 100 objectos
a) [1.2v] Quantas intersecções entre raios primários e objectos terão de ser
calculadas para sintetizar a imagem, no caso mais desfavorável ?
______________________________________________________________________________________
b) [1.2v] Quantos raios secundários pode cada raio primário originar
(considere o caso mais genérico) ?
______________________________________________________________________________________
9. [0.6v] Qual das seguintes técnicas / optimizações não se aplica ao ray-tracing ? (escolha múltipla: indique a opção mais correcta. Respostas erradas descontam 1/3 da cotação)
A: … Back-face culling (remoção de faces traseiras);
B: … Raios "Shadow Feeler";
C: … Traçado recursivo de raios;
D: … Cálculo de raios de refracção;
E: Nenhuma das opções anteriores.
Opção correcta: _____________
10. [1.5v] Quer produzir um efeito semelhante a uma superfície com relevo
(superfícies com altos e baixos e/ou rugosidades) utilizando mapeamento de
texturas.
a) [0.6v] Que técnica de mapeamento de texturas pode usar?
______________________________________________________________________________________
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 18
b) [0.9v] Para obter este efeito, a técnica descrita acima recorre à perturbação
dos valores das coordenadas ...
(escolha múltipla: indique a opção que conclui a frase correctamente. Resposta errada desconta 1/3 da cotação)
A: … dos vértices das facetas;
B: … paramétricas dos texels;
C: … dos afixos das normais às facetas;
D: … dos coeficientes do modelo de iluminação de Blinn-Phong;
E: Nenhuma das opções anteriores.
Opção correcta: _____________
11. [1.5v] Considere que deseja controlar o mapeamento de texturas de modo a
substituir todos os pixeis correspondentes a um polígono pelos valores calculados
a partir dos texels da textura apenas. Indique os valores das constantes na linha de
código OpenGL abaixo para obter este resultado:
glTexEnvi(GL_TEXTURE_ENV, B, C)
B = ______________________________________
C = _______________________________________
(espaço intencionalmente deixado em branco – usar para rascunho – conteúdo não é avaliado)
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Identificação do Aluno
Nome: Número:
Página 19
12. [1.2v] Diga qual o número máximo de cores suportado pelo formato GIF
______________________________________________________________________________________
13. [0.9v] Quer colocar a imagem seguinte num ficheiro para distribuir via World
Wide Web.
Nestas condições, qual será o formato mais apropriado para o armazenamento da
imagem ?
A: jPEG
B: PNG
C: EPS
D: jFIF
E: Nenhuma das anteriores.
(escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
Opção correcta: _____________
14. [0.9v] Diga o que entende por saturação de cor ... (escolha múltipla: indique a opção correcta. Respostas erradas descontam 1/3 da cotação)
A: ... a intensidade da cor reflectida
B: ... o comprimento de onda dominante de cor
C: ... a distância da cor ao cinzento de igual intensidade
D: ... a intensidade de cor emitida
E: Nenhuma das anteriores
Opção correcta: _____________
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
2000 2005 2010 2015
CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark
Página 20
(página intencionalmente deixada em branco – usar para rascunho – conteúdo não é avaliado)