Professional Documents
Culture Documents
`
,
+ + .( ) ( ) 1 1 t = (q +1) -
dy
dx
logo + (s - t) = 2.
dy
dx
( ) r q 1 2 1, dai dx.(s - t) = 2.(r.dy - q.dx) + 2dy - dx;
chamando dx(s - t) = d
i
Programa Especial de Treinamento / PET/AGRO Pgina 23
- Apostila de Computao Grfica (Incompleta)-
d
i
= 2.(rdy - qdx) + 2dy - dx; mas
{
{
r = xi - 1
q yi 1
d = 2.(xi -1)dy - 2.(yi -1). dx + 2dy - dx ; (1), dai
d +1 = 2. xi. dy - 2yi. dx + 2dy - dx; fazendo d +1 - d , tem- se:
i
i i i
'
'
sen( )
cos( )
passo: t - mantm adequada a densidade dos pontos
Programa Especial de Treinamento / PET/AGRO Pgina 27
- Apostila de Computao Grfica (Incompleta)-
x raio ; y = 0
para t de 1 at 360 com passo t
pixel (x , y , cor)
x r
y r
t
t
cos( )
sen( )
180
180
Programa Especial de Treinamento / PET/AGRO Pgina 28
- Apostila de Computao Grfica (Incompleta)-
Problemas : - uso de funes trigonomtricas.
- densidade dos pontos varia com o raio.
Algoritmo Incremental Com Simetria
base: deslocamento angular com incremento de 1 pixel (deslocamento em radianos
- 1/r)
Uma propriedade importante que pode-se usar no algoritmo a simetria da cir-
cunferncia:
cos (x) = cos ( t x)
cos (x) = cos (-x)
sen (x) = sen ( - x)
sen (x) = sen ( + x) = - sen (-x)
Programa Especial de Treinamento / PET/AGRO Pgina 29
- Apostila de Computao Grfica (Incompleta)-
Problema: uso de funes trigonomtricas o que reduz muito a eficincia do
algoritmo.
Soluo: algoritmo incremental com deslocamento angular constante e pe-
queno, com a rotao a partir de um ponto inicial:
x x y
y y x
n n n
n n n
+
+
+
'
1
1
cos sen
cos sen
onde : cos e sen so valores fixos.
Problema: uso de xn e yn nas prximas iteraes causa erros cumulativos
Soluo: uso de nmeros reais com funo de arredondamento, calculando
cada pixel.
3.2.1.1. ALGORITMO
x r ; y = 0;
gera pontos sobre o eixo:
Programa Especial de Treinamento / PET/AGRO Pgina 30
- Apostila de Computao Grfica (Incompleta)-
pixel (x , y , cor),
pixel (-x , y , cor),
pixel (x , -y , cor),
pixel (-x , -y , cor).
demais pontos (0 t p / 4 com passo 1 / r) :
x = r cos t,
y = r sen t,
pixel (x , y , cor),
pixel (x , -y , cor),
pixel (-x , y , cor),
pixel (-x , -y , cor),
pixel (y , x , cor),
pixel (y , -x , cor),
pixel (-y , -x , cor).
3.2.2. Algoritmo de Bresenham
A soluo dada por BRESENHAM tambm utiliza a noo de simetria,
gerando o primeiro quadrante e os demais por simetria. Utiliza-se ainda um crculo
centrado na origem. Comeamos no ponto (O,R) e vamos diminuindo x exaustiva-
mente, ou comeamos no ponto (R,O) e diminumos u exaustivamente.
Escolha: (O,R).
Partindo de (O,R), gerando a circunferncia no sentido horrio, o algo-
ritmo pode escolher entre 3 pontos diferentes, sendo que a escolha deve recair sobre
aquele que est mais prximo do crculo ideal:
- horizontalmente para direita; (mh)
- diagonalmente para baixo direita; (md)
Programa Especial de Treinamento / PET/AGRO Pgina 31
- Apostila de Computao Grfica (Incompleta)-
- verticalmente para baixo; (mv)
m h x y R
m d y R
m v y R
i i
i
i
=
= ( x
= ( x
i
i
( ) ( )
) ( )
) ( )
+ +
+ +
+
'
1
1 1
1
2 2 2
2 2 2
2 2 2
O algoritmo escolhe o pixel que minimize o quadrado da distncia entre
um destes pixel e o crculo verdadeiro (mv, md, mh).
Chamando i = diferena entre o quadrado da distncia do pixel ao
centro e o raio da circunferncia, temos: i = (x
i
+1)
2
+(y
i
- 1)
2
+ R
2
(pixel diago-
nal)
1) caso (i < 0) - O ponto B est no interior do crculo e deve-se escolher
outro ponto: caso 1 ou 2.
Se mh md e md mv e
a) se 0 o ponto escolhido o A;
Programa Especial de Treinamento / PET/AGRO Pgina 32
- Apostila de Computao Grfica (Incompleta)-
b) se > 0 o ponto escolhido o B;
2) caso (i < 0) - O ponto B est fora da circunferncia (caso 3 ou 4)
a) se 0 o ponto escolhido o B;
b) se > 0 o ponto escolhido o C;
Programa Especial de Treinamento / PET/AGRO Pgina 33
- Apostila de Computao Grfica (Incompleta)-
4. PREENCHIMENTO DE REAS
Terminais de varredura tm como vantagem (sobre terminais vetoriais) a
capacidade de representao de reas preenchidas (cheias). H necessidade de um
algoritmo para preenchimento de reas do tipo polgono de circunferncias.
4.1. Algoritmo de Varredura
Princpio: o contorno do polgono j est desenhado na tela com uma determi-
nada cor, diferente daquela de fundo.
- necessita de um ponto interno deste polgono.
Descrio: A partir do ponto fornecido, muda a cor do pixel at encontrar um
pixel de cor diferente da cor de fundo, seguindo as linhas de varredura; (encontrar
uma aresta do polgono).
-Uma lista ligada armazena pontos que servem para continuar o algoritmo; tais
pontos fazem o papel de ponto inicial, na iterao seguinte.
Obs.: o algoritmo se presta preenchimento de qualquer rea fechada.
4.2.Algoritmo de Anlise Geomtrica
Baseado na descrio geomtrica (como, por exemplo, uma lista de vrtices).
Identifica os pontos externos do polgono e as intersees das arestas do polgono
com as linhas de varredura.
Programa Especial de Treinamento / PET/AGRO Pgina 34
- Apostila de Computao Grfica (Incompleta)-
1 passo: montar a tabela de lados:
LADO Y
min
Y
mx
X para
Y
min
1/m
1 0 10 80 -8,0
2 10 30 0 +2,0
3 30 50 40 -1,0
4 50 70 20 +2,0
5 30 70 110 -1,25
6 0 30 130 -0,67
7 0 30 130 -1,0
8 10 30 80 +0,67
Programa Especial de Treinamento / PET/AGRO Pgina 35
- Apostila de Computao Grfica (Incompleta)-
(Armazenamento do polgono - 8 lados)
2 passo: Interseo com a linha de varredura
Vamos excluir os lados que esto acima da linha de varredura ( y=20)
(Y
min
20) e os que esto abaixo da mesma (Y
mx
20). Assim a anlise ser das
arestas 2, 6, 7 e 8.
A interseo dada pela frmula:
x
1
m
Y - Y + X
varredura min Ymin
( )
(Equao da reta)
Observe: (aresta 7) x = -1.0 (20 - 0) + 130 = 110
3 passo: Ordenam-se os pontos e traa-se as linhas, tomando-as de 2 em 2.
Ordenamento de x, com valores crescentes:
y=20
(x=20) (x=116,6) (x=110)
(x=86,7)
(1) (2) (3) (4)
Programa Especial de Treinamento / PET/AGRO Pgina 36
- Apostila de Computao Grfica (Incompleta)-
O preenchimento comea para x par e termina para x impar.
Problema: linha de varredura (y = 30) encontra um vrtice
- A primeira interseo no ponto (40 , 30) 1 nico ponto para mudar o
estado de preenchimento.
- A interseo (100 , 30) no deve mudar este estado, pois, o preenchi-
mento deve continuar.
Soluo: (100,30) deve ser representado na lista de intersees por um nmero
par de pontos (dois ou mesmo nenhum), neste caso, os lados esto totalmente acima
ou abaixo do vrtice, as inclinaes tm sinais diferentes.
Programa Especial de Treinamento / PET/AGRO Pgina 37
- Apostila de Computao Grfica (Incompleta)-
4.3.Preenchimento De Circunferncia
Quando o problema uma circunferncia, o preenchimento simples:
calcula-se facilmente a interseo dela com a linha de varredura:
x (clculo) = R
2
- y
2
EXERCCIOS:
1) Preencher as seguintes reas
Programa Especial de Treinamento / PET/AGRO Pgina 38
- Apostila de Computao Grfica (Incompleta)-
2) Estenda o algoritmo, de maneira a cobrir as seguintes reas:
Programa Especial de Treinamento / PET/AGRO Pgina 39
- Apostila de Computao Grfica (Incompleta)-
5. TRANSFORMAES GEOMTRICAS
So (alteraes) operaes matemticas que permitem alterar uniforme-
mente o aspecto de um desenho j armazenado no computador. Tais transformaes
permitem alteraes uniformes de uma imagem definida sobre um sistema de coor-
denadas. No h comprometimento da estrutura do desenho mas do aspecto que o
mesmo assumir. (mudana de orientao / escala).
Observao: interessante notar que as operaes de transformao de
visualizao (WC/NDC) So combinaes de transformaes de escala (altera valo-
res das coordenadas de modo proporcional ) e de translao.
3 tipos fundamentais
de transformao :
ESCALA
TRANSLAO
ROTAO (ao redor da origem)
Programa Especial de Treinamento / PET/AGRO Pgina 40
- Apostila de Computao Grfica (Incompleta)-
5.1. Transformao De Escala
Multiplicao de todas as coordenadas que definem o desenho por fato-
res de escala no nulos.
BIDIMENSIONAL
Fator de escala horizontal - X
Fator de escala vertical - Y
'
'
x E x x
y E y y
=
=
ou
]
]
]
]
]
]
]
]
]
x
y
Ex
Ey
x
y
0
0
obs:
E >1 Ampliacao da imagem
0 E <1 reducao da imagem
E < 0 Espelhamento
<
'
'
x x T x
y y T y
=
=
]
]
]
]
]
]
+
]
]
]
x
y
Tx
Ty
x
y
P (x, y) ; P(x, y) { P= T+P }
obs.: suponha uma linha constituda por um nmero muito grande de pontos,
este processo pode consumir muito tempo. A frente, definiremos translao com so-
mente pontos iniciais e finais de linha.
5.2. Rotao Em Torno Da Origem:
Movimentao de uma figura para uma outra posio, de forma que to-
dos os pontos da imagem mantenham a mesma distncia da origem que possuam
Programa Especial de Treinamento / PET/AGRO Pgina 42
- Apostila de Computao Grfica (Incompleta)-
antes da transformao. Rotao em torno de um ponto qualquer: transformaes de
translao e de rotao em torno da origem.
5.2.1. DEFINIES MATEMTICAS
+
'
x x
y y x
cos
cos sen
- y sen (I)
(II)
: ngulo tomado no sentido anti-horrio
em outro sentido :
cos( ) cos
sen( ) sen
'
Modificar equao I e II
Demonstrao:
L x y +
2 2
, cos =
x
L
; sen =
y
L
;
mas L a distncia de (x, y) origem tambm, temos:
L x y +
2 2
e cos ( + =
x
L
; sen ( + ) =
y
L
Programa Especial de Treinamento / PET/AGRO Pgina 43
- Apostila de Computao Grfica (Incompleta)-
como
cos( ) cos cos sen sen
sen( ) sen cos sen cos
a b a b a b
a b a b b a
+
+ +
'
, temos:
'
x
L
y
L
cos cos sen sen
sen cos sen cos
+
x L L
y L L
cos cos sen sen
sen cos sen cos
5.3. Coordenadas Homogneas e Matriz De Transformao
Podemos facilitar o cmputo de valores e transformar com uso de matrizes
para rotao, escala e translao.
+
P T P Translacao
P =S P Escala
P =R P Rotacao
Se os pontos so tratados com coordenadas homogneas, todos as trans-
formaes podem ser tratadas com multiplicaes. Em coordenadas homogneas, um
ponto tratado com um vetor de 3 valores (tripla) (x, y, w). O ponto transformado
representado por (x, y, w). W colocado para dar consistncia nos clculos.
A. Matriz de Escala
Programa Especial de Treinamento / PET/AGRO Pgina 44
- Apostila de Computao Grfica (Incompleta)-
E
Ex
Ey
]
]
]
]
]
0 0
0 0
0 0 1
[ ] [ ] [ ] [ ]
]
]
]
]
]
x y w w 3 2 1
2 0 0
0 2 0
0 0 1
6 4 x y w
Programa Especial de Treinamento / PET/AGRO Pgina 45
- Apostila de Computao Grfica (Incompleta)-
B. Matriz de Translao: no caso P= TP
inverter
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
x
y
Tx
Ty
x
y
1
1 0
0 1
0 0 1 1
ou [ ] [ ]
]
]
]
]
]
x y
Tx Ty
x y 1
1 0 0
0 1 0
1
1
Exemplo:
[ ] [ ]
]
]
]
]
]
x y w 3 4 1
1 0 0
0 1 0
2 0 1
[ ] [ ]
x y w
ignorado
1 4 1
C) MATRIZ DE ROTAO
+
'
x x y
y y x
cos sen
cos sen
matriz de rotacao =
cos sen
= R
0
0
0 0 1
]
]
]
]
]
sen cos
[ ] [ ]
x y w x y w R ou no caso: P= R() . P
Programa Especial de Treinamento / PET/AGRO Pgina 46
- Apostila de Computao Grfica (Incompleta)-
R =
cos -sen
0
0
0 0 1
sen cos
]
]
]
]
]
5.4. Combinao Das Transformaes
Combinao de vrias transformaes espelhamento
Facilidade: uso de matrizes de transformao
Supondo:
( , ) ( , ) ( , ) x y x y x y
transf. com uso de M
1
transf. com uso de M
2
1 1 2 2
existe M
3
que chega direto (x
2
,
y2
)
Existe a matriz que faz diretamente a converso e tal matriz dada por m1.m2.
demonstrao:
[ ] [ ] ( )
[ ] [ ] ( )
x y x y m
x y x y m
1 1 1
2 2 2 1 2
1 1 1
1 1 2
.
.
(2) em (1) :
[ ] [ ] ( )
x y x y m m
2 2 1 2
1 1 , . , pela propriedade associativa :
[ ]
[ ]
x y x y m
2 2 3
1 1 .
Obs. : O produto de matrizes no comutativo:
Programa Especial de Treinamento / PET/AGRO Pgina 47
- Apostila de Computao Grfica (Incompleta)-
m
1
.m
2
m
2
.m
1
Assim , a ordem na qual as transformaes so aplicadas
influi no resultado final. A vantagem do uso de uma nica matriz um ganho de efi-
cincia.
Considerando, por exemplo, a rotao de um objeto sobre um ponto
qualquer P
1
. Transformamos este processo em 3 outros:
- transladamos de P
1
para a origem;
- rotacionamos;
- transladamos da origem para P
1
.
A transformao seria dada por
[ ] [ ]
x y x y T
T 1 1
1 1 .
1 0 0
0 1 0
1
0
0
0 0 1
1 0 0
0 1 0
1
1 1 1 1
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
x y x y
T
T
.
cos sen
sen cos .
( ) ( )
T
x y y x
T
+
]
]
]
]
]
cos sen
sen cos
cos .sen cos sen
0
0
1 1 1
1 1 1 1
Obs. : A composio das transformaes pela matriz de multiplicao ilustra a
facilidade proporcionada pelo uso de coordenadas homogneas.
Caso 2: Multiplicao por escala, seguida de translao
Programa Especial de Treinamento / PET/AGRO Pgina 48
- Apostila de Computao Grfica (Incompleta)-
1 0 0
0 1 0
1
0 0
0 0
0 0 1
1 0 0
0 1 0
1
1 1 1 1
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
x y
Ex
Ey
x y
T
Tz
. .
( ) ( )
T
Ex
Ey
x Ex y Ey
Tz
]
]
]
]
]
0 0
0 0
1 1 1
1 1
Seqncia:
- translada-se o ponto de referncia para a origem;
- promove-se a rotao em torno da origem;
- translada-se da origem para o ponto de referncia.
5.5. Espelhamento:
Produo de imagens simtricas com uso de transformaes de escala
com fatores negativos
c/ relao a x => Ex = 1 ; Ey = -1
Espelhamento c/ relao a y => Ex = -1 ; Ey = 1
c/ relao a x e y => Ex = -1 ; Ey = -1
5.6. Espelhamento em relao a uma reta qualquer:
a) Traslada-se a figura de modo que um dos pontos da reta de simetria
v para a origem;
Programa Especial de Treinamento / PET/AGRO Pgina 49
- Apostila de Computao Grfica (Incompleta)-
b) Rotaciona-se a figura at que a reta de simetria se torne paralela um
dos eixos do sistema de coordenadas;
c) Espelha-se a figura em relao ao eixo que, neste instante, coincide
com a reta de simetria. Caso, seja o eixo Y, usa-se Ex = -1; Ey - 1;
d) Rotaciona-se a figura em um ngulo oposto ao aplicado em b -de
forma a retornar a reta de simetria sua posio original- ;
e) Transladar a figura com constantes de deslocamento opostas s apli-
cadas em a , de modo a voltar a reta de simetria sua posio .
5.7. Consideraes sobre eficincia:
Uma combinao de matrizes de rotao (R), escala (S) e transformao
(T) pode produzir uma matriz de forma:
r r
r r
t t
x y
11 12
21 22
0
0
1
]
]
]
]
]
sendo, a obteno de (x
1
y
1
) da por:
[ ] [ ]
x y z x y
a b
d e
c f
1 1
1
0
0
1
]
]
]
]
]
.
chegando a
x ax by c
y dx ey f
1
1
+ +
+ +
'
, ( 9 multiplicaes e 6 adies )
Podemos exigir menos operaes aritmticas com uso de
[ ] [ ]
( )
x y x y
a d
b e
c f
X
, ,
.
]
]
]
]
]
1
3 2
=> (menos operaes)
Programa Especial de Treinamento / PET/AGRO Pgina 50
- Apostila de Computao Grfica (Incompleta)-
5.8. TRANSFORMAES EM 3 DIMENSES:
A idia bsica consiste em trabalhar com algoritmos e estrutura de dados que
representem tridimensionalmente a imagem com converso de coordenadas tridimen-
sionais para projeo bidimensionais, no memento da representao de imagem.
Ponto => representado por 3 coordenadas (x,y,z) e por 4 coordenadas no
caso de coordenadas homogneas: Matrizes 4x4
Representao matricial : (W
x
, W
y
, W
z
, W) ; W 0 . Se W 1 => W divi-
dido nas 3 primeiras coordenadas homogneas para obter a coordenada cartesiana do
ponto (x,y,z) .
5.8.1. Escala:
multiplicao de cada uma das coordenadas pelo fator de escala correspon-
dente. Efeito: aproximao ou afastamento do ponto em relao origem do sistema,
proporcionalmente, em cada eixo, aos fatores de escala;
Matriz:
Ex
Ey
Ez
0 0 0
0 0 0
0 0 0
0 0 0 1
]
]
]
]
]
]
e, portanto:
[ ] [ ]
x y x y z
Ex
Ey
Ez
, ,
. 1 1
0 0 0
0 0 0
0 0 0
0 0 0 1
]
]
]
]
]
]
Programa Especial de Treinamento / PET/AGRO Pgina 51
- Apostila de Computao Grfica (Incompleta)-
5.8.2. Translao:
A seguir a matriz homognea representa a translao em 3 dimenses:
T
3
=
1 0 0 0
0 1 0 0
0 0 1 0
1 T T T
x y z
]
]
]
]
]
]
onde T
x
, T
y
, T
z
representam as constantes
de deslocamento em cada eixo.
[ ] [ ]
x y z w x y z w T
, , ,
.
3
5.8.3. Rotao:
Quando trabalha-se com 3 dimenses deve-se definir qual o plano sobre o qual
a rotao deve ser realizada, ou seja, qual o eixo em torno de qual se proceder a ro-
tao.
Se: plano de rotao por eixo x e y, seja eixo de rotao z:
R
z
=
cos sen
sen cos
0 0
0 0
0 0 1 0
0 0 0 1
]
]
]
]
]
]
x
z
A rotao em torno de eixo x seria: y
R
x
=
1 0 0 0
0 0
0 0
0 0 0 1
cos sen
sen cos
]
]
]
]
]
]
x
Programa Especial de Treinamento / PET/AGRO Pgina 52
- Apostila de Computao Grfica (Incompleta)-
z
E, finalmente, em torno do eixo y seria: y
Ry =
cos sen
sen cos
0 0
0 1 0 1
0 0
0 0 0 1
]
]
]
]
]
]
x
z
5.8.4. Rotao em torno de um eixo arbitrrio:
Sejam (a, b, c) e (a, b, c) os pontos que determinam os eixos:
PASSOS:
1) Translao de forma a fazer o eixo de rotao passar pela origem (T
x
= -a;
Ty = -b; T
z
= -c);
2) Rotao em torno de eixo x, de forma que o eixo de rotao fique no plano
xz; (angulo );
3) Nova rotao agora em torno de eixo y (angulo ) at que o eixo de rotao
coincida com o eixo z;
4) Rotao em torno de eixo z com o ngulo desejado ( ) ;
5) Rotao de - em torno do eixo y;
Programa Especial de Treinamento / PET/AGRO Pgina 53
- Apostila de Computao Grfica (Incompleta)-
6) Rotao de - em torno do eixo x;
7) Translao com (T
x
= a; T
y
= b; Tz = c). inversa
Resumo
Novo_Ponto = Ponto_velho. T R R R R R T
x y y x
. . . . . .
1 1 1
Exerccio para implementar:
Apresente as transformaes simples aplicadas um tringulo qualquer
definido nos eixos x, y, z.
Apresente um esquema no qual pelo menos 2 transformaes foram
aplicadas uma figura qualquer.
Programa Especial de Treinamento / PET/AGRO Pgina 54
- Apostila de Computao Grfica (Incompleta)-
6. ALGORITMO DE RECORTE (CLIPPING):
Todo recorte deve ser efetuado no
sistema de coordenadas de usurio
JANELA VIEWPORT
fig. 1: Recorte de pontos, linhas, caracteres
6.1. Pontos:
Processo rpido e muito simples. O ponto que deve ser apresentado na vi-
ewport aquele para o qual as inequaes abaixo so satisfeitas.
Programa Especial de Treinamento / PET/AGRO Pgina 55
- Apostila de Computao Grfica (Incompleta)-
x x x e y y y
min max min max
O ponto que no satisfaz as quatro inequaes acima, ou uma delas qualquer
no deve ser apresentado.
6.2. Linhas:
Exige mais clculos e testes do que o processo anterior. Embora seja necess-
rio considerar apenas as partes finais da linha e no uma infinita quantidade de pon-
tos.
No desenho acima a linha EF, Cujos pontos finais se encontram dentro dos li-
mites da janela aceita trivialmente.
Linhas GH e IJ => dever ser cortadas.
6.2.1. 1 soluo:
Checagem por meio da equao paramtrica envolvendo os limites da janela e
a prpria linha.
Consiste num processo de grande quantidade de clculos e teste e no
muito eficiente. Num display tpico, centenas ou milhares de linhas de linha podem
ser encontradas.
Um algoritmo eficiente deve promover alguns testes iniciais na linha de
forma a determinar se clculos de interseo so realmente necessrios . Inicialmen-
te, o par de pontos finais pode ser checado para observar se ambos pertencem ja-
nela, fazendo a linha ser aceita trivialmente. Ao mesmo tempo, a linha pode ser trivi-
almente rejeitada, por testes simples tambm, como no caso da linha CD, que apre-
Programa Especial de Treinamento / PET/AGRO Pgina 56
- Apostila de Computao Grfica (Incompleta)-
senta y>y
max
(da janela). Podem ser por exemplo, rejeitados pontos que esto abaixo
de y
min
e esquerda de x
min
ou direita de x
max
.
6.2.2. Algoritmo de Cohen-Sutherland:
Projetado para identificar eficientemente que linhas podem ser trivial-
mente aceitas ou rejeitadas checando regies. Clculos de interseo so necessrios
apenas para linhas na qual os casos acima falharem.
Programa Especial de Treinamento / PET/AGRO Pgina 57
- Apostila de Computao Grfica (Incompleta)-
1 bit - o ponto est esquerda da janela - b0 - P(4)
2 bit - o ponto est direita da janela - b1 - P(3)
3 bit - o ponto est abaixo da janela - b2 - P(2)
4 bit - o ponto est acima da janela - b3 - P(1)
(b3 b2 b1 b0)
1 passo: Associar cdigos aos pontos finais usando a regra:
se x X P = 1; do contrario P = 0
se x X P = 1; do contrario P = 0
se y Y P = 1; do contrario P = 0
se y Y P = 1; do contrario P = 0
1 L code(4) code(4)
1 L code(3) code(3)
1 T code(1) code(1)
1 B code(2) code(2)
<
>
'
<
>
'
'
'
P
parcialmente visivel
P
m2
2
( )
( )
0000
0100
'
Traa-se P
m1
P
m2
; continuamos a diviso de P
m2
P
m2
Por divises sucessivas, segmentos menores podero ser traados e a
interseo com a janela obtida.
O segmento P
m1
P
1
ento analisados da mesma forma. O problema de
traar pequenos segmentos a ineficincia. O ideal obter os dois pontos e traar a
linha que est entre eles (dentro da janela, claro).
6.3. Recorte de polgonos:
Programa Especial de Treinamento / PET/AGRO Pgina 63
- Apostila de Computao Grfica (Incompleta)-
Em algumas aplicaes, h necessidade de promover o recorte de pol-
gonos, cujos vrtices esto armazenados numa estrutura de dados qualquer. Para se-
rem exibidos, os polgonos devem primeiro passar por uma operao de transforma-
o de visualizao e depois por um processo de recorte at serem convertidos nas
coordenadas do equipamento. O algoritmo que recorta polgonos deve prever dife-
rentes casos, tais como:
6.3.1. Algoritmos de Sutherland Hodgman
Estratgia de soluo de uma srie de problemas simples e idnticos que
resolvem o problema quando combinados:
Soluo: Recortar uma polgono atravs do recorte de suas laterais (reas que
tocam os limites da janela)
Sero feitos 4 recortes:
Polgono cncavo recorta-
do em 2
polgonos separados e dis-
tintos.
Programa Especial de Treinamento / PET/AGRO Pgina 64
- Apostila de Computao Grfica (Incompleta)-
Com o polgono de lados definidos pelos vrtices: U
1
, U
2
, U
3
, ... U
n
para cada lado observa-se a relao entre vrtices sucessivos e as janelas (limites)
lados definidos pelos vrtices da lista de sadas sero apresentados na tela. Ca-
sos possveis:
CASO 1: dois vrtices adicionado lista de sadas (p, no caso)
CASO 2: o ponto i de interseo tratado como um vrtice de sada (a ser
traado)
CASO 3: os dois vrtices so descartados.
CASO 4: os dois pontos i e p so colocados na lista de vrtices de sada.
Figura: Recorte de polgo-
no,
lado a lado:
Programa Especial de Treinamento / PET/AGRO Pgina 65
- Apostila de Computao Grfica (Incompleta)-
Algoritmo destinado a obter as intersees
O primeiro ponto no colocado na lista de sadas (s, da fig. 1, anterior), j que o
mesmo o vrtice inicial e j se encontra na mesma, pois o processo seqencial.
para linhas do polgono totalmente invisvel, nenhum ponto adicionado lista de
sadas (caso 3).
para casos 2 e 4, necessrio calcular as intersees
para um dado vrtice, se necessrio calcular se o mesmo est dentro ou fora de
uma janela, temos uma funo que aplica um teste baseado em produto vetorial,
como:
P
1
. P
2
X P
1
. P
3
= X
P
1
. P
2
X P
1
. P
4
= .
Faz-se o produto vetorial de P
1
. P
2
X P
1
. P
3
, caso o mesmo resultado
em vetor entrando (mdulo negativo) o ponto est do lado de dentro da janela, se o
mesmo for positivo, o ponto est do lado de fora da janela.
O mdulo do produto vetorial de dois vetores V(V
x
, V
y
) e W (W
x
, W
y
)
um vetor cuja magnitude dada por Vx W
y
- V
y
W
x
. Se este n for positivo ponto
fora. Se este n for negativo ponto dentro.
Programa Especial de Treinamento / PET/AGRO Pgina 66
- Apostila de Computao Grfica (Incompleta)-
6.3.2 Algoritmo de Weiter-Atherton
O algoritmo anteriormente discutido requer uma regio de recorte con-
vexa. Em contexto de tratamento de linhas escondidas, muitas regies cncavas apa-
recem.
O mtodo proposto por W.A. mais complexo e mais poderoso que o
mtodo anterior. Ele capaz de recortar um polgono cncavo com buracos interi-
ores definindo um outro polgono cncavo.
Polgono a ser recortado polgono sujeito
Polgono que definido na regio recortada polgono a ser recortado
Regio de recorte : polgono recorte
O algoritmo descreve ambos, polgono sujeito e polgono recorte por uma lista
circular de vrtices e recorta o polgono sujeito por traar em voltas das laterais do
polgono sujeito na direo horria at que a interseo com o polgono recorte seja
encontrada. Se a fronteira entre no polgono recorte o algoritmo procede ao longo
dos limites do polgono sujeito. Se a fronteira deixa o polgono recorte, o algoritmo
faz um retorno direita e segue o polgono recorte no sentido horrio at encontrar a
interseo de onde partiu.
7. PROJEES
Definio: enxergamos em 2 dimenses no h muita necessidade de trata-
mento em 3 dimenses. Logo, modelos tridimensionais devem ser convertidos em
imagens bidemensionais, esta a finalidade do algoritmo de projeo. Projeo
converso genrica de entidades de uma dada dimenso para outra de menor ordem.
Programa Especial de Treinamento / PET/AGRO Pgina 67
- Apostila de Computao Grfica (Incompleta)-
Nosso estudo. Projeo: 3D2D (interesse nas diversas aplicaes compu-
grficas)
7.1. INTRODUO: TIPOS DE PROJEO (3D2D)
O que determina a projeo so 2 elementos:
* plano de projeo quadro
* centro de projeo ponto de vista (c)
H diversas tcnicas para projetar 3D2D:
projeo paralela; casos particulares
projeo axionomtrica; do espelhamento
projeo perspectiva; (+ interesse)
A projeo de um corpo fica definida pelo conjunto de pontos do quadro
obtidos da sua interseo com as linhas visuais - projetoras - que saem de o e atin-
gem c.
claro que o tamanho e a forma da figura projetada dependem da forma
de posicionamento do objeto em relao ao plano de projeo e ao centro. Observe
que a projetora sempre uma linha reta (logo, so projees geomtricas) como o
quadro um plano, logo, so projees planas.
Programa Especial de Treinamento / PET/AGRO Pgina 68
- Apostila de Computao Grfica (Incompleta)-
Classificao em relao ao centro de projeo
a) Projeo Cnica-perspectiva: o centro de projeo um ponto prprio, em
coordenadas finitas no sistema tridimensional. Esta projeo deforma a figura, dimi-
nuindo os objetos mais distantes e distorcendo os ngulos.
b) Projeo cilndricas-paralela: tem um ponto imprprio como centro de
projeo - isto ; as linhas visuais encontram-se no infinito. Mantm a proporciona-
lidade da figura.
7.2. Transformaes de projeo :
A projeo de um objeto pode ser formulada como uma transformao
como as vistas anteriormente. Desta forma, pode ser representada por uma matriz
4x4 que, aplicada um ponto do espao obtenha um ponto do plano.
Consideraes para obter as matrizes de transformao:
O objeto a ser projetado deve estar descrito em relao a um sistema de coordena-
das tal que as direes principais do mesmo coincidam com os eixos do sistema;
Caso no seja possvel definir os eixos principais de maneira clara,
usa-se um paraleleppedo envoltrio.
O plano de projeo um plano vertical, colocado perpendicularmente ao eixo z
do sistema de coordenadas do objeto;
O objeto est modelado por um conjunto de pontos convenientemente.
Programa Especial de Treinamento / PET/AGRO Pgina 69
- Apostila de Computao Grfica (Incompleta)-
OBS.: havendo mais de um objeto em cena necessrio uma converso entre
os sistemas de coordenadas do objeto e da cena. Os pontos de cada objeto devem ser
convertidos para o sistema global por uma transformao de mudana de base, antes
de se efetuar as transformaes de projeo:
7.3. PROJEES CNICAS
i) do ponto: basta lig-lo ao centro de projeo e obter a interseo da reta
com o plano de projeo.
ii) da reta: idem ao anterior para dois pontos da reta
Programa Especial de Treinamento / PET/AGRO Pgina 70
- Apostila de Computao Grfica (Incompleta)-
7.3.1. Clculo da transformao de perspectiva:
Por semelhana de tringulos, podemos encontrar:
Y
d
=
Y
Z
Y
Y d
Z
Y
Z
d
X
Z
X
p
,
p
R
p
,
p
R
p
R
p
p
p
,
;
.
.
,
X
d
X d
Z
X
Z
d
p p
p
p
p
Destas relaes obtm-se a matriz de transformao da perspectiva cnica:
Obs: Se o centro de projeo for (0,0,d)
teramos:
P
con
=
1 0 0 0
0 1 0 0
0 0 1
0 0 0
X =
X
Z + d
d
; Y
1
d
,
0
]
]
]
]
]
]
+
Y
Z d
d
Assim
[ ]
Xp Yp Zp 1 .
1 0 0 0
0 1 0 0
0 0 1
0 0 0
1
d
0
]
]
]
]
]
]
[ ]
Xp Yp Zp Zp
Yp
Zp / d
d 1
d
Xp
Zp d /
]
]
]
Programa Especial de Treinamento / PET/AGRO Pgina 71
- Apostila de Computao Grfica (Incompleta)-
Exemplo: Seja o objeto definido pelas tabelas abaixo: e plano de projeo
Z=Z0, simule a projeo do mesmo na tela de um computador:
lado (1, P1, P2) lado (6, P2, P4)
lado (2, P1, P3) lado (7, P3, P5)
lado (3, P1, P4) lado (8, P4, P5)
lado (4, P1, P5)
lado (5, P2, P3)
PO
NTO
1
0 0 0
2
0 0 0
3
0 0 5
4
0 0 0
5
0 0 0
Programa Especial de Treinamento / PET/AGRO Pgina 72
- Apostila de Computao Grfica (Incompleta)-
Poderamos ter perspectivas definitivas sobre 2 e 3 pontos de projeo.
Dadas por:
Pontos de projecao
1 0 0
1 0
0 0 0 0
0 0 0 0
projecao
x = r
1 0 0
1 0
0 0 1
0 0 0 0
1
r
1
1
1
r
1
1
r
1
1
3
x r
y r
Pontos de y r
z r
r
r
'
]
]
]
]
]
]
]
'
]
]
]
]
]
]
]
1
2
2
3
0
0
2
2
Anomalias da perspectiva
Perspectiva gera anomalias que aumentam o realismo em termos de
profundidade, mas alteram as medidas e formas reais.
1. Encurtamento perspectivo: aumentando a distncia do objeto ao centro de proje-
o menor parece ser;
2. Pontos de fuga: as projees so categorizadas pelo nmero de pontos de fuga
principais (n de eixos que o plano de projeo corta). Se a projeo com 1 ponto
de fuga principal ento o plano de projeo corta o eixo z e linhas paralelas aos ei-
xos x e y no convergem.
3. Confuso visual: objetos situados atrs do centro de projeo so projetados no
plano de projeo de cima para baixo e de trs para frente, conforme:
Programa Especial de Treinamento / PET/AGRO Pgina 73
- Apostila de Computao Grfica (Incompleta)-
4. Distoro topolgica: Fenmeno pela qual um segmento de reta que une um
ponto situado frente do observador com um ponto situado sua retaguarda efeti-
vamente projetado segundo uma linha quebrada de comprimento infinito. A causa o
fato de que pontos do plano que contem o ponto central da projeo so projetados
no infinito pela transformao perspectiva.
OBS: IMPORTANTE: H possibilidade da existncia de um, dois ou trs
pontos de fuga principais, se o plano de projeo perpendicular (e a normal ao pla-
no, paralela) e um, dois ou trs eixos.
7.3.2. Projees Cilndricas (ou paralelas)
H 2 tipos de projees paralelas, baseadas na relao entre a direo de
projeo e a normal ao plano de projeo:
i) Proj. Ortogonal: a direo de projeo a mesma direo da normal ao plano
de projeo;
ii) Proj. Oblqua: as direes citadas acima no so as mesmas.
7.3.3.PROJEES OBLQUAS
Fornecem sensao espacial e permitem medidas
Neste caso, a direo de projeo no forma 90 com o plano de projeo, mas o
plano de projeo paralelo a um dos 3 eixos.
Geralmente: faz-se uma face paralela ao plano de projeo, normalmente a que
contm mais detalhes. Esta face projeta-se em sua verdadeira grandeza, de forma a
evitar a deformao das formas circulares desta face.
Programa Especial de Treinamento / PET/AGRO Pgina 74
- Apostila de Computao Grfica (Incompleta)-
DEFINIES MATEMTICAS:
Seja o cubo unitrio ao lado
que dever ser projetado no plano xy.
A matriz para projeo oblqua pode
ser escrita em funo de x e l.
Note que (0, 0, 1) pode ser proje-
tado em xy como:
( )
( )
l.cos , l.sin
levando o outro ponto no espaco dado por
P l.sin ,
,
,
.cos , l
Como a linha projetora, que no perpendicular ao plano de projeo,
deve passar por P e P e as demais sero paralelas ela, chegamos :
Considerando um ponto genrico (x, y, z): sua projeo dada por (x
p
,
y
p
, ). Com estes 2 pontos e considerando o vetor PP, que define a reta projetora,
temos, como equao simtrica da reta:
Programa Especial de Treinamento / PET/AGRO Pgina 75
- Apostila de Computao Grfica (Incompleta)-
x x
l
y y
l sin
z
x x
l
z x z l
y z lsin
p p
p
+
+
.cos .
;
.cos
. cos
.
1
destas relacoes, temos
x
e y
p
p
e chegamos matriz da projeo oblquo:
Pobl.=
1 0 0 0
0 1 0 0
l.cos l.sin 0 0
0 0 0 1
]
]
]
]
]
]
Obs.:
se l = 1 e = 45 (= 45, tambm) => projeo cavaleira (cavalier)
se l = 1/2 e = 45 [(= arctg 2) (aprox: 63,4)] a projeo projeo dita gabi-
nete (cabinet)
Proj. cavaleira: a projeo de uma linha perpendicular ao plano de projeo
de mesmo comprimento que a linha em si.
Exemplos:
Programa Especial de Treinamento / PET/AGRO Pgina 76
- Apostila de Computao Grfica (Incompleta)-
Proj. cabinet: direo de projeo forma aprox. 63,4 com o plano de proje-
o.
1. Para um cabo de aresta de 8 cm, encontre a perspectiva cavaleira do mesmo, su-
pondo o mesmo com um dos vrtices na origem do sistema de coordenadas (x, y,
z)
2. Obtenha a projeo cabinet para o cubo acima.
8. TRATAMENTO DE LINHAS / SUPERFCIES ESCONDIDAS
8.1. INTRODUO: Profundidade da perspectiva
A operao de remoo de linhas ou superfcies escondidas requer uma
transformao perspectiva com propriedades especiais. necessrio avaliar a pro-
fundidade de cada ponto na vista perspectiva para tomar decises sobre que pontos /
superfcies da imagem devem ser omitidas na representao.
Programa Especial de Treinamento / PET/AGRO Pgina 77
- Apostila de Computao Grfica (Incompleta)-
Sistema 3D - x
s
, y
s
, z
s
{ x
s
e y
s
=> localizao da vista perspectiva do
ponto
{z
s
=> retm a informao de profundidade
Se para apresentar em 2D, despreza-se z
s
e utilizam-se as outras 2 coor-
denadas sem modificao. Esta representao corresponde uma projeo ortogonal
do sistema de coordenadas da tela.
Iluses de profundidade
A iluso do cubo-Necker:
Programa Especial de Treinamento / PET/AGRO Pgina 78
- Apostila de Computao Grfica (Incompleta)-
8.2. Classificao de Algoritmos
Os algoritmos para remoo de linhas / superfcies escondidas so clas-
sificados de acordo com o tratamento utilizado:
object-space: diretamente com as definies do objeto;
imagem-space: com suas imagens projetadas.
Mtodo object-space: compara objetos e partes dos objetos entre si, para defi-
nir as partes que deveriam ser rotulados como invisveis. Clculos geomtricos com
maior preciso mais usados no tratamento de linhas escondidas.
Mtodo image-space: a visibilidade decidida ponto a ponto em cada posio
do pixel sobre o plano de projeo mais usados no tratamento de superfcies escon-
didas.
3. Introduo:
Dado um objeto 3D e uma especificao de visualizao definindo o
tipo de projeo, ns podemos definir que limites e superfcies do objeto so visveis
para o centro de projeo (p/ proj. perspectiva) ou ao longo da direo de projeo
(p/ proj. paralela).
Vamos observar que a idia fundamental simples, se a implementao
mais simples, ento requer uma grande demanda de tempo computacional, outros
algoritmos mais complexos podem ser estruturados.
2 propostas so elaboradas para tal soluo.
Programa Especial de Treinamento / PET/AGRO Pgina 79
- Apostila de Computao Grfica (Incompleta)-
IMPORTANTE: os algoritmos devem fazer cada passo o mais eficiente poss-
vel.
8.3. ALGORITMO DEPTH-BUFFER:
8.3.1. INTRODUO:
Trata-se de um algoritmo dos mais simples, sendo o mais simples da
classe dos mtodos image-space. Este algoritmo algumas vezes chamado de z-
buffer. Para cada ponto da tela grfica, ns guardamos um registro da profundidade
do objeto. Adicionalmente, armazenada a intensidade que dever ser usada para
apresentar o objeto. O algoritmo requer 2 arrays, uma para intensidade e uma para
profundidade, cada uma das quais indexada pelas coordenadas do pixel (x,y).
8.3.2. ALGORITMO:
1. Para todo pixel da tela, faa depth [x,y]=1.0 e intensidade [x,y]= valor de fundo da
tela (background);
2. Para cada polgono, encontre os pixel (x,y) que esto associados aos limites do
polgono quando projetados na tela.
Para cada um destes pixel:
a. Calcular o valor da profundidade z do polgono para posio
(x,y);
b. Se z < depth [x,y] => coloque z (x,y) no z-buffer ou melhor,
faa depth [x,y] = z e faa intensidade (x,y) igual intensidade do po-
lgono, caso contrrio:
Programa Especial de Treinamento / PET/AGRO Pgina 80
- Apostila de Computao Grfica (Incompleta)-
se z > depth [x,y] => no tome nenhuma ao
Depois de processados todos os polgonos, a array intensidade conter
a soluo
Observe a figura abaixo:
Caso z < depth (x,y) o polgono est mais prximo para o observador que ou-
tros j gravados para este pixel.
Se z>depth[x,y], o polgono j gravado para (x,y) est situado mais perto
do observador que o novo polgono e nenhuma ao e requerida.
c) comentrios:
O algoritmo tem a desvantagem de requerer um grande espao para o z-
buffer [ou depth-buffer], mas, muito simples de ser implementado. A performance
do algoritmo tende a ser constante, o nmero de pixel coberto por cada polgono de-
cresce na medida em que o nmero de polgonos inserido no volume aumenta.
Um outro importante detalhe do algoritmo que ele usa o sistema de
coordenadas da tela. Antes do passo 1, todos os polgonos da cena so transformados
no sistema de coordenadas da tela, j descritos anteriormente.
Programa Especial de Treinamento / PET/AGRO Pgina 81
- Apostila de Computao Grfica (Incompleta)-
d) Clculo de z[x,y]
Pelo fato de haver um registro da equao do plano para cada polgono
no sistema de coordenadas da tela, para calcular z[x,y] basta resolver a equao do
plano:
Ax + By + Cz + D = 0
E o valor da varivel z dado por :
Z =
- D - Ax - By
(equ. do plano - 1)
C
e) Limitaes do mtodo:
O mtodo no muito utilizado na prtica por causa do enorme tamanho
das reas profundidade e intensidade (2 arrays ). Num equipamento de 500 x 500
pixels teramos 250 000 locaes para cada array.
Para reduo da rea acima, a imagem pode ser dividida em imagens
menores, por exemplo, no caso acima, dividiramos em 100 trechos, cada uma com
50x50 pixels. Camos para arrays com 2500 elementos, mas o tempo de execuo
cresce por que cada polgono processado vrias vezes.
8.4. ALGORITMOS DE CONEXO DE LINHAS DE VARREDURA
8.4.1. Introduo
Tais algoritmos resolvem o problema de linhas escondidas por meio de
uma linha de varredura por vez, processando linhas de varredura da parte superior
para inferior da tela. O algoritmo examina uma srie de janelas na tela, cada janela
uma linha de varredura alta e to larga quanto a (janela) tela. Novamente, sero re-
querida duas arrays: intensidade e profundidade.
Programa Especial de Treinamento / PET/AGRO Pgina 82
- Apostila de Computao Grfica (Incompleta)-
8.4.2. Algoritmo:
Para cada linha de varredura, faa :
1 - Para todo pixel da linha de varredura, faa depth[x,y]= 1,0 e intensida-
de[x,y]= valor de fundo da tela - background;
2 - Para cada polgono na cena, encontre todos os pixels na atual linha de var-
redura y que corta o polgono:
a - Calcule a profundidade z do polgono no (x,y)
b - se z <profundidade (x), faa depth[x] = z e intensidade [x] para a in-
tensidade correspondente ao polgono.
3 - Aps todos polgonos terem sido considerados, os valores contidos na array
intensidade representam a soluo.
Na figura abaixo, apresentada a projeo de 2 tringulos no plano x-y;
Linhas escondidas so apresentadas como detalhadas:
A tabela de dados, conforme visto anteriormente, desenvolvida e ar-
mazenada de forma a conduzir o processo de anlise das faces. Para a linha de varre-
dura y=, tal tabela contm somente AC e BC, nesta ordem. As faces devem ser pro-
cessadas da esquerda para a direita.
No caso da linha B a ordem AB, AC, FA e FE. A linha de varredu-
ra encontra 2 polgonos mas a varredura est dentro (in) somente em um polgono
por vez.
Programa Especial de Treinamento / PET/AGRO Pgina 83
- Apostila de Computao Grfica (Incompleta)-
No caso da linha de varredura y = , na tabela de polgonos o flag in-
lout que inicializado por falso colocado para verdadeiro. A linha de varredu-
ra prossegue encontrando a outra face, DE. Neste ponto, o flag para DEF torna-se
verdadeiro, mas a varredura est dentro de 2 polgonos. necessrio ento deci-
dir qual destes polgonos est mais prximo do observado. Esta determinao feita
com uso da equao do plano para ambos os polgonos para Z, y = e x dado pela
interseo de y = com a face DE. O valor de x est efetivamente na tabela de la-
dos. No nosso exemplo, DEF tem um Z menor e portanto visvel. Portanto, o
sombreamento para DEF usado para esconder a linha BC, tornando o flag para
ABC como falso, j que alimentao linha de varredura est dentro somente do pol-
gono DEF, obtendo agora encontro com a face FE.
8.5. Algoritmo de subdiviso de rea
8.5.1. Introduo:
A idia bsica deste algoritmo , utilizando-se de uma rea de estudo (ou
visualizao), decidir, conforme fizemos com recorte, se um (ou uma parte de um) ou
mais polgonos esto contidos na mesma rea. A rea pode ser particionada em reas
menores e a deciso lgica tomada por recurso aplicada cada uma das pequenas
reas. Com reas cada vez menores, menores e menores polgonos sobrepem-se em
cada rea.
H 4 casos possveis de relao entre reas de interesse e polgonos:
Programa Especial de Treinamento / PET/AGRO Pgina 84
- Apostila de Computao Grfica (Incompleta)-
obvio que polgonos disjuntos no so de interesse para o estudo; nos-
sos problemas devero ocorrer para os casos b, c, a acima.
Casos:
1. Todos polgonos disjuntos rea => valor do pixel = fundo de tela;
2. Somente 1 polgono contido / interceptado => soluo completar o restante da
rea para a cor do fundo;
3. H somente 1 polgono que transborda a rea => toda a rea colocada na cor do
polgono;
4. H mais de um polgono contido, interceptado ou que transborde e pelo menos um
deles transborda. promovido um teste para detectar se o que transborda esta a
frente dos demais, analisando a coordenada z de cada um dos planos.
obvio que os 3 primeiros casos acima so de soluo muito simples.
Nos casos da hiptese 4, onde mais de um polgono pertencem mesma rea, neces-
sitamos olhar a coordenada do plano na qual est contido e ver qual delas est mais
prxima do observador. Se, no entanto, os planos dos 2 polgonos se interceptam,
ser necessrio uma subdiviso para anlise posterior, conforme:
8.6.Algoritmos do tipo object-space
8.6.1. POLGONOS
Programa Especial de Treinamento / PET/AGRO Pgina 85
- Apostila de Computao Grfica (Incompleta)-
i) Equao do plano: baseado na equao do plano que contm as faces do
objetos ser exibido. Observe
Equao do plano: Ax + By + Cz + D = O, onde:
A = y + y y
z + z
C = x + x
retirado da equacao
1 2 3
1 2 3
1 2 3
( ) ( ) ( );
( ) ( ) ( );
( ) ( ) ( );
z z z z z z
B x x x x z x x
y y y y x y y
D
2 3 3 1 1 2
2 3 3 1 1 2
2 3 3 1 1 2
+
+
+
N= (A, B, C)
Aplicando a equao do plano para coordenadas do observador, temos:
A x By Cz
fora exibe
dentro esconde
fronteira
.
0 0 0
0
0
0
+ +
<
>
'
1
2
1 2
2
1
1 2
1
3
1 3
3
1
1 3
Interpolao
Obs.: O resultado da aplicao do mtodo de Gouraud uma melhora sensvel
na sensao irreal passada pelo mtodo anterior, mas, ainda causa sensao de
mach band. livro ROGER pg. 323/324
Programa Especial de Treinamento / PET/AGRO Pgina 96
- Apostila de Computao Grfica (Incompleta)-
9.4.3.Interpolao do vetor normal / Phong:
O procedimento proposto por Phong soluciona muitos problemas do
sombreamento de Gouraud. Enquanto Gouraud interpola valores de intensidade ao
longo de uma linha de varredura, o processo de Phong interpola o vetor normal su-
perfcie ao longo da linha de varredura e ao longo das arestas. O modelo de ilumina-
o ento aplicado cada pixel, usando a normal interpolada para determinar a in-
tensidade. Com esta tcnica, reflexes especulares parecem mais reais, diminuindo
os problemas Mach Band e aumentado grandemente o custo computacional.
9.5. Tcnica do traado de raios (Ray Tracing)
Proposta que resolve os problemas das duas tcnicas anteriores, mas,
exige grande quantidade de clculos levando a inviabilidade no caso de mquinas
lentas. Seu resultado no entanto visvel na forma de imagens belssimas que so
obtidas com seus clculos.
vantagem: pode ser aplicado curvas e poliedros
Tcnica:
Projeta-se um raio virtual de luz que, partindo do ponto do observador
passa por um pixel na tela e pelo conjunto de objetos que esto sendo visualizados.
Programa Especial de Treinamento / PET/AGRO Pgina 97
- Apostila de Computao Grfica (Incompleta)-
- Devem ser computadas as intersees do raio com cada objeto que o
mesmo atravessa;
- Se o raio no intercepta nenhum, a cor do pixel ser a cor de fundo;
- Se mais de um objeto for interceptado, seleciona-se o mais prximo do
observador, este ser o ponto visvel e os demais sero invisveis ( resolve o proble-
ma de linhas escondidas ) neste ponto, calcula-se a intensidade refletida da superfcie
mais prxima do observador, empregando as frmulas j propostas, deste clculo
resultar o valor da tonalidade do pixel correspondente.
(repete-se o passo para cada pixel na tela)
Destaque: processo com bons resultados.
10. SOMBRAS
Tcnicas semelhantes remoo de linhas escondidas, s que algoritmos
de remoo de linhas escondidas determinam que superfcies devem ser vistas para
um dado ponto de vista, aqui, determinamos que superfcies podem ser vistas por
uma dada fonte de luz e para um ponto de vista, a mesma no sombreada. A mesma
lgica aplica-se diversas fontes de luz.
O sombreamento contribui sensivelmente para dar realismo cena por
aumentar a sensao de profundidade, sendo tambm importante nas simulaes.
Sombras : - sombra - (CG s usa esta)
- penumbra
Programa Especial de Treinamento / PET/AGRO Pgina 98
- Apostila de Computao Grfica (Incompleta)-
Fonte de luz no infinito: projeo ortogrfica usada para determinar as som-
bras;
Fonte de luz a uma distncia finita, mas fora do campo visual do observador:
usa-se a projeo perspectiva;
Fonte de luz a uma distncia finita, mas no campo visual do observador: o es-
pao deve ser dividido em setores e as sombras obtidas por setor, separadamente.
Programa Especial de Treinamento / PET/AGRO Pgina 99
- Apostila de Computao Grfica (Incompleta)-
11. FORMAS E MODELOS GEOMTRICOS
11.1. Introduo:
Modelao: descrio de objetos e de imagem de maneira permitir sua visu-
alizao.
Muitas aplicaes de CG envolvem a representao de objetos em 3D.
Em alguns casos, uma grande quantidade de triplas (x,y,z) so necessrias para des-
crever as superfcies do objeto em questo. Em alguns casos, no entanto, o objeto
pode ser definido por combinao de superfcies matemticas que, so suficiente-
mente simples, a ponto de poderem ser implementadas computacionalmente.
Formas simples para primitivas: pontos, segmentos de reta, linhas poli-
gonais, polgonos, poliedros.
Em alguns casos, uma coleo de linhas insuficiente para descrever os
objetos, j que linhas no definem superfcies e superfcies so necessrias para cl-
culos de superfcies escondidas, volumes etc...
Assim, formas geomtricas mais complexas so usadas na modelagem
de objetos, tais como: arcos de curvas, superfcies curvas, superfcies qudricas.
11.2. Formas Geomtricas Simples
Programa Especial de Treinamento / PET/AGRO Pgina 100
- Apostila de Computao Grfica (Incompleta)-
Pontos e segmentos de retas:
especificao dada por P
1
(x
1
,y
1
,z
1
) e P
2
(x
2
,y
2
,z
2
)
Linhas poligonais
cadeia de segmentos de reta adjacentes. especificada por uma seqncia de
ns-vrtices (P
0
,P
1
, ... , P
n
) que definem os segmentos de reta.
Polgonos : linha poligonal fechada.
arestas :
chama-se polgono plano ao polgono cujos vrtices pertencem a um mesmo
plano.
11.3. Malhas Poligonais
Uma malha poligonal uma coleo de vrtices, arestas e polgonos,
vrtices so unidos por arestas e polgonos constituem uma seqncia de vrtices e
arestas. Uma malha pode ser representada por diferentes maneiras, com vantagens e
desvantagens particulares.
So elas:
11.3.1. Lista explcita de vrtices
Programa Especial de Treinamento / PET/AGRO Pgina 101
- Apostila de Computao Grfica (Incompleta)-
{ V = P , P , P ... , P e os pontos P (x , y , z )
0 1 2 n i i i i
so os vrtices da malhas poligonal, armazenada na ordem em que seriam en-
contrados por uma travessia do modelo.
Obs.: representao til para polgonos isolados, mas ineficiente para uma
malha poligonal completa, j que diversos vrtices so partilhados mais de uma vez:
11.3.2. Lista de polgonos :
Cada vrtice armazenado uma nica vez na lista de vrtices v = (P
0
, ... ,
P
n
) e cada polgono definido por ponteiros ou ndices para uma lista de vrtices.
Obs.: de novo, quando da representao do objeto, arestas partilhadas so de-
senhadas diversas vezes.
Programa Especial de Treinamento / PET/AGRO Pgina 102
- Apostila de Computao Grfica (Incompleta)-
11.3.3. Lista explcita de arestas:
h uma lista de vrtices e cada vrtice armazenado uma nica vez e uma lista
de arestas, com cada aresta armazenada tambm uma nica vez. Um elemento da lista
d arestas aponta dois elementos da lista de vrtices.
Uma polgono ento definido por uma lista de ponteiros para lista de
arestas.
forma mais consistente, sendo mais fcil de ser checada, por conter mais in-
formaes.
Obs. finais:
As malhas poligonais so usadas em aplicaes de engenharia, por se-
rem fceis de construir, mas, para construo de modelos mais realistas exigem um
nmero muito elevado de polgonos para produzir iluso de curvatura.
11.4. SUPERFCIES CURVAS
Permitem nvel de modelagem mais elevado;
formas de modelagem
segmentos de superficies curvas
modelagem solida
'
maneiras de modelao
aditiva (uniao)
subtrativa (escultura)
'