Upload
cibeleramos
View
229
Download
0
Embed Size (px)
Citation preview
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 1/12
Fundação CECIERJ - Vice Presidência de Educação Superior a DistânciaCurso de Tecnologia em Sistemas de Computação
Disciplina: Computação Gráfica
AD1 - 1° semestre de 2014.
1) Abra o software Blender (http://www.blender.org/). Construa algum objeto gráfico de seu
interesse e classifique-o (1.0 ponto).
O objeto abaixo foi construído no Blender seguindo os seguintes passos:
a) Criação de um cubo
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 2/12
b) Seleção da face superior do cubo
c) Extrusão da face superior. A extrusão é uma operação de modelagem de sólidos naqual um sólido é construído pela varredura translacional de uma curva ao longo de um
uma direção por uma dada distância (ver http://www2.ic.uff.br/~aconci/sweeping.html).
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 3/12
d) Colapso dos quatro vértices da face superior em um único vértice.
Observe que o objeto gerado é um sólido, já que é determinado por uma superfície
fechada (contém todos os seus pontos interiores), limitada (é possível definir uma esfera
aberta que contém toda a superfície) e sem bordo (todos os pontos da superfícielocalmente possuem a topologia de um disco aberto e não um semidisco aberto).
2) Explique alguma técnica de animação usada em Computação Gráfica (1.0 ponto).
Uma das técnicas mais básicas de animação em Computação Gráfica é a técnicade Key-framing . Na técnica de Key-framing , de modo análogo a animação de cartoons,
o artista de modelagem cria o personagem 2D ou 3D em diferentes poses apenas para os
quadros chave da animação (key), ao invés de modelar o personagem em todas as possíveis configurações alcançáveis na animação. A partir dos quadros chave, o
programa de animação gera os quadros intermediários denominados in-between frames.
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 4/12
O programa gera os quadros intermediários através de um esquema de
interpolação. Dados dois quadros chave A e B, correspondentes aos instantes de tempo t A e t B, para cada vértice vi do modelo do personagem, é gerada uma nova posição
posição(v,t ) no quadro correspondente ao instante de tempo t A t t B através da
expressão:
posição(vi,t ) = (1-t ) posição(vi, t A)+t × posição(vi, t B)
Quanto t t B, o quadro B se torna o quadro A e o próximo quadro na sequência dekey-frames se torna o quadro B. Observe que outras formas de interpolação, não
necessariamente lineares podem ser utilizadas para produzir outros efeitos de animação.
Referência: The Cg tutorial. Radima Fernando and Mark J. Kilgard. Addison Wesley.
https://developer.nvidia.com/content/cg-tutorial-chapter-6-animation. As figuras acima foram obtidas do siteanterior.
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 5/12
3) Explique algebricamente porque, no método de Coons, é necessário subtrair a
interpolação bilinear dos quatro vértices, que são os extremos das curvas que definem um
retalho (1.0 ponto).
O método de parametrização de Coons consiste em combinar diversas interpolações
lineares das curvas de bordo segundo o seguinte esquema:
Lofting vertical – interpolamos linearmente as curvas pu0 e pu1.
(1-v) pu0(u)+vpu1(u)
Lofting horizontal – interpolamos linearmente as curvas p0v e p1v.
(1-u) p0v(v)+up1v(v)
Soma dos dois loftings – somamos as operações de lofting horizontal e
vertical obtendo a parametrizaçãoC’(u,v)=(1-v)pu0(u)+vpu1(u)+(1-u)p0v(v)+up1v(v)
Como resultado, temos que os bordos do retalho são dados pela soma de cada
uma das curvas originais com a interpolação linear dos respectivos vértices.
I sto pode ser mostrado observando o que ocorre com a função C’(u,v)
quando consideramos a restr ição v=0. Nesse caso temos que C’(u,0)=(1-0)p u0 (u)+0p u1 (u)+ (1-u)p 0v (0)+up 1v (0). Observe que a superfície desejada, quandorestr ingimos o parâmetro v a zero, deveria representar a curva p u0 . En tretanto, é possível verificar que C’(u,0) descreve pu0 somada a interpolação l inear dos
vértices p 0v (0) e p 1v (0). O mesmo efeito ocorre para as demais curvas que definem obordo do retalho a ser reconstruído.
Para resolver tal problema, preservando as curvas originais, subtraímos o
retalho obtido C’ (u,v) da interpolação bilinear dos 4 vértices que são os pontosextremos das curvas de definição: C (u,v) = C’ (u,v)- B(u,v).
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 6/12
4) Considere uma imagem digital expressa na forma de um matriz de n×m elementos, onde
cada elemento armazena um valor em [0,255]. Sabemos que a imagem é uma
representação discreta onde os valores são conhecidos em pares de coordenadas inteiras(i,j), onde 0<i<n-1 e 0<j<m-1. Mostre uma forma de calcular o valor da imagem em uma
coordenada real (x,y), onde 0<x<n-1 e 0<y<m-1, por exemplo, o valor em (0.45,7.63)
(1.0 ponto).
Para calcular o valor em um ponto com coordenadas reais pode-se utilizar
eficazmente o processo de interpolação bilinear. Primeiramente, dado um ponto ( x, y) em
coordenadas reais, identificamos as coordenadas inteiras dos 4 pixels vizinhos. Considere
as coordenadas inteiras i = x e j = y, onde x é o maior inteiro menor ou igual a x.Logo, os 4 pixels na vizinhança do ponto (x,y) possuem coordenadas inteiras (i,j), (i+1,j),
(i+1,j+1) e (i,j+1).
Usando então interpolação bilinear temos:
)]1,1(),1()1[()]1,(),()1)[(1(),( ji yI ji I y x ji yI ji I y x y x I
I(i,j) I(i+1,j)
I(i+1,j+1)I(i,j+1)
I(x,y)
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 7/12
5) Apresente a equação paramétrica de um toro. Mostre com gerar uma malha para este
objeto gráfico (1.0 ponto).
http://en.wikipedia.org/wiki/File:Torus_cycles.png (Wikipedia Commons)
A equação paramétrica do toro descreve suas coordenadas x,y,z em função dos
parâmetros e , ambos variando entre [0,2] e das constantes R e r que definem,
respectivamente, o raio do tubo e o raio do centro do toro ao centro do tubo. Tal
descrição é dada por:
sin),(
sin)cos(),(
cos)cos(),(
r z
r R y
r R x
A topologia do toro é dada pelo produto tensorial de dois círculos. Para gerarmos
uma malha tomamos o domínio da função no espaço de parâmetros e definimos um
reticulado de resolução desejada. Sobre o pontos do reticulado definimos uma
triangulação que determina a conectividade da malha. Observe que para termos atopologia do toro, é necessário identificar os vértices inferiores aos superiores da malha e
os vértices no lado direito aos vértices do lado esquerdo.
2
2
2
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 8/12
6) Explique como o grafo dual é codificado na estrutura Winged-edge (1.0 ponto).
Na estrutura de dados Winged-edge o grafo dual é codificado nos campos que
guardam, para cada aresta, as referencias para as faces à esquerda e à direita conforme atabela abaixo.
B
A
b d
c e
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 9/12
7) Descreva a representação de um tetraedro através de uma lista de faces, vértices e arestas
(1.0 ponto). Considere as coordenadas dadas pela figura abaixo.
Obs.: atentar para a ordenação das arestas nas faces no sentido contrário aos ponteiros do relógio.
Lista de vértices
Vértices Coord.
v0 (0,0,0)
v1 (0,0,1)
v2 (1,0,0)
v3 (0,1,0)
Lista de arestas
Vértices Coord.
e0 (v0,v1)
e1 (v0,v2)
e2 (v0,v3)
e3 (v3,v1)
e4 (v1,v2)
e5 (v2,v3)
Lista de faces
Vértices Coord.
f0 (e3,e4,e5)
f1 (e0,e3,e2)
f2 (e1,e2,e5)
f3 (e0,e1,e4)
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 10/12
8) Considere o problema de se determinar a forma de uma pista bidimensional usando uma
curva paramétrica, por exemplo, uma B-Spline. Como você construiria os lados
delimitadores da pista, considerando a curva como seu eixo central (eixo medial)? Nafigura abaixo, a curva que indica o trajeto da pista é a curva vermelha tracejada. Observe
que como o desenho foi feito a mão, as bordas não estão perfeitas e esse é o problema
que se deseja resolver (1.0 ponto).
Um forma de resolver o problema consiste em dado um ponto da curva com coordenadas
( x(u), y(u)), determinar o vetor normal a partir do vetor tangente. O vetor tangente a um ponto
C (u) de uma curva B-Spline de grau p, com n pontos de controle, é dada pela expressão
abaixo, onde B’ i,p é a primeira derivada da base de B-Spline Bi,p , que por sua vez é dada pela fórmula de Cox-de-Boor.
)()()(
.,0
,1)(
),()()(
},,,,,,,,,,{
,,)()(
1,1
11
1
1,,
1
0,
1,1
11
1,,
11
0
,
u Buu
uuu B
uu
uuu B
cc
uuuu B
u Buu
pu B
uu
pu B
bbbuuaaaU
bua P u BuC
pi
i pi
pi
pi
i pi
i pi
ii
i
pi
i pi
pi
i pi
pi
pm p
n
i
i pi
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 11/12
O vetor normal n pode ser obtido através da rotação do vetor tangente t de 90 graus no
sentido anti-horário.
De posse do vetor normal n construímos um ponto com coordenadas r n e –
r n, onde r éuma constante igual a metade da largura desejada para a pista. Fazemos este processo parauma sequencia de pontos ui e os conectamos formando duas curvas poligonais, uma interna e
outra externa a curva original.
9) Faça uma pesquisa sobre a curva Catmull-Rom (1.0 ponto).
As curvas Catmull-Rom formam um família de curvas spline do tipo interpolante. Uma
das características das curvas Catmull-Rom é a de que o vetor tangente a curva em um ponto
de controle pi é definido por a( p
i+1- p
i-1), onde a é uma constante e p
i-1 e p
i+1 são adjacentes a
pi. O vetor tangente nos pontos extremos da curva p0 e pn normalmente não são definidos,sendo considerados na maioria dos casos dados por a( p1- p0) e a( pn- pn-1).
r n
-r n
t =C’ (u)
pi
pi-1 pi+1
7/24/2019 AD1_2014_1 Computação Gráfica
http://slidepdf.com/reader/full/ad120141-computacao-grafica 12/12
10) Explique como construir a superfície de um terreno usando um mapa de alturas, isto é,uma imagem digital expressa na forma de um matriz de n ×m elementos, onde cada
elemento armazena um valor em [0,255], codificando de forma discreta um intervalo de
alturas [hmin, hmax](1.0 ponto).
Para construir um terreno a partir de uma imagem digital basta associar a cada pixel da
imagem a um vértice da malha que corresponde ao terreno. A estrutura
combinatória(conectividade) da malha é obtida triangulando-se os vértices do reticulado (ver
questão 5). A realização geométrica da malha dá-se através da associação de coordenadas acada um dos vértices do reticulado. As coordenadas x e y podem ser obtidas através do
mapeamento linear do intervalo dado por [0,n] no intervalo [xmin, xmax] sendo a
coordenada y obtida de modo análogo (xmin, xmax, ymin e ymax definem a área do terreno).
A coordenada z de cada vértice pode ser determinada mapeando-se linearmente o intervalo[0,255] no intervalo [hmin,hmax].
Para lidar eficientemente com a malha triangulada no OpenGL pode-se utilizar triangle strips, uma para cada coluna (ou linha) de triângulos na malha. Uma alternativa é costurar as
triangle strips através de triângulos falsos que não aparecem na visualização final.