Vous êtes sur la page 1sur 12

Fundao CECIERJ - Vice Presidncia de Educao Superior a Distncia

Curso de Tecnologia em Sistemas de Computao


Disciplina: Computao Grfica
AD1 - 1 semestre de 2014.

1) Abra o software Blender (http://www.blender.org/). Construa algum objeto grfico de seu


interesse e classifique-o (1.0 ponto).
O objeto abaixo foi construdo no Blender seguindo os seguintes passos:
a) Criao de um cubo

b) Seleo da face superior do cubo

c) Extruso da face superior. A extruso uma operao de modelagem de slidos na


qual um slido construdo pela varredura translacional de uma curva ao longo de um
uma direo por uma dada distncia (ver http://www2.ic.uff.br/~aconci/sweeping.html).

d) Colapso dos quatro vrtices da face superior em um nico vrtice.

Observe que o objeto gerado um slido, j que determinado por uma superfcie
fechada (contm todos os seus pontos interiores), limitada ( possvel definir uma esfera
aberta que contm toda a superfcie) e sem bordo (todos os pontos da superfcie
localmente possuem a topologia de um disco aberto e no um semidisco aberto).

2) Explique alguma tcnica de animao usada em Computao Grfica (1.0 ponto).


Uma das tcnicas mais bsicas de animao em Computao Grfica a tcnica
de Key-framing. Na tcnica de Key-framing, de modo anlogo a animao de cartoons,
o artista de modelagem cria o personagem 2D ou 3D em diferentes poses apenas para os
quadros chave da animao (key), ao invs de modelar o personagem em todas as
possveis configuraes alcanveis na animao. A partir dos quadros chave, o
programa de animao gera os quadros intermedirios denominados in-between frames.

O programa gera os quadros intermedirios atravs de um esquema de


interpolao. Dados dois quadros chave A e B, correspondentes aos instantes de tempo tA
e tB, para cada vrtice vi do modelo do personagem, gerada uma nova posio
posio(v,t) no quadro correspondente ao instante de tempo tA t tB atravs da
expresso:
posio(vi,t) = (1-t)posio(vi, tA)+tposio(vi, tB)

Quanto ttB, o quadro B se torna o quadro A e o prximo quadro na sequncia de


key-frames se torna o quadro B. Observe que outras formas de interpolao, no
necessariamente lineares podem ser utilizadas para produzir outros efeitos de animao.
Referncia: 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 site
anterior.

3) Explique algebricamente porque, no mtodo de Coons, necessrio subtrair a


interpolao bilinear dos quatro vrtices, que so os extremos das curvas que definem um
retalho (1.0 ponto).
O mtodo de parametrizao de Coons consiste em combinar diversas interpolaes
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 operaes de lofting horizontal e


vertical obtendo a parametrizao
C(u,v)=(1-v)pu0(u)+vpu1(u)+(1-u)p0v(v)+up1v(v)

Como resultado, temos que os bordos do retalho so dados pela soma de cada
uma das curvas originais com a interpolao linear dos respectivos vrtices.
Isto pode ser mostrado observando o que ocorre com a funo C(u,v)
quando consideramos a restrio v=0. Nesse caso temos que C(u,0)=(1-0)pu0(u)
+0pu1(u)+ (1-u)p0v(0)+up1v(0). Observe que a superfcie desejada, quando
restringimos o parmetro v a zero, deveria representar a curva p u0. Entretanto,
possvel verificar que C(u,0) descreve pu0 somada a interpolao linear dos
vrtices p0v(0) e p1v(0). O mesmo efeito ocorre para as demais curvas que definem o
bordo do retalho a ser reconstrudo.
Para resolver tal problema, preservando as curvas originais, subtramos o
retalho obtido C(u,v) da interpolao bilinear dos 4 vrtices que so os pontos
extremos das curvas de definio: C(u,v) = C(u,v)-B(u,v).

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
representao discreta onde os valores so 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 interpolao 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 vizinhana do ponto (x,y) possuem coordenadas inteiras (i,j), (i+1,j),
(i+1,j+1) e (i,j+1).
I(i+1,j+1)

I(i,j+1)

I(x,y)

I(i,j)

I(i+1,j)

Usando ento interpolao bilinear temos:

I ( x, y) (1 x)[(1 y) I (i, j ) yI (i, j 1)] x[(1 y) I (i 1, j ) yI (i 1, j 1)]

5) Apresente a equao paramtrica de um toro. Mostre com gerar uma malha para este
objeto grfico (1.0 ponto).

http://en.wikipedia.org/wiki/File:Torus_cycles.png (Wikipedia Commons)

A equao paramtrica do toro descreve suas coordenadas x,y,z em funo dos


parmetros 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
descrio dada por:

x( , ) ( R r cos ) cos
y ( , ) ( R r cos ) sin
z ( , ) r sin
A topologia do toro dada pelo produto tensorial de dois crculos. Para gerarmos
uma malha tomamos o domnio da funo no espao de parmetros e definimos um
reticulado de resoluo desejada. Sobre o pontos do reticulado definimos uma
triangulao que determina a conectividade da malha. Observe que para termos a
topologia do toro, necessrio identificar os vrtices inferiores aos superiores da malha e
os vrtices no lado direito aos vrtices do lado esquerdo.

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 a
tabela abaixo.

A
b

e
B

7) Descreva a representao de um tetraedro atravs de uma lista de faces, vrtices e arestas


(1.0 ponto). Considere as coordenadas dadas pela figura abaixo.

Lista de vrtices
Vrtices Coord.
v0
(0,0,0)
v1
(0,0,1)
v2
(1,0,0)
v3
(0,1,0)

Lista de arestas
Vrtices Coord.
e0
(v0,v1)
e1
(v0,v2)
e2
(v0,v3)
e3
(v3,v1)
e4
(v1,v2)
e5
(v2,v3)

Lista de faces
Vrtices Coord.
f0
(e3,e4,e5)
f1
(e0,e3,e2)
f2
(e1,e2,e5)
f3
(e0,e1,e4)

Obs.: atentar para a ordenao das arestas nas faces no sentido contrrio aos ponteiros do relgio.

8) Considere o problema de se determinar a forma de uma pista bidimensional usando uma


curva paramtrica, por exemplo, uma B-Spline. Como voc construiria os lados
delimitadores da pista, considerando a curva como seu eixo central (eixo medial)? Na
figura abaixo, a curva que indica o trajeto da pista a curva vermelha tracejada. Observe
que como o desenho foi feito a mo, as bordas no esto 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 expresso
abaixo, onde Bi,p a primeira derivada da base de B-Spline Bi,p , que por sua vez dada
pela frmula de Cox-de-Boor.

C (u ) Bi, p (u ) Pi , a u b,
i 0

U {a, a,, a, u p 1 ,, um p 1 , b, b,, b}


Bi, p (u )

p
p
Bi , p 1 (u )
Bi 1, p 1 (u ),
ui p ui
ui p 1 ui 1

1, u u ui 1
Bi ,0 (u ) i
0, c.c
u
u
u ui
Bi , p (u )
Bi , p 1 (u ) i p 1
Bi 1, p 1 (u )
ui p ui
ui p 1 ui 1

rn

t =C(u)

-rn

O vetor normal n pode ser obtido atravs da rotao do vetor tangente t de 90 graus no
sentido anti-horrio.
De posse do vetor normal n construmos um ponto com coordenadas rn e rn, onde r
uma constante igual a metade da largura desejada para a pista. Fazemos este processo para
uma sequencia de pontos ui e os conectamos formando duas curvas poligonais, uma interna e
outra externa a curva original.

9) Faa uma pesquisa sobre a curva Catmull-Rom (1.0 ponto).


As curvas Catmull-Rom formam um famlia de curvas spline do tipo interpolante. Uma
das caractersticas das curvas Catmull-Rom a de que o vetor tangente a curva em um ponto
de controle pi definido por a(pi+1-pi-1), onde a uma constante e pi-1 e pi+1 so adjacentes a
pi. O vetor tangente nos pontos extremos da curva p0 e pn normalmente no so definidos,
sendo considerados na maioria dos casos dados por a(p1-p0) e a(pn-pn-1).
pi
pi-1

pi+1

10) Explique como construir a superfcie de um terreno usando um mapa de alturas, isto ,
uma imagem digital expressa na forma de um matriz de nm 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 vrtice da malha que corresponde ao terreno. A estrutura
combinatria(conectividade) da malha obtida triangulando-se os vrtices do reticulado (ver
questo 5). A realizao geomtrica da malha d-se atravs da associao de coordenadas a
cada um dos vrtices do reticulado. As coordenadas x e y podem ser obtidas atravs do
mapeamento linear do intervalo dado por [0,n] no intervalo [xmin, xmax] sendo a
coordenada y obtida de modo anlogo (xmin, xmax, ymin e ymax definem a rea do terreno).
A coordenada z de cada vrtice 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 tringulos na malha. Uma alternativa costurar as
triangle strips atravs de tringulos falsos que no aparecem na visualizao final.