Académique Documents
Professionnel Documents
Culture Documents
(a) (b)
Figura 3.1: Coordenadas: (a) cartesianas e (b) polares.
3.1.1 Representacao
Um ponto de uma gura geometrica em um espa co de dimensao n pode ser
representado por uma lista de n valores numercios, denominados coordena-
das, n1, (x
1
, x
2
, , x
n
). Em sistemas de informa cao gr aca e conveniente
descrever esta n-tupla de n umeros por matriz-linha
_
x
1
x
2
x
3
x
n
ou por matriz-coluna
_
_
x
1
x
2
x
3
.
.
.
x
n
_
_
.
A forma mais usual para identicar um ponto e utilizar valores cor-
respondentes `as suas dist ancias (com sinal) em rela cao a um conjunto de
hiperplanos de dimensao n 1. Tal sistema e conhecido como sistema de
coordenadas retangulares ou cartesianas e as coordenadas s ao conheci-
das por coordenadas cartesianas. Figura 3.1.(a) mostra as coordenadas
cartesianas x, y e z de um ponto em rela cao aos planos yz, xz e xy, respec-
tivamente.
Para problemas que envolvem dire coes variadas em rela cao a um ponto
O xo (polo), e conveniente especicar um ponto P em
3
com uso de
coordenadas polares (r, , ), onde r e a dist ancia entre os pontos O e
P, e e s ao angulos entre a dire cao
OP e dois eixos (de referencia) que
passam por O, como ilustra Figura 3.1.(b).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 41
Considerando que os eixos de referencia sejam, respectivamente, as in-
tersec coes x = xy xz e z = xz yz dos planos de referencia cartesianos,
a proje cao do raio r sobre o eixo z (r cos) corresponde `a coordenada z do
ponto e a proje cao do raio r sobre o plano xy e a hipotenusa do tri angulo
de catetos iguais aos valores das coordenadas x e y do ponto, isto e,
x = r cos sen y = r sen sen z = r cos. (3.2)
Das coordenadas cartesianas pode-se tambem derivar as coordenadas pola-
res. Observe que a dist ancia entre o ponto (x, y, z) e a origem (p olo) e o
raio r, o angulo entre r e o eixo z e , e o angulo entre a proje cao do raio r
sobre o plano xy e o eixo x e
r =
_
x
2
+y
2
+z
2
= arccos
z
r
= arctg
y
x
(3.3)
Num sistema cartesiano o vetor de deslocamento entre dois pontos
quaisquer P
1
= (x
1
, y
1
, z
1
) e P
2
= (x
2
, y
2
, z
2
) pode ser representado pela
diferen ca entre suas coordenadas (dist ancias)
v
12
=
_
_
x
2
y
2
z
2
_
_
_
_
x
1
y
1
z
1
_
_
=
_
_
x
2
x
1
y
2
y
1
z
2
z
1
_
_
.
A magnitude de v
12
, ou dist ancia entre P
1
e P
2
, e
|v
12
| = d(P
1
, P
2
) =
_
(x
2
x
1
)
2
+ (y
2
y
1
)
2
+ (z
2
z
1
)
2
. (3.4)
Observe que se o ponto-origem P
1
estiver na origem do sistema de re-
ferencia, as coordenadas do vetor de deslocamento v
12
coincidem com as
coordenadas do ponto P
2
. Embora P
2
e v
12
sejam identicos numericamente,
eles s ao distintos sementicamente: um e simplesmente uma identidade do
ponto no espa co e o outro, o seu deslocamento em rela cao `a origem do sis-
tema de referencia. Portanto, somente sobre v
12
s ao denidas as opera coes
de adi cao e multiplica cao por escalar e ele e conhecido como vetor-posi cao
do ponto P
2
.
Introduzindo o conceito de vetor-posi cao, podemos entao modelar um
conjunto de pontos como um espa co vetorial. Para gerar um espa co 3D,
s ao necessarios tres vetores linearmente independentes. Agora, podemos
apresentar uma terceira alternativa para representar um vertice P no espa co
3
: xar uma origem O e uma base de 3 vetores quaisquer linearmente
independentes,
v
(1)
,
v
(2)
e
v
(3)
, e considera-lo como um vetor-posi cao
resultante da combina cao linear destes tres vetores-base
OP = P O =
1
v
(1)
+
2
v
(2)
+
3
v
(3)
. (3.5)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 42
Os valores (
1
,
2
,
3
) s ao denominados coordenadas ans.
O deslocamento entre dois pontos P
1
e P
2
pode ser obtido como diferen ca
entre dois vetores-posi cao
OP
1
e
OP
2
v
12
=
OP
2
OP
1
= P
2
O P
1
+O = P
2
P
1
e as coordenadas ans do vetor correspondem ao resultado da subtra cao das
coordenadas ans de P
1
e P
2
v
12
=
OP
2
OP
1
= (
12
v
(1)
+
22
v
(2)
+
32
v
(3)
) (
11
v
(1)
+
21
v
(2)
+
31
v
(3)
)
= (
12
11
)v
(1)
+ (
22
21
)v
(2)
+ (
32
31
)v
(3)
.
Em particular, se escolhermos uma base canonica, x = (1, 0, 0), y =
(0, 1, 0) e z = (0, 0, 1), cada vetor-posi cao (x, y, z) pode ser expresso como
uma combina cao linear desta base can onica
_
_
x
y
z
_
_
= x
_
_
1
0
0
_
_
+y
_
_
0
1
0
_
_
+z
_
_
0
0
1
_
_
.
Observe que os escalares (x, y, z) correspondem exatamente `as coordenadas
cartesianas. Assim, ao inves de pensar em planos de referencia, podemos
adotar a base can onica, constituda pelos eixos x, y e z, como uma referencia
Modelando o referencial com uso de vetores, podemos ainda distinguir duas
orienta coes:
orienta cao m ao-direita: ao rodarmos os dedos da m ao-direita partindo-
se do vetor x para o vetor y, o polegar aponta para a dire cao positiva
do vetor z (Figura 3.2.(a)).
orienta cao m ao-esquerda: ao rodarmos os dedos da m ao-esquerda partindo-
se do vetor x para o eixo y, o polegar aponta para a dire cao positiva
do eixo z (Figura 3.2.(b)).
Exemplo 3.1 Dado um cubo de lado igual a 2 unidades, conforme Fi-
gura 3.3. Quais s ao as coordenadas cartesianas dos vertices do cubo centrado
na origem de um sistema de referencia cartesiano? E as coordenadas ans,
considerando que a origem e os vetores de base sejam coincidentes com os do
sistema de referencia cartesiano? E as coordenadas polares, considerando
que o p olo esteja na origem do referencial cartesiano e os eixos coincidentes
com os eixos x e z?
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 43
x
y
z
(x,y,z)
x
y
z
(a) (b)
Figura 3.2: Sistema de coordenadas cartesianas: (a) m ao-direita; (b) m ao-
esquerda.
z
x
0
1
2
3
4
6
7
5
y
Figura 3.3: Cubo.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 44
3 , 125.26, -45)
1 (1.0, -1.0, 1.0) (1.0, -1.0, 1.0) (
3 , 54.736, -45)
2 (1.0, 1.0, 1.0) (1.0, 1.0, 1.0) (
3 , 54.736, 45)
3 (1.0, 1.0, -1.0) (1.0, 1.0, -1.0) (
3 , 125.26 , 45)
4 (-1.0, -1.0, -1.0) (-1.0, -1.0, -1.0) (
3 , 125.26, 45)
5 (-1.0, -1.0, 1.0) (-1.0, -1.0, 1.0) (
3 , 54.736, 45)
6 (-1.0, 1.0, 1.0) (-1.0, 1.0, 1.0) (
3 , 54.736 , -45)
7 (-1.0, 1.0, -1.0) (-1.0, 1.0, -1.0) (
3 , 125.26 , -45)
3.1.2 Combinacao Convexa
Um conceito muito util em sistemas de informa cao gr aca e combina cao
convexa. A combina cao convexa de um conjunto de m vetores P
0
P
i
, em
coordenadas ans, e uma soma ponderada destes vetores tal que os pesos
i
sejam n ao-negativos e a soma desses pesos seja igual a 1
P
0
P = P P
0
=
i
(P
i
P
0
) =
i
P
i
i
P
0
=
i
P
i
P
0
,
i
0 e
i
= 1,
da qual derivamos uma express ao que, aparentemente, contradiz o que ar-
mamos na se cao 3.1: soma de pontos!
P =
i
P
i
,
i
0 e
i
= 1. (3.6)
Isso signica que, dado um conjunto de pontos P
i
, o ponto P pode ser
determinado, de forma unica e independente do referencial, pelos pesos
(
1
,
2
, . . . ,
m
). Estes pesos s ao denominados coordenadas baricentricas
em rela cao aos pontos de referencia P
i
.
Uma propriedade importante de combina cao convexa e que o ponto P
est a sempre contido no interior do fecho convexo do conjunto de pontos
P
i
e o lugar geometrico de todos os pontos gerados pela Eq.(3.6) e o pr oprio
fecho. Um segmento P
A
P
B
pode ser, portanto, representado algebrica-
mente como o lugar geometrico de um conjunto de pontos, cujas coordena-
das baricentricas (
1
,
2
) satisfazem duas propriedades: 0
1
,
2
1
e
1
+
2
= 1. Podemos ver um triangulo P
A
P
B
P
C
como o lugar
geometrico de todas as possveis combina coes convexas dos seus tres vertices
P
A
, P
B
e P
C
, isto e, pontos de coordenadas baricentricas (
1
,
2
,
3
) em
rela cao a P
A
, P
B
e P
C
que satisfazem as propriedades 0
1
,
2
,
3
1 e
1
+
2
+
3
= 1
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 45
Exemplo 3.2 As coordenadas baricentricas do ponto medio de um seg-
mento s ao (
1
2
,
1
2
) e as coordenadas baricentricas do baricentro de um tri angulo
s ao (
1
3
,
1
3
,
1
3
). Se as coordenadas cartesianas dos pontos extremos do seg-
mento forem P
1
= (0, 5)e P
2
= (3, 7), as coordenadas cartesianas do ponto
medio deste segmento s ao (1.5, 6.0). Com mais um ponto n ao colinear
P
3
= (3, 10), dene-se um tri angulo cujo baricentro tem as coordenadas car-
tesianas P =
1
3
P
1
+
1
3
P
2
+
1
3
P
3
= (2, 11). Se alterarmos as coordenadas dos
pontos P
1
, P
2
e P
3
teremos outras guras geometricas, mas as coordenadas
baricentricas do ponto medio e do baricentro ser ao sempre as mesmas.
3.1.3 Operacoes com Vetores
Dados dois vetores v
1
= (x
1
, y
1
, z
1
) e v
2
= (x
2
, y
2
, z
2
) num sistema car-
tesiano
3
, s ao comuns as seguintes opera coes em sistemas de informa cao
gr aca:
Multiplica cao por escalar: v = v
1
= (x
1
, y
1
, z
1
)
Adi cao: v = v
1
+v
2
= (x
1
+x
2
, y
1
+y
2
, z
1
+z
2
)
Subtra cao: v = v
1
v
2
= (x
1
x
2
, y
1
y
2
, z
1
z
2
)
Produto Escalar: v
1
v
2
= |v
1
||v
1
|cos = x
1
x
2
+ y
1
y
2
+ z
1
z
2
, onde
e o angulo entre os dois vetores. Uma interpreta cao geometrica do
produto escalar e proje cao do vetor v
1
sobre v
2
, ou vice-versa. O
produto escalar e tambem muito utilizado para obter o angulo entre
dois vetores. Se v
1
e v
2
forem normalizados, ou seja |v
1
| = |v
2
| = 1,
entao v
1
v
2
= cos .
Produto Vetorial: |v
1
v
2
| = |v
1
||v
1
|sen e v
1
v
2
= (y
1
z
2
y
2
z
1
, x
2
z
1
x
1
z
2
, x
1
y
2
x
2
y
1
), onde e o angulo entre os dois vetores. Observe
que a area do tri angulo formado pelos dois vetores v
1
e v
2
e
1
2
|v
1
v
2
|.
3.2 Figuras Geometricas
Nesta altura voce deve estar se perguntando para que servem tantas formas
distintas de representar pontos no espa co por n-tupla de valores numericos,
se o nosso interesse e na modelagem de formas geometricas em sistemas de
informa cao gr aca. Isso e porque uma gura geometrica pode ser caracteri-
zada como um conjunto de pontos do espa co que satisfazem um certo n umero
de propriedades e muitas destas propriedades s ao descritveis por equa coes
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 46
e inequa coes que relacionem as coordenadas que apresentamos. Isso cer-
tamente facilita o seu processamento digital. Por exemplo, um tri angulo
denido pelos pontos P
A
= (1, 0), P
B
= (0, 1) e P
C
= (0, 0) pode ser repre-
sentado
em coordenadas cartesianas como um sistema constitudo pelas tres
equa coes de semi-planos:
_
_
_
x 0
y 0
x +y 1 0
em coordenadas polares: (r, ), com r [0,
1
(cos +sin)
], [0,
2
];
em coordenadas ans: se for na base can onica, a representa cao e a
mesma em coordenadas cartesianas; e
em coordenadas baricentricas: P(t
1
, t
2
, t
3
) = t
1
P
A
+t
2
P
B
+t
3
P
C
, como
vimos na se cao 3.1.2.
Na se cao 3.1.2 vimos as restri coes que devem ser impostas sobre as coor-
denadas bricentricas para obter um segmento e um tri angulo. Na se cao 3.2.1
s ao apresentadas mais fun c oes que descrevem a rela cao das coordenadas car-
tesianas dos pontos no espa co
3
pertencentes a uma gura geometrica de in-
teresse, na se cao 3.2.2 e detalhada a representa cao de curvas e superfcies de
Bezier e na se cao 3.2.3 s ao apresentadas formas distintas para derivar veto-
res normais das guras geometricas a partir das suas formula coes analticas.
Estes vetores normais s ao essenciais na sntese de imagens foto-realsticas.
3.2.1 Representacao de Propriedades Geometricas
Em Geometria Analtica e comum descrever as propriedades que um con-
junto de pontos de uma gura geometrica deve satisfazer por meio da rela cao
das suas coordenadas cartesianas. Um exemplo simples e a circunferencia.
Ela e o lugar geometrico de todos os pontos, em coordenadas cartesianas
(x, y), que distam de um ponto (x
c
, y
c
) denominado centro, de um valor R,
isto e,
(x x
c
)
2
+ (y y
c
)
2
= R
2
,
ou seja,
f(x, y) = (x x
c
)
2
+ (y y
c
)
2
R
2
= 0.
Dentre as representa coes com uso de n coordenadas cartesianas, distinguem-
se:
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 47
impcitas : a rela cao entre as n coordenadas dos pontos do objeto e ex-
pressa por (in)equa coes de n vari aveis.
explcitas : uma coordenada e expressa explicitamente em fun cao de todas
as outras n 1 coordenadas.
2
2
.
em representac ao implcita: f(x, y, z) = x
2
+y
2
+z
2
r
2
.
em representac ao explcita: z =
_
r
2
x
2
y
2
.
A representa cao implcita f de uma gura geometrica e muito utilizada
para classica cao de pertinencia de um ponto P em rela cao `a gura, pois
se substituirmos as coordenadas do ponto na fun cao f, temos tres possveis
situa coes:
1. f < 0: P est a em um lado (interior) da gura.
2. f = 0: P est a sobre a gura, ou seja, e um ponto da gura.
3. f > 0: P est a em outro lado (exterior) da gura.
3.2.2 Funcoes de Bernstein
Para ilustrar a aplica cao do conceito de combina cao convexa em modela-
gem de guras geometricas mais complexas, s ao apresentadas nesta se cao as
curvas e superfcies de Bezier.
Geometricamente, os pontos sobre as curvas de Bezier, de grau n, P(t), t
[0, 1] s ao obtidos atraves da combina cao convexa de um conjunto de pontos
{P
0
, P
1
, , P
n
}, denominados pontos de controle, com uso de fun coes de
Bernstein
P(t) =
n
i=0
B
n,i
(t)P
i
.
i=0
B
n,i
(t) =
n
i=0
_
n
i
_
t
i
(1t)
ni
=
n
i=0
n!
i!(n i)!
t
i
(1t)
ni
= 1 t.
Uma curva de Bezier de grau n e, de fato, o lugar geometrico de um subcon-
junto dos pontos do fecho convexo de n+1 pontos de controle P
i
. Os fatores
de pondera cao B
n,i
(t) correspondem `as coordenadas baricentricas do ponto
P(t) em rela cao a estes pontos de controle, como ilustra Figura 3.4.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 49
O
P1
P2
P3
P4
Figura 3.4: Curva de Bezier.
Quando n = 2, as fun coes
B
2,0
(t) = (1 t)
2
= 1 2t +t
2
B
2,1
(t) = 2t(1 t) = 2t 2t
2
B
2,2
(t) = t
2
constituem uma base do espa co de polin omios de grau 2. Dados tres pontos
P
0
, P
1
e P
2
, obtem-se uma curva de Bezier quadr atica
P(t) = (1 2t +t
2
)P
0
+ (2t 2t
2
)P
1
+ (t
2
)P
2
.
Utilizando a nota cao matricial,
P(t) =
_
B
2,0
(t) B
2,1
(t) B
2,2
(t)
_
_
P
0
P
1
P
2
_
_
=
_
t
2
t 1
_
_
1 2 1
2 2 0
1 0 0
_
_
_
_
P
0
P
1
P
2
_
_
A matriz quadrada 22 e conhecida como matriz-base de Bezier quadratica
e o vetor de pontos de controle, vetor de geometria de Bezier. Fi-
gura 3.5.(a) mostra o gr aco das fun coes de (base) B
2,0
(t), B
2,1
(t) e B
2,2
(t)
no intervalo t [0, 1]. Observe que neste intervalo as fun coes s o assu-
mem valores n ao nulos em t = 0 e t = 1. Quando t = 0 as coordenadas
baricentricas do ponto correspondente s ao (1, 0, 0) e quando t = 1 as coor-
denadas baricentricas passam a ser (0, 0, 1). Para o restante dos valores de
t, as coordenadas baricentricas n ao se anulam. Por exemplo, para t = 0.5
e t = 0.25, as coordenadas baricentricas dos pontos correspondentes s ao
(0.25, 0.5, 0.25) e (0.5625, 0.375, 0.0625), respectivamente. Isso signica que
se alterarmos a posi cao de um ponto de controle P
i
, todos os pontos da
curva se mexerao.
As curvas de Bezier c ubicas s ao as mais utilizadas dentre as curvas de
Bezier. As fun coes de Bernstein que as denem s ao
B
3,0
(t) = (1 t)
3
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 50
0.5 0.25 0.75
(a) (b)
Figura 3.5: Fun coes de Bernsteins: (a) quadr aticas e (b) c ubicas.
B
3,1
(t) = 3t(1 t)
2
B
3,2
(t) = 3t
2
(1 t)
B
3,3
(t) = t
3
.
Elas constituem uma base do espa co de polin omios de grau 3.
Utilizando a nota cao matricial,
P(t) =
_
B
3,0
(t) B
3,1
(t) B
3,2
(t) B
3,3
(t)
_
P
0
P
1
P
2
P
3
_
_
=
_
t
3
t
2
t 1
_
1 3 3 1
3 6 3 0
3 3 0 0
1 0 0 0
_
_
_
_
P
0
P
1
P
2
P
3
_
_
.
A matriz quadrada 33 e conhecida como matriz-base de Bezier c ubica.
Figura 3.5.(b) mostra o gr aco das fun coes de (base) Bernstein c ubicas no
intervalo t [0, 1].
(t) =
n
i=0
B
n,i
(t)P
i
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 51
P
Figura 3.6: Spline constitudo por 2 segmentos de curva c ubicos.
Particularmente, para uma curva c ubica, o vetor-tangente em cada ponto
P(t) e dado por
P
(t) = (3 + 6t 3t
2
)P
0
+ (3 3t
2
)P
1
+ (6t 9t
2
)P
2
+ (3t
2
)P
3
Em nota cao matricial,
P
(t) =
_
t
3
t
2
t 1
_
0 0 0 0
3 3 9 3
6 0 6 0
3 3 0 0
_
_
_
_
P
0
P
1
P
2
P
3
_
_
.
Podemos obter superfcies de Bezier P(u, v) com uso de fun coes de Berns-
tein atraves da combina cao convexa dos pontos resultantes da combina cao
convexa dos pontos de controle (Figura 3.7)
P(u, v) =
m
i=0
(
n
j=0
P
ij
B
n,j
(u))B
m,i
(v). (3.7)
O reticulado de pontos de controle P
ij
denem a malha de controle da
superfcie.
3.2.3 Vetores Normais
O vetor normal n de uma superfcie em cada ponto e essencial na sntese
foto-realstica de guras geometricas.
Quando se conhece a fun cao da gura geometrica de interesse, pode-se
derivar a partir de fun cao o vetor normal exato em cada ponto:
Representa cao implcita f(x,y,z): n =
f
|f|
, onde f = (
f
x
,
f
y
,
f
z
)
Representa cao parametrica P(u,v): n =
P
u
P
v
|
P
u
P
v
|
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 52
P
0,0
P
0,1
P
0,2
P
1,0
P
1,1
P
1,2
P
2,0
P
2,1
P
2,2
Figura 3.7: Superfcie de Bezier.
3.3 Malhas Poligonais
A representa cao poligonal consiste em descrever um objeto por uma malha
de facetas poligonais, cada qual e representada por uma sequencia fechada
e orientada de arestas. As arestas, por sua vez, podem ser exatamente de-
nidas pelos seus extremos que s ao conhecidos por vertices, cujas posi coes
s ao reprsentaveis pelas coordenadas. Informa cao sobre a localiza cao de cada
vertice e denominada geometrica enquanto informa cao sobre a conectivi-
dade entre eles e usualmente conhecida por topol ogica.
Esta representa cao e muito utilizada para aproximar guras geometricas
cujos pontos n ao s ao descritveis por uma fun cao conhecida. A estrutura
mais simples para armazenar a conectividade entre os vertices e descrever
cada faceta poligonal como uma lista de vertices, como ilustra Figura 3.8.
Exemplo 3.4 As faces do cubo do Exemplo 3.1 podem ser representados
como lista dos ndices de vertices. Figura 3.8 mostra parcialmente uma
possvel estrutura para armazenar estes dados.
v
1
v
2
v
2
v
3
|
v
1
v
2
v
2
v
3
|
.
Se a malha poligonal for uma aproxima cao de uma superfcie suave, e
comum estimar o vetor normal no vertice P como a normaliza cao da media
aritmetica dos vetores normais de todas as faces adjacentes a P.
Captulo 4
Transformacoes Geometricas
O objetivo deste captulo e apresentar para voce uma forma de manipular
uma gura geometrica, seja para alterar suas dimensoes seja para reposi-
cion a-la no espa co, por meio de opera coes sobre valores numericos. Portanto,
ap os a leitura deste captulo, voce deve ser capaz de
caracterizar e representar transla cao, rota cao, mudan ca de escala, ci-
salhamento e reexao de pontos.
caracterizar e representar transforma coes ans de pontos.
explicar o papel de cada bloco da matriz de transforma cao de ordem
4.
representar pontos por coordenadas homogeneas e aplic a-lo.
aplicar transforma cao geometrica sobre vetores.
denir uma matriz de transforma cao para reposicionar os pontos de
uma gura geometrica no espa co.
Observa atentamente Figura 4.1. O boneco foi construdo com uma
mesma gura geometrica b asica: cubo, conforme a especica cao dada no
Exemplo 3.4. S ao 9 blocos. Cada bloco foi posicionado em rela cao ao
bloco central, ap os as suas dimensoes terem sido devidamente ajustadas.
Ha duas alternativas para obter computacionalmente a imagem apresentada
na Figura 4.1: por analogia `as tecnicas de pintura, desenhando os pontos
bi-dimensionais sobre a tela plana; e por analogia `as tecnicas de fotograa,
55
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 56
Figura 4.1: Boneco.
imageando a maquete construda com guras geometricas no espa co tri-
dimensional.
A segunda tecnica tem sido preferida pelos usuarios de sistemas de in-
forma cao gr aca, por estar mais pr oxima da sua forma de percep cao. Neste
caso, a tarefa de produ cao de uma imagem 2D e de responsabilidade de duas
partes: homens e m aquinas.
E o processador humano que dene a forma e
a disposi cao espacial das guras geometricas, enquanto o processador digi-
tal se encarrega de produzir imagens digitais a partir das deni coes geradas
pelo processador humano. Para suportar este paradigma, e necessario tra-
duzir a visao humana em uma visao de processador predominantemente
numerico. Nos vimos no captulo 3 como uma m aquina pode ver as
formas geometricas e neste captulo, veremos como ela pode entender os
movimentos especicados pelos usuarios. Adicionalmente. o sistema deve
realizar 3 est agios de transforma cao para produzir uma imagem a partir
delas:
1. transforma cao que altera as posi coes das guras geometricas no espa co;
2. transforma cao que projeta as guras geometricas num plano de proje cao;
e
3. transforma cao que mapeia os pontos do plano de proje cao para o
referencial da tela de sada do dispositivo de exibi cao.
Podemos entender aqui uma transforma cao como uma aplica cao f que
faz corresponder um ponto P do domnio R
n
com um ponto do contra-
domnio S
n
:
f : P R
n
S
n
. (4.1)
Teoricamente, tais pontos podem estar representados em coordenadas car-
tesianas, polares, ans ou baricentricas (Se cao 3.1.1). No entanto, para tirar
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 57
proveito dos conceitos e estruturas providos pela
Algebra Linear, os algo-
ritmos de transforma cao mais conhecidos s ao desenvolvidos em cima das
coordenadas cartesianas.
Uma breve revisao sobre opera coes com matrizes e dada na se cao 4.7.
Em seguida, mostramos na se cao 4.2 as cinco transforma coes considera-
das b asicas: transla cao (translation), rota cao (rotation), mudan ca de escala
(scaling), espelhamento (reection) e deslocamento relativo linear ou cisa-
lhamento (shearing). Na se cao 4.3 apresentamos as transforma coes ans.
Todas estas transforma coes podem ser representadas como produtos com
matrizes de ordem 4, conforme detalha a se cao 4.4. Para adequar a esta
representa cao em matriz de ordem 4, foi necessario representar os pontos
em coordenadas homogeneas. Na se cao 4.5 faremos uma breve apresenta cao
destas coordenadas. Veremos na se cao 4.6 transforma coes de vetores. Dis-
pondo deste fundamento teorico, abordaremos duas questoes pr aticas. Na
se cao 4.7 apresentaremos dois paradigmas para denir uma transforma cao
que realiza modica coes almejadas e na se cao 4.8 mostraremos como simpli-
car a transforma cao de todos os pontos de uma gura geometrica aplicando
a propriedade de invari ancia sob transforma coes ans.
4.1 Opera coes com Matrizes
Veremos que as transforma coes sobre os pontos de uma gura geometrica
podem ser vistas como opera coes com matrizes. Vamos revisar algumas
propriedades destas opera coes nesta se cao.
Dadas duas matrizes A = (a
ij
)
mp
e B = (b
ij
)
qn
. A soma das duas
matrizes A e B e possvel, se m = q e p = n. Neste caso, o resultado e uma
matriz C = (c
ij
)
mp
, onde c
ij
= a
ij
+ b
ij
.A opera cao satisfaz as seguintes
propriedades:
Comutativa: A +B = B +A
Associativa: (A+B) +C = A+ (B +C)
Existencia de elemento neutro: A+ 0 = 0 +A = A
Existencia de elemento inverso: A + (A) = (A) +A = 0
Transposta da soma: (A + B)
t
= A
t
+ B
t
. A matriz transposta de A,
indicada por A
t
, tem as linhas trocadas ordenadamente pelas colunas
de A.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 58
O produto das duas matrizes A e B e denido, se p = q. O resultado
e uma matriz C = (c
ij
)
mn
, onde c
ij
=
p
k=1
a
ik
b
kj
. Considere mais uma
matriz D, tal que os produtos B.D e A.D sejam denidos . As seguintes
propriedades s ao satisfeitas:
Associativa: A.(B.D) = (A.B).D.
Distributiva `a direita: A.(B +D) = A.B +A.D.
Distributiva `a esquerda: (A +B).D = A.D +B.D.
Existencia de elemento neutro: A.I = I.A = A. Uma matriz I de or-
dem n e uma matriz identidade, se i
jk
= 1, quando j = k e os outros
elementos s ao nulos.
Invariante em rela cao `a prioridade: A.B.D = (A.B).D = A.(B.D).
Transposta do produto: (A.B)
t
= B
t
.A
t
.
d
P
1
P
2
d
(a) (b)
Figura 4.3: Transla cao ou deslocamento.
como um sistema de equa c oes lineares e este sistema de equa coes e nume-
ricamente identico para as duas formas de ver uma transforma cao. Esta
constata cao pode simplicar a solu cao de muitos problemas e, em termos
de program cao, ela nos permite utilizar o mesmo codigo para processar dois
contextos distintos.
4.2.1 Translacao
A transla cao de um ponto P
1
= (x
1
, y
1
, z
1
) num espa co tri-dimensional e
o deslocamento
d = (d
x
, d
y
, d
z
) deste ponto para P
2
= (x
2
, y
2
, z
2
). Este
deslocamento corresponde `a adi cao do montante d
x
, d
y
e d
z
`a coordenada
cartesiana x
1
, y
1
e z
1
, respectivamente (Figura 4.3.(a))
x
2
= x
1
+d
x
y
2
= y
1
+d
y
z
2
= z
1
+d
z
(4.2)
Usando nota cao matricial temos
_
_
x
2
y
2
z
2
_
_
=
_
_
x
1
y
1
z
1
_
_
+
_
_
d
x
d
y
d
z
_
_
. (4.3)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 60
Vimos na se cao 3.1.1 que as coordenadas cartesianas coincidem com
as coordenadas ans quando o referencial e uma base can onica. Vamos
utilizar as coordenadas ans para mostrar que, se deslocarmos o referencial
pelo vetor de deslocamento
d = (d
x
, d
y
, d
z
) carregando o ponto P
1
, a
nova posi cao espacial do ponto e a mesma dada pela Eq.(4.2), como ilustra
Figura 4.3.(b)
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
+
_
_
d
x
d
y
d
z
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
+
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
d
x
d
y
d
z
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
+d
x
y
1
+d
y
z
1
+d
z
_
_
. (4.4)
4.2.2 Mudanca de Escala
A mudan ca de escala de uma gura geometrica implica essencialmente
em altera cao das suas dimensoes, ampliando-a ou reduzinado-a. Em termos
de vetores, isso equivale a mudar a magnitude dos pares de vetores denidos
pelos pontos da gura geometrica. Dados dois pontos A e B em
3
de uma
gura. A magnitude do vetor
AB e
|
AB| =
_
(A
x
B
x
)
2
+ (A
y
B
y
)
2
+ (A
z
B
z
)
2
.
Mudar a escala do vetor por um fator corresponde a multiplicar |
AB| por
um escalar s, isto e,
s|
AB| = s
_
(A
x
B
x
)
2
+ (A
y
B
y
)
2
+ (A
z
B
z
)
2
.
Para simplicar as opera coes, e comum considerar que o ponto A seja
origem, ou seja, A = (0, 0, 0). Neste caso, teremos
s|
AB| = s
_
(B
x
)
2
+ (B
y
)
2
+ (B
z
)
2
=
_
(sB
x
)
2
+ (sB
y
)
2
+ (sB
z
)
2
.
Com isso, reduz-se a multiplica cao de um vetor por um escalar em mul-
tiplica cao de um ponto por um escalar! Observe que (0, 0, 0) e um ponto
invariante sob a mudan ca de escala. Figura 4.4.(a) ilustra a multiplica cao
de um vetor por s = 2 tendo como ponto A a origem do referencial.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 61
A
B
A
sB
A
(s
x
B
x
, s
y
B
y
)
A
B
(a) (b) (c)
Figura 4.4: Mudan ca de Escala
Quando o fator de escala e igual para todas as coordenadas, dizemos
que a transforma cao e uniforme. Se substituirmos o escalar s pelo vetor
(s
x
, s
y
, s
z
) para produzir efeitos diferenciados ao longo dos tres eixos de
referencia, estaremos aplicando uma transforma cao nao-uniforme
x
2
= s
x
x
1
y
2
= s
y
y
1
z
2
= s
z
z
1
, (4.5)
como ilustra Figura 4.4.(b) que resultou da aplica cao do fator (1.5, 2) sobre
o ponto B.
Em nota cao matricial, a transforma cao e equivalente a
_
_
x
2
y
2
z
2
_
_
=
_
_
s
x
0 0
0 s
y
0
0 0 s
z
_
_
_
_
x
1
y
1
z
1
_
_
. (4.6)
Uma outra forma de pensar seria considerar que os pontos s ao represen-
tados pelas coordenadas ans em rela cao `a base can onica. Se estes vetores
forem multiplicados pelos fatores de escala (s
x
, s
y
, s
z
), as novas coordenadas
ans, coincidentes com as coordenadas cartesianas, assumem os seguintes
valores
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
s
x
0 0
0 s
y
0
0 0 s
z
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
s
x
0 0
0 s
y
0
0 0 s
z
_
_
_
_
x
1
y
1
z
1
_
_
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 62
y
x
y
x
y
x
(a) (b) (c)
Figura 4.5: Deslocamento Relativo Linear
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
s
x
x
1
s
y
y
1
s
z
z
1
_
_
,
que, numericamente, s ao iguais aos obtidos pela Eq.(4.5).
4.2.3 Deslocamento Relativo Linear
Esta transforma cao, conhecida em ingles como shearing ou em portugues
como cisalhamento, caracteriza-se pela varia cao linear de uma coordenada
do ponto (x
1,v
, x
2,v
, x
3,v
) em rela cao aos valores das outras, ou seja, a nova
coordenada transformada x
i,r
em
3
pode ser expressa como:
x
i,r
= x
i,v
+
3
j=1,j=i
(sh
ij
x
j,v
), (4.7)
onde sh
ij
e a taxa de varia c ao da coordenada x
i
em rela cao `a coordenada x
j
.
Figura 4.5.(a) e 4.5.(b) ilustram deslocamento na dire cao y com sh =
y
x
e na dire cao x com sh =
x
y
, respectivamente. Figura 4.5.(c) mostra o
resultado conjunto dos dois deslocamentos.
Usando a nota cao matricial, podemos exprimir o cisalhamento das coor-
denadas (x
1
, y
1
, z
1
) atraves do seguinte produto:
_
_
x
2
y
2
z
2
_
_
=
_
_
1 sh
xy
sh
xz
sh
yx
1 sh
yz
sh
zx
sh
zy
1
_
_
_
_
x
1
y
1
z
1
_
_
. (4.8)
Se os pontos s ao representados pelas coordenadas ans em rela cao `a
base can onica, podemos obter as mesmas coordenadas cartesianas dadas
pela Eq.(4.8) aplicando a transforma cao sobre os vetores-base e mantendo
constantes as coordenadas ans em rela cao aos novos vetores-base (linha
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 63
Figura 4.6: Cisalhamento do referencial.
P
0
(x
1
, y
1
)
(x
2
, y
2
)
P
0
(x
1
, y
1
)
(x
2
, y
2
)
(a) (b)
Figura 4.7: Rota cao: (a) no sentido anti-hor ario, (b) no sentido hor ario.
cheia na Figura 4.6)
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
1 sh
xy
sh
xz
sh
yx
1 sh
yz
sh
zx
sh
zy
1
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
1 sh
xy
sh
xz
sh
yx
1 sh
yz
sh
zx
sh
zy
1
_
_
_
_
x
1
y
1
z
1
_
_
.
4.2.4 Rotacao
Rota c oes s ao transforma coes em que os pontos giram de um angulo em
torno de um dado ponto P
0
. Por conven cao, atribumos valores positivos
a quando o sentido de giro for anti-hor ario (Figura 4.7.(a)) e negativos
quando for hor ario (Figura 4.7.(b)).
Representando os pontos (x
i
, y
i
) em coordenadas polares, com rela cao
ao p olo P
0
e o eixo de referencia x,
x
i
= r
i
cos
i
y
i
= r
i
sen
i
,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 64
onde r
i
e a dist ancia entre P
0
e o ponto (x
i
, y
i
) e
i
, o angulo entre a dire cao
do vetor-posi cao (x
i
, y
i
) e o eixo de referencia, a rota cao de um angulo do
ponto P
1
faz com que o angulo entre o novo vetor-posi cao (x
2
, y
2
) e o eixo
de referencia que igual a +
1
. Assim
x
2
= r
1
cos( +
1
)
= r
1
cos
1
cos r
1
sen
1
sen
= x
1
cos y
1
sen
y
2
= r
1
sen( +
1
)
= r
1
sen
1
cos +r
1
cos
1
sen
= y
1
cos +x
1
sen.
Em forma matricial, temos a seguinte rela cao entre as coordenadas dos
pontos antes e depois da rota cao:
_
x
2
y
2
_
=
_
cos sen
sen cos
_ _
x
1
y
1
_
.
Esta transforma cao equivale a girar um ponto em torno de um eixo z em
3
:
_
_
x
2
y
2
z
2
_
_
=
_
_
cos sen 0
sen cos 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
. (4.9)
Analogamente, pode-se derivar a matriz de rota cao em torno do eixo x
(segundo a regra da m ao-direita em rela cao ao eixo de rota cao):
R
x
() =
_
_
1 0 0
0 cos sen
0 sen cos
_
_
(4.10)
e em torno do eixo y,
R
y
() =
_
_
cos 0 sen
0 1 0
sen 0 cos
_
_
. (4.11)
Em alguns textos, os angulos de rota cao em torno dos eixos x, y e z
s ao chamados, respectivamente, angulo de guinada (yaw), angulo de
declividade (pitch) e angulo de rota cao longitudinal (roll ).
Ao inves de manter o referencial e rodar os pontos em torno da origem,
podemos rodar o referencial. Numericamente, os resultados s ao iguais. Por
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 65
Plano de projeo
(a) (b)
Figura 4.8: Reex ao.
exemplo, para rodar um ponto em torno do eixo z, como Figura 4.2.(b),
temos
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
_
_
cos sen 0
sen cos 0
0 0 1
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
x
1
y
1
z
1
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
cos sen 0
sen cos 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
_
_
.
4.2.5 Reexao
Reex ao e uma rota cao bem particular, em que um ponto sai do espa co
em que ele est a contido, d a um giro de 180
o
no espa co de uma dimensao
maior e volta em uma posi cao espelhada da original.
Num espa co bi-dimensional dene-se a reexao em rela cao a uma reta
(Figura 4.8.(a)), enquanto num espa co tri-dimensional fala-se em reexao
em rela cao a um plano (Figura 4.8.(b)).
Por inspe cao, pode-se concluir que, em termos de coordenadas, reexao
de um ponto (x
1
, y
1
, z
1
) em rela cao ao plano xy e equivalente `a invers ao do
sinal da coordenada z do ponto
x
2
= x
1
y
2
= y
2
z
2
= z
1
. (4.12)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 66
Em nota cao matricial, temos
_
_
x
2
y
2
z
2
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
. (4.13)
De forma an aloga, podemos obter a matriz de reexao de um ponto em
rela cao ao plano yz:
M
yz
=
_
_
1 0 0
0 1 0
0 0 1
_
_
(4.14)
e em rela cao ao plano xz:
M
xz
=
_
_
1 0 0
0 1 0
0 0 1
_
_
. (4.15)
Considerando que os pontos sejam representados por coordenadas ans
em rela cao `a base can onica, podemos aplicar essas matrizes de reexao so-
bre os vetores-base do referencial e manter as coordenadas ans para che-
gar os mesmos valores numericos de coordenadas cartesianas obtidas pelas
equan coes anteriores. Por exemplo, para reexao em rela cao ao plano xy,
as novas coordenadas s ao iguais `as da Eq.( 4.12)
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
x
1
y
1
z
1
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
1
y
1
z
1
_
_
_
_
.
4.3 Transformacoes Ans, Lineares e Rgidas
Uma transforma cao am e uma transforma cao que preserva paralelismo.
Dados dois pontos (x
1
, y
1
, z
1
) e (x
2
, y
2
, z
2
), ela e denida pelo seguinte sis-
tema de equa coes
x
2
= a
0,0
x
1
+a
0,1
y
1
+a
0,2
z
1
+a
0,3
y
2
= a
1,0
x
1
+a
1,1
y
1
+a
1,2
z
1
+a
1,3
z
2
= a
2,0
x
1
+a
2,1
y
1
+a
2,2
z
1
+a
2,3
. (4.16)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 67
Comparando Eq.(4.16) com Eqs.(4.3), (4.6), (4.8), (4.9) e (4.13), conclui-
se que todas as cinco transforma coes apresentadas na se cao 4.2 s ao casos
particulares de transforma cao am; portanto, elas preservam paralelismo.
Vimos tambem que as coordenadas cartesianas coincidem com as coorde-
nadas ans de uma base can onica. Isso nos permite ver o mesmo resultado
atraves de dois modos distintos de aplica cao de uma mesma transforma cao
T : transformar as coordenadas com o referencial xo (p.ex., girar uma ca-
neta com a m ao), ou, mantendo as coordenadas xas, transformar o seu
referencial(p.ex., girar em torno da uma caneta xa sobre uma mesa). Tra-
duzindo para nota cao matricial, temos a seguinte igualdade:
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
x
2
y
2
z
2
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
a
0,0
a
0,1
a
0,2
a
1,0
a
1,1
a
1,2
a
2,0
a
2,1
a
2,2
_
_
_
_
x
1
y
1
z
1
_
_
_
_
+
_
_
a
0,3
a
1,3
a
2,3
_
_
=
_
_
_
_
a
0,0
a
0,1
a
0,2
a
1,0
a
1,1
a
1,2
a
2,0
a
2,1
a
2,2
_
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_
_
_
_
x
1
y
1
z
1
_
_
+
_
_
a
0,3
a
1,3
a
2,3
_
_
.
(4.17)
Com exce cao das transla coes, as outras quatro transforma coes b asicas
s ao tambem conhecidas como transforma c oes lineares, pois satisfazem as
duas propriedades:
Aditividade: f(x +y) = f(x) +f(y);
Homogeneidade: f(x) = f(x), onde e um escalar.
Observamos ainda que rota coes, reexoes/espelhamentos (rota cao de
180
0
) e transla coes s ao as transforma coes geometricas basicas que preser-
vam as medidas e os angulos de uma gura geometrica. Portanto, elas s ao
tambem conhecidas como transforma c oes rgidas.
Embora as transforma cao ans sejam mais gerais, especializar as trans-
forma coes em 5 classes b asicas mostradas na se cao 4.2 continua sendo a
forma preferida na maioria de sistemas de informa cao gr aca, porque tais
transforma coes tem uma interpreta cao fsica de facil compreensao.
4.4 Concatena cao de Matrizes
Na se cao 4.2 vimos que as transforma coes b asicas sobre os pontos podem
ser representadas como opera coes com matrizes, isto e,
P
2
= P
1
+T ,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 68
P
2
= SP
1
,
P
2
= ShP
1
,
P
2
= RP
1
,
P
2
= MP
1
,
onde T, S, Sh, R e M denotam, respectivamente, matriz de transla cao, ma-
triz de redimensionamento, matriz de cisalhamento, matriz de rota cao e ma-
triz de reexao. Observe que, exceto a transla cao, todas transforma coes po-
dem ser representadas como produto de matrizes. Dessa maneira, excluindo
a transla cao, podemos representar uma sequencia M de transforma coes
b asicas como um produto de matrizes, isto e,
M
n
(M
n1
(. . . (M
2
(M
1
(M
0
P))) . . .)) = (M
n
M
n1
. . . M
2
M
1
M
0
)P = MP.
O fato da transla cao n ao poder ser expressa como um produto de ma-
trizes diculta a elabora cao de um procedimento comum para as trans-
forma coes b asicas. Este problema pode ser contornado com a inclusao de
uma quarta coordenada w na representa cao de pontos e a extensao da matriz
de transforma cao por mais uma coluna e uma linha. Com isso, a transla cao
de um ponto passa a ser processada como um produto de matrizes tanto
num espa co bidimensional
_
_
x +d
x
y +d
y
1
_
_
=
_
_
1 0 d
x
0 1 d
y
0 0 1
_
_
_
_
x
y
1
_
_
quanto em um espa co tridimensional
_
_
x +d
x
y +d
y
z +d
z
1
_
_
=
_
_
1 0 0 d
x
0 1 0 d
y
0 0 1 d
z
0 0 0 1
_
_
_
_
x
y
z
1
_
_
.
Em nota cao matricial,
_
_
x
2
y
2
z
2
1
_
_
=
_
_
a
0,0
a
0,1
a
0,2
a
0,3
a
1,0
a
1,1
a
1,2
a
1,3
a
2,0
a
2,1
a
2,2
a
2,3
0 0 0 1
_
_
_
_
x
1
y
1
z
1
1
_
_
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 69
w=1
y
x
(x,y.1)
(x/w.y/w.1)
w
c
re
s
c
e
projeo
Figura 4.9: Coordenadas homogeneas.
Podemos ver a matriz M
4,4
como uma concatena cao de 4 matrizes
_
_
U
m,m
.
.
. U
m,1
. . . . . . . . . . . . . .
U
1,m
.
.
. U
1,1
_
_
, (4.18)
A matriz U
3,3
representa as transforma coes lineares e a matriz U
3,1
corres-
ponde ao vetor de deslocamento. Veremos na se cao 4.5 que a matriz U
1,3
est a relacionada com proje coes perspectivas, enquanto o escalar U
1,1
atua
como um fator de escala uniforme
_
_
x
2
y
2
z
2
1
_
_
=
_
_
1 0 0 0
0 1 0 0
0 1 1 0
0 0 0 s
_
_
_
_
x
1
y
1
z
1
1
_
_
=
_
_
x
1
y
1
z
1
s
_
_
=
_
_
1
s
x
1
1
s
y
1
1
s
z
1
1
_
_
.
4.5 Coordenadas Homogeneas
Depois das coordenadas cartesianas, polares, ans e baricentricas, introdu-
zimos na se cao 4.4 uma quinta forma para representar um ponto no espa co
n
: por uma n+1-tupla de valores numericos. Nesta representa cao os pon-
tos em
n
s ao proje coes dos pontos do espa co
n+1
sobre um hiperplano,
usualmente w = 1, ao longo do raio de proje cao que passa pela origem, ou
seja, (x, y, z, w) (
x
w
,
y
w
,
z
w
,
w
w
) (
x
w
,
y
w
,
z
w
), como mostra Figura 4.9. As co-
ordenadas de todos os pontos em
n+1
que compartilham a mesma proje cao
em
n
s ao conhecidas como coordenadas homogeneas.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 70
Esta interpreta cao nos permite uniformizar a representa cao dos pontos
localizados no nito e no innito do espa co
3
. Mantendo as coorde-
nadas x, y e z constantes, se diminuirmos o valor de w, as coordenadas
x
w
,
y
w
e
z
w
aumentam, como exemplica a seguinte sequencia
w x y z
x
w
y
w
z
w
100 1 2 3 0.01 0.02 0.03
10 1 2 3 0.1 0.2 0.3
1 1 2 3 1 2 3
1/10 1 2 3 10 20 30
1/100 1 2 3 100 200 300
1/1000 1 2 3 1000 2000 3000
No limite de w 0, a 4-tupla (x, y, z, 0) representa um ponto no innito
na dire cao (x, y, z). Os outros pontos com coordenadas (x, y, z, 1) corres-
pondem aos pontos ordinarios do espa co
3
. Figura 4.9 ilustra esta ideia
para um espa co bi-dimensional.
A representa cao de pontos por coordenadas homogeneas permite ma-
nipular as guras geometricas e suas proje coes de maneira uniforme. Va-
mos ilustrar esta ideia atraves de um exemplo numerico num sistema bi-
dimensional. Seja um quadrado de vertices P
0
= (1, 1, 1), P
1
= (2, 1, 1),
P
2
= (2, 2, 1), P
3
= (1, 2, 1) e uma matriz de transforma cao com o bloco
U
1,2
= 0 (Figura 4.10.(a))
_
_
1 0 0
0 1 0
1 0 1
_
_
.
O produto desta matriz com os vertices e (Figura 4.10.(b))
_
P
0
P
1
P
2
P
=
_
_
1 0 0
0 1 0
1 0 1
_
_
_
_
1 2 2 1
1 1 2 2
1 1 1 1
_
_
=
_
_
1 2 2 1
1 1 2 2
2 3 3 2
_
_
.
O efeito da transforma cao e um cisalhamento dos pontos na dire cao w,
conforme vimos na se cao 4.2.3. Em seguida, ao dividirmos as coordenadas
x, y por w, o quadrado ser a projetado, de forma perspectiva, sobre o plano
w = 1 (Figura 4.10.(c))
_
P
0
P
1
P
2
P
=
_
_
0.5 0.67 0.67 0.5
0.5 0.33 0.67 1
1 1 1 1
_
_
.
Quando se trata de pontos no innito (w = 0), o efeito de cisalhamento
na dire cao w e o deslocamento destes pontos para nito (w = 0), distorcendo
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 71
y
x
w=1
x
w
w
(a)
x
w=1
x
w
w
y
(b)
x
w=1
x
w
w
y
(c)
Figura 4.10: Transforma cao projetiva.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 72
A
B
A
B
Pontos no infinito
Plano afim Plano no infinito
Plano projetivo
segmento interno
segmento externo
Figura 4.11: Segmento interno e externo.
perspectivamente a gura geometrica. Estes pontos, onde os raios paralelos
convergem ap os este deslocamento, s ao conhecidos como pontos de fuga
(vanishing points).
Ate agora s o analisamos casos em que w 0. O que signica w < 0?
Vamos revisitar as coordenadas dos pontos com uma sequencia crescente de
w, mas com sinal trocado
w x y z
x
w
y
w
z
w
-1/1000 1 2 3 -1000 -2000 -3000
-1/100 1 2 3 -100 -200 -300
-1/10 1 2 3 -10 -20 -30
-1 1 2 3 -1 -2 -3
-10 1 2 3 -0.1 -0.2 -0.3
-100 1 2 3 -0.01 -0.02 -0.03
Observe que agora se diminuirmos o valor de w, as coordenadas
x
w
,
y
w
e
z
w
aumentam, tendendo para 0. No limite de w , temos tambem
um ponto no innito na dire cao (x, y, z). S o que agora a aproxima cao e
pelo semi-espa co w < 0, emendando dois sub-segmentos localizados em
sub-espa cos distintos. Observe que nesta representa cao por coordenadas
homogeneas, dois pontos denem dois segmentos, ao inves de um s o: um
segmento interno (da visao classica), constitudo de pontos nitos, e
um segmento externo, que contem um ponto innito(Figura 4.11).
4.6 Transformacao de Vetores
Ate agora s o falamos sobre transforma coes de pontos. E os vetores? Ser a que
seguem o mesmo molde de transforma cao? Para responder esta pergunta,
basta lembrarmos que um vetor e, por deni cao, a subtra cao de dois pontos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 73
P
0
P
M
P
0
M
P
n
n
P
1
P
2
= P
2
P
1
.
Observe que, em coordenadas homogeneas, um vetor ter a a coordenada w =
0, ja que w
2
= w
1
= 1.
Se aplicarmos uma transforma cao M em ambos os pontos P
2
e P
1
, o
vetor sofrer a o mesmo efeito
MP
2
MP
1
= M(P
2
P
1
) = M
P
1
P
2
.
Pode-se, portanto, aplicar diretamente a transforma cao sobre as coordena-
das do vetor, no lugar de aplicar sobre os pontos e subtrair os resultados.
Um dos vetores mais utilizados em sistemas de informa cao gr aca e o
vetor normal n de superfcie. Se aplicarmos uma transforma cao M sobre os
pontos da superfcie, como P
0
e P da Figura 4.12, ser a que podemos aplicar
M diretamente sobre as coordenadas do vetor normal para obter os novos
vetores normais da superfcie?
Vamos traduzir a nossa pergunta em rela coes algebricas entre as coorde-
nadas
n
P
0
P = N
t
P = 0,
onde N e P s ao representa coes matriciais de n e
P
0
P, respectivamente.
Vimos que se aplicarmos a transforma cao M sobre os pontos do plano, o
vetor
P
0
P ser a transformado em MP. Sabemos ainda que o vetor normal
N
tal que N
= M
N e
(M
N)
t
(MP) = N
t
M
t
(MP) = N
t
(M
t
M)P = 0?
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 74
P
d
P
OP
= (M
1
)
t
.
4.7 Composi cao de Transformacoes
Uma das perguntas mais frequentes durante a cria cao de uma cena sintetica
e como representar em valores numericos uma transforma cao que modique
a forma ou a posi cao de uma gura geometrica. Como seria, por exemplo,
a matriz de transforma cao para ampliar ou rodar uma gura geometrica
em torno de um ponto arbitrariamente escolhido? Esta e uma pergunta
difcil de responder, ja que a solu cao n ao e unica. Uma alternativa e tentar
visualizar mentalmente a gura geometrica no espa co 3D e imaginar a
sequencia de a coes que poderia ser feita para obter o resultado desejado.
E
importante lembrar que o ponto invariante da gura deve estar na origem
quando se deseja rod a-la ou redimension a-la.
Figura 4.13 ilustra a rota cao de um ret angulo em torno de um ponto P
por um angulo . Em primeiro lugar, precisamos identicar o ponto inva-
riante que deve ser deslocado ate a origem antes da aplica cao da Eq.(4.9).
Neste caso, o ponto invariante e P, o inverso de cujo vetor-posi cao coin-
cide com o vetor de deslocamento da gura geometrica para origem (Fi-
gura 4.13.(b)). Em seguida, aplica-se a rota cao (Figura 4.13.(c)). Para -
nalizar, devemos retornar o ponto P `a sua posi cao inicial (Figura 4.13.(d)).
Sintetizando, a transforma cao desejada pode ser obtida pela composi cao de
3 transforma coes b asicas: transla cao, rota cao e transla cao.
Se forem conhecidas as coordenadas da nova posi cao de pelo menos qua-
tro pontos, n ao coplanares e n ao colineares tres a tres, P
0
= (x
0
, y
0
, z
0
, 1),
P
1
= (x
1
, y
1
, z
1
, 1), P
2
= (x
2
, y
2
, z
2
, 1), P
3
= (x
3
, y
3
, z
3
, 1), uma segunda
alternativa para obter a solu cao e utilizar o fato de que a transforma cao
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 75
procurada deve satisfazer a rela cao
_
_
x
0
x
1
x
2
x
3
y
0
y
1
y
2
y
3
z
0
z
1
z
2
z
3
1 1 1 1
_
_
=
_
_
a
0,0
a
0,1
a
0,2
a
0,3
a
1,0
a
1,1
a
1,2
a
1,3
a
2,0
a
2,1
a
2,2
a
2,3
0 0 0 1
_
_
_
_
x
0
x
1
x
2
x
3
y
0
y
1
y
2
y
3
z
0
z
1
z
2
z
3
1 1 1 1
_
_
,
onde P
i
s ao as coordenadas da nova posi cao. Como P
0
, P
1
, P
2
e P
3
n ao s ao
coplanares nem colineares, tres a tres, a matriz
_
_
x
0
x
1
x
2
x
3
y
0
y
1
y
2
y
3
z
0
z
1
z
2
z
3
1 1 1 1
_
_
e inversvel. Da, a matriz de transforma cao pode ser obtida pelo produto
de duas matrizes
_
_
a
0,0
a
0,1
a
0,2
a
0,3
a
1,0
a
1,1
a
1,2
a
1,3
a
2,0
a
2,1
a
2,2
a
2,3
0 0 0 1
_
_
=
_
_
x
0
x
1
x
2
x
3
y
0
y
1
y
2
y
3
z
0
z
1
z
2
z
3
1 1 1 1
_
_
_
_
x
0
x
1
x
2
x
3
y
0
y
1
y
2
y
3
z
0
z
1
z
2
z
3
1 1 1 1
_
_
1
.
4.8 Invariancia sob Transformacoes
Ate agora s o discutimos transforma coes sobre pontos e vetores. Na pr atica,
o que nos interessa e a transforma cao de uma gura geometrica. Vimos
na se cao 3.2 que h a diversas formas para descrever uma gura geometrica.
Como se transforma uma gura geometrica? Ser a que precisamos aplicar a
transforma cao em todos os pontos da gura geometrica? Nesta se cao vamos
mostrar que, para representa coes baseadas em combina cao convexa, isso n ao
e necessario.
Dada uma malha poligonal constituda pelos vertices interligados pelos
segmentos. Se descrevermos os pontos do segmento denido pelos pontos P
1
e P
2
como uma combina cao convexa destes pontos (Figura 4.14)
P = (1 t)P
1
+tP
2
, t [0, 1] (4.19)
e aplicarmos uma transforma cao linear L sobre os pontos P equivale a apli-
carmos a transforma cao nas coordenadas cartesianas de P
1
e P
2
e combin a-
las com a mesma fun cao convexa, ou seja,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 76
P
P1
P2
O
Figura 4.14: Combina cao convexa de dois pontos.
LP = L(1 t)P
1
+tP
2
= L(1 t)P
1
+LtP
2
.
= (1 t)LP
1
+tLP
2
.
Dizemos, entao, que a representa cao de segmento e invariante sob trans-
forma c oes lineares.
Para transla coes, se adicionarmos o vetor de deslocamento d a cada
vertice, os pontos do segmento resultante ser ao tambem deslocados deste
montante, como mostra na seguinte deriva cao
[(1 t)(P
1
+d) +t(P
2
+d)] = [(1 t)(P
1
+d) +t(P
2
+d)]
= [(1 t)P
1
+tP
2
] + ((1 t)d +td)
= (P +d).
Portanto, a representa cao dada pela Eq.(4.19) e tambem invariante sob
transla c oes.
Concluindo, se utilizarmos a Eq.(4.19) para representar os segmentos da
malha poligonal, podemos reduzir a transforma cao em todos os pontos da
malha pela transforma cao em seus vertices e aplicar a combina cao convexa
sobre eles. Isso reduz a complexidade do processo.
As curvas e superfcies de Bezier s ao tambem invariantes sob trans-
forma coes ans, porque e uma representa cao baseada na combina cao con-
vexa dos pontos de controle.
Captulo 5
Transformacoes Projetivas
O objetivo deste captulo e mostrar como um sistema de informa cao gr aca
consegue transformar as formas geometricas tri-dimensionais armazenadas
na sua mem oria em uma imagem plana que estamos habituados a ver e
desenha-la na area de exibi cao (viewport) de uma janela sobre uma tela de
monitor. Apos a leitura deste captulo, voce deve ser capaz de
distinguir e caracterizar, por meio de matrizes de transformaa cao, os
tipos de proje cao encontrados em desenhos tecnicos, artsticos e em
imagens como a visao humana percebe.
denir e caracterizar os espa cos utilizados ao longo do algoritmo de
proje cao: WC (sistema de universo World Coordinate System), VRC
(sistema da camera View Reference System), NDC (sistema nor-
malizado Normalized Device Coordinate System) e DC (sistema do
dispositivo Device Coordinate System).
dizer o papel de cada espa co ao longo do processo de proje cao.
caracterizar estes espa cos por diferentes modelos e saber a equivalencia
entre estes modelos.
controlar os par ametros dos modelos de camera e de dispositivo para
obter proje coes desejadas.
determinar as matrizes de transforma cao entre os espa cos e as matrizes
de transforma cao no espa co VRC para chegar a um volume de visao
padrao.
77
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 78
(x,y,z)
(x
p
, y
p
)
Figura 5.1: Transforma cao Projetiva.
Uma alternativa para obter imagens bi-dimensionais sinteticas e atraves
do processo de imageamento das guras geometrica concebidas no espa co tri-
dimensional, mapeando os pontos (x, y, z) no espa co
3
em pixels (x
p
, y
p
)
do monitor, conforme ilustra Figura 5.1. Para isso, o sistema deve prover
3 est agios de transforma cao: ajuste da geometria e da posi cao das formas
geometricas tri-dimensionais; proje cao da cena construda em uma ou mais
imagens planas; e mapear a imagem para a area de desenho de uma janela
da tela do monitor a m de exib-la. No captulo 4 foram apresentadas as
transforma coes b asicas e sua composi cao para realizar as tarefas do primeiro
est agio. Neste captulo vamos ver como podemos substituir a habilidade dos
artistas e dos desenhistas de criar imagens de distintos tipos de proje cao por
manipula coes algebricas e exib-las na area de desenho de uma janela da tela
de um computador.
Antes de apresentarmos o princpio dos algoritmos de transforma cao pro-
jetiva na se cao 5.3, vamos mostrar na se cao 5.1 uma taxonimia das proje coes
planas. Essencialmente, distinguem-se duas classes de proje coes: paralelas
e perspectivas. Embora as imagens obtidas com as proje coes perspectivas
se aproximem mais da percep cao humana, as proje coes paralelas s ao ampla-
mente utilizadas em aplica coes que requerem a preserva cao das propor coes
entre as medidas originais nas imagens, como em desenhos tecnicos. Dare-
mos, ainda, uma breve introdu cao ao sistema de visao humana na se cao 5.2,
cujo entendimento e fundamental para modelar o processo de gera cao de
imagens pr oximas `a nossa percep cao. S o entao, detalharemos um algoritmo
de transforma cao projetiva na se cao 5.4.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 79
raios projetores
Plano de projeo
Centro de
projeo
(infinito)
Plano de projeo
projeo
Centro de
raios projetores
(a) (b)
Figura 5.2: Proje coes: (a) paralelas e (b) perspectivas.
5.1 Taxonomia das Proje coes
As proje coes perspectivas planas foram muito utilizadas pelos artistas para
produzir imagens pr oximas `a percep cao humana numa tela de pintura. No
entanto, na area tecnica predominam-se as proje coes paralelas. As duas
proje coes diferem essencialmente na posi cao da camera:
paralelas: a camera ca no innito (x, y, z, 0) e os raios projetores que
incidem sobre o plano de proje cao s ao, consequentemente, paralelos
(Figura 5.2.(a)).
perspectivas: a camera ca num ponto do espa co (x, y, z, 1) e os raios
projetores que incidem sobre o plano de proje cao convergem neste
ponto (Figura 5.2.(b)).
Dentre cada uma destas duas classes de proje cao, podemos ainda distin-
guir sub-classes a serem detalhadas nas seguintes subse coes.
5.1.1 Projecoes Paralelas
As proje coes paralelas s ao caracterizadas por terem raios projetores parale-
los, o que preserva o paralelismo dos segmentos projetados. Denimos como
fator de redu cao, em ingles foreshortening factor, a raz ao entre o compri-
mento de um segmento projetado e o seu comprimento original. Denotamos
por f
x
, f
y
e f
z
, respectivamente, o fator de redu cao dos vetores-base (1, 0, 0),
(0, 1, 0) e (0, 0, 1) do referencial can onico sobre um plano de proje cao, con-
forme ilustra a Figura 5.4. Observamos que a escolha do referencial no plano
de proje cao e arbitraria. Para simplicar os calculos, assumimos que a sua
origem coincida com a origem dos vetores-base para simplicar os calculos
e que haja uma transforma cao T que os projete sobre o plano
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 80
Projees
Planas
Paralelas Perspectivas
Oblquas Ortogrficas
Vistas Axonomtricas
1 ponto de fuga
2 pontos de fuga
3 pontos de fuga
Isomtricas
Dimtricas
Trimtricas
Cavalier Cabinet
Figura 5.3: Taxonomia das proje coes.
T
_
_
1 0 0
0 1 0
0 0 1
_
_
=
_
_
x
x
y
x
z
x
x
y
y
y
z
y
0 0 0
_
_
, (5.1)
Os fatores de redu cao dos vetores-base (1, 0, 0), (0, 1, 0) e (0, 0, 1), s ao por-
tanto, respectivamente,
f
x
=
_
x
2
x
+y
2
x
1
=
_
x
2
x
+y
2
x
(5.2)
f
y
=
_
x
2
y
+y
2
y
1
=
_
x
2
y
+y
2
y
(5.3)
f
z
=
_
x
2
z
+y
2
z
1
=
_
x
2
z
+y
2
z
. (5.4)
Das proje coes paralelas, podemos distinguir dois casos, quanto `a posi cao
relativa dos raios projetores em rela cao ao plano de proje cao. Quando os
raios projetores s ao perpendiculares ao plano de proje c ao, dizemos que as
proje coes s ao ortogracas; caso contr ario, elas s ao ditas oblquas.
As proje coes ortogr acas podem ser classicadas, quanto aos fatores de
redu cao dos vetores-base em
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 81
raios projetores
Plano de projeo
y
x
f
x
f
y
f
z
y
x
x
x
x
y
y
y
x
z
y
z
Figura 5.4: Fatores de redu cao.
vistas, quando os raios projetores s ao paralelos a um dos eixos do referen-
cial; portanto, um dos fatores de redu cao e 0 e os outros dois fatores
s ao iguais a 1. Na Figura 5.5 a imagem obtida com os raios projetores
paralelos ao eixo z e considerada a vista de topo e tem f
x
=f
y
=1;
a imagem obtida com raios paralelos ao eixo x e a vista de frente
que tem f
y
=f
z
=1; e a obtida com raios projetores paralelos ao eixo
y e a vista de lado, com f
x
=f
z
=1 (Figura 5.5). Estas proje coes tem
a vantagem de preservar as medidas das faces paralelas ao plano de
proje cao. Substituindo os valores dos fatores de redu c ao na Eq. 5.1,
obtem-se para cada vista uma matriz de transforma cao:
1. de topo:
_
_
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
_
_
. (5.5)
2. de frente:
_
_
0 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
_
_
.
3. de lado:
_
_
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
_
_
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 82
Lado
Frente
Topo
x
y
z
Figura 5.5: Vistas de uma gura geometrica.
(a) (b) (c)
Figura 5.6: Proje coes axonometricas de um cubo: (a) isometrica, (b)
dimetrica e (c) trimetrica.
axonometricas, quando nenhum dos tres fatores de redu cao assume va-
lores nulos. Tipicamente, um dos eixos do referencial aparece verti-
cal no desenho. Estas proje coes proporcionam melhor percep cao de
profundidade, a custo da perda das medidas originais. Dentre as
proje coes axonometricas, distinguem-se
isometricas: f
x
=f
y
=f
z
(Figura 5.6.(a)).
dimetricas: um par de fatores de redu cao e igual, ou seja, f
x
=f
y
,
f
x
=f
z
ou f
y
=f
z
(Figura 5.6.(b)).
trimetricas: os fatores de redu cao s ao distintos (Figura 5.6.(c)).
Diferentemente das proje coes axonometricas, as projecoes oblquas con-
seguem proporcionar percep cao de profundidade preservando as medidas
originais em alguns lados. As proje coes oblquas se distinguem pelo angulo
em que os raios projetores incidem sobre o plano de proje cao. As proje coes
mais conhecidas s ao:
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 83
raios
projetores
1
1
raios
projetores
1
1/2
(a) (b)
Figura 5.7: Proje coes oblquas de um cubo: (a) cavalier e (b) cabinet.
eixo ptico d
h
H
ptico
centro
plano de
projeo
raio projetor
P
D
P
p
P
d
z
x,y
P
p
x
p
, y
p
(a) (b)
Figura 5.8: Proje cao perspectiva: (a) visao descritiva e (b) visao analtica.
cavalier: o angulo de incidencia e 45
o
; portanto, o fator de redu cao dos seg-
mentos perpendiculares ao plano de proje cao e igual a 1 (Figura 5.7.(a)).
cabinet: o angulo de incidencia e 63.43
o
. Com isso, o fator de redu cao dos
segmentos perpendiculares ao plano de proje cao e
1
2
(Figura 5.7.(b)).
5.1.2 Projecoes Perspectivas
As proje coes perspectivas caracterizam-se por apresentar umcentro optico,
no qual convergem todos os raios projetores. Somente o raio na dire cao de-
nominada o eixo optico n ao sofre distor cao ao longo da sua trajetoria,
mantendo-se perpendicular ao plano de proje cao (Figura 5.8). Com base
nestes elementos, podemos descrever a geometria de uma proje cao perspec-
tiva utilizando o princpio de semelhan ca de tri angulos, isto e,
d
h
=
D
H
Se escolhermos apropriadamente um referencial, tal como na Fi-
gura 5.8.(b), as coordenadas x e y, como x
p
e y
p
, corresponderao `as dist ancias
dos pontos em rela cao ao eixo optico (eixo z). Assim, um ponto P = (x, y, z),
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 84
w=1
w
x,y,z
w=1
w
z
w=1
w
z
w(z)
(a) (b) (c)
Figura 5.9: Coordenada w: (a) dos pontos originais; (b) ap os cisalhamento;
(c) ap os homogeneiza cao.
z > 0, e a sua proje cao P
p
= (x
p
, y
p
, d) sobre o plano z = 0 na Figura 5.8.(b)
guardam a rela cao
x
p
=
xd
z +d
y
p
=
yd
z +d
z
p
= 0. (5.6)
Em nota cao matricial,
_
_
x
y
z
z
d
_
_
=
_
_
1 0 0 0
0 1 0 0
0 0 0 0
0 0
1
d
1
_
_
_
_
x
y
z
1
_
_
. (5.7)
Comparando com o que vimos na se cao 4.5, esta transforma cao expressa
um cisalhamento com a taxa de varia cao
1
d
da coordenada w em rela cao `a co-
ordenada z (pontos em vermelho na Figura 5.9.(b)). E ao homogeneizarmos
as coordenadas do espa co
4
para o hiperplano w = 1, estaremos proje-
tando perspectivamente os pontos sobre ele, obtendo guras geometricas
perspectivas em
3
(pontos em verde na Figura 5.9.(c)).
As retas paralelas na dire cao (0, 0, 1, 0) convergem no ponto (0, 0, 0,
1
d
) =
(0, 0, 0, 1) conforme ilustra Figura 5.10. Figura 5.11.(a) mostra o efeito da
proje cao sobre um cubo. Este tipo de proje cao e conhecido como proje cao
perspectiva com um ponto de fuga.
_
_
1 0 0 0
0 1 0 0
0 0 0 0
0 0
1
d
1
_
_
_
_
0
0
1
0
_
_
=
_
_
0
0
0
1
d
_
_
Alem do cisalhamento da coordenada w em rela cao `a coordenada z, po-
demos ainda cisalh a-la em rela cao `a coordenada x. O efeito conjunto e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 85
z
centro
ptico
y
ponto
de
Plano
de
fuga
x
projeo
z=1
Figura 5.10: Ponto de fuga.
conhecido como proje cao perspectiva com dois pontos de fuga (Fi-
gura 5.11.(b)). Utilizando nota cao matricial, isso equivale a ter dois elemen-
tos n ao nulos p e r na sub-matriz U
1,m
da Eq. 4.18. Se o aplicarmos sobre
um feixe de vetores (1, 0, 0, 0), este convergir a no ponto (
1
p
, 0, 0, 1)
_
_
1 0 0 0
0 1 0 0
0 0 0 0
p 0 r 1
_
_
_
_
1
0
0
0
_
_
=
_
_
1
0
0
p
_
_
E, nalmente, e possvel adicionar cisalhamento em rela cao `a coorde-
nada y. Com isso, no processo de homogeneiza cao retas paralelas aos
tres vetores-base convergir ao em tres pontos distintos no nito do espa co
3
, como mostra Figura 5.11.(c). Dizemos, entao, que e uma proje cao
perspectiva com tres pontos de fuga. Matematicamente, este conceito
pode ser modelado com tres elementos n ao nulos p, q e r na sub-matriz
U
1,m
da Eq. 4.18. Se o aplicarmos sobre um feixe de vetores (0, 1, 0, 0), este
convergir a no ponto (0,
1
q
, 0, 1)
_
_
1 0 0 0
0 1 0 0
0 0 0 0
p q r 1
_
_
_
_
0
1
0
0
_
_
=
_
_
0
1
0
q
_
_
5.2 No coes do Sistema de Visao
Motivado pela cria cao de imagens mais pr oximas possveis `a forma como a
visao humana percebe, procurou-se entender e modelar o sistema de visao
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 86
(a) (b) (c)
Figura 5.11: Proje cao perspectiva de um cubo: (a) 1 ponto de fuga; (b) 2
pontos de fuga; (c) 3 pontos de fuga.
desde Renascimento. Os resultados foram fundamentais para o desenvolvi-
mento e a evolu cao das pinturas em perspectiva que fornece uma ilus ao
de profundidade bem pr oxima da forma como percebemos um fenomeno
tridimensional. Hoje aplicamos as tecnicas desenvolvidas tanto na sntese
de imagens foto-realistas como em visao computacional. Nesta se cao mos-
traremos como o sistema de visao humana funciona sob o ponto de vista
geometrico, concluindo com um modelo geometrico simplicado, porem su-
ciente, tanto para sntese quanto para an alise de imagens.
A visao humana inicia o seu processamento no momento em que a luz
entra na pupila do olho. A pupila e uma abertura no meio da ris e o
seu di ametro varia automaticamente com a intensidade da luz ambiente. O
cristalino inverte e foca o sinal luminoso numa regi ao do olho conhecida
por retina. O cristalino divide o interior do olho em duas partes: a anterior,
cheia de um lquido conhecido como o humor aquoso, e a posterior, cheia
de uma substancia gelatinosa denominada humor vtreo, como ilustra Fi-
gura 5.12. Esses humores possuem ndices de refra cao sensivelmente iguais
e muito pr oximos do da agua.
O conjunto cornea-cristalino do olho humano comporta-se como uma
lente convergente. O cristalino n ao e uma lente absolutamente rgida. Suas
camadas perifericas s ao relativamente moles, de modo que sob a cao de
m usculos ciliares que o envolvem, o cristalino se torna mais ou menos con-
vergente. Se os objetos est ao distantes, o cristalino ca mais no, e para
ver objetos pr oximos, ele se torna mais espesso. Esta faculdade do crista-
lino se adaptar chama-se acomoda cao visual. A acomoda cao, porem, n ao
e ilimitada. A dist ancia mnima, a partir da qual o olho n ao e capaz de
focar nitidamente uma imagem sobre a retina, e conhecida por distancia
mnima de visao distinta. Nesse caso, a tens ao dos m usculos ciliares e
m axima na acomoda cao. Para um olho normal, esta dist ancia e aproxima-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 87
Figura 5.12: Olho (Fonte:http://www.geocities.com/ppoeys/globo ocular2.jpg).
damente 25 cm. Ela aumenta com a idade. Distancia maxima de visao
distinta e a dist ancia de um ponto (remoto) para a qual os m usculos ciliares
cam relaxados.
_
1 0 0 V RP
x
0 1 0 V RP
y
0 0 1 V RP
z
0 0 0 1
_
_
. (5.10)
Em seguida, precisamos alinhar os vetores-base, (1, 0, 0), (0, 1, 0) e
(0, 0, 1), do VRC com os vetores R1, R2 e R3, respectivamente. Em outras
palavras, precisaremos encontrar uma transforma cao T , tal que,
_
_
1 0 0
0 1 0
0 0 1
_
_
= T
_
_
R1
x
R2
x
R3
x
R1
y
R2
y
R3
y
R1
z
R2
z
R3
z
_
_
.
Desse sistema e imediato concluir que a inversa da matriz formada pela
concatena cao dos tres vetores R
1
, R
1
e R
3
e a transforma cao procurada.
Se olharmos com mais cuidado, perceberemos que a matriz concatenada e
uma matriz ortogonal. Isso simplica ainda mais a solu cao que consiste em
simples transposi cao da matriz concatenada. Estendendo a matriz T para
dimensao 4, temos
R =
_
_
R1
x
R1
y
R1
z
0
R2
x
R2
y
R2
z
0
R3
x
R3
y
R3
z
0
0 0 0 1
_
_
. (5.11)
Aplicando essas transforma coes sobre os pontos P das formas geometricas
obteremos as coordenadas dos pontos P
em VRC:
P
= R T(V RP) P.
5.4.2 VRC
Agora, dependendo do tipo de proje cao, aplicaremos distintas transforma coes
sobre as formas geometricas em VRC de forma que o volume de visao que
orientado na forma como est a mostrado na Figura 5.21, porem sem os valores
normalizados.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 100
VRC
CW
dop
PRP
dop
u
dop
v
Figura 5.23: Cisalhamento do espa co VRC.
Paralela
Se o eixo optico, cuja dire cao e denida pelos pontos PRP e CW, n ao for
paralelo ao eixo n do referencial VRC, devemos fazer um cisalhamento das
coordenadas u e v em rela cao `a coordenada n, na seguinte propor cao
u
n
=
dopu
dopn
e
v
n
=
dopv
dopn
,
onde dop = CW PRP
e
PRP
_
1 0
dopu
dopn
0
0 1
dopv
dopn
0
0 0 1 0
0 0 0 1
_
_
. (5.13)
Apos esta transforma cao garantimos que os lados do volume de visao
quem paralelos ao eixo n. Agora s o falta deslocar o centro da janela
(
umax+u
min
2
,
vmax+v
min
2
, F, 1) para que a frente do volume de visao que
centrado na origem do referencial VRC. Isso pode ser realizada pela matriz
de transforma cao
T
par
=
_
_
1 0 0
umax+u
min
2
0 1 0
vmax+v
min
2
0 0 1 F
0 0 0 1
_
_
. (5.14)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 101
Perspectiva
Neste caso, PRP e o centro optico e ele precisa estar na origem do referen-
cial VRC (Figura 5.21.(b)). Para isso podemos aplicar em todas as guras
geometricas o deslocamento que leve o ponto PRP
).
Apos este deslocamento, o eixo optico passara pela origem (Figura 5.24.(a)).
Se o eixo n ao coincidir com o eixo n do referencial, poderemos aplicar
Eq. 5.13 com as coordenadas do centro de janela devidamente transforma-
das, em toda cena para que o volume de visao que orientado de tal forma
que o eixo optico, do sistema de proje cao em considera cao, esteja sobre o
eixo n (Figura 5.24.(b)). Em seguida, vamos fazer uma mudan ca na escala
do volume de visao de forma que o campo de visao fovy que 90
o
. Para isso,
precisaremos aplicar os fatores de escala f
u
e f
v
, respectivamente, nos seg-
mentos (u
max
u
min
) e (v
max
v
min
), de maneira que os seus comprimentos
quem iguais `a dist ancia 2F, isto e,
f
u
umaxu
min
2
= F e f
v
vmaxv
min
2
= F.
Esta mudan ca pelos fatores de escala pode ser representada pela matriz de
transforma cao
S
fovy
=
_
_
2F
(umaxu
min
)
0 0 0
0
2F
(vmaxv
min
)
0 0
0 0 1 0
0 0 0 1
_
_
. (5.15)
Conforme veremos na se cao 5.4.3, este passo facilitara a normaliza cao
do volume de visao, pois ele transforma o volume de visao numa pir amide
de base quadrada e altura igual `a metade dos lados da base.
5.4.3 VRC para NDC
Na se cao 5.4.2 vimos como podemos deformar o volume de visao no espa co
VRC para que ele que simetrico em rela cao ao eixo n do referencial VRC.
Nesta se cao vamos ver a normaliza cao das coordenadas com respeito `as di-
mensoes do volume de visao deformado (u
min
, u
max
, v
min
, v
max
, F, B)
para que ele se transforme em um dos volumes can onicos ilustrados na Fi-
gura 5.21.
No caso de um volume de visao paralelo, o fator de escala seria
2
umaxu
min
,
2
vmaxv
min
e
1
BF
para as dire coes u, v e n do referencial VRC, respectiva-
mente, ou seja,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 102
CW
VRC
F B
CW
VRC
F
B
VRC
CW
F
fovy
B
(a) (b) (c)
Figura 5.24: Transforma cao do volume de visao: (a) centro optico na origem,
(b) eixo optico sobre eixo n e (b) fovy = 90
o
.
S
par
=
_
_
2
umaxu
min
0 0 0
0
2
vmaxv
min
0 0
0 0
1
BF
0
0 0 0 1
_
_
. (5.16)
Multiplicando as matrizes dadas pelas Eqs. 5.10, 5.11, 5.13, 5.14 e 5.16,
obtemos uma matriz de normaliza cao de um volume de visao para volume
can onico paralelo representado pela Eq. 5.8
N
par
= S
par
T
par
SH R T(V RP
x
, V RP
y
, V RP
z
) (5.17)
No caso de um volume de visao perspectivo, chegamos em um volume de
visao piramidal de base quadrada e altura igual `a metade dos lados da base
na se cao 5.4.2. Podemos agora aplicar o mesmo fator de escala para todas
as tres dire coes neste volume para normaliza-lo. Este fator deve ser tal que
estique/comprima o plano de fundo do volume de visao de n = B para
n = 1. Em forma matricial, temos a seguinte transforma cao de escala
S
per
=
_
_
1
B
0 0 0
0
1
B
0 0
0 0
1
B
0
0 0 0 1
_
_
(5.18)
J a que conseguimos chegar em volumes can onicos, vamos tentar trans-
formar o volume can onico perspectivo em volume can onico paralelo. Isso
facilitara a tarefa de mapeamento do espa co NDC para DC. O algoritmo
poder a tratar ambos os casos de forma uniforme, considerando como en-
trada somente o volume can onico paralelo. Como ser a esta transforma cao?
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 103
Vamos supor neste caso que n ao saibamos decompor este mapeamento em
transforma coes b asicas e utilizarems a segunda alternativa dada na se cao 4.7,
tentando determinar quatro correspondencias entre os dois volumes e cal-
cular a mtriz de transforma cao am entre elas sob a restri cao de que haja
somente um ponto de fuga na dire cao n. Uma possvel matriz de trans-
forma cao seria resultado da concatena cao de tres sub-matrizes: mudan ca de
escala ao longo do eixo n, deslocamento ao longo do eixo n e cisalhamento
da coordenada w em rela cao `a coordenada n. Em outras palavras, ela teria
o seguinte aspecto:
P
per
=
_
_
1 0 0 0
0 1 0 0
0 0 a b
0 0 c 0
_
_
,
onde a, b e c s ao inc ognitas. Vamos aplicar esta matriz sobre os 4 pares
de correspondendias mostrados na Figura 5.25 para determinar os valores
destas inc ognitas, isto e,
_
_
1 0 0 0
0 1 0 0
0 0 a b
0 0 c 0
_
_
_
_
0 0 0
F
B
0 0
F
B
0
F
B
1
F
B
F
B
1 1 1 1
_
_
=
_
_
0 0 0
F
B
0 0
F
B
0
a
F
B
+b a +b a
F
B
+b a
F
B
+b
c
F
B
c c
F
B
c
F
B
_
_
0 0 0 c
0 0 c 0
a
F
B
+b
c
F
B
a+b
c
a
F
B
+b
c
F
B
a
F
B
+b
c
F
B
1 1 1 1
_
_
=
_
_
0 0 0 1
0 0 1 0
0 1 0 0
1 1 1 1
_
_
Igualando os elementos das duas ultimas matrizes, chegamos `a seguinte
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 104
1
+1
1
1
+1
VRC
F
/B
VRC
+1
1
1
1
+1
(a) (b)
Figura 5.25: Correspondencias entre volumes can onicos: (a) perspectivo e
(b) paralelo.
matriz de transforma cao entre os volumes can onicos:
P
per
=
_
_
1 0 0 0
0 1 0 0
0 0
1
1
F
B
F
B
1
F
B
0 0 1 0
_
_
=
_
_
1 0 0 0
0 1 0 0
0 0
B
BF
F
BF
0 0 1 0
_
_
(5.19)
Resumindo, para transformar uma cena vista perspectivamente em espa co
WC em um volume can onico paralelo podemos utilizar a sequencia de trans-
forma coes dadas pelas Eqs. 5.10, 5.11, 5.12, 5.13, 5.15, 5.18 e 5.19, ou seja,
N
per
= P
per
S
per
S
fovy
SH T(PRP
_
1 1 1 1 1 1 1 1
2 2 0 0 2 2 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
_
_
.
Exemplo 5.1 Dada a seguinte especica c ao:
VRP (WC) = (-2,0,-2,1)
VUP (WC) = (0,1,0,0)
VPN (WC) = (1,0,1,0)
PRP (WC) = (2,0,2,1)
(u
min
, u
max
, v
min
, v
max
) (VRC) = (-2,2,-4,2)
B (VRC) = 10
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 105
F (VRC) = 0
tipo de proje c ao: PARALELA.
Ao inves de calcular a matriz N
par
e aplic a-la sobre a gura geometrica,
aplicaremos sucessivamente as matrizes T(PRP), R, SH, T
par
e S
par
para
mostrar como a gura se transforma para chegar na forma can onica.
Passo 1 T(V RP):
_
_
1 0 0 2
0 1 0 0
0 0 1 2
0 0 0 1
_
_
1 1 1 1 1 1 1 1
2 2 0 0 2 2 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
_
_
=
_
_
1 3 1 3 1 3 1 3
2 2 0 0 2 2 0 0
1 1 1 1 3 3 3 3
1 1 1 1 1 1 1 1
_
_
.
Passo 2 R:
_
_
1
2
0
1
2
0
0 1 0 0
1
2
0
1
2
0
0 0 0 1
_
_
1 3 1 3 1 3 1 3
2 2 0 0 2 2 0 0
1 1 1 1 3 3 3 3
1 1 1 1 1 1 1 1
_
_
=
_
_
0 1.41 0 1.41 1.41 0 1.41 0
2 2 0 0 2 2 0 0
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
.
Passo 3 SH: A dire c ao dop pode ser obtida atraves de
CW = (
u
max
+u
min
2
,
v
max
+v
min
2
, F, 1)
= (
2 + (2)
2
,
2 + (4)
2
, 0, 1) = (0, 1, 0, 1).
dop = CW R T(V RP) PRP
= (0, 1, 4
2, 0).
_
_
1 0
0
4
2
0
0 1
1
4
2
0
0 0 1 0
0 0 0 1
_
_
0 1.41 0 1.41 1.41 0 1.41 0
2 2 0 0 2 2 0 0
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
=
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 106
_
_
0 1.41 0 1.41 1.41 0 1.41 0
1.75 1.5 0.25 0.5 1.5 1.25 0.5 0.75
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
.
Passo 4 T
par
: O centro da sua janela frontal e (0, 1, 0, 1)
_
_
1 0 0 0
0 1 0 1
0 0 1 0
0 0 0 1
_
_
0 1.41 0 1.41 1.41 0 1.41 0
1.75 1.5 0.25 0.5 1.5 1.25 0.5 0.75
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
=
_
_
0 1.41 0 1.41 1.41 0 1.41 0
2.75 2.5 0.75 0.5 2.5 2.25 0.5 0.25
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
.
Passo 5 S
par
:
_
_
2
2(2)
0 0 0
0
2
2(4)
0 0
0 0
1
100
0
0 0 0 1
_
_
0 1.41 0 1.41 1.41 0 1.41 0
2.75 2.5 0.75 0.5 2.5 2.25 0.5 0.25
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
=
_
_
0 0.705 0 0.705 0.705 0 0.705 0
0.917 0.833 0.250 0.167 0.833 0.750 0.167 0.083
0.141 0.283 0.141 0.283 0.283 0.424 0.283 0.424
1 1 1 1 1 1 1 1
_
_
.
Exemplo 5.2 Neste exemplo usaremos a mesma especica c ao do Exem-
plo 5.1, mudando apenas o tipo de proje c ao de paralela para perspectiva.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 107
Assim, as transforma c oes no passo 1 e passo 2 s ao as mesmas. Mostramos
somente os c alculos a partir do passo 3, aplicando as matrizes de trans-
forma c ao nos vertices do cubo em cada passo ao inves de computar N
per
Passo 3 T(PRP
2, 1).
_
_
1 0 0 0
0 1 0 0
0 0 1 4
2
0 0 0 1
_
_
0 1.41 0 1.41 1.41 0 1.41 0
2 2 0 0 2 2 0 0
1.41 2.83 1.41 2.83 2.83 4.24 2.83 4.24
1 1 1 1 1 1 1 1
_
_
=
_
_
0 1.410 0 1.410 1.410 0 1.410 0
2 2 0 0 2 2 0 0
4.247 2.827 4.247 2.827 2.827 1.417 2.827 1.417
1 1 1 1 1 1 1 1
_
_
Passo 4 SH: Diferentemente do Exemplo 5.1, precisamos atualizar as co-
ordenadas do centro da janela
dop = T(PRP
) CW PRP
= (0, 1, 8
2, 0).
_
_
1 0
0
8
2
0
0 1
1
8
2
0
0 0 1 0
0 0 0 1
_
_
0 1.410 0 1.410 1.410 0 1.410 0
2 2 0 0 2 2 0 0
4.247 2.827 4.247 2.827 2.827 1.417 2.827 1.417
1 1 1 1 1 1 1 1
_
_
=
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 108
_
_
0 1.410 0 1.410 1.410 0 1.410 0
2.375 2.250 0.375 0.250 2.250 2.125 0.250 0.125
4.247 2.827 4.247 2.827 2.827 1.417 2.827 1.417
1 1 1 1 1 1 1 1
_
_
Passo 5 S
per
S
fovy
:
_
_
2
(2(2))(10)
0 0 0
0
2
(2(4))(10)
0 0
0 0
1
10
0
0 0 0 1
_
_
0 1.410 0 1.410 1.410 0 1.410 0
2.375 2.250 0.375 0.250 2.250 2.125 0.250 0.125
4.247 2.827 4.247 2.827 2.827 1.417 2.827 1.417
1 1 1 1 1 1 1 1
_
_
=
_
_
0 0.071 0 0.071 0.071 0 0.071 0
0.079 0.075 0.012 0.008 0.075 0.071 0.008 0.004
0.425 0.283 0.425 0.283 0.283 0.142 0.283 0.142
1 1 1 1 1 1 1 1
_
_
.
Note que ate este passo o paralelismo das linhas e preservado!
Passo 6 P
per
: Como F = 0, temos
_
_
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1 0
_
_
0 0.071 0 0.071 0.071 0 0.071 0
0.079 0.075 0.012 0.008 0.075 0.071 0.008 0.004
0.425 0.283 0.425 0.283 0.283 0.142 0.283 0.142
1 1 1 1 1 1 1 1
_
_
=
_
_
0 0.071 0 0.071 0.071 0 0.071 0
0.079 0.075 0.012 0.008 0.075 0.071 0.008 0.004
0.425 0.283 0.425 0.283 0.283 0.142 0.283 0.142
0.425 0.283 0.425 0.283 0.283 0.142 0.283 0.142
_
_
.
Dividindo as coordenadas x, y e z pela coordenada w, obteremos os
pontos no espa co euclideano
3
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 109
5.4.4 NDC para DC
Tendo sempre como resultado do processo de normaliza cao um volume ca-
n onico paralelo, basta aplicarmos Eq. 5.5 para obtermos a imagem da cena
e mapear esta imagem no viewport da tela alocado para esta nalidade, de
acordo com o esquema da Figura 5.22.(a). Para isso, a seguinte sequencia
de transforma coes e suciente: xar a origem em (1, 1) para ampliar
a imagem nas dimensaoes da janela, sem deslocar este ponto, e relocar a
origem do referencial DC para o pixel (U
0
, V
0
). Em termos de matriz,
V =
_
_
1 0 0 U
0
0 1 0 V
0
0 0 1 0
0 0 0 1
_
_
W
2
0 0 0
0
H
2
0 0
0 0 1 0
0 0 0 1
_
_
1 0 0 1
0 1 0 1
0 0 1 0
0 0 0 1
_
_
. (5.21)
Captulo 6
Recorte
O objetivo deste captulo e apresentar uma tecnica que melhore o desempe-
nho do imageamento de uma cena tri-dimensional o recorte. A tecnica
consiste essencialmente em remover antecipadamente as partes que n ao es-
tejam dentro do volume de visao para reduzir a quantidade de opera coes
que n ao contribuam efetivamente na qualidade da imagem exibida. Apos a
leitura deste captulo, voce deve ser capaz de
dizer o papel dos algoritmos de recorte na sntese de imagens.
citar as principais ideias em que se basearam os algoritmos de recorte
e as diferen cas entre eles.
aplicar os algoritmos de recorte.
decidir o momento apropriado para aplicar um algoritmo de recorte
em um uxo de proje cao.
explicar a inuencia da coordenada w em recorte.
De acordo com a Figura 5.22 somente as guras geometricas contidas no
volume de visao can onico aparecem na area de desenho de uma janela. O
restante das guras devem ser removidas para n ao poluir outras areas da
tela, como ilustra a Figura 6.1. O processo de remo cao das partes que es-
tejam fora da janela de exibi cao e denominado recorte, em ingles clipping.
Esta tarefa, aparentemente simples (quem ja n ao recortou uma gura?), e
um dos problemas b asicos em sistemas de informa cao gr aca. Como um
computador, sem tesoura, estilete ou canivete, consegue recortar correta-
mente as imagens representadas por um monte de n umeros?
110
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 111
(a) (b)
Figura 6.1: Cena: (a) sem recorte e (b) com recorte (Fonte:
http://www.lighthouse3d.com/opengl/viewfrustum/.
Uma alternativa seria rasterizar as guras geometricas, transformando
os valores reais das suas coordenadas em pixels como veremos no captulo 10,
e classicar somente as amostras escolhidas. No entanto, com o aumento da
complexidade das cenas este procedimento, mesmo realizado em hardware,
passou a ser proibitivo para aplicativos interativos que requerem no mnimo
15 quadros por segundo (15 fps
1
). Muitos pontos seriam processados des-
necessariamente ao longo do uxo de proje cao e de rasteriza cao para serem
descartados, ap os rasteriza cao. Alem disso, veremos na se cao 6.4 que a
divisao pela coordenada w em proje coes perspectivas pode introduzir ambi-
guidade na representa cao. Surgiu-se, entao, a proposta de remover as partes
fora do volume de visao mais cedo possvel ao longo do uxo de proje cao.
Para diferenciar a primeira alternativa da segunda, e comum encontrar na
literatura o termo scissoring referenciando recorte no espa co de disposi-
tivo ap os rasteriza cao e o termo recorte para remo cao ocorrida em est agios
anteriores a rasteriza cao.
Neste captulo, o nosso foco e o recorte ocorrido antes da rasteriza cao.
Remover os pontos que est ao fora da janela/do volume de vis ao se re-
duz, numericamente, em um problema de intersec cao entre os seus segmen-
tos/planos limitantes e as guras geometricas de uma cena e classica cao do
resultado. Descrevendo as guras geometricas e os segmentos/planos limi-
tantes como equa coes, esse problema e equivalente a computar a solu cao de
um sistema de equa coes. No entanto, alem do problema de representa cao
algebrica n ao ser ainda um problema fechado, nem sempre as representa coes
conhecidas s ao faceis para serem processadas. Por exemplo, como voce des-
1
fps frames per second.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 112
1001 1000 1010
0010
0110
0100 0101
0001 0000
P1
P3
P4
P6
P2
P5
P7
P8
A
B
C
D
x
min
x
max
y
min
y
max
x
min
x
max
y
min
y
max
z
min
z
max
(a) (b)
Figura 6.2: Recorte de pontos em rela cao a: (a) janela de exibi cao e (b)
volume de visao.
creveria, com uso das fun coes que voce conhece, um tetraedro? Um cubo?
Um bule de ch a? Para uniformizar o tratamento, os processadores gr acos
limitaram o seu escopo de guras geometricas para malhas poligonais cujas
proje coes s ao tambem malhas poligonais. Estas malhas s ao constitudas por
tres tipos de primitivas: pontos, segmentos e polgonos (se cao 3.3).
Apresentaremos algoritmos de recorte destes tres tipos de primitivas nas
se coes 6.1, se cao 6.2 e se cao 6.3, respectivamente. Depois mostraremos na
se cao 6.4 em quais est agios do uxo de proje cao poderemos introduzir estes
algoritmos de recorte.
6.1 Recorte de Pontos
O recorte de um ponto (x, y) em rela cao a uma janela de exibi cao retangu-
lar (x
min
, y
min
, x
max
, y
max
) consiste essencialmente em vericar a sua per-
tinencia `a janela que corresponde ao seguinte sistema de inequa coes (Fi-
gura 6.2.(a)):
x
min
x x
max
e y
min
y y
max
Se for um ponto (x, y, z) em rela cao a um volume de visao paralelo,
acrescenta-se mais duas inequa coes ao sistema (Figura 6.2.(b)):
z
min
z z
max
E para um volume de visao perspectivo? Podemos dividir a solu cao em
dois passos: primeiro, transformar o volume de visao perspectivo para um
volume paralelo (se cao 5.4.3) e depois, fazer recorte em rela cao a este volume
de visao paralelo.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 113
6.2 Recorte de Segmentos
Em maioria dos casos, os segmentos ou est ao totalmente dentro ou est ao
totalmente fora da regi ao de interesse. Seria, portanto, interessante poder
distinguir ecientemente estes casos antes de computar desnecessariamente
as intersec coes. Apresentaremos na se cao 6.2.1 um algoritmo simples e eci-
ente para executar esta tarefa e veremos como podemos reduzir outros casos
em casos triviais. Em seguida, apresentaremos um algoritmo eciente
para tratar casos mais gerais na se cao 6.2.2 e um variante na se cao 6.2.3.
6.2.1 Algoritmo de Cohen-Sutherland
O algoritmo de Cohen-Sutherland se baseia em uma simples constata cao:
um segmento est a totalmente contido em uma regi ao, se e somente se, os
seus pontos extremos est ao contidos nela, e um segmento est a totalmente
fora dela, se os seus pontos extremos estiverem em um semi-espa co que n ao
contenha a regi ao. Cohen e Sutherland conceberam uma forma de dividir
o espa co em sub-espa cos aa partir da regi ao de interesse e atriburam um
codigo para cada sub-espa co de tal forma que uma opera cao logica AND,
bit a bit, e suciente para separar os segmentos que n ao interceptam com os
lados da regi ao. Os codigos s ao conhecidos como outcodes.
No caso de uma janela retangular, os seus quatro lados dividem o espa co
em 9 sub-espa cos, como mostra Figura 6.3.(a), e s ao utilizados 4 bits para
representar cada sub-espa co seguindo a seguinte conven cao, do bit menos
signicativo para o mais:
primeiro bit (esquerdo): x < x
min
.
segundo bit (direito): x > x
max
.
terceiro bit (embaixo): y < y
min
.
quarto bit (acima): y > y
max
.
A localiza cao de cada ponto em rela cao aos 9 sub-espa cos pode ser com-
putada com uso das inequa coes dadas na se cao 6.1, tendo como resultado
um codigo de 4 bits. Se aplicarmos uma opera cao logica AND, bit a bit,
entre os codigos dos dois pontos extremos de um segmento
A B AND
0 0 0
0 1 0
1 0 0
1 1 1
,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 114
x1
1001 1000 1010
0010
0110
0100 0101
0001 0000
A
B
C
D
P
1
P
2
P
3
P
4
P
5
P
6
P
7
P
8
x
max
y
min
y
max
x2 x1
y1
y2
z1
z2
010100 010110
010101
010001
011001 011000
010010
011010
010000
(a) (b)
Figura 6.3: Algoritmo de Cohen-Sutherland aplicado em: (a) janela de
exibi cao e (b) volume de visao.
teremos as seguintes possveis situa coes:
1. os codigos dos pontos extremos e do resultado s ao 0000: o segmento
est a contida na regi ao;
2. o resultado e diferente de zero: o segmento est a totalmente fora da
regi ao; e
3. o resultado e 0000 embora os codigos dos pontos extremos n ao sejam:
e indecidvel a pertinencia do segmento `a regi ao.
Na situa cao 3, o segmento P
1
P
2
e subdividido (e descartado), da dire cao
do ponto exterior P
1
para interior, ate que todos quem decidveis. Para
subdividir, podemos substituir os valores x
min
, x
max
, y
min
e y
max
em uma
das seguintes equa coes a m de obter as intersec coes sucessivamente
y = mx +b
x =
1
m
y
b
m
, (6.1)
conforme ilustra o seguinte pseudo-codigo
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 115
Input: Segmento P
1
P
2
Output: Resultado de recorte
P
A
= P
1
;
P
B
= P
2
;
foreach lado da janela x
min
, x
max
, y
min
, y
max
do
if P
A
P
B
e indecidvel then
if P
A
n ao est a fora da janela then
troca P
A
com P
B
;
end
Determine intersec cao I entre P
A
P
B
com o lado da janela;
Substitua P
A
por I;
else if P
A
e P
B
tem c odigo 0000 then
Retorne P
A
P
B
como sub-segmento visvel;
break;
else
Retorne o estado de P
1
P
2
como fora da janela;
break;
end
end
Algoritmo 1: Algoritmo de Cohen-Sutherland: Recorte de um segmento.
Aplicando o algoritmo nos segmentos da Figura 6.3.(a), temos
Segmento C odigo de P
1
C odigo de P
2
Opera cao logica Comentario
P
1
P
2
1001 1000 1000 totalmente fora
P
3
P
4
0000 0000 0000 totalmente dentro
P
5
P
6
0100 0010 0000 indecidvel
P
7
P
8
1000 0010 0000 indecidvel
Como os resultados para os segmentos P
7
P
8
e P
5
P
6
e foram indecidveis,
aplicamos Algoritmo 1 neles e obtivemos, respectivamente, como resultados:
P
7
P
8
removido e o sub-segmento AB totalmente visvel na janela. Em 1968,
junto com o seu orientando Sproull, Sutherland projetou um algoritmo deno-
minado algoritmo de ponto medio para determinar, de forma paralela,
os sub-segmentos visveis. Essencialmente, o algoritmo consiste em achar
recursivamente as interse coes de um segmento indecidvel com os lados de
uma janela, como mostra o seguinte pseudo-codigo da fun c ao Recorte PM:
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 116
Input: Segmento P
1
P
2
Output: P
A
P
B
P
A
= P
1
;
P
B
= P
2
;
if P
A
e P
B
tem c odigo 0000 then
Retorne P
A
P
B
como sub-segmento visvel;
else if AND(P
A
,P
B
) tem c odigo 0000 then
Retorne como sub-segmento visvel;
else if P
A
= P
B
then
Retorne como sub-segmento visvel;
else
Ache o ponto medio P
M
=
P
A
+P
B
2
;
Recorte PM(P
1
P
M
, P
X
P
Y
);
Recorte PM(P
M
P
2
, P
Z
P
W
);
P
A
P
B
= P
X
P
Y
P
Z
P
W
;
end
Algoritmo 2: Fun cao Recorte PM: algoritmo de subdivisao por ponto
medio.
Observamos que o procedimento recursivo Recorte PM pode ser executado
em paralelo. O algoritmo e, portanto, extremamente eciente quando im-
plementado em hardware.
A extensao do algoritmo de Cohen-Sutherland para um volume de visao
delimitado por 6 planos e imediato. Basta adicionarmos mais 2 bits ao codigo
para descarte r apido: quinto bit para z < z
min
e sexto bit para z > z
max
,
conforme ilustra Figura 6.3.(b). Por legibilidade, s o mostramos os codigos
dos sub-espa cos z < z
min
. Para z
min
z z
max
, os dois bits s ao 00 e
para z > z
max
, 10. Em casos indecidveis, podemos utilizar o algoritmo de
subdivisao por ponto medio (Algoritmo 2).
6.2.2 Algoritmo de Cyrus-Beck
Em 1978, Cyrus e Beck publicaram um algoritmo de recorte de segmentos
em rela cao a qualquer janela convexa de n arestas. O algoritmo e fundamen-
tado em um paradigma original. Eles utilizaram representa cao parametrica
para descrever segmentos (se cao 3.2.1). Esta representa cao n ao s o permite
reduzir n coordenadas em um unico par ametro t, como tambem simplica
o procedimento para achar os sub-segmentos totalmente contidos na janela
de exibi cao. Adicionalmente, eles deniram como vetor normal de um
lado o vetor unit ario perpendicular a este lado com dire cao para fora da
janela e traduziram o problema de determina cao de intersec cao I entre
um segmento e um lado E
i
da janela, como determina cao de um ponto I
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 117
2
11
5
12
n
i
E
i
I
P
0
P
1
P
2
P
2
P
E
i
n
i
P
0
P
1
P
E
i
F
i
(a) (b)
Figura 6.4: Algoritmo de Cyrus-Beck em: (a) janela de exibi cao e (b) volume
de visao.
sobre este lado tal que IP
E
i
, onde P
E
i
e um outro ponto qualquer sobre o
lado E
i
, seja perpendicular ao vetor normal n
i
de E
i
(Figura 6.4.(a)).
Representando o segmento P
0
P
1
parametricamente
P(t) = P
0
+ (P
1
P
0
)t (6.2)
e tomando um ponto xo P
E
i
da aresta E
i
, o ponto de intersec cao I entre
P(t) e E
i
deve satisfazer
n
i
(P
E
i
P(t)) = 0.
Substituindo P(t) pela Eq.(6.2), obtemos
n
i
(P
E
i
P
0
) n
i
(P
1
P
0
)t
i
= 0,
do qual derivamos o valor do par ametro t
i
, n
i
e (P
1
P
0
) n ao forem per-
pendiculares
t
i
=
n
i
(P
0
P
E
i
)
n
i
(P
1
P
0
)
. (6.3)
Se t
i
[0, 1], entao o segmento intercepta a aresta E
i
. O ponto de
intersec cao I e classicado de acordo com o produto escalar entre os vetores
P
E
i
P
0
e n
i
i
= (P
E
i
P
0
) n
i
(6.4)
em
PL (sair da janela): se
i
> 0 e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 118
PE (entrar na janela): se
i
< 0.
O procedimento e aplicado em rela cao a todos os lados da janela, a m
de determinar todas as possveis intersec coes. Estas intersec coes s ao entao
ordenadas na ordem crescente atraves da ordena cao crescente dos respectivos
valores do par ametro t. Por que? Basta lermos a Eq. 6.2 na seguinte forma:
um ponto P(t) e obtido deslocando a partir de P
0
em dire cao de um m ultiplo
t do vetor (P
1
P
0
). Portanto, quanto maior for o valor de t, mais distante
ser a o ponto P(t) em rela cao ao ponto P
0
. Em seguida vericamos, par a par,
as classica coes das intersec coes ordenadas. O trecho entre as intersec coes,
classicadas como (PE,PL), (PE,dentro) ou (dentro,PL), e o trecho que
est a dentro da janela de recorte. Vamos ilustrar o procedimento com a
Figura 6.4.(a), aplicando Eqs. 6.3 e 6.4 nos segmentos P
0
P
1
e P
2
P
3
. Os
resultados est ao sintetizados na seguinte tabela:
Lado i n
i
P
E
i
t
i
i
PL/PE Ordena cao
P
0
= (0, 6) E
0
(-1,0) (2,5)
2
9
-2 PE 3
P
1
= (9, 11) E
1
(0,1) (2,12)
6
5
> 1 6 PL 5
E
2
(1,0) (11,12)
11
9
> 1 11 PL 6
E
3
(0,-1) (11,5)
1
5
< 0 1 PL 1
P
0
0 - (fora) 2
P
1
1 - (dentro) 4
P
2
= (9, 2) E
0
(-1,0) (2,5)
7
7
< 0 7 PL 1
P
3
= (16, 7) E
1
(0,1) (2,12)
10
5
> 1 10 PL 6
E
2
(1,0) (11,12)
2
7
2 PL 3
E
3
(0,-1) (11,5)
3
5
-3 PE 4
P
2
0 - (fora) 2
P
3
1 - (fora) 5
A partir dos resultados, podemos ver que para P
0
P
1
os valores {0,
2
9
, 1}
est ao contidos no intervalo de par ametros [0,1], mas somente o intervalo
{
2
9
, 1} (PE,dentro) est a contido na janela. Em termos de coordenadas car-
tesianas, estes valores correspondem aos pontos (2,
64
9
) e (9, 11). E para
P
2
P
3
n ao temos nenhum intervalo com classica cao (PE,dentro), (PE,PL)
ou (dentro,PL); portanto, o segmento est a totalmente fora da janela.
O algoritmo Cyrus-Beck se aplica tambem para recorte de um segmento
em rela cao a um volume de visao, para o qual cada lado e uma face F
i
ao
inves de ser um segmento E
i
, como mostra a Figura 6.4.(b). Como o volume
contem 6 faces, as Eqs 6.3 e 6.4 s ao executadas 6 vezes para cada segmento.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 119
6.2.3 Algoritmo de Liang-Barsky
Liang e Barsky apresentaram uma vers ao mais eciente do algoritmo de
Cyrus-Beck para casos especcos de janelas retangulares (x
min
, x
max
, y
min
, y
max
).
Observe na tabela da se cao 6.2.2 que o fato dos vetores normais terem sem-
pre uma coordenada nula e a outra com m odulo igual a 1 simplica tanto o
computo de t
i
quanto de
i
, se escolhermos apropriadamente as coordenadas
dos pontos P
E
i
como mostra a seguinte tabela
Lado i n
i
P
E
i
t
i
i
x
min
(-1,0) (x
min
, y) t
i
=
x
min
x
0
x
1
x
0
x
min
x
0
x
max
(1,0) (x
max
, y) t
i
=
xmaxx
0
x
1
x
0
x
max
x
0
y
min
(0,-1) (x, y
min
) t
i
=
y
min
y
0
y
1
y
0
y
min
y
0
y
max
(0,1) (x, y
min
) t
i
=
ymaxy
0
y
1
y
0
y
max
y
0
Compare as express oes para
i
na ultima coluna da tabela com Eq. 6.4.
Produto escalar foi reduzido em simples diferen ca entre dois valores reais!
Quando o recorte e em rela cao a um volume de visao, adicionamos mais
dois lados: z
min
e z
max
. A deriva cao das express oes para obter t
i
e
i
e
an aloga aos outros lados.
6.3 Recorte de Polgonos
Embora um polgono possa ser descrito por uma sequencia fechada de seg-
mentos, utilizar os algoritmos dados na se cao 6.2 pode tornar o preenchi-
mento da area de um polgono recortado uma tarefa n ao trivial. Pois, ao
aplicarmos os algoritmos de recorte de linhas, temos frequentemente uma
cole cao de segmentos n ao conectados, como ilustra Figura 6.5.(b). Para
preencher o interior do polgono e necessario que a sequencia de segmentos
seja fechada, como mostra Figura 6.5.(c).
Nesta se cao apresentamos dois algoritmos de recorte de polgonos. Ado-
tamos a conven cao de que os segmentos do contorno externo de um polgono
sejam orientadas no sentido anti-hor ario e os segmentos do contorno interno
orientados no sentido hor ario.
6.3.1 Algoritmo de Sutherland-Hodgman
Ao inves de determinar a parte do polgono que se encontra dentro da janela,
Hodgman e Sutherland propuseram, em 1974, um procedimento de recort a-
lo sucessivamente pelos lados da janela como se fosse cort a-lo com uma
guilhotina ao longo das linhas da janela. Figura 6.6 ilustra esta ideia. Nesta
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 120
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7
P
8
P
9
P
10
(a) (b) (c)
Figura 6.5: Recorte de um polgono: (a) original, (b) cole cao de segmentos
aberta, e (c) sequencia fechada de segmentos.
(a) (b) (c) (d)
Figura 6.6: Algoritmo de Sutherland-Hodgman: (a) por x
min
, (b) por y
max
,
(c) por x
max
e (d) por y
min
.
se cao mostraremos como fazer um computador realizar esta tarefa simples,
atraves de manipula cao de n umeros.
O polgono e originalmente denido como uma sequencia fechada de
vertices P
0
P
1
. . . P
n2
P
n1
P
n
. Esta sequencia e recortada, em primeiro lu-
gar, com a linha x = x
min
, gerando uma nova lista intermediaria de vertices
com base em quatro regras de inser cao de vertices ao percorrer a sequencia
original de P
0
ate P
n
(Figura 6.6.(a)):
1. se o vertice P
i
estiver no lado esquerdo da linha x = x
min
, insere P
i
na lista (Figura 6.7.(a));
2. se o vertice P
i1
estiver no lado esquerdo da linha e o vertice P
i
no
lado direito, determine a intersec cao I (do tipo PL) e insere I na lista
(Figura 6.7.(b));
3. se o vertice P
i1
estiver no lado direito da linha e o vertice P
i
no lado
esquerdo, determine a intersec cao I (do tipo PE) e insere I seguido de
P
i
na lista (Figura 6.7.(c));
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 121
P
i1
P
i
I
P
i1
P
i
I
P
i1
P
i
P
i1
P
i
(a) (b) (c) (d)
Figura 6.7: Quatro possveis congura coes: (a) dentro, (b) saindo (PL), (c)
entrando (PE) e (d) fora.
4. se os vertices P
i1
e P
i
estiverem ambos no lado direito da linha,
nenhuma inser cao e feita (Figura 6.7.(d)).
O processo inicia com a classica cao de pertinencia do ultimo ponto da
sequencia, P
n
, e rotula cao deste ponto como P
1
. Se o ponto estiver den-
tro da janela, ele e inserido na nova lista. Esta rotula cao e somente para
uniformizar o tratamento do segmento P
n
P
0
com rela cao ao restante dos
segmentos.
A lista intermediaria gerada e utilizada como entrada do procedimento
de recorte em rela cao `a linha y = y
max
, gerando uma segunda lista inter-
medi aria (Figura 6.6.(b)). E o processo e repetido ate que o polgono tenha
sido recortado em rela cao a todos os lados da janela.
Resta agora vericar como se determinam as intersec coes e como se com-
putam os lados de uma linha. Para obter intersec coes entre dois segmentos,
podemos utilizar os algoritmos apresentados na se cao 6.2.2. E para distin-
guir os lados, podemos utilizar a representa cao implcita da linha para ava-
liar o lado, conforme vimos na se cao 3.2.1, ou determinar o angulo entre o
vetor normal da linha e o vetor formado pelo ponto P
i
e um ponto da linha
e avaliar o sinal do produto escalar, conforme vimos na se c ao 6.2.2.
O princpio do algoritmo de Hodgman-Sutherland vale tambem para
um volume de visao. Neste caso, ao inves de passar 4 linhas cortantes
sucessivamente, passaremos 6 planos cortantes sucessivamente.
6.3.2 Algoritmo de Weiler-Atherton
O algoritmo de Hodgman-Sutherland serve somente para janelas
convexas, ou seja, para janelas que s ao totalmente contidas no mesmo
semi-espa co em rela c ao a cada um dos seus lados, e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 122
(a) (b)
Figura 6.8: Janela: (a) concava e (b) multiplamente conexa.
simplesmente conexas, ou seja, se desenharmos uma curva fechada no
seu interior podemos encolhe-la continuamente em um ponto sem
sair da janela.
Figura 6.8.(a) ilustra uma janela concava e Figura 6.8.(b) uma janela multi-
plamente conexa. Como um computador conseguiria recortar uma gura
plana preenchida por um contorno arbitrario?
Em 1977, Weiler e Atherton apresentaram um algoritmo generico, capaz
de determinar o recorte entre dois polgonos P e Q quaisquer. O polgono
a ser recortado e denominado polgono-sujeito e o polgono recortante,
polgono-recorte. O diferencial do seu algoritmo est a no fato de substituir
a parte da borda do polgono-sujeito pela borda do polgono-recortante,
ao inves de tentar reconstruir a fronteira na parte removida.
Eles utilizam listas para representar os dois polgonos. Cada lista cor-
responde a uma sequencia fechada de vertices de um contorno dos polgonos
e ela ja inclui todas as intersec coes entre o polgono-sujeito e o polgono-
recorte. Temos, portanto, um conjunto de listas L
S
para polgono-sujeito e
outro para polgono-recorte L
R
, como ilustra Figura 6.9. Na inicializa cao s ao
ainda criadas duas listas: uma lista L
PE
de intersec coes do tipo PE, entre os
dois polgonos, e uma lista L
PL
de intersec coes do tipo PL. O procedimento
de recorte, propriamente dito, e sintetizado no seguinte pseudo-codigo:
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 123
Input: L
S
, L
R
, L
PE
, L
PL
Output: listas de contornos do polgono recortado
while L
PE
n ao e vazia do
Retire um vertice V
S
de L
PE
e o localize em L
S
;
I = V
S
;
V
E
= 0 ;
while I = V
E
do
Percorre L
S
a partir de V
S
ate encontrar um vertice V
E
de
L
PL
, inserindo os vertices percorridos na lista de sada ;
Procure em L
R
o vertice V
E
;
Percorre L
R
a partir de V
E
ate encontrar um vertice V
S
de
L
PE
, inserindo os vertices percorridos menos V
E
e V
S
;
Retire V
E
e V
S
das respectivas listas;
end
end
Algoritmo 3: Algoritmo de Weiler-Atherton.
E difcil encontrar nas aplica coes um volume de visao c oncavo e/ou multi-
plamente conexo. Ate onde temos informa cao, este algoritmo n ao e aplicado
no uxo de proje cao.
6.4 Espa co de Recorte
Agora que mostramos diferentes alternativas para um computador recor-
tar uma gura geometrica, vamos ver qual e o momento mais apropriado
para remover as partes que est ao fora do volume de visao. Chamamos o
espa co onde ocorre recorte de espa co de recorte.
Comparando os tipos de geometria que os algoritmos de recorte conse-
guem trabalhar ecientemente e as formas que um volume de visao pode
assumir em cada espa co (captulo 5.4), o recorte deve ocorrer preferencial-
mente ap os os ajustes no espa co VRC quando as equa coes que representam
os planos do volume de visao s ao mais simples. A pergunta e em qual ponto
devemos inserir o espa co de recorte? Se for uma proje cao paralela, a forma
do volume de visao seria preservada ate a proje cao efetiva. S o o seu tama-
nho e alterado. Portanto, pode-se inserir, em princpio, o espa co de recorte
em qualquer ponto ap os os ajustes no espa co VRC. O mesmo, infelizmente,
n ao acontece com o uxo de proje cao perspectiva. Vamos vericar isso mais
detalhadamente.
Vimos na se cao 5.4.3 que o volume de visao can onico perspectivo e ra-
dicalmente deformado em um volume can onico paralelo ap os a divisao pela
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 124
A
1
A
1
A
1
A
2
A
2
A
2
A
3
A
3
A
3
A
4
A
4
A
4
A
5
A
5
A
5
A
6
A
6
A
6
A
7
A
7
A
7
A
8
A
8
A
8
A
9
A
9
A
10
A
10
A
10
B
1
B
1
B
1
B
2
B
2
B
2
B
3
B
3
B
3
B
4
B
4
B
4
B
5
B
5
B
5
I
1
I
1
I
1
I
2
I
2
I
2
I
3
I
3
I
3
I
4
I
4
I
4
I
5
I
5
I
5
I
6
I
6
I
6
L
S
L
R
Figura 6.9: Recorte com uso de algoritmo de Weiler-Atherton.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 125
PRP
n
9
7 10
8 11
12
1
13
14
15
1
2
3
4
5
6
+
n
min
P
0 P
1 P
2
P
3
PRP
4
n
5
6
0
7
8
9
2
1
3
1
10
11
12
15
14
13
+
+
P
0
P
1
P
2
P
3
PRP
4
n
5
6
0
7
8
9
2
1
3
1
10
11
12
15
14
13
+
+
P
0
P
1
P
2
P
3
(a) (b) (c)
Figura 6.10: Sub-espa cos associados ao volume can onico: (a) antes da di-
visao, (b) ap os a divisao e (c) recorte correto.
coordenada w. Tanto os pontos com as coordenadas que satisfazem
w u w w v w w n 0 w > 0
quanto os que atendem
w u w w v w w n 0 w < 0
estariam dentro do volume can onico paralelo ap os a divis ao por w = 0
1
u
w
1 1
v
w
1 1
n
w
0,
embora eles tenham posi coes bem distintas no espa co homogeneo. Os pri-
meiros pontos estariam em frente do centro de proje cao PRP (sub-espa cos
5, 6 e 10 da Figura 6.10.(a)) e os pontos do segundo grupo, atr as do cen-
tro de proje cao (sub-espa cos 2 e 14 da Figura 6.10.(a)). Ao dividirmos as
coordenadas pela coordenada w, o centro de proje cao PRP ser a levado
para o innito e os sub-espa cos 1, 2, 3, 13, 14 e 15 rebateriam sobre
os sub-espa cos 9, 8, 7, 12, 11 e 10, respectivamente, conforme ilustra a Fi-
gura 6.10.(b). Isso signica que pontos que cam atr as do centro de proje cao
podem ser transformados para frente dele e os segmentos serem descarta-
dos de forma equivocada ap os a divisao por w, como o segmento P
2
P
3
na
Figura 6.10.(b), ou serem conectados de forma incorreta pensando que o
resultado seja um unico segmento, como os pontos-extremos do segmento
P
0
P
1
na Figura 6.10.(b). Na Figura 6.10.(c) s ao esbo cadas as proje coes
corretas.
Concluindo, o espa co de recorte deve ser inserido antes da divisao pela
coordenada w ao longo do uxo de proje cao quando o interesse e somente
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 126
Espao
nativo
Criao
da Cena
Espao de
Universo
Universo >
Cmera
Normalizao
Cmera
Espao da
Espao
Normalizado
Exibio
Dispositivo
Espao de
RECORTE
Figura 6.11: Fluxo de proje cao com recorte.
a geometria das guras da cena. Figura 6.11 apresenta o uxo de proje cao
com espa co de recorte.
Precisaremos, entao, utilizar as seguintes inequa coes para determinar as
intersec coes e decidir a pertinencia de um ponto em relacao ao volume de
visao
|w| u |w| |w| v |w| |w| n 0
Vamos supor que o plano de recorte seja
u
w
= 1, da qual deriva-se
u w = 0
Para achar a intersec cao de um segmento dado pela Eq. 6.2 com este plano
de recorte, temos que achar t tal que
[(1 t)w
0
+tw
1
] = [(1 t)u
0
+tu
1
].
Separando t obtemos
t =
w
0
u
0
(w
0
u
0
) (w
1
u
1
)
.
Este procedimento e aplicado, de forma an aloga, para obter intersec coes com
outros 5 planos de recorte:
u
w
= 1,
v
w
= 1,
v
w
= 1,
u
w
= 0,
n
w
= 1. As
intersec coes s ao, entao, utilizadas nos algoritmos de recorte que vimos nas
se coes anteriores para obter recorte de segmentos e polgonos.
Captulo 7
Modelos de Cor
O objetivo deste captulo e apresentar alternativas para representar cores
atraves de valores numericos, de forma que um sistema digital possa ve-la
e manipula-la. Apos a leitura deste captulo, voce deve ser capaz de
denir os seguintes termos: matiz, satura cao e brilho.
distinguir os espa cos de cor perceptiva, os espa cos de cor reproduzvel
por um dispositivo (gamutes de cor) e os espa cos de cor digitais.
descrever o princpio de percep cao de cor no sistema visual humano.
descrever os principais modelos de cor: padrao de cor e gamute de cor.
interpretar e aplicar o diagrama de cromaticidade.
ver as cores atraves de n umeros e manipula-las com opera coes algebricas.
mapear uma cor entre distintos espa cos de cor.
A maioria das pessoas vive rodeada de uma natureza multicolorida: ceu
azul, nuvens brancas, folhas verdes, etc. Desde Antiguidade tentou-se re-
produzir estas cores em pinturas e vestimentas utilizando produtos naturais,
extrados das plantas e insetos. S o em 1856 o qumico William Henry Per-
kin inventou a primeira tinta articial obtida com compostos qumicos ma-
nipulados em laborat orio. Independentemente de ser natural ou articial,
o fascnio pelas cores tem motivado pesquisadores de diversas areas. Isso
contribuiu ao uso de termos distintos para denotar uma mesma grandeza
fsica, como veremos na se cao 7.1. A hist oria de Computa cao Gr aca n ao e
127
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 128
Z
Y
X
Z
Y
X
Z
Y
X
(a) (b)
Figura 7.1: Espa cos de cor: (a) perceptvel pela visao, (b) reproduzvel pelo
dispositivo de exibi cao e (c) representavel em sistemas digitais.
muito diferente. Assim que foram geradas as primeiras imagens sinteticas,
o apelo por imagens coloridas, mais pr oximas possveis da nossa percep cao,
tem impulsionado muitas pesquisas relacionadas com a produ cao de cores.
Neste captulo o nosso foco se limita `a representa cao de cores no mundo
digital, ou seja, `as formas alternativas como um computador pode ver as
cores de forma equivalente a um observador medio. Para isso, precisamos
saber quais cores que um observador medio consegue perceber e como en-
sin a-las para um sistema digital. Na se cao 7.2 daremos uma visao geral
sobre o nosso processo de percep cao de cor. Em seguida, apresentamos na
se cao 7.3 modelos tricromaticos para descrever numericamente o espa co
de cores perceptveis (Figura 7.1.(a)). Dois padroes tricromaticos ser ao
apresentados. Veremos que podemos decompor uma cor em duas compo-
nentes: luminancia e crominancia. Esta ultima pode ser representada por
um diagrama de cromaticidade. Na se cao 7.4 mostraremos como se
representa o espa co de matizes de cores atraves de um diagrama de cromati-
cidade. Na se cao 7.5 descreveremos alguns modelos de cor mais utilizados
para representar os gamutes de cores que s ao, de fato, um sub-espa co de
cor como ilustra na Figura. 7.1.(b). As cores que s ao processadas em um
sistema digital devem estar contidas no gamute de cores do dispositivo de
sada para que elas sejam exibveis (pontos cianos na Figura. 7.1.(c)). E,
nalmente, na se cao 7.6 mostraremos como transferir estes modelos para o
mundo digital.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 129
7.1 Terminologia
Uma onda e uma perturba cao oscilante de alguma grandeza fsica no espa co
e peri odica no tempo. A oscila cao espacial e caracterizada pelo com-
primento de onda () e a periodicidade no tempo (T) e medida pela
freq uencia da onda (f =
1
T
). Estas duas grandezas est ao relacionadas pela
velocidade de propaga cao da onda (v)
=
v
f
.
Energia radiante e a modalidade de energia que se propaga pelo espa co,
mesmo vazio, por meio de ondas eletromagneticas. Radia cao e a energia
radiante em uma mesma frequencia. A frequencia de uma radia cao n ao se
modica quando ela passa de um meio para outro. Da-se o nome de espec-
tro eletromagnetico ao conjunto de todas as radia coes eletromagneticas
ordenadas segundo as suas frequencias, ou os seus comprimentos de onda.
O espectro de luz visvel e um intervalo de espectro eletromagnetico ca-
paz de sensibilizar a visao humana, produzindo percep cao de cor. A
cada comprimento de onda e associada uma cor espectral ou cor mono-
cromatica. Fotometria trata do estudo das grandezas relativas `a emissao
e `a recep cao das radia coes visveis e de medi cao dessas grandezas.
A sensibilidade da visao humana varia de observador a observador. Para
um mesmo observador, ele varia com a distribui cao espectral de potencia
I(), provocando distintos estmulos crom aticos. Figura 7.2.(a) apresenta
uma tpica distribui cao espectral de potencia de uma unica cor. Sob o ponto
de vista perceptivo, os termos importantes associados a uma cor s ao: ma-
tiz, satura cao e brilho. Denomina-se matiz (hue) o atributo de sensa cao
colorida que permite dizer se uma cor e verde ou azul. A satura cao (sa-
turation) e o atributo de sensa cao colorida que permite dizer se uma cor
e mais clara ou mais escura. Chamamos de claridade (lightness) o atri-
buto de sensa cao colorida que permite dizer se uma cor e mais ou menos
ofuscante. As setas na Figura 7.2.(b) indicam a dire cao do aumento do
valor desses par ametros. O matiz, a satura cao e a claridade correspondem,
respectivamente, `as seguintes grandezas fsicas da Colorimetria: compri-
mento de onda dominante , pureza na excita cao (percentagem da
luz branca) e luminancia E (Figura 7.2.(c)). Diferentemente da Fotome-
tria, Colorimetria se ocupa dos metodos referentes `a medi cao e `a avalia cao
das radia coes luminosas percebidas pela visao humana.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 130
D
e
n
s
i
d
a
d
e
d
e
e
n
e
r
g
i
a
B
r
i
l
h
o
Saturao
(a) (b)
D
e
n
s
i
d
a
d
e
d
e
e
n
e
r
g
i
a
Comprimento de
onda dominante
(c)
Figura 7.2: Uma cor em: (a) distribui cao espectral tpica, (b) medidas de
percep cao e (b) medidas colorimetricas.
7.2 Percep cao Visual
O termo luz e usado em dois sentidos. No sentido fsico, luz e um feixe de
ondas eletromagneticas/fotons de energia ao qual o olho humano e sensvel.
No sentido psicofsico, a luz e a sensa cao produzida num observador quando
a sua retina e estimulada.
A faixa espectral de luz visvel, embora limitada, compreende um n umero
innito de comprimentos de onda o que, `a primeira vista, impossibilitaria a
deni cao de um modelo computacionalmente factvel. Felizmente, gra cas `a
limitada capacidade de resolu cao da visao humana, a quantidade de cores
que um dispositivo com 24 bits consegue representar e suciente para mode-
lar e reproduzir uma variedade de cores comparavel com a que vivenciamos
no dia-a-dia. Quando um observador estiver adaptado ao estmulo de um
espectro de cor, ele s o vai perceber varia cao na cor se alterarmos o estmulo
por uma diferen ca somente distinguvel, em ingles just noticeable die-
rence. Figura 7.3 ilustra a capacidade de discriminar duas cores espectrais,
colocadas uma ao lado da outra, em tres distintos nveis de ilumina cao me-
didos em trolands. Observe que a melhor discrimina cao ocorre em torno de
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 131
Figura 7.3: Discrimina cao de cores espectrais (Fonte:
http://www.handprint.com/HP/WCL/color2.html).
490 nm (ciano) e 595 nm (laranja), quando a diferen ca e entre 1 a 2 nm.
Vimos no captulo 5 que a imagem de um objeto se forma sobre o plano
retinal e que se distinguem na retina dois tipos de celulas: os cones e os basto-
netes. Os cones s ao destinados `a visao fotopica (com intensa ilumina cao),
sendo sensveis `as diferen cas de cor. Os bastonetes, por sua vez, s ao destina-
dos `a visao escotopica (com fraca ilumina cao), sendo menos sensvesis `as
diferen cas de cor. Com base em experimentos, foi proposto um modelo tri-
estmulo para a visao humana (modelo de Young-Helmholtz). Este modelo
se fundamenta no fato de que a retina possui essencialmente tres tipos de co-
nes que s ao, respectivamente, fotosenssveis `as faixas de baixa(S), media (M)
e alta (L) frequencia do espectro visvel, como comprovam os gr acos das
fun c oes (noramlizadas) de sensibilidade espectral, em ingles spectral
sensitivity, dos tipos de cones na Figura 7.4. (a). Observe na Figura 7.4.(b)
que as duas intersec coes entre as tres curvas dividem o espectro em faixa
azul, verde e vermelha, para as quais os cones S, M e L s ao, respectivamente,
receptores dominantes.
Maxwell demonstrou atraves dos seus experimentos de casamento de cor
que qualquer cor espectral se casa com uma especca combina cao de so-
mente 3 cores primarias, conforme mostra Figura 7.5.(a). Utilizando uma
vers ao moderna do seu procedimento, o metodo de satura cao maxima, e
possvel levantar as propor coes de tres cores espectrais, B=444nm, G=526nm
e R=645nm, necessarias para reconstruir cada uma das cores espectrais. As
letras b
10
(), g
10
() e r
10
() da Figura 7.5.(b) denotam as fun c oes de ca-
samento de cor, em ingles color matching function. Elas representam,
respectivamente, propor coes da mistura das luzes monocrom aticas B, G e
R para chegar a uma cor espectral. Por exemplo, para obter a cor mo-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 132
(a) (b)
Figura 7.4: Resposta espectral dos cones: (a) curvas de sensibilidade (Fonte:
http://www.jpse.co.uk/sensory/colourtheory.shtml) e (b) faixa de dominancia
de cada cone (Fonte: http://www.handprint.com/HP/WCL/color3.html).
nocrom atica de 600nm e necessaria a propor cao 0:0.25:3.15. A teoria tri-
crom atica consegue explicar varios tipos de sensa cao de cor que vivenciamos.
No entanto, h a ainda casos observados experimentalmente que aparente-
mente cavam sem resposta, entre os quais o seguinte fenomeno intrigante:
por que n ao conseguimos perceber vermelho esverdeado, amarelo azu-
lado ou preto esbranqui cado?
Em torno de 1874, Hering publicou uma monograa que defendia a teo-
ria de processo oponente. Segundo a teoria, os sinais recebidos pelos
cones e bastonetes s ao interpretados antes de produzir, de forma an-
tagonica, uma especca percep cao de cor como ilustra a Figura 7.6.(a):
vermelho (L+S) verde (M); azul (S) amarelo (L+M); e preto branco
(L+M+S). Ha fortes indcios de que exista um ponto de equilbrio visual de
cones L e M, no intervalo 570-575 nm. Estmulos neste ponto de equilbrio
causa a sensa cao de uma nova cor amarelo. Ao inves de um modelo
de tres cores, por causa de tres tipos de cones, Hering propos um modelo
de quatro cores puras, em alem ao Urfarben: alem das tres cores primarias
azul, verde e vermelho, a cor amarelo e tambem considerada uma
cor b asica. Hurvich e Jameson demonstraram em 1950 que todas as cores
espectrais podem ser decompostas em uma especca mistura de quatro co-
res: vermelho (em torno de 700nm), amarelo (em torno de 570nm), verde
(em torno de 500nm) e azul (em torno de 470nm). Figura 7.6.(b) mostra a
fun cao de casamento de cor de um indivduo medio.
A eciencia luminosa do olho e a sensibilidade do olho a uma luz
de mesma potencia, variando somente no comprimento de onda. Figura 7.7
mostra as fun c oes de eciencia luminosa para uma visao fotopica, quando
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 133
(a) (b)
Figura 7.5: Fun coes de casamento de cor: (a) metodo
de satura cao m axima e (b) fun coes de casamento (Fonte:
http://www.handprint.com/HP/WCL/color6.html).
(a) (b)
Figura 7.6: Processo oponente: (a) processamento ddos
sinais S, M e L, e (b) fun coes de casamento (Fonte:
http://www.handprint.com/HP/WCL/color2.html).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 134
Figura 7.7: Fun coes de eciencia luminosa para visao fotopica e escot opica
(Fonte: http://www.handprint.com/HP/WCL/color3.html).
os cones, em ingles cones, respondem melhor, e uma visao escot opica, quando
os bastonetes, em ingles rods, apresentam melhor resposta. A cada com-
posi cao espectral corresponde um estmulo crom atico (uma unica cor). En-
tretanto, um mesmo estmulo crom atico pode ser causado por distintas com-
posi coes espectrais. Tais composi coes espectrais s ao denominadas metameras.
Como uma mesma radia cao visvel pode produzir sensa cao de cor diferente
em observadores diferentes, duas cores met ameras para um observador po-
dem n ao as serem para outro.
7.3 Geometria de Cores
A breve introdu cao `a percep cao de cor dada na se cao 7.2 e suciente para
percebermos a complexidade do processo. Precisamos agora ver como po-
demos modelar as mais diversas sensa coes de cor em valores numericos
para nos comunicar com um sistema digital e faze-lo perceber tais cores
tambem. A vers ao algebrica da teoria de percep cao tricromatica de cores foi
baseada em uma serie de observa coes do Grassmann, que hoje s ao conhecidas
como leis de Grassmann:
Aditividade: dadas duas met ameras x e y, isto e x y. Se adicionarmos
a elas uma mesma propor cao de uma terceira cor z, entao x+z e y +z
s ao tambem met ameras, ou seja, x +z y +z.
Proporcionalidade: dadas duas met ameras x e y. Se alterarmos a com-
posi cao das tres cores primarias nas duas cores pelo mesmo fator de
propor cao , entao x e y s ao tambem met ameras, ou seja, x y.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 135
Preto
M
o
n
o
c
ro
m
tic
a
E
n
e
r
g
ia
(
B
r
ilh
o
)
(X
=
Y
=
Z
)
C
1
C
2
C
3
Figura 7.8: Geometria de cor: um espa co vetorial.
Transitividade: As cores x e a s ao met ameras como as duas cores y e a s ao
met ameras, isto e x a e y a, se e somente se, x e y s ao met ameras.
A cada cor C e denida uma cor complementar C de forma que
a mistura aditiva das duas cores resulta em uma luz acromatica (cor
branco). A luz acrom atica de um sistema e uma cor que adicionada a
qualquer outra do sistema n ao altera o matiz da cor, mas sim s o a sua sa-
tura cao ou pureza. Estas propriedades junto com as leis de Grassmann nos
permitem dizer que o conjunto de cores provido da opera cao de mistura
aditiva e da multiplica cao por um fator de potencia forma um espa co (li-
near) de cor gerado por tres cores primarias {C
1
, C
2
, C
3
}. Denimos como
a base deste espa co as tres cores primarias e a origem dele a luz acrom atica
de luminancia nula (luz preta), como esquematizado na Figura 7.8. Esta
visao vetorial de cor nos abre a possibilidade de traduzir manipula coes
sobre as cores em opera coes vetoriais e transforma coes lineares (Se cao 4.3),
como veremos no restante deste captulo.
A Comissao Internacional de Ilumina cao (CIE), org ao respons avel pela
padroniza cao na area de Fotometria e Colorimetria, estabeleceu varios padroes
que descrevem geometricamente as cores. O padrao mais encontrado em
livros-texto de sistemas de informa cao gr aca e o CIE-XYZ 1931, que pode
ser considerada uma transforma cao linear do espa co padrao CIE-RGB.
7.3.1 CIE-RGB
Baseado na teoria tricromatica, Wright e Guild realizaram independente-
mente na decada de 1920 uma serie de experimentos para determinar as
fun coes de casamento das tres cores primarias R, G e B com um grande
n umero de observadores. CIE padronizou, com base nos seus resultados,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 136
as tres cores primarias, selecionando as cores espectrais de comprimentos
iguais a B=435.8 mn (azul), G=546.1 mn (verde) e R=700 mn (verme-
lho), e a partir das quais foram levantadas as fun coes de casamento r(),
g() e b() com base em um angulo de visao de 2
o
de um observador-padrao
CIE. Estas fun coes foram normalizadas de forma que as areas sob elas sejam
iguais, isto e,
_
0
r()d =
_
0
g()d =
_
0
b()d.
Em seguida estes valores foram multiplicados por um fator de escala para
serem ajustados a uma fonte de luminancia de cor (r,g,b) na propor cao
1:4.5907:0.0601 e a uma fonte de radia coes de cor (r,g,b) na propor cao
72.0962:1.3791:1. Como resultado obteve-se as curvas de casamento mos-
tradas na Figura 7.9.(a). Os gr acos s ao bem similares aos apresentados na
Figura 7.5.(b).
Dada uma cor com a distribui cao espectral de potencia I(), entao os
valores das coordenadas R, G e B podem ser calculadas por
R =
_
0
r()I()d
G =
_
0
g()I()d
B =
_
0
b()I()d.
(7.1)
Ao inves de especicarmos em termos da luminancia que cada cor primaria
contribui para uma especca sensa cao de cor, normalizamos esta repre-
senta cao em rela cao `a luminancia total R + G + B de forma a ter uma
representa cao s o de cromas de cor sem varia coes em luminancia
r =
R
R +G+B
g =
G
R +G+B
b =
B
R +G+B
. (7.2)
(7.3)
Os valores r, g e b s ao denominadas coordenadas de cromaticidade de
uma cor e o lugar geometrico dos pontos (r, g, b) e o plano r + g + b = 1,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 137
conhecido como plano de Maxwell, conforme mostra Figura 7.9.(b). As
cores espectrais constituem uma curva aberta com um extremo em roxo
(B=380nm) e outro em vermelho (R=700nm). O segmento de cores BR
obtido pela combina cao convexa entre roxo e vermelho e denominada
linha p urpura (Se cao 3.1.2). Pelas leis de Grassmann, todas as cores -
sicamente realiz aveis devem estar contidas nesta regi ao convexa de formato
de ferradura. Relembrando os conceitos que vimos na se cao 4.5, as coorde-
nadas (r, g, b) de um ponto sobre o plano s ao homogeneas a todas as cores
m ultiplas cujo lugar geometrico e a reta que passa pelo ponto e pela origem,
pois
r =
R
(R +G+B)
g =
G
(R +G+B)
b =
B
(R +G+B)
. (7.4)
(7.5)
Qual e a interpreta cao fsica para estes pontos? Eles representam as cores
que tem a mesma propor cao de cores primarias, diferindo apenas em lu-
min ancia. Na Figura 7.9.(b) a linha em verde ilustra 1 conjunto de cores
(r, g, b) homogeneas a uma cor sobre o plano (r, g, b).
Projetando ortogracamente as cores contidas na regi ao de ferradura
do plano de Maxwell sobre o plano rg obtemos um diagrama de croma-
ticidade. Este diagrama e mostrado na Figura 7.9.(c). Observe que h a
uma grande area em que alguma das coordenadas assume valores negativos.
Estes valores negativos indicam que a luz primaria precisa ser adicionada `a
luz de teste: um pouco de verde para as cores que cam no extremo roxo
da faixa espectral luminosa e vermelho para as cores espectrais entre azul
e verde.
7.3.2 CIE-XYZ
De forma an aloga ao padrao RGB, foram denidos tres valores de estmulo
X, Y e Z, os quais podem ser obtidos a partir da distribui cao espectral de
potencia I() e das fun coes de casamento x(), y() e z()
X =
_
0
x()I()d
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 138
(a)
b
1.0
1.0
1.0
r
+
g
+
b
=
1
c
r
c
g
c
b
B R
G
(b) (c)
Figura 7.9: Padr ao CIE-RGB: (a) fun coes de casamento; (b) espa co RGB;
e (c) diagrama de cromaticidade.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 139
(a) (b) (c)
Figura 7.10: CIE-XYZ: (a) espa co de cores; (b) diagrama de cromaticidade
e (b) fun coes de casamento.
Y =
_
0
y()I()d
Z =
_
0
z()I()d
(7.6)
e as coordenadas de cromaticidade x, y e z s ao obtidas atraves da norma-
liza cao destes valores (Figura 7.10.(a))
x =
X
X +Y +Z
y =
Y
X +Y +Z
z =
Z
X +Y +Z
. (7.7)
(7.8)
O objetivo da proposta deste modelo e tornar os calculos fotometricos
e colorimetricos mais simples. Entre os requisitos para simplica cao dos
calculos, temos
1. os valores numericos deve ser n ao-negativos;
2. as grandezas fotometricas devem ser obtidas diretamente a partir das
coordenadas;
3. o ponto acromatico (quando os fotoreceptores s ao igualmente es-
timulados) deve ser tal que todas as tres cores primarias tenham a
mesma participa cao;
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 140
4. a combina cao convexa das propor coes das tres cores primarias deve
resultar em um maior n umero possvel de cores sicamente realiz aveis;
5. uma das coordenadas deve ter valores nulos para cores com compri-
mento de onda maior que 650nm.
Vamos tentar traduzir os requisitos listados em grandezas geometricas.
Para satisfazer a condi cao (1) o tri angulo em vermelho na Figura 7.9.(c)
deve ser transformado para o primeiro quadrante do novo referencial. Para
satisfazer a condi cao (2) deniu-se a fun cao de eciencia luminosa fotopica,
mostrada na Figura 7.7, como a fun cao de casamento y(), ja que esta fun cao
descreve diretamente a rela cao entre luminancia, uma grandeza fotometrica,
e o comprimento de onda. Isso implica tambem que a luminancia da mistura
das cores primarias X e Z deve ser sempre nula. Para a terceira condi cao,
podemos alterar as propor c ao das luzes primarias, de tal forma que o ponto
acrom atico tenha as coordenadas de cromaticidade E = (
1
3
,
1
3
,
1
3
). Uma
forma de satisfazer a condi c ao (4) e fazer com que o envoltorio triangular seja
mais justo possvel. Finalmente, para a ultima condi cao, o lado do tri angulo
deve tangenciar a borda da ferradura na regi ao de cores vermelhas. Por
deni cao, este ponto representa a cor primaria Z = C
b
. Associamos o ponto
C
g
e C
r
`as cores primarias Y e X, respectivamente. Observamos que estes
pontos est ao fora da regi ao de ferradura. Portanto, elas n ao s ao sicamente
realiz aveis. Como se pode obter as fun coes de casamento x(), y() e z()?
A solu cao seria via manipula coes algebricas, reduzindo o problema em
mudan ca de base do espa co CIE-RGB para o espa co CIE-XYZ. Denidas
as tres cores primarias normalizadas do novo espa co c
r
= (r
x
, g
x
, b
x
=
1 r
x
g
x
) = (1.2750, 0.2779, 0.0029), c
g
= (r
y
, g
y
, b
y
= 1 r
y
g
y
) =
(1.7395, 2.7675, 0.0280) e c
b
= (r
z
, g
z
, b
z
= 1r
z
g
z
) = (0.7431, 0.1409, 1.6022),
podemos representar as tres cores primarias R, G e B, destacadas na Fi-
gura 7.9.(c), pelas coordenadas baricentricas (x, y) com respeito a estas tres
novas cores primarias (Se cao 3.1.2). Aplicando a Eq. 7.7, obtemos a terceira
coordenada z pela express ao z = 1 x y. Resumindo, temos as seguintes
correspondencias
(r,g,b) (x,y,z)
R (1,0,0) (0.73467, 0.26533, 0.0)
G (0,1,0) (0.27376, 0.71741, 0.00883)
B (0,0,1) (0.16658, 0.00886, 0.82456)
Isso signica que para cada unidade de R, s ao necessarios os estmulos
X
r
= x
r
C
r
= 0.73467C
r
, Y
r
= y
r
C
r
= 0.26533C
r
e Z
r
= z
r
C
r
= 0.0C
r
,
onde C
r
= X
r
+ Y
r
+ Z
r
, no espa co XYZ. Similarmente, s ao necessarios
X
g
= 0.27376C
g
, Y
g
= 0.71741C
g
e Z
g
= 0.00883C
g
para uma unidade de G
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 141
e X
b
= 0.16658C
b
, Y
b
= 0.00886C
b
e Z
b
= 0.82456C
b
para uma unidade de
B. Com isso, o problema de redenir um novo espa co CIE-XYZ se reduz a
achar uma transforma cao linear T do espa co CIE-RGB para CIE-XYZ tal
que
_
_
x
r
C
r
x
g
C
g
x
b
C
b
y
r
C
r
y
g
C
g
y
b
C
b
z
r
C
r
z
g
C
g
z
b
C
b
_
_
= T
_
_
1 0 0
0 1 0
0 0 1
_
_
.
A transforma cao e, portanto,
T =
_
_
0.73467C
r
0.27376C
g
0.16658C
b
0.26533C
r
0.71741C
g
0.00886C
b
0.0C
r
0.00883C
g
0.82456C
b
_
_
=
_
_
0.73467 0.27376 0.16658
0.26533 0.71741 0.00886
0.0 0.00883 0.82456
_
_
_
_
C
r
0 0
0 C
g
0
0 0 C
b
_
_
. (7.9)
Agora falta determinar os valores de C
r
, C
g
e C
b
. Para isso, podemos utilizar
a condi cao (3) de que o ponto acrom atico tanto no espa co CIE-XYZ quanto
no espa co CIE-RGB e (
1
3
,
1
3
,
1
3
), ou seja,
_
_
1
3
1
3
1
3
_
_
=
_
_
0.73467 0.27376 0.16658
0.26533 0.71741 0.00886
0.0 0.00883 0.82456
_
_
_
_
C
r
0 0
0 C
g
0
0 0 C
b
_
_
_
_
1
3
1
3
1
3
_
_
=
_
_
0.73467 0.27376 0.16658
0.26533 0.71741 0.00886
0.0 0.00883 0.82456
_
_
_
_
Cr
3
Cg
3
C
b
3
_
_
.
Multiplicando pela inversa da matriz, obtemos
_
_
C
r
C
g
C
b
_
_
=
_
_
0.73467 0.27376 0.16658
0.26533 0.71741 0.00886
0.0 0.00883 0.82456
_
_
1
_
_
1
1
1
_
_
=
_
_
0.66695
1.13241
1.20064
_
_
Substituindo estes valores na Eq. 7.9, chegamos em seguinte express ao de
transforma cao
_
_
X
Y
Z
_
_
=
_
_
0.48999 0.31001 0.20000
0.17696 0.81240 0.01064
0.00000 0.01000 0.99000
_
_
_
_
R
G
B
_
_
Aplicando esta transforma cao sobre todas as cores espectrais e normalizando-
as, obtemos um diagrama de cromaticidade do padrao CIE-XYZ mostrado
na Figura 7.10.(b).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 142
A matriz inversa, que leva um ponto do espa co CIE-XYZ para o espa co
CIE-RGB e dada por
_
_
R
G
B
_
_
=
_
_
0.48999 0.31001 0.20000
0.17696 0.81240 0.01064
0.00000 0.01000 0.99000
_
_
1
_
_
X
Y
Z
_
_
=
_
_
2.36466 0.89659 0.46807
0.51515 1.42641 0.08874
0.00520 0.01441 1.00920
_
_
_
_
X
Y
Z
_
_
Assim, pode-se obter, de forma indireta, as fun coes de casamento x() e
y(), que s ao esbo cadas na Figura 7.10.(c).
Observamos que a matriz de transforma cao padronizada pela CIEe ligei-
ramente diferente do que derivamos. A matriz, com a quantidade correta
de dgitos signicativos, e
_
_
X
Y
Z
_
_
=
1
b
21
_
_
b
11
b
12
b
13
b
21
b
22
b
23
b
31
b
32
b
33
_
_
_
_
R
G
B
_
_
=
1
0.17697
_
_
0.489989 0.31 0.20
0.17697 0.81240 0.01063
0.0 0.01 0.99
_
_
_
_
R
G
B
_
_
(7.10)
7.4 Diagrama de Cromaticidade
Vimos na se cao 7.3.1 como se deriva um diagrama de cromaticidade. Nesta
se cao vamos explorar um pouco mais os dados que est ao contidos nele.
O diagrama de cromaticidade CIE-XYZ apresenta todas as possveis
cores visveis normalizadas em um especco nvel de luminancia. Ele re-
presenta, de fato, o gamute da visao humana. A parte curva da borda
do gamute e o lugar geometrico de todas as cores espectrais ou cores mono-
crom aticas. As cores que um corpo negro pode emitir a uma temperatura
de em torno 1000
o
K ate innito denem uma curva que e conhecida como
curva de corpo negro (Figura 7.11.(a)). Os brancos, ou iluminan-
tes, que percebemos se encontram em torno desta curva. Alguns destes
s ao sicamente reproduzveis pela tecnologia existente ou pela natureza.
Na Figura 7.11.(b) s ao mostrados o ponto acrom atico E = (
1
3
,
1
3
), para
o qual a distribui cao espectral de potencia e constante, e os iluminantes
A=(0.448, 0.408), B=(0.349, 0.352), C=(0.310, 0.316), D
5500
=(0.332, 0.348),
D
6500
=(0.313, 0.329) e D
7500
=(0.299, 0.315). O iluminante A se aproxima
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 143
(a) (b)
Figura 7.11: Diagrama de cromaticidade: (a) curva de corpo negro (Fonte:
http://upload.wikimedia.org/wikipedia/commons/b/ba/PlanckianLocus.png)
e (b) alguns iluminantes (Fonte: http://www.imagingscience.com/cie1931 illum.htm).
da cor de uma lampada de tungstenio a 2856
o
K. Ele e um branco aver-
melhado. O iluminante B se aproxima da ilumina cao solar ao meio-dia,
enquanto o iluminante C, adotado como branco pelo Comite Nacional
do(s) Sistema(s) de Televisao (NTSC National Television Standards Com-
mittee), e a ilumina cao de um ceu coberto ao meio-dia. Os iluminantes D
correspondem `as radia coes emitidas pelo corpo negro em torno de 5500
o
K,
5500
o
K e 7500
o
K, respectivamente. O iluminante D
6500
e adotado como
branco pela Sociedade de Engenheiros de Filmes e Televis ao dos EUA
(SMPTE Society of Motion Picture and Television Engineers), pela Uniao
de Transmiss ao Europeia (EBU European Broadcasting Union) e pelo sis-
tema de transmiss ao televisiva Linha de Fase Alternante (PAL Phase Al-
ternating Line).
O diagrama de cromaticidade pode ser aplicado na determina cao da
pureza de uma cor, na identica cao de cores complementares, na previs ao
da mistura de cores ou do gamute de cor de um sistema e na compara cao
de gamutes de cor.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 144
7.4.1 Gamute de Cor
Seja uma cor C especicada pela sua cromaticidade e pela luminancia, isto
e, C = (x, y, Y ). Pelas Leis de Grassmann, a mistura de duas cores C
1
=
(x
1
, y
1
, Y
1
) e C
2
= (x
2
, y
2
, Y
2
) pode ser obtida algebricamente como a soma
das suas componentes
C
12
= C
1
+C
2
= (X
1
+X
2
) + (Y
1
+Y
2
) + (Z
1
+Z
2
).
Como se determina estas componentes? Tendo x
i
e y
i
, i = 1, 2, podemos
obter z
i
pela express ao z = 1 x y. Em seguida, determinamos C
i
=
X
i
+ Y
i
+ Z
i
utilizando o fato de C
i
=
Y
i
y
i
. Substituindo x
i
, z
i
e C
i
em
Eq. 7.7, determinamos X
i
e Z
i
. Agora s o resta determinar as coordenadas
de cromaticidade da mistura
x
12
=
(X
1
+X
2
)
C
12
y
12
=
(Y
1
+Y
2
)
C
12
Y
12
= (Y
1
+Y
2
).
para representa-la em nota cao convencional C
12
= (x
12
, y
12
, Y
12
).
Quando se tem mais de duas cores, podemos aplicar sucessivamente o
procedimento. Por exemplo, a mistura de duas cores C
1
= (0.1, 0.3, 10) e
C
2
= (0.35, 0.2, 10) e C
12
= (0.25, 0.24, 20). Observe na Figura 7.12.(a) que
o ponto da mistura C
12
ca sobre o segmento que une as duas cores. Isso
e esperado, porque algebricamente estamos fazendo uma combina cao linear
das duas cores (segmento cheio, em vermelho, na Figura 7.12.(a))
C
12
= C
1
+(1)C
2
= (X
1
+(1)X
2
)+(Y
1
+(1)Y
2
)+(Z
1
+(1)Z
2
).
(7.11)
e projetando as suas coordenadas sobre o plano de Maxwell (segmento pon-
tilhado, em vermelho, na Figura 7.12.(a))
x
12
=
(X
1
+ (1 )X
2
)
C
12
y
12
=
(Y
1
+ (1 )Y
2
)
C
12
.
Se alterarmos apropriadamente os valores de Y (luminancia) das duas cores,
podemos obter todas as cores sobre o segmento. Por exemplo, a mistura
de C
1
= (0.1, 0.3, 10) e C
2
= (0.35, 0.2, 0) resulta em C
1
= (0.1, 0.3, 10).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 145
Se adicionarmos mais uma cor, C
3
= (0.2, 0.05, 10), teremos uma mistura
C
123
= (0.215, 0.106, 30). Como esperado, C
123
est a sobre o segmento que
une C
12
e C
3
. O lugar geometrico de todas as possveis misturas entre estas
tres cores e o fecho convexo denido pelos pontos (X
1
, Y
1
, Z
1
), (X
2
, Y
2
, Z
2
)
e (X
3
, Y
3
, Z
3
) no espa co CIE-XYZ (Se cao 3.1.2). A proje cao deste fecho
no plano Maxwell e representado pelo tri angulo em linha pontilhada na
Figura 7.12.(b).
Onde podemos aplicar isso? Na determina cao do gamute de um disposi-
tivo gr aco. Por exemplo, vimos na se cao 2.1.1 que para televisoes/monitores
coloridos de tecnologia CRT h a tres tipos de fosforo, R, G e B, em cada pixel ,
de modo que cada fosforo, ao ser excitado, emite uma das cores primarias.
Para identicarmos o gamute de cor que um especco monitor consegue
reproduzir, e s o identicarmos no diagrama de cromaticidade os pontos cor-
respondentes `as coordenadas de cromaticidade dos tres f osforos. O tri angulo
denido por estes pontos cobre os possveis cromas que eles conseguiriam
reproduzir. A seguinte tabela exemplica as especica coes dos gamutes de
alguns sistemas:
Sistema R G B Branco
x y x y x y
NTSC 0.67 0.33 0.21 0.71 0.14 0.08 Iluminante C
EBU 0.64 0.33 0.30 0.60 0.15 0.06 D
6500
PAL 0.64 0.33 0.29 0.60 0.15 0.06 D
6500
Dell 0.625 0.340 0.275 0.605 0.150 0.065 9300K
SMPTE 0.630 0.340 0.310 0.595 0.155 0.070 D
6500
A partir destes dados tecnicos, conseguimos identicar os gamutes dos
quatro sistemas, conforme mostra a Figura 7.12.(c). Observamos ainda que,
com os gamutes esbo cados no diagrama de cromaticidade, podemos vericar
a delidade da reprodu cao de uma cor exibida em um monitor pelo outro.
Quanto maior for a area de sobreposi cao entre os gamutes, maior ser a a
probabilidade dos dois sistemas serem colorimetricamente equivalentes.
7.4.2 Pureza de Cor
Uma cor espectral e uma cor 100% pura, porque n ao contem componentes
de outros comprimentos de onda, enquanto o branco de um sistema e
considerado uma cor totalmente diluda, de 0% pureza. Podemos determinar
a pureza de uma cor com auxlio do diagrama de cromaticidade.
Dada uma cor C
1
= (x
1
, y
1
, Y
1
) qualquer, determinamos o seu compri-
mento de onda dominante tra cando uma semi-reta que sai do branco
O = (x
w
, y
w
, Y
w
) do sistema em dire cao de C
1
. O ponto de intersec cao C
2
=
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 146
X
+
Y
+
Z
=
1
(a)
Branco
O
C
1
C
2
C
12
C
3
C
123
N
T
S
C
E
B
U
D
e
ll
S
M
P
T
E
P
A
L
(b) (c)
Figura 7.12: Combina cao de cores: (a) proje cao; (b) mistura aditiva e (c)
gamutes de cor.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 147
Branco
C
1
C
2
O
Figura 7.13: Pureza de cores.
(x
2
, Y
2
, Y
2
) desta semi-reta com a curva espectral e o lugar geometrico da
cor espectral cujo comprimento de onda e o comprimento de onda domi-
nante de C
1
. Observe que as cores contidas na regi ao delimitada pela linha
azul da Figura 7.13 n ao tem um comprimento de onda dominante, porque a
semi-reta intercepta a linha p urpura. Neste caso, consideramos a intersec cao
da semi-reta com a linha p urpura.
Para obter a pureza da cor C
1
, basta determinarmos a raz ao
OC
1
OC
2
, con-
siderando todas as tres cores O, C
1
e C
2
no mesmo nvel de luminancia.
7.4.3 Cores Complementares
Por deni cao, duas cores C
1
e C
2
s ao complementares, se quando elas s ao
misturadas em propor coes apropriadas resulta em branco C
w
do sistema
(Se cao 7.4.1).
C
w
= C
1
+C
2
= (X
1
+Y
1
+Z
1
) +(X
2
+Y
2
+Z
2
)
A cor complementar de uma cor espectral C
1
pode ser obtida geometrica-
mente, estendendo a reta que passa pelo branco do sistema e por C
1
ate
interceptar outro lado da borda do diagrama de cromaticidade. Na Fi-
gura 7.14.(a) os seguintes pares de cores s ao complementares: vermelho
(R) e ciano (C); azul (B) e amarelo (Y); verde (G) e magenta
(M).
O que signica sicamente as cores complementares? Vimos que as cores
R, G e B, quando combinadas em propor coes adequadas, formam a cor
branco (Figura 7.14.(b)). Uma cor que complementa a cor vermelho
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 148
Branco
R
G
B
Y
C
M
(a) (b)
(c)
Figura 7.14: Cores complementares: (a) solu cao gr aca;
(b) sistema aditivo e (c) sistema subtrativo (Fonte:
http://help.adobe.com/en US/Photoshop/11.0/WSECCD001A-4989-4451-
A752-63D5EF9D5619a.html).
para que o resultado que branco seria uma cor que sensibilize os cones S
e M (mistura G+B que e a cor ciano). Analogamente, magenta e uma
mistura B+R que sensibiliza os cones S e L e a cor amarelo e uma mistura
G+R. Em outras palavras, podemos dizer que ciano subtrai do branco
a cor vermelho, enquanto magenta e amarelo subtraem verde e
azul, respectivamente. Se sobrepormos um ltro magenta sobre um
ltro ciano, perceberemos azul. Colocando um ltro amarelo sobre os
dois, todas as radia coes ser ao subtradas. Consequentemente, perceberemos
a cor preto. Esta ideia e ilustrada na Figura 7.14.(c). O sistema de
forma cao de cores por remo cao de radia coes de especcos comprimentos de
onda e conhecido como sistema subtrativo de cor.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 149
"branco
preto
Figura 7.15: Gamute e espa co s olido de cor de um dispositivo.
7.5 Modelos de Cor em Sistemas de Informacao
Graca
Um gamute de cor apresentado no diagrama de cromaticidade n ao car-
rega a informa cao de luminancia. Atraves dele n ao podemos identicar
todas as possveis cores geradas pelo dispositivo. Por conveniencia, os apli-
cativos gr acos tem adotado modelos de cor 3D que incluem o sub-espa co
de croma (gamute) e o sub-espa co de luminancia, variando da luminancia
nula (preto) ate luminancia m axima (branco), como o paralelogramo
apresentado na Figura 7.15. Ha modelos orientados `a tecnologia de disposi-
tivos de sada (Se cao 2.1.1) e outros mais pr oximos da nossa concep cao de
cor.
Exemplos comuns de modelos orientados `a tecnologia de dispositivos
s ao: RGB, CMY e YIQ. O modelo RGB e utilizado para especicar cores
de monitores. Isso se deve ao fato da forma cao aditiva das cores a partir
de tres tipos de fosforos. Aplica-se o modelo CMY para especicar processo
de forma cao subtrativa de cores, como ocorre em impressao, tingimento e
pinturas. Tintas, pigmentos ou lmes s ao materiais que reetem um subcon-
junto de comprimentos de onda da luz, produzindo uma especca percep cao
de cor diferente da cor da luz incidente. Na se cao 7.4.3 vimos que tres co-
res primarias ciano, magenta e amarelo s ao sucientes para subtrair
totalmente uma luz branca. O modelo YIQ e adotado para sistema de
televisao colorida NTSC.
Outros modelos, que podem ser obtidos do modelo RGB por trans-
forma coes lineares, como HSL, HSV e HSI, s ao mais apropriados para denir
uma cor por parte do usuario, envolvendo os conceitos de tonalidade/matiz,
satura cao e o brilho. Alguns principais algoritmos de convers ao de modelos
de cores pode ser encontrados em http://www.cs.rit.edu/
ncs/color/t
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 150
(1,1,1)
(0,0,0) (1,0,0)
(0,0,1)
(0,1,0)
(1,1,0)
(1,0,1)
(0,1,1)
R
G
B
(a) (b)
Figura 7.16: Cubo de cor: (a) RGB e (b) CMY.
convert.html. Em http://www.csit.fsu.edu/
burkardt/f src/colors/
colors.html encontra-se uma lista de algoritmos de convers ao implemen-
tados em C.
7.5.1 RGB
O modelo RGB especica o espa co de cor dos monitores CRT e outros
dispositivos gr acos raster. O gamute coberto por um monitor CRT de-
pende da cromaticidade dos fosforos que cam na camada interna da tela
(Se cao 2.1.1). Portanto, h a uma grande varia cao de gamutes entre os mo-
nitores, como ilustramos na Figura 7.12.(b). O modelo RGB uniformiza
esta diversidade de espa cos atraves da deni cao de um cubo unit ario em um
sistema de referencia cartesiano. Os vetores-base (1, 0, 0), (0, 1, 0) e (0, 0, 1)
representam, respectivamente, as cores primarias vermelha, verde e azul, em
intensidade m axima, cujo croma e, respectivamente, igual a (x
r
, y
r
), (x
g
, y
g
)
e (x
b
, y
b
). As coordenadas (0, 0, 0) e (1, 1, 1) representam, respectivamente,
as cores preto e branco do sistema. Diferentes tons de cinza est ao sobre
o segmento em vermelho desenhado na Figura 7.16.(a). Pela Eq. 7.7, temos
a seguinte correspondencia entre esses pontos
RGB CIE-XYZ
(0,0,0) (0, 0, 0)
(1,0,0) (X
r
, Y
r
, Z
r
) = (x
r
C
r
, y
r
C
r
, z
r
C
r
), onde C
r
= X
r
+Y
r
+Z
r
(0,1,0) (X
g
, Y
g
, Z
g
) = (x
g
C
g
, y
g
C
g
, z
g
C
g
), onde C
g
= X
g
+Y
g
+Z
g
(0,0,1) (X
b
, Y
b
, Z
b
) = (x
b
C
b
, y
b
C
b
, z
b
C
b
), onde C
b
= X
b
+Y
b
+Z
b
Embora uniformizados em mesmo cubo unit ario, os vetores-base que
descrevem cada cubo podem corresponder a diferentes vetores no espa co
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 151
CIE-XYZ. Portanto, um ponto representado pelas coordenadas (R, G, B)
em dois cubos distintos podem corresponder a duas cores distintas no espa co
CIE-XYZ. A pergunta que naturalmente surge e como um processador pode
mapear elmente os pontos entre dois cubos unit arios para que as ima-
gens exibidas em dois dispositivos distintos, D
1
e D
2
, sejam mais pare-
cidas possveis. Para isso, pode-se utilizar o padrao CIE-XYZ como re-
ferencia, transformando a cor do gamute de D
1
denido pelas cores primarias
(x
r,1
, y
r,1
), (x
g,1
, y
g,1
) e (x
b,1
, y
b,1
) para XY Z atraves da transforma cao M
1
_
_
X
Y
Z
_
_
= M
1
_
_
R
1
G
1
B
1
_
_
=
_
_
X
r,1
X
g,1
X
b,1
Y
r,1
Y
g,1
Y
b,1
Z
r,1
Z
g,1
Z
b,1
_
_
_
_
R
1
G
1
B
1
_
_
=
_
_
x
r,1
C
r,1
x
g,1
C
g,1
x
b,1
C
b,1
y
r,1
C
r,1
y
g,1
C
g,1
y
b,1
C
b,1
z
r,1
C
r,1
z
g,1
C
g,1
z
b,1
C
b,1
_
_
_
_
R
1
G
1
B
1
_
_
(7.12)
e depois da referencia XY Z para o gamute do dispositivo D
2
denido pelas
cores primarias (x
r,2
, y
r,2
), (x
g,2
, y
g,2
) e (x
b,2
, y
b,2
) atraves de M
2
_
_
R
2
G
2
B
2
_
_
= M
1
2
_
_
X
Y
Z
_
_
=
_
_
x
r,2
C
r,2
x
g,2
C
g,2
x
b,2
C
b,2
y
r,2
C
r,2
y
g,2
C
g,2
y
b,2
C
b,2
z
r,2
C
r,2
z
g,2
C
g,2
z
b,2
C
b,2
_
_
1
_
_
X
Y
Z
_
_
.
As duas matrizes de transforma cao requerem o valor do uxo luminoso
m aximo C
i,j
que cada fosforo i consegue emitir em cada dispositivo j. Como
podemos obter estes valores? Ha duas formas para determina-los.
Uma forma e medir com um fotometro o nvel de luminancia m axima
Y
i,j
, Y
i,j
e Y
i,j
de cada cor primaria i do dispositivo j e substitu-los em
C
i,j
=
Y
i,j
y
i,j
.
A segunda forma e determinar as coordenadas (X
w,j
, Y
w,j
, Z
w,j
) da cor
branco (1, 1, 1) do dispositivo j e utilizar estas coordenadas para obter
C
i,j
, C
i,j
e C
i,j
atraves da express ao
_
_
C
r,j
C
g,j
C
b,j
_
_
=
_
_
x
r,j
x
g,j
x
b,j
y
r,j
y
g,j
y
b,j
z
r,j
z
g,j
z
b,j
_
_
1
_
_
X
w
Y
w
Z
w
_
_
(7.13)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 152
Vamos considerar um monitor com branco (0.310063, 0.316158, 10.0) e
tres cores primarias cujas coordenadas de cromaticidade s ao:
R G B
x 0.67 0.21 0.14
y 0.33 0.71 0.08
Para obter as coordenadas RGB de uma cor (x
C
, y
C
, Y
C
) = (0.25, 0.2, 1.0)
no espa co de cores do monitor, ou seja, determinar a percentagem da
energia m axima de cada cor primaria, C
R
, C
G
e C
B
, devemos calcular em
primeiro lugar C
R
, C
G
e C
B
. Isso pode ser feito com uso da Eq. 7.13
_
_
C
R
C
G
C
B
_
_
=
_
_
0.67 0.21 0.14
0.33 0.71 0.08
0 0.08 0.78
_
_
1
_
_
9.8072
10.0
11.8225
_
_
=
_
_
9.061
8.265
14.304
_
_
.
Em seguida, devemos escrever a cor (x
C
, y
C
, Y
C
) na sua forma n ao normali-
zada, isto e, (X
C
, Y
C
, Z
C
) = (
xc
yc
Y
C
= 1.25, 1.0,
1xcyc
yc
Y
C
) = 2.75 e calcular
a percentagem de contribui cao de cada cor primaria para obte-la
_
_
X
C
Y
C
Z
C
_
_
=
_
_
1.25
1.0
2.75
_
_
=
_
_
0.67 0.21 0.14
0.33 0.71 0.08
0 0.08 0.78
_
_
_
_
9.061 0 0
0 8.265 0
0 0 14.304
_
_
_
_
R
G
B
_
_
.
Substituindo os valores, obtemos a representa cao da cor (X
C
, Y
C
, Z
C
) no
espa co de cores do monitor: (0.106, 0.069, 0.243).
7.5.2 CMY
_
_
R
G
B
_
_
.
Vimos na se cao 7.4.3 que, teoricamente, a partir das tres cores primarias
ciano (C), amarelo (Y) e magenta (M) e possvel subtrair todos os com-
primentos de onda. No entanto, a cor resultante da subtra c ao de uma cor
branco pelas tres cores primarias tende a aparentar mais marrom es-
curo do que preto, sem falar da quantidade de tinta necessaria para
chegar nesta cor. Com uma solu cao alternativa de baixo custo, e comum
incluir uma quarta cor ao modelo: cor preto. Da, o popular modelo de
cor CMYK (cyan, magenta, yellow, and key (black)).
7.5.3 NTSC YIQ
= (r, g, b)
r
R
R +G+B
=
R
3I
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 157
g
G
R +G+B
=
G
3I
b
B
R +G+B
=
B
3I
e a proje cao do ponto branco e O = (
1
3
,
1
3
,
1
3
).
O produto interno entre os vetores normalizados =OR e =OP
nos
fornece o cosseno do angulo H entre os dois vetores
cos(H) =
OR
OP
OR||
OP
|
=
2R GB
_
2
3
_
6(R
2
+G
2
+B
2
RGGB BR)
=
3R (R +G+B)
2
R
2
+G
2
+B
2
RGGB BR
=
(R G) + (R B)
2
_
(R G)
2
+ (R B)(GB)
Observe que se B > G, precisamos subtrair H de 360
o
para adequar `a
conven cao do matiz variar no intervalo [0, 360].
Finalmente, para determinar a satura cao S, usamos o fato de que no
ponto branco temos S=0, e nos pontos da borda do tri angulo R+G+B = 1
temos S=1. Assim, nos outros pontos o valor de satura cao e dado por
S =
OP
Op
= 1
P
p
Op
.
Pela semelhan ca de tri angulos, OAp P
= V
1
em seu lugar
I = V
= V
1
= V
Este ajuste e conhecido como corre cao gamma. Diferentemente dos mo-
nitores de tecnologia CRT, observamos que os monitores de tecnologia LCD
ou plasma apresentam uma fun cao de transferencia linear. Isso tem gerado
distor coes de cores na exibi cao de sinais pre-compensados nestes dispositi-
vos.
Para facilitar a especica cao de uma cor por usuarios de diferentes pers,
e comum encontrar na interface de aplicativos gr acos modelos alternativos
ao modelo RGB. O modelo HSV e o mais popular. Procedimento de con-
vers ao do espa co HSV para o espa co RGB e automaticamente executado
para que internamente a representa cao seja uma das quatro alternativas
apresentadas nesta se cao, em valores inteiros sem sinal.
Captulo 8
Modelos de Ilumina cao
O objetivo deste captulo e apresentar paradigmas atraves dos quais os
computadores conseguem ver as radia coes luminosas reetidas pelas su-
perfcies, sentir cores pr oximas da nossa percep cao e reproduz-las em uma
imagem. Apos a leitura deste captulo, voce deve ser capaz de
diferenciar um modelo de ilumina cao local de um modelo de ilumina cao
global.
caracterizar uma fonte de luz no contexto de modelos simplicados
utilizados em sntese de imagens (como os computadores veem fontes
luminosas?)
caracterizar o material e a rugosidade de uma superfcie no contexto
de modelos simplicados utilizados em sntese de imagens (como os
computadores veem as propriedades de uma superfcie?).
caracterizar os modelos de ilumina cao considerados em sntese de ima-
gens (como os computadores veem as intera coes das radia coes lumi-
nosas em um ambiente?)
aplicar o modelo de ilumina cao local para obter a cor de uma amostra
da superfcie.
diferenciar tra cado de raio da radiosidade.
aplicar a tecnica de tra cado de raio para obter uma cor para uma
amostra da superfcie.
caracterizar as diferentes tecnicas de tonaliza cao.
161
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 162
Figura 8.1: Intera coes de radia coes luminosas.
aplicar as tecnicas de tonaliza cao para computador preencher a area
de uma faceta poligonal.
Como vimos na se cao 7.2, a nossa percep cao de cores se d a como re-
sultado das intera coes entre as radia coes/energia luminosas oriundas da su-
perfcie dos objetos de interesse com as celulas fotosenssveis na retina. Estas
radia coes partem de uma ou mais fontes de energia luminosas, algumas s ao
absorvidas e outras s ao reetidas pelas superfcies presentes em uma cena
conforme o material e a geometria destas (Figura 8.1).
Se pintarmos um quadro com as cores percebidas, como ilustra Fi-
gura 8.2.(a), teremos uma imagem bem pr oxima da nossa realidade tridi-
mensional. Neste captulo estamos interessados em estudar como um com-
putador veria as radia coes e as converteria em cores, alem de aplic a-las
em cada pixel de uma tela de exibi cao de forma que o resultado nal seja si-
milar ao de uma tela produzida por um artista, como mostra Figura 8.2.(b).
Teoricamente, para colorir um pixel , e suciente determinar as ra-
dia coes luminosas que s ao reetidas pela area da superfcie projetada nele.
No entanto, as intera coes entre os raios luminosos, a superfcie dos objetos
de interesse e a visao de um observador e um processo complexo. O pro-
cedimento que nos permite prever a cor de um ponto sob o efeito de uma
ou mais fontes de luz ou saber o que causou a forma cao de uma cor es-
pecca e denominado modelo de ilumina cao. Embora n ao exista ainda
uma formula cao teorica completa, os modelos existentes foram sucientes
para inspirar algoritmos computacionalmente factveis e capazes de fazer o
computador ver cores reais no espa co de universo WC e produzir em
telas de exibi cao (espa co DC) imagens que proporcionam a ilus ao de uma
cena real (Se cao 5.3).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 163
(a) (b)
Figura 8.2: Imagens pr oximas da realidade tridimensional: (a) pintura
(Fonte: http://www.jesuspaintings.com/baltimore oriole.htm), (b) gerada por
computador (Fonte: http://tralvex.com/pub/rover/gg2.htm).
Para efeito de sntese de imagens, h a dois paradigmas de visao de cores
no computador. Em um paradigma, denominado modelo de ilumina cao
local, somente as intera coes entre as radia coes oriundas diretamente das
fontes de luz com as superfcies s ao percebidas pelo computador, como
ilustra Figura 8.3.(a). Embora este modelo n ao condiga com o comporta-
mento fsico de radia coes luminosas, ele e simples e gera, em muitos ca-
sos, imagens perceptivelmente convincentes. Veremos na se cao 8.3 algumas
solu coes que contornam problemas apresentados por este modelo. O se-
gundo paradigma se aproxima do modelo fsico da nossa percep cao. Neste
paradigma o computador veria idealmente todas as possveis radia coes
que uem em um ambiente. Por esta considera cao de uma ambiente como
todo, a classe de algoritmos que seguem este paradigma e conhecida como
modelo de ilumina cao global (Figura 8.3.(b)). Dependendo do modelo
utilizado para representar a luz, distingue-se ainda duas grandes sub-classes
de modelo de ilumina cao global: tra cado de raio e radiosidade. Na se cao 8.5
vamos detalhar a tecnica de tra cado de raio.
Aplicar um modelo de ilumina cao em todas as regi oes de uma superfcie
que s ao projetadas em um pixel para estimar a cor que deveria ser atribudo
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 164
Centro de
projeo
P
Centro de
projeo
(a) (b)
Figura 8.3: Cor em imagens: (a) percep cao local da m aquina; (b) per-
cep cao global da m aquina.
ao pixel de forma a resultar uma imagem pr oxima da nossa percep cao e
um processo muito custoso computacionalmente. Como uma solu cao de
compromisso entre eciencia e qualidade das imagens, Gouraud propos em
1971 tonalizar cada faceta projetada no espa co da imagem a partir das
cores computadas nos respectivos vertices. Mais tarde, Phong apresentou
uma outra forma de interpolar os par ametros para atenuar alguns artefatos.
Na se cao 8.4 mostraremos como os dois algoritmos de tonaliza cao operam.
No entanto, n ao basta ter apenas um procedimento de ver e colo-
rir. Para gerar uma imagem dentro da expectativa do usuario, o com-
putador precisa interagir com este para saber a concep c ao que este tem
em mente: os tipos de radia coes, as propriedades das superfcies, e a dis-
posi cao destes em rela cao ao observador. No captulo 3 vimos como descre-
ver as formas geometricas das superfcies na linguagem do computador; no
captulo 4 mostramos como especicar, em linguagem matematica, os movi-
mentos b asicos destas formas no espa co para que elas quem posicionadas
conforme a nossa expectativa. Nas se coes 8.1 e 8.2 deste captulo mostra-
remos como denir, em linguagem matem atica, os dois elementos restantes:
fontes de radia coes luminosas e o material das superfcies.
8.1 Modelo de Radia coes Luminosas
A luz e um conjunto de radia coes capazes de estimular o sistema de visao
humano. O estudo da luz pode ser dividido em tres partes:
1.
Optica geometrica: estuda as consequencias do princpio de propaga cao
retilnea dos raios luminosos,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 165
2.
Optica energetica: estuda o comportamento radiante dos raios lumi-
nosos e suas intera coes com a materia.
3.
Optica fsica: estuda a dispers ao, a interferencia, a difra cao e a pola-
riza cao da luz.
Existem varios modelos para descrever o comportamento da luz. A mai-
oria dos algoritmos utilizados em sistemas de informa cao gr aca e ainda
baseada no modelo de ondas eletromagneticas. Uma onda eletromagnetica
e constituda de dois campos oscilantes perpendiculares entre si: eletrico e
magnetico. Ambos s ao perpendiculares `a dire cao de propaga cao da onda.
No vacuo, a velocidade de propaga cao e aproximadamente 3.0 10
8
m/s. A
energia da onda e proporcional ao quadrado da amplitude da onda. E o
comprimento de onda, , determina a cor que percebemos, como vimos no
captulo 7.
Chamamos de uxo (de energia) luminoso (em l umens) de um
objeto a raz ao entre a quantidade de energia radiante que um objeto emite
durante um certo intervalo de tempo. A intensidade luminosa (em can-
delas) de um objeto em uma determinada dire cao refere-se `a raz ao entre o
uxo luminoso que ele emite atraves de um angulo s olido w cujo eixo e a
dire cao considerada
I =
.
S o se pode falar em intensidade luminosa de uma fonte quando ela for
pontual, isto e, quando as suas dimensoes forem desprezveis em rela cao
`a dist ancia de que e observada.
A emitancia luminosa (ou radiancia luminosa) de uma fonte e a
raz ao entre o uxo luminoso que ela emite e a area da sua superfcie.
I =
A
p
.
Denominamos como fontes de luz objetos em uma cena capazes de emi-
tir ondas eletromagneticas da faixa espectral visvel. Estas ondas estimulam
as celulas fotoreceptoras e causam sensa cao de cor. Vimos na se cao 7.2 que
esta sensa cao de cor pode ser representada por um vetor de tres componentes
primarias: vermelho R, verde G, e azul B. Portanto, podemos caracterizar
as radia coes emitidas por um vetor de tres escalares.
Alem da intensidade luminosa emitida, deve-se descrever tambem a dis-
tribui cao desta intensidade para todas as dire coes, medidas em angulo, a
posi cao P e a dire cao d da fonte a m de que o computador possa ver
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 166
n
A
p
(a) (b)
Figura 8.4: Fluxo luminoso: (a) emitido por uma fonte (Fonte:
http://pt.wikipedia.org/wiki/Fluxo luminoso), (b) esquema.
(a) (b)
Figura 8.5: Curva de distribui cao de intensidade luminosa de: (a) uma
lampada incandescente; (b) uma luminaria spot.
a area de abrangencia de cada fonte e determinar corretamente a claridade
em cada ponto da superfcie. Figura 8.5 mostra a curva de distribui cao de
intensidade luminosa de duas fontes luminosas.
Tanto a posi cao P
0
quanto a dire cao d da fonte podem ser representadas
numericamente como vimos no captulo 3. Resta ver como descrever as
curvas de distribui cao de intensidade luminosa. Para simplicar, aproxima-
se usualmente as curvas para uma das curvas tpicas de tres classes de fontes
de luzem sistemas de informa cao gr aca: direcional, pontual, e spot.
8.1.1 Fonte Direcional
d
(a) (b) (c)
Figura 8.6: Fonte de luz: (a) direcional; (b) pontual; e (c) spot.
localizada no innito. Portanto, somente a intensidade luminosa da fonte
I =
_
_
I
r
I
g
I
b
_
_
e a dire cao d s ao sucientes para especic a-la:
d =
_
_
d
x
d
y
d
z
0
_
_
. (8.1)
Tipicamente, o uxo luminoso irradiado por esta fonte e constante ao longo
da trajetoria (Figura 8.6.(a)).
8.1.2 Fonte Pontual
Tambem chamada fonte puntiforme. Esta fonte e uma aproxima cao para
classes de fontes de luz que distribuem radialmente o uxo luminoso a partir
de um ponto P
0
(Figura 8.6.(b))
P
0
=
_
_
x
0
y
0
z
0
1
_
_
. (8.2)
Tipicamente, considera-se que o uxo atenue `a medida que se afasta da fonte
atraves de um fator de atenua cao, cujo valor varia entre 0.0 e 1.0, para que
objetos localizados mais longe de uma fonte de luz pontual recebam menos
uxo luminoso do que aqueles que estejam pr oximos. Em decorrencia disso,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 168
os primeiros vao aparentar mais escuros. Dada uma fonte pontual em P
0
com uma intensidade luminosa I(P
0
). A intensidade luminosa no ponto P
seria
I(P) = f
at
_
_
I
r
(P
0
)
I
g
(P
0
)
I
b
(P
0
)
_
_
.
Tres express oes mais usuais para representar matematicamente o fator
de atenua cao s ao
f
at
=
1
d
, e
f
at
=
1
d
2
, e
f
at
= min(
1
a
1
+a
2
d+a
3
d
2
, 1).
Embora a segunda express ao simplique o computo de f
at
, evitando o calculo
da raz quadrada, pois (
_
(x x
0
)
2
+ (y y
0
)
2
+ (z z
0
)
2
)
2
= (x x
0
)
2
+
(y y
0
)
2
+ (z z
0
)
2
, ela tende a gerar contrastes fortes na ilumina cao de
objetos relativamente pr oximos por causa da varia cao quadr atica. Isso pode
ser agravado com distor coes perspectivas. A terceira express ao e uma gene-
raliza cao das duas primeiras express oes.
8.1.3 Fonte Spot
Ela modela uma classe de fontes de luz que apresentam curvas de distribui cao
de intensidade luminosa limitadas a um angulo s olido.
E caracterizada como
um feixe conico ou pincel de raios luminosos de intensidade I = (I
r
, I
g
, I
b
)
que parte de uma posi cao P
0
em dire cao do vetor unit ario d, formando uma
abertura de angulo (Figura 8.6.(b)). O controle do decaimento da intensi-
dade luminosa e atraves do expoente da fonte spot c, pois a intensidade
luminosa que chega em um ponto P qualquer e dada por
I(P) = I(
d
P
0
P
|d
P
0
P|
)
c
.
Figura 8.7 mostra o efeitos nas curvas de distribui cao de intensidade para
distintos valores de c.
8.2 Modelo da Superfcie
As propriedades eletricas do meio por onde a luz passa afetam a sua tra-
jetoria de propaga cao. O campo magnetico da onda afeta os eletrons no
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 169
45
90
135
180
135
90
45
0
45
90
135
180
135
90
45
0
45
90
135
180
135
90
45
0
45
90
135
180
135
90
45
0
(a) (b) (c) (d)
Figura 8.7: Inuencia de c na distribui cao de intensidade luminosa: (a) c=0;
(b) c=1; (c) c=4; e (d) c=32.
material e produz diferentes efeitos opticos. De acordo com o movimento
dos eletrons, distinguem-se duas classes de materiais:
dieletricos: os eletrons s ao bastante est aveis; portanto, afeta muito pouco
a dire cao de propaga cao e desacelera a velocidade de propaga cao da
onda, e
condutores: h a muitos eletrons livres; portanto, novas ondas eletromagneticas
podem ser geradas e emitidas.
Os ndices de refra cao s ao utilizados para caracterizar as proprieda-
des opticas dos meios. O ndice de refra cao absoluto de um meio e a
raz ao entre a velocidade de propaga cao da luz no vacuo e a velocidade de
propaga cao da luz no meio considerado.
Ao mudar de meios de propaga cao de ndices de refra cao distintos, as
radia coes luminosas sofrem reex oes e refra c oes. A reexao corresponde
ao fenomeno de que parte das radia coes volta a se propagar no mesmo meio
no qual a luz incide e a refra cao refere-se ao fenomeno da outra parte da
luz atravessar a superfcie de separa cao dos dois meios e propagar-se no
outro meio. Os materiais condutores reetem praticamente todas as ra-
dia coes incidentes; por isso eles s ao tipicamente opacos. Por outro lado, os
materiais dieletricos sempre absorvem uma fra cao das radia coes incidentes,
podendo gerar uma sensa cao de transparencia/translucidez. Figura 8.8.(a)
apresenta um esquema de rela cao entre estas energias. Uma vers ao veto-
rial deste esquema e dada na Figura 8.8.(b). Em Fotometria, chamamos de
iluminancia (ou aclaramento) o total de uxo luminoso que incide sobre
uma superfcie (de separa c ao) por unidade de area.
A taxa de uxo luminoso reetido F
r
=
r
i
e a taxa de uxo refratado
F
t
=
t
i
s ao conhecidas, respectivamente, por reetancia de Fresnel e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 170
menos denso
mais denso
i
r
i
r
i
r
t
(a) (b)
Figura 8.8: Energia luminosa superfcie: (a) intera coes e (b) nota cao
vetorial.
refratancia de Fresnel. Pelo princpio de conserva cao de energia
i
=
r
+
t
= F
r
i
+F
t
t
,
ou seja F
r
+ F
t
= 1.0. Para dieletricos com luz n ao polarizada num meio
de ndice de refra cao pr oximo ao do vacuo, a reect ancia de Fresnel e dada
pela express ao
F
r
=
1
2
[
sin
2
(
i
t
)
sin
2
(
i
+
t
)
+
tan
2
(
i
t
)
tan
2
(
i
+
t
)
].
Diferentemente dos materiais condutores, os materiais dieletricos podem
exibir uma alta especularidade quando o angulo de incidencia que pr oximo
de 90
o
, como ilustra o gr aco da reect ancia de distintos tipos de luz na
Figura 8.9.
Figura 8.10 ilustra a diferen ca em imagens que levam em conta a re-
ect ancia de Fresnel e as imagens que n ao levam. Observe como ca mais
especular a borda do vidro na Figura 8.10.(b).
As dire coes dos uxos reetidos e refratados obedecem as leis de Snell-
Descartes, que foram originalmente descobertas por Ibn Sahl no seculo
VIII, redescobertas por Willebrord Snell em 1621 e, num trabalho indepen-
dente, formuladas em termos de senos por Rene Descartes em 1637:
Reexao : a dire cao do uxo incidente, a dire cao do uxo reetido e o
vetor normal da superfcie (de separa cao) S em P est ao no mesmo
plano e o angulo de incidencia
i
e o angulo de reexao
r
s ao iguais.
Refra cao : a dire cao do uxo incidente, a dire cao do uxo refratado, e
o vetor normal de S em P est ao no mesmo plano e os angulos de
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 171
(a) (b)
Figura 8.9: Reectancia
i
: (a) condutores e (b) dieletricos
(Fonte:http://www.graphics.cornell.edu/%7Ewestin/misc/fresnel.html).
(a) (b)
Figura 8.10: Imagens: (a) sem reect ancia
de Fresnel e (b) com reect ancia de Fresnel
(Fonte:http://www.graphics.cornell.edu/%7Ewestin/misc/fresnel.html).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 172
Phi
A
p
n
(a) (b)
Figura 8.11: Luminancia: (a) percebida por um observador (Fonte:
http://pt.wikipedia.org/wiki/Ficheiro:Luminancia.jpg); (b) representa cao ve-
torial.
incidencia e de refra c ao satisfazem a seguinte rela cao
n
i
sen
i
= n
t
sen
t
, (8.3)
onde
t
e o angulo de refra cao e n
i
e n
t
, os ndices de refra cao dos
dois meios. Observe na Figura 8.8.(b) que o meio onde o uxo incide
e menos denso do que o segundo meio, pois o angulo em rela cao `a
normal cou mais agudo .
A luminancia L de uma superfcie na dire cao em rela cao `a sua normal
n e o uxo luminoso naquela dire cao, subtendido no angulo s olido do
campo de visao do observador, por unidade de area A
p
(Figura 8.11)
L =
A
p
cos
.
Esta grandeza fotometrica indica quao brilhante uma superfcie aparenta.
Se a superfcie de separa cao de dois meios for perfeitamente especular
ou polida, as radia coes luminosas reetidas e refratadas seguirao coerente-
mente a rela cao de Snell-Descartes. Quando a superfcie de separa cao for
muito rugosa, como a apresentada na Figura 8.12.(a), a luminancia perce-
bida pelo observador seria algo difuso, pois as radia coes reetidas podem
car n ao s o incoerentemente orientadas, como tambem oclusas por protu-
ber ancias locais (Figura 8.12.(b)). Torrence e Sparrow propuseram em 1967
modelar uma superfcie rugosa por um conjunto de microfacetas e deriva-
ram a partir dele uma fun cao de atenua cao geometrica para corrigir
o uxo ideal de reexao. A fun cao de atenua cao geometrica descreve a pro-
por cao de microfacetas efetivamente vistas por ambos, o observador e a fonte
de luz. Figura 8.12.(a) mostra os par ametros da fun cao.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 173
mdia da inclinao, m
superfcie
mdia
desvio padro, rms
correlao de
distncia
(a) (b)
Figura 8.12: Visao microscopica de uma superfcie: (a) par ametros; e (b)
orienta cao difusa das radia coes reetidas.
Existe uma classe especial de superfcies, denominadas superfcies lam-
bertianas.Elas podem ser emissoras e reetoras. As superfcies lambertia-
nas reetoras caracterizam-se por reetirem radia coes cuja intensidade por
unidade de area e dependente somente do cosseno do angulo de incidencia.
Ou seja, as radia coes percebidas por um observador n ao dependem do angulo
entre a sua linha de visao e o vetor normal da superfcie. Estas superfcies
s ao ditas perfeitamente difusas e satisfazem a lei de Lambert de irra-
dia cao
i = Icos
i
, (8.4)
onde i e a intensidade reetida em todas as dire coes, I a intensidade da
fonte de iluminancia e
i
e o angulo de incidencia.
Apesar de dispor de modelos (incompletos) que representem matema-
ticamente a inuencia das propriedades fsicas e geometricas da superfcie
(de separa cao entre dois meios) na sua luminancia, a aplica cao destes re-
sultados e ainda muito modesta. Uma das principais raz oes e a sua com-
plexidade e incompletude (por exemplo, n ao leva em considera cao nestes
modelos superfcies desgastadas por a cao de tempo). Na maioria dos siste-
mas de informa cao gr aca adota-se ainda uma solu cao bem emprica, porem
satisfatoria: modelar a inuencia da superfcie por meio de constantes k que
atuam como redutores das intensidades ideais, como veremos na se cao 8.3.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 174
P
R
luminncia "difusa"
i
r
L
n
A
A
cos
i
(a) (b)
R
V
i
r
L
n
(c)
Figura 8.13: Componente: (a) ambiente; (b) difusa; e (c) especular.
8.3 Modelos de Ilumina cao Local
Dispondo da informa cao das fontes de radia coes luminosas incidentes e da
constante redutora da intensidade idealmente reetida de cada componente,
como um computador consegue processar e ver, em cada ponto da su-
perfcie, a intensidade luminosa que deve ser percebida por um observador
medio? Como ja comentamos na introdu cao, embora existam varias pro-
postas para determinar esta intensidade com base em leis fsicas, impera-se
ainda o modelo emprico de Phong da decada 1970. A principal raz ao da
sua popularidade e produzir resultados satisfatorios com simplicidade. No
modelo de Phong a intensidade luminosa incidente em cada ponto (x, y, z)
e decomposta em tres componentes: ambiente (I
a
), difusa (I
d,i
) e especular
(I
s,i
). Observamos que cada uma das componentes e, por sua vez, represen-
tado por um vetor de tres cores primarias.
8.3.1 Reexao Difusa
Assume-se que todas as superfcies tenham comportamento lambertiano,
reetindo igualmente a parcela I
d,i
das radia coes oriundas diretamente da
fonte de luz i para todas as dire coes. A intensidade luminosa percebida
por um observador pode ser aproximada pela Eq. 8.4 atenuada por um
coeciente de reexao difusa k
d
(Figura 8.13.(a)). Sabendo que L n =
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 175
cos
i
, podemos escrever a contribui cao difusa de m fontes de luz no ponto
(x, y, z) como
I
d
(x, y, z) =
m
i=1
k
d
I
d,i
.(L
i
n), (8.5)
onde L
i
e a dire cao da fonte de luz i em rela cao ao ponto e n e o vetor
normal da superfcie no ponto.
8.3.2 Reexao Ambiente
Pela Eq. 8.5 todos os pontos que n ao recebem radia coes diretas das fontes
de luz car ao em preto, o que n ao condiz com a nossa vivencia. A trajetoria
das ondas luminosas em um ambiente e complexa: um ponto pode receber
radia coes luminosas de uma fonte i de forma indireta, ap os multireex oes,
como ilustra a Figura 8.13.(b). Observe que o ponto P na gura e iluminado
indiretamente pela fonte de luz ap os o feixe luminoso sofrer 3 reexoes. Uma
forma simples de incluir este fenomeno e adicionar uma parcela constante
I
a
atenuada pelo coeciente de reexao difusa de ambiente k
a
I
a
(x, y, z) = k
a
I
a
(8.6)
A luz de fundo n ao e suciente para diferenciar duas formas geometricas
posicionadas em dist ancias distintas em rela cao ao observador, se elas forem
iluminadas igualmente. Para contornar isso, podemos adicionar ainda um
fator de atenua cao `a intensidade luminosa reetida em fun cao da dist ancia
d do seu trajeto entre a superfcie e o observador. Na pr atica, o fator de
atenua cao no trajeto entre a fonte e a superfcie, como vimos na se cao 8.1.2,
e suciente para muitos casos.
8.3.3 Reexao Especular
No seu trabalho, Phong observou tambem que quando se trata de uma
superfcie lustrosa, h a pontos de brilho cuja percep cao depende da posi cao
do observador em rela cao ao vetor normal da superfcie. Para gerar este
efeito, ele propos considerar que uma parcela I
s,i
das radia coes da fonte de
luz i seja reetida especularmente, e que a intensidade luminosa percebida
pelo observador varie com o angulo entre a dire cao do observador V e a
dire cao do raio reetido R (Figura 8.13.(c)). A contribui cao especular de
m fontes de luz no ponto (x, y, z) atenuada pelo coeciente de reexao
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 176
L
i
R
i
S S n
i
r
(a) (b)
Figura 8.14: Componente especular: (a) cos
n
; (b) vetor de reexao.
especular k
s
e dada por
I
s
(x, y, z) = k
s
m
i=1
I
s,i
(V R
i
)
n
, (8.7)
onde V e a dire cao do observador em rela cao ao ponto, R
i
, a dire cao do raio
reetido do feixe incidente I
s,i
e n, o expoente de reexao especular.
O papel deste coeciente e para controlar empiricamente os tamanhos dos
pontos de brilho. Quanto maior o valor, mais concentrado ca o ponto de
brilho conforme mostra o gr aco da Figura 8.14.(a). Tipicamente, atribui-se
uma valor em torno de 100 para uma superfcie muito lustrosa e em torno
de 1 para uma superfcie fosca.
Para determinar I
s
(x, y, z) utilizando Eq. 8.7, precisamos conhecer o
vetor R
i
. Vamos mostrar que e possvel obte-lo a partir do vetor normal n
e do vetor L
i
, pois (Figura 8.14.(b))
R
i
= L
i
+ 2S
= L
i
+ 2((L
i
n)n L
i
)
= 2(L
i
n)n L
i
(8.8)
8.3.4 Modelo de Iluminacao de Phong
Combinando as Eqs. 8.5, 8.6 e 8.7, temos o seguinte modelo de ilumina cao lo-
cal para determinar a intensidade luminosa em um ponto (x, y, z) iluminado
pelas m fontes de luz
I(x, y, z) = I
a
(x, y, z)+f
at
(k
d
m
i=1
I
d,i
.(L
i
n)+k
s
m
i=1
I
s,i
(VR
i
)
n
), k
a
, k
s
, k
d
[0, 1].
(8.9)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 177
Figura 8.15: Inuencia de cada componente na cor nal (Fonte:
http://en.wikipedia.org/wiki/Phong shading).
Observamos que como as radia coes luminosas emitidas pelas fontes de luz
I
a
, I
d,i
e I
s,i
s ao representadas pelas tres componentes primarias I
r
, I
g
, e I
b
,
e comum especicar os fatores de atenua cao da superfcie k
a
, k
d
e k
s
para
cada uma dessas componentes. Os coecientes k
a
, k
d
e k
s
s ao atribudos
de forma totalmente emprica. Uma regra pr atica e atribuir valores de tal
forma que k
a
= k
d
e k
d
+ k
s
= 1.0. Quanto maior o grau de rugosidade de
uma superfcie, maior deve ser o valor de k
d
e menor o coeciente especular.
Figura 8.15 ilustra a inuencia de cada componente na cor nal de uma
imagem.
8.3.5 Modelo de Iluminacao Blinn-Phong
Uma variante do modelo de Phong foi proposto por Blinn em 1977, que
consiste em substituir o termo (V R
i
)
n
pelo
(n H)
n
, (8.10)
onde H e a media dos dois vetores que n ao dependem da geometria da
superfcie (de separa cao): L
i
e V, isto e,
H =
L
i
+V
|L
i
+V|
A vantagem desta substitui cao e logo percebida, quando consideramos casos
em que o observador e a fonte de luz estiverem distantes da superfcie. Nestes
casos, o vetor H ser a constante para todos os pontos, requerendo apenas
o seu calculo uma unica vez. Alem disso, veremo na se cao 8.5 que esta
formula cao simplica o computo de componentes especulares no algoritmo
de tra cado de raio.
Observamos que e tem valores diferentes, pois
i
+ = (
r
) +
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 178
n
R
V
H
L
i
j=1
I
d,j
.(L
j
n) +k
s
m
i=1
I
s,j
(n H
j
)
n
)
+k
s
I
R
i
+k
t
I
T
i
, k
a
, k
s
, k
d
, k
t
[0, 1]. (8.11)
Agora s o falta mostrar como o computador consegue achar a dire cao
do vetor de refra cao T
i
e a dire cao do vetor de reexao R
i
para rastrear um
raio. Comparando o par de raios (R
i
, s) da Figura 8.23.(a) com o par de
raios (R
i
, L
i
) da Figura 8.14.(b), a rela cao entre o par e igual se invertermos
o sentido do raio s. Portanto, podemos substituir L
i
da Eq. 8.8 por s para
obter o vetor de reexao R
i
R
i
= s 2(s n)n.
Para determinar a dire cao do vetor de refra cao T
i
, vamos supor, sem
perda de generalidade, que s e n sejam unit arios. Denimos um terceiro
vetor unit ario M, perpendicular a n de forma que valha a rela cao
s = ncos
i
Msin
i
.
Desta rela cao derivamos a seguinte express ao para M
M =
(ncos
i
s)
sin
i
.
Com os vetores unit arios M e n, e imediato obter T
i
, ja que
T
i
= sin
t
Mcos
t
n.
Substituindo Eq. 8.3 na express ao acima, temos
T
i
=
n
i
n
t
s (cos
t
n
i
n
t
cos
i
)n
sendo
cos
t
=
_
1 sin
2
t
=
_
1 (
n
i
n
t
)
2
sin
2
i
.
Observe na Figura 8.22.(a) que o raio primario que parte do centro de
proje cao P
s
= (x
s
, y
s
, z
s
, 1) em dire cao V = (x
V
, y
V
, z
V
, 0) pode interceptar
as guras geometricas da cena em varios pontos. O ponto que interessa para
a tecnica de tra cado de raio seria o primeiro ponto que o raio intercepta no
seu trajeto, pois e neste ponto que o curso do seu trajeto pode ser alterado.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 185
tr
s
R
i
T
i
n
L
H
i
tr
s
T
i
n
i
M
(a) (b)
Figura 8.23: C omputo de intensidades: (a) vetores envolvidos; (b) rela cao
entre vetor incidente e vetor de refra cao.
Como o computador poderia distinguir este ponto? Uma solu cao simples e
representar parametricamente um raio pela equa cao (Se cao 3.2.1)
P(t) = P
s
+tV.
O resultado da interse cao seria um escalar t. Este escalar reete diretamente
a dist ancia de um ponto P(t) em rela cao ao ponto C
P
. Quanto maior for
o valor do escalar, mais distante ser a o ponto. Como queremos que seja
identicado o ponto mais pr oximo do ponto de onde partiu o raio, basta
ordenar os pontos de intersec cao obtidos pelos valores escalares e escolher o
ponto que tiver o menor t. Por exemplo, na Figura 8.22.(a), foram obtidos
dois pontos de intersec cao com o raio primario: P(t
1
) e P(t
2
). Como t
1
< t
2
,
o ponto P(t
1
) e o ponto a ser atingido pelo raio e onde o raio mudara o curso
do seu trajeto.
Um dos pontos crticos na implementa cao de tra cado de raio e, portanto,
a determina cao de interse cao entre um raio e as superfcies de interesse
ao longo da trajetoria de rastreamento. A seguir s ao apresentados alguns
procedimentos mais conhecidos.
8.5.1 Raio com Plano
Seja um raio que sai do ponto P
s
em dire cao V e um plano arbitrario denido
pelo vetor normal n = (x
n
, y
n
, z
n
, 0) e por um ponto P
0
= (x
0
, y
0
, z
0
, 1) sobre
o plano. A interse cao P(t
) = P
s
+t
d deve satisfazer
(P(t
) P
0
) n = n (P
s
+t
d) n P
0
= t
n Vn (P
s
P
0
) = 0.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 186
r
b
c
P
d
O
P
s
V
Figura 8.24: Interse cao raio e esfera.
Segue-se que
t
n V = n (P
s
P
0
)
e
t
=
n (P
s
P
0
)
n V
.
Portanto, para nV = 0 (raio n ao paralelo ao plano), o raio intercepta com o
plano no ponto P(t
) = P
s
+t
V quando t
P
s
O
P
s
O) v
2
), se r
2
((
P
s
O
P
s
O)v
2
) >
0.
8.5.3 Raio com Superfcie Implcita
Dada uma superfcie implcita em forma de f(x, y, z) = 0. O problema se
reduz a determinar as raizes da equa cao f(x
s
+tx
V
, y
s
+ty
V
, z
s
+tz
V
) = 0.
Captulo 9
Algoritmos de Visibilidade
Oclusao e um dos fatores que contribuem a nossa percep cao de profundi-
dade. O objetivo deste captulo e apresentar algumas solu coes computacio-
nais atraves das quais uma m aquina consegue discernir o que s ao visveis
dos que n ao s ao visveis em rela cao a um ponto de vista. Desta forma,
ela consegue produzir imagens com oclus ao, aproximando-se ainda mais da
nossa percep cao. Apos a leitura deste captulo, voce deve ser capaz de
explicar o papel de algoritmos de visibilidade em um modelo de ilu-
mina cao local.
explicar as coerencias utilizadas para aumentar a eciencia dos algo-
ritmos de visibilidade.
utilizar a tecnica de backface culling e bounding box.
diferenciar algoritmos de linhas escondidas e de superfcies escondidas.
aplicar algoritmo de pintor.
aplicar algoritmo de z-buer.
construir e percorrer a arvore BSP para ordenar as facetas em rela cao
a um observador.
Conforme ja comentamos na se cao 5.2, o sistema de visao humana faz
uso de varios recursos para melhorar a sua percep cao de profundidade. Um
destes recursos e a oclusao de objetos, isto e, objetos mais distantes em
rela cao a um observador ao longo de um raio de visao s ao escondidos pelos
objetos opacos mais pr oximos, como ilustra Figura 9.1.(a). Nesta gura, a
187
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 188
superfcie opaca S
A
bloqueia totalmente os raios luminosos, impedindo que
os raios reetidos pelas superfcies S
B
e S
C
cheguem no olho/na abertura de
uma camera pela dire cao r. A cor percebida/captada nesta dire cao seria a
da superfcie S
A
. Dizemos, entao, que a superfcie S
A
e visvel em rela cao
ao observador/`a camera e as outras cam escondidas, em ingles hidden.
Se compararmos a Figura 9.1.(b) com a Figura 8.22.(a), pode-se concluir
que a tecnica de tra cado de raio inclui o algoritmo de visibilidade, ja que
ela seleciona, dentre todas as intersec coes obtidas, o ponto mais pr oximo
do observador/da camera ao longo de cada raio primario (Se cao 8.5). Esta
forma de determina cao do ponto visvel, a nvel de resolu cao do espa co de
imagem (Se cao 5.3), e conhecida como ray-casting. A sua complexidade e
Nn, onde N e o n umero de pixels e n e a quantidade de formas geometricas
existentes na cena. Se uma cena for densamente povoada, com n muito
grande, caria inviavel obter a sua imagem na taxa interativa, ou seja, em
torno de 30 fps. Sem falar que a cena pode conter guras geometricas
representadas por fun coes de grau muito elevado cujas intersec coes com raios
n ao tenham solu coes algebricas como os casos apresentados nas se coes 8.5.1
e 8.5.2.
No modelo de ilumina c ao local somente as intera coes diretas s ao levadas
em conta. Se as radia coes reetidas por uma superfcie estiverem na dire cao
de visao, elas ser ao vistas independentemente se ao longo do trajeto exis-
tam elementos que possam bloquear tais radia coes. Portanto, para que o
computador gere imagens na forma como ele deveria perceber, e necessario
tirar do seu campo de visao elementos oclusos. A questao que discutire-
mos neste captulo e como programar um computador para que ele, antes
de aplicar um modelo de ilumina cao local, diferencie as dist ancias das su-
perfcies em rela cao ao seu centro de proje cao, limitando a sua visao
somente para as superfcies mais pr oximas. Assim, ele conseguiria produzir
imagens com correta oclus ao. Por exemplo, no caso da Figura 9.1.(b) o
computador deveria ver somente o ponto P
1
na dire cao r. O processo de
determina cao das partes que devem estar no campo de visao de um compu-
tador e denominado algoritmo de visibilidade.
Pesquisas tem sido conduzidas no sentido de reduzir a complexidade
temporal de um algoritmo de visibilidade e implementa-lo diretamente em
hardware ou rmware. Em decorrencia disso, pode-se encontrar uma grande
variedade de algoritmos de visibilidade na literatura, que essencialmente s ao
classicados em tres grandes grupos: tecnicas baseadas em espa co de
imagem, tecnicas baseadas em espa co da camera/normalizado e
tecnicas mistas. A determina cao de visibilidade por tecnicas baseadas no
espa co de imagem tem resolu cao a nvel de pixels. As tecnicas baseadas no
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 189
S
A
S
B
S
C
P
1
P
2
P
3
P
4
P
5
P
6
r
(a)
Centro de
projeo
P
(
t)
=
P
+
r
t
S
A
S
B
S
C
r
p
p
t
1
t
2
t
3
t
4
t
5
t
6
(b)
Figura 9.1: Visibilidade: (a) visao humana; (b) visao computacional.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 190
espa co normalizado tem resolu cao a nvel do espa co de representa cao das
guras geometricas. Uma solu cao a for ca bruta seria comparar cada uma
das n guras da cena contra as restantes (n 1) guras para saber se ela
e a mais pr oxima do observador. A complexidade seria O(n
2
). Se n N,
o procedimento pode ser mais eciente do que as baseadas no espa co de
imagem.
Neste captulo vamos apresentar dois algoritmo de visibilidade de linhas
na se cao 9.2. Dois algoritmos mais conhecidos de visibilidade de superfcies
s ao descritos na se cao 9.3. Antes, porem, vamos mostrar na se cao 9.1 algu-
mas tecnicas amplamente utilizadas para aumentar a eciencia no computo
de visibilidade.
9.1 Pre-processamento
A essencia dos algoritmos de visibilidade e muito simples: remover as partes
que n ao devem ser vistas pelo computador na produ cao de uma imagem
sintetica. O problema, no entanto, e implementar de forma eciente esta
ideia simples. Nao provendo a inteligencia visual, o computador precisa
emular os raios de visao e computar os pontos que eles alcancam, um por
um. Para reduzir o tempo de execu cao do volume de opera coes envolvidas,
varias propriedades geometricas e caractersticas dos dispositivos de sada
tem sido consideradas para reduzir o tamanho das guras geometricas sobre
as quais s ao aplicadas efetivamente as opera coes de maior custo.
Uma propriedade que os algoritmos de visibilidade explorame a coerencia
dos atributos usando o fato de que sempre existe um escopo dentro do qual
a varia cao dos atributos ocorre de forma bastante suave. Neste caso, ao
inves de determinar os atributos a partir do nada em cada ponto da cena,
podemos utilizar tecnicas recorrentes para determina-los.
Sutherland et al. identicaram em 1974 uma serie de coerencias que
podem ser exploradas nos algoritmos de visibilidade:
1. Coerencia de objetos: dois objetos disjuntos n ao podem apresentar
intersec coes a nvel de faces, arestas ou pontos.
2. Coerencia de face: as propriedades gr acas de uma face variam de
forma suave. Transi c oes bruscas s ao normalmente interpretadas como
fronteira de duas faces.
3. Coerencia de arestas: a transi cao da parte visvel para a parte invisvel
de uma aresta, ou vice-versa, s o pode ocorrer nos pontos de intersec cao.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 191
(a) (b)
Figura 9.2: Caixa limitante: (a) justa; (b) paralela aos eixos.
4. Coerencia geometrica: o segmento de intersec cao entre duas faces pla-
nas pode ser determinado pelos dois pontos de intersec cao.
5. Coerencia das linhas de varredura: a varia cao das propriedades geometricas
e fsicas entre duas linhas de varredura e pequena.
6. Coerencia na area de cobertura: um conjunto de pixels adjacentes e
usualmente coberto por uma face.
7. Coerencia na profundidade: os valores de profundidade das amostras
adjacentes de uma mesma face variam pouco e os valores de profundi-
dade das amostras de faces distintas usualmente s ao valores distintos.
8. Coerencia nos quadros: dois quadros consecutivos de uma anima cao
diferem muito pouco um do outro.
Baseado na coerencia de objetos, e comum aplicar a tecnica de caixa
limitante (bounding box) para separar objetos trivialmente disjuntos de
forma a reduzir a quantidade de pares de guras geometricas a serem tes-
tadas. Ha varias propostas para determina cao de uma caixa limitante justa
para um objeto (Figura 9.2.(a)), porem a mais difundida e a menor caixa
com os planos paralelos aos eixos do sistema de referencia capaz de envolver
totalmente o objeto, como as caixas em vermelho na Figura 9.2.(b). Observe
que neste segundo caso os resultados s ao mais conservadores, no sentido de
que menos disjun coes s ao identicadas, em troca de um procedimento mais
simples.
Transformar as coordenadas da cena para o espa co normalizado pode
simplicar as computa coes. Vimos na se cao 5.4.3 que no espa co norma-
lizado o raio de visao ca paralelo ao eixo n tanto em uma proje cao pa-
ralela quanto em uma proje cao perspectiva. Isso reduz compara coes entre
as dist ancias dos pontos em rela cao ao observador em compara coes entre
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 192
A
B
I
x,y
z
A
B
I
x,y
z
(a) (b)
Figura 9.3: Descontinuidade de profundidade: (a) em sobreposi coes; (b) em
intersec coes.
os valores das respectivas coordenadas n. A coerencia de profundidade e
tipicamente aplicada para reduzir a quantidade de compara coes dos valo-
res de profundidade. Observe na Figura 9.3 que se uma gura geometrica
e classicada como a mais pr oxima do observador, ela retem esta clas-
sica cao ate ser sobreposta por uma outra ou ate interceptar uma outra
gura. Portanto, se pre-computarmos os pontos de transi cao entre as gu-
ras geometricas, s o ser a necessario efetuar um conjunto de compara coes em
cada extensao contnua de area.
Outro fato e que as facetas de costas para observador n ao s ao visveis.
Traduzindo em n umeros este conceito, as facetas com vetores normais for-
mando um angulo menor que 90
0
em rela cao ao raio de visao (eixo n no
espa co normalizado NDC denido na se cao 5.3) n ao devem ser visveis,
como ilustra Figura 9.4. A verica cao do angulo entre um vetor normal
n = (n
u
, n
v
, n
n
, 0) e um raio de visao V, que e igual a (0, 0, 1, 0) no espa co
normalizado, pode ser feita por um simples produto escalar
B
f
= n V = n
n
. (9.1)
Se B
f
> 0 ou n
n
< 0, a faceta est a de costas, portanto, n ao e visvel (as
facetas em linha preta na Figura 9.4.(a)); sen ao, ela e potencialmente visvel
(as facetas em linha vermelha na Figura 9.4.(a)). Isso permite reduzir a
quantidade n de facetas a serem processadas pelo algoritmo de visibilidade.
Esta tecnica de remo cao de facetas de costas e conhecida como backface
culling.
Outro recurso que aumenta a eciencia do processamento de visibilidade
e organizar previamente os dados em uma estrutura mais elaborada que per-
mita inferir a visibilidade com base na coerencia de inclusao. Figura 9.4.(b)
ilustra uma cena particionada em uma arvore bin aria tridimensional atraves
da qual podemos facilmente identicar e remover os octantes, e consequente-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 193
x,y
z
(a) (b)
Figura 9.4: (a) Backface culling e (b) subdivisao espacial (Fonte:
http://www.gamasutra.com/features/19970801/octree.htm).
mente as guras geometricas contidas neles, antes do processamento efetivo
de visibilidade.
9.2 Algoritmos de Visibilidade de Linhas
Historicamente, estes algoritmos apareceram antes dos algoritmos de visi-
bilidade de superfcies para remover segmentos que n ao devem aparecer na
sada de um dispositivo vetorial. Figura 9.5 ilustra duas formas de dese-
nhar as linhas n ao visveis: (a) fazer uma aureola, ou (b) esconde-las. Estes
algoritmos foram amplamente estudados para melhorar a legibilidade das
imagens aramadas geradas em arquitetura de sada vetorial, como ilustrada
na Figura 1.10.(d). Com a popularidade de imagens de facetas tonaliza-
das, eles perderam o destaque. No entanto, os problemas estudados para
visibilidade de linhas continuam sendo importantes para processamento de
informa cao gr aca.
O primeiro algoritmo de visibilidade de linhas foi desenvolvido pelo Ro-
berts em 1963. Essencialmente, ele reduziu o problema de visibilidade em
um problema de programa cao linear, ao comparar cada segmento P
1
P
2
em
rela cao a uma gura geometrica convexa denida pelas equa coes das
suas m facetas, com o vetor normal (n
x(i)
, n
y(i)
, n
z(i)
, 0) orientado para o
lado externo da gura geometrica. O plano que contem uma faceta e repre-
sentada pela equa cao
n
x(i)
x +n
y(i)
y +n
z(i)
z +d
i
= 0,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 194
(a) (b)
Figura 9.5: Linhas n ao visveis: (a) aureolares e (b) escondidas (Fonte:
http://www.sgi.com/products/software/opengl/examples/glut/advanced/).
e a gura geometrica P = (x, y, z, 1), como um volume delimitado pelos m
planos que satisfaz o seguinte sistema de inequa coes
_
_
n
x(1)
n
y(1)
n
z(1)
d
1
n
x(2)
n
y(2)
n
z(2)
d
2
n
x(3)
n
y(3)
n
z(3)
d
3
. . . . . . . . . . . . . . . . . . . . . . . .
n
x(m)
n
y(m)
n
z(m)
d
3
_
_
_
_
x
y
z
1
_
_
0
0
0
.
.
.
0
_
_
.
A matriz formada pelos coecientes dos planos e denominada matriz de
volume, denotada por [V T].
Para reduzir o n umero de opera coes, Roberts introduziu a tecnica de
backface-culling (Eq. 9.1), amplamente utilizado ate hoje em algoritmos de
visibilidade de superfcies, para identicar os planos em rela cao ao qual o
observador est a de costas. As linhas comuns de duas facetas contidas
em planos escondidos s ao classicadas como escondidas. Elas s ao, entao,
removidas.
Em seguida, o restante das linhas e testado individualmente contra todos
os volumes existentes na cena para vericar se cada linha e oclusa por algum
dos volumes. Por simplicidade, vamos considerar apenas um segmento P
1
P
2
e um volume [V T].
A partir de um ponto P(t) = v do segmento P
1
P
2
dado por
P(t) = P
1
+ (P
2
P
1
)t P(t) = P
1
+dt t [0, 1]
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 195
P(t)
Observador
P
1
= s P
2
Q(, t)
d
g
P(t)
Observador
Segmento ocluso
[VT]
P
1
= s P
2
Q(, t)
d
g
(a) (b)
Figura 9.6: Algoritmo de Roberts: (a) plano de visao; (b) oclus ao.
denem-se segmentos na dire cao de proje cao g, formando um semi-plano
(Figura 9.6.(a))
Q(, t) = P(t) +g = P
1
+dt +g, 0.
Como os pontos interiores do volume [V T] s ao oclusos, o problema pode
ser reduzido em determina cao de pontos do plano Q(, t) que satisfa cam o
sistema de inequa coes
Q(, t)[V T] = (P
1
+dt +g)[V T]
= P
1
[V T] +dt [V T] +g [V T], 0, t [0, 1].
Dentre os possveis valores de t computados, procura-se pelo mnimo t
minmax
dos valores m aximos e o m aximo t
maxmin
dos valores mnimos que satisfazem
as inequa coes. O segmento ocluso e o contido no intervalo [t
maxmin
, t
minmax
].
Observe que este e um classico problema de programa cao linear.
Posteriormente, outros algoritmos mais simples e genericos foram pro-
postos, como o algoritmo de Appel em 1967 que explora a coerencia de aresta
e reduz o problema de visibilidade em intersec cao entre arestas e facetas de
frente para observador. O seu algoritmo n ao se limita para volumes con-
vexos. Ele introduziu o conceito de invisibilidade quantitativa que e um
contador para contar o n umero de vezes que um segmento de aresta passou
por tr as de uma faceta de frente. Na Figura 9.7.(b) a borda destas face-
tas de frente foram destacadas com linha vermelha e as intersec coes do
segmento P
1
P
2
com estas facetas destacadas com pontos pretos. Quando
um segmento tem a invisibilidade quantitativa igual a zero, ele e visvel; do
contr ario, ele ca invisvel. Um pre-processamento e necessario para deter-
minar o contorno das facetas de frente. A tecnica de backface-culling pode
ser aplicada. Figura 9.7.(c) mostra os segmentos classicados com 1 em
linha tracejada.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 196
P
1
P
2
P
1
P
2
0 1 0 1 0
P
1
P
2
(a) (b) (c)
Figura 9.7: Algoritmo de Appel: (a) segmento e [V T]; (b) contorno das
faces de frente do [VT]; (c) invisibilidade quantitativa.
9.3 Algoritmos de Visibilidade de Superfcies
Os algoritmos de visibilidade de superfcies determinam as areas de uma
superfcie que devem ser visveis a partir de um ponto de vista especco.
Na se cao 8.5 mostramos como o computador pode, atraves do rastreamento
do raio de visao pelo princpio de optica geometrica, resolver o problema de
oclus ao. O procedimento ocorre no espa co da camera, embora a amostragem
dos raios primarios seja feita a nvel de resolu cao do espa co de imagem. Nesta
se cao vamos apresentar mais dois algoritmos: dois baseados no espa co de
imagem e um, hbrido.
Vale observar que dos tres algoritmos a serem apresentados, dois deles, o
algoritmo de pintor e o z-buer que desenham polgono por polgono, podem
ser adaptados para gerar efeitos de linhas escondidas em dispositivos de sada
raster. Basta escrevermos na mem oria de exibi cao os pixels correspondentes
ao interior de cada polgono com a cor do fundo. Desta maneira, os polgonos
pr oximos do observador escondem naturalmente as linhas mais distantes.
9.3.1 Algoritmo de Pintor
O nome deste algoritmo se deve `a sua analogia `a tecnica utilizada pelos
pintores para pintar uma tela a oleo. Os pintores come cam com um cen ario
distante e o cobre parcialmente com pinceladas para pintar objetos mais
pr oximos. Mentalmente, os pintores ordenam a priori a sequencia dos ob-
jetos a serem pintados, como ilustra a sequencia de desenho na Figura 9.8.
Desta forma, objetos mais pr oximos sobrepoem os mais distantes, solucio-
nando o problema de visibilidade a custo de mais pinceladas em uma mesma
area.
Para realizar isso no computador, Newell, Newell e Sancha propuseram
em 1972 um procedimento envolvendo tres passos:
1. ordenar, de forma decrescente, os polgonos pelas dist ancias, ou pro-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 197
Figura 9.8: Tecnica de pintores: as montanhas distantes fo-
ram pintadas em primeiro lugar, o gramado mais pr oximo foi
adicionado e, nalmente, as arvores foram acrescidas (Fonte:
http://en.wikipedia.org/wiki/Painter%27s algorithm.
fundidades, em rela cao ao observador;
2. resolver as ambiguidades na ordena cao, dividindo os polgonos; e
3. desenhar na mem oria de exibi cao os polgonos, dos mais distantes para
os mais pr oximos, sendo os valores gravados anteriormente sempre
sobrescritos pelos novos valores.
Como comentamos na se cao 9.1, podemos tirar proveito se transformar-
mos as guras geometricas para o espa co da camera antes da ordena cao,
pois nestes espa cos a coordenada n dos pontos corresponde `a dist ancia em
rela cao ao observador.
Como a ordena cao ocorre no espa co da camera/normalizado e a solu cao
de oclus ao acontece no espa co de imagem, atraves da sobreposi cao de dese-
nhos, este algoritmo pertence `a classe de algoritmos de tecnica hbrida.
Ordena cao pela Profundidade
Figura 9.9 ilustra alguns casos tpicos de ambuiguidade na ordena cao pela
profundidade. Na Figura 9.9.(a) o ret angulo vermelho est a simultaneamente
acima e embaixo do polgono verde. E na Figura 9.9.(b) o ret angulo azul
est a, ao mesmo tempo, acima do ret angulo vermelho e embaixo do ret angulo
verde. Este, por sua vez, est a embaixo do vermelho. Para resolver tais
ambiguidades, subdivide-se os polgonos, como ilustram Figuras 9.9.(c) e
(d).
Como o computador pode ver tais ambiguidades? Dado um polgono
plano P, Newell et al. apresentaram uma sequencia de 6 testes na ordem
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 198
(a) (b)
(c) (d)
Figura 9.9: Ambiguidades na ordena cao: (a) interpenetra cao; (b) sobre-
posi cao cclica; (c) e (d) solu coes.
crescente de complexidade computacional para vericar a ordena cao de P
em rela cao aos outros polgonos Q ja desenhados na mem oria de exibi cao.
Para cada par P e Q, verica-se se
1. s ao disjuntos na extensao da coordenada z? (Figura 9.10.(a))
2. s ao disjuntos na extensao da coordenada x? (Figura 9.10.(b))
3. s ao disjuntos na extensao da coordenada y? (Figura 9.10.(c))
4. P est a inteiramente contido no lado do plano Q oposto ao lado onde
est a localizado o observador? (Figura 9.10.(d))
5. Q e o observador est ao inteiramente contidos no mesmo lado do plano
P? (Figura 9.9.(a))
6. as proje coes de P e Q se sobrepoem no plano de proje cao?
Se todos os testes falharem, repetem-se os testes 4 e 5, trocando P por Q, e
vice-versa. Caso falharem tambem estes testes, divide-se um polgono pelo
outro e repete-se os testes com os novos polgonos. Do contr ario, se um dos
testes na sequencia passar, pinta-se P na mem oria.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 199
z
x,y
z
x
(a) (b)
y
x,z z
x,y
P
Q
(c) (d)
Figura 9.10: Testes de ambiguidades: (a) teste (1); (b) teste (2); (c) teste
(3); (d) teste (4).
Para fazer os testes (1)(3), simples compara coes entre os valores mnimos
e m aximos de cada coordenada s ao sucientes. E para testes(4) e (5), basta
utilizarmos a representa cao implcita do plano que contem um polgono
f(x, y, z) = n
x
x +n
y
y +n
z
z +d
e avaliar o sinal desta fun cao aplicada em cada vertice do outro polgono.
Em rela cao ao teste (6), e necessario avaliar a continencia das arestas de
um polgono no outro. Para isso, podemos utilizar o algoritmo de recorte
de Cyrus-Beck apresentado na se cao 6.2.2.
Ordena cao pela BSP
A ordena cao proposta por Newell et al. e dependente do observador. Para
cada altera cao da posi cao do observador, os polgonos precisam ser reorde-
nados, mesmo que a cena n ao tenha sofrido nenhuma modica cao. Para
reaproveitar os resultados de um pre-processamento, foram propostas varias
estruturas de dados que consigam organizar as facetas de forma indepen-
dente do observador. A arvore de parti cao espacial binaria (binary
space-partitioning tree), proposta por Fuchs, Kedem e Naylor em 1980, e
uma estrutura que atende este requisito. Ela e extremamente eciente para
um cen ario est atico. O algoritmo se baseia em uma simples observa cao de
que se h a um plano que separa um conjunto de facetas em dois grupos, o
grupo que estiver no lado do plano onde est a o observador n ao pode ser
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 200
ocluso pelo grupo de facetas que estiver no outro lado do plano. Assim,
a ideia e subdividir recursivamento as regi oes ate que cada uma contenha
somente uma unidade dos elementos.
Para construir uma arvore bin aria de polgonos, podemos iniciar com
um plano qualquer, por exemplo o plano que contem a faceta A na Fi-
gura 9.11.(a). Este plano ser a denominado o plano-raz. Ele dividir a o
espa co em dois semi-espa cos, um para onde o vetor normal do plano aponta
(frente) e o outro e o seu complemento Figura 9.11.(b). Note que a faceta
E foi subdividida em E1 e E2 pelo plano de parti cao. Isso assegura
que n ao haja ambiguidade na classica cao de uma faceta em rela cao `as
regi oes particionadas. A subdivisao continua recursivamente em cada novo
semi-espa co enquanto houver mais de um elemento no semi-espa co, con-
forme ilustram Figuras 9.11.(c)-(g). Observe nas guras a correspondencia
entre as parti coes espaciais e os acrescimos de n os na estrutura de dados.
Observe que a arvore foi construda independentemente da posi cao do
observador. A ordena cao das facetas e feita em tempo-real atraves de um
percurso pela arvore com base na posi cao do observador especicada. Na
Figura 9.12.(a) o observador est a na regi ao que contem a faceta E1. Em
rela cao ao n o A, o observador est a no semi-espa co atr as, portanto o
computador deve desenhar na sequencia: o conjunto de facetas da subarvore
frente, A e o conjunto de facetas na subarvore atr as. Ao processar o
n o G, verica-se que o observador tambem est a atr as da plano, ser a entao
desenhado na sequencia: subarvore frente, G e subarvore atr as, e
assim por adiante. O resultado da sequencia completa de desenho e {F,
E2, G, A, B, C, H, D, E}. Para a posi cao do observador mostrada na Fi-
gura 9.12.(b), obteremos o percurso {E2, F, G, A, D, E1, H, B, C}. O
pseudo-codigo do algoritmo de pintor com uso da estrutura BSP e apresen-
tado na fun cao BSP percurso.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 201
A
B
C
D
F
E
G
H
(a)
A
B
C
D
F
E1
E2
G
H
A
B
C
D
F
E1
E2
G
H
A
B
C
D
F
E1
E2
G
H
A
frente atrs
E2
F
G
E1
D
C
B
H
E2
F
A
frente atrs
E1
D
C
B
H
G
atrs
A
frente atrs
E1
D
C
B
H
G
atrs
E2
F
atrs
(b) (c) (d)
A
B
C
D
F
E1
E2
G
H
A
B
C
D
F
E1
E2
G
H
A
B
C
D
F
E1
E2
G
H
A
frente
G
atrs
E2
F
atrs
atrs
H
B
C
E1
D
frente atrs
A
frente
G
atrs
E2
F
atrs
atrs
H
E1
D
frente atrs
C
B
atrs
A
frente
G
atrs
E2
F
atrs
atrs
H
frente atrs
C
B
atrs
E1
D
atrs
(e) (f) (g)
Figura 9.11: Parti cao do espa co e BSP: (a) cena; (b) primeira parti cao (c)-
(d) parti cao do primeiro semi-espa co; (e)-(g) parti cao do outro semi-espa co.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 202
A
B
C
D
F
E1
E2
G
H
A
B
C
D
F
E1
E2
G
H
(a) (b)
Figura 9.12: Testes de ambiguidades: (a) teste (1); (b) teste (2); (c) teste
(3); (d) teste (4).
Input: BSP, observador
Output: desenho de polgonos
if n o n ao e uma folha then
lado = Lado do n o onde ca o observador;
if BSP percurso (nofrente);
desenha o polgono no n o ;
BSP percurso (noatr as);
then lado = atr as
BSP percurso (noatr as);
desenha o polgono no n o ;
BSP percurso (nofrente);
else
desenha o polgono na folha ;
end
Algoritmo 5: Fun cao BSP percurso: algoritmo de desenho na ordem
sequenciada pela profundidade.
9.3.2 Algoritmo de Z-buer
O algoritmo de visibilidade de superfcies mais difundido entre as placas
de vdeo e o algoritmo de z-buer proposto por Edwin Catmull em 1975.
Ele consiste em colorir cada pixel com a cor da faceta que estiver mais
pr oximo do observador. Apos transformarmos as guras geometricas para o
espa co da camera/normalizado, a avalia cao da profundidade de cada ponto
em rela cao ao observador pode ser diretamente pelos valores da coordenada
n. Portanto, e o algoritmo mais simples para ser implementado tanto em
software quanto em hardware. Por outro lado, e o algoritmo que tem maior
custo de mem oria. Alem da usual mem oria de exibi cao, e necessaria uma
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 203
(a)
(b)
Figura 9.13: Conte udo da: (a) mem oria de exibi cao; (b) mem oria de pro-
fundidade (Fonte: http://en.wikipedia.org/wiki/Z-buer).
area adicional, conhecida como mem oria de profundidade ou z-buer em
ingles, para armazenar o valor de profundidade do ponto desenhado em cada
pixel . Antes de desenhar a cor de uma nova faceta em um pixel , compara-
se o valor de profundidade do novo ponto com o valor de profundidade
armazenado em z-buer. Caso o valor for menor, a cor e substituda pela cor
da nova faceta e o valor no z-buer atualizado pelo valor de profundidade
desse novo ponto. Figura 9.13 visualiza o conte udo das duas mem orias
de uma mesma cena. Observe na Figura 9.13.(b) que os pixels contendo
pontos mais pr oximos do observador tem um tom de cinza mais escuro (com
coordenada n menor).
O seguinte pseudo-codigo sintetiza o procedimento de desenho pela tecnica
de z-buer.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 204
Input: cena,memoria de profundidade,mem oria de exibi cao
Output: desenho de facetas
Transformar a cena para o espa co da camera/normalizado ;
Inicializa cada entrada da mem oria de profundidade com ;
Inicializa cada entrada da mem oria de exibi cao com a cor de fundo ;
foreach polgono do
foreach pixel (i,j) em que a faceta e projetada do
if valor em (i,j) do z-buer valor n do ponto projetado then
escrever a cor da faceta na posi cao (i,j) da mem oria de
exibi cao;
escrever o valor n na posi cao (i,j) da mem oria de
profundidade;
end
end
end
Algoritmo 6: Fun cao z buer: algoritmo de desenho pela tecnica de z-
buer.
A grande vantagem do algoritmo de z-buer e que, a custo de uma
mem oria maior, consegue-se evitar ordena cao no espa co da camera. Adicio-
nalmente, e possvel explorar a coerencia de profundidade para determinar
recorrentemente os valores de profundidade da faceta projetada. Por isso,
o algoritmo de z-buer e muito utilizado em conjunto com o algoritmo de
varredura, descrito na se cao 10.2.3, para determinar corretamente a faceta
que deve ser visvel em cada pixel.
Considere que a equa cao do plano que contem uma faceta poligonal seja
representada implicitamente pela express ao
n
x
x +n
y
y +n
z
z +d = 0.
Segue-se que a coordenada z de cada amostra (x
k
, y
k
) e expressa por
z
k
=
d n
x
x
k
n
y
y
k
n
z
. (9.2)
A coordenada z do seu pixel vizinho (x
k
+ 1, y
k
) pode ser obtida de forma
recorrente a partir de z
k
z
k+1
=
d n
x
(x
k
+ 1) n
y
y
k
n
z
= z
k
n
x
n
z
.
E como podemos obter a coordenada z ao passar de uma linha de varredura
para a outra? Basta substituir as coordenadas da amosta (x, y
k
+1) na Eq.
9.2.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 205
Plano
de
projeo
va
rre
d
u
ra
d
e
P
la
n
o
z
y
x
z
Plano
de
varredura
x
x
1
x
2
x
3
x
4
(a) (b)
Figura 9.14: Scanline: (a) visao 3D; (b) visao 2D.
9.3.3 Algoritmo de Scanline com Z-buer
O algoritmo de scanline com z-buer pode ser considerado um aprimora-
mento do algoritmo de scanline. Veremos na se cao 10.2.3 que a convers ao
da lista de exibi cao de guras geometricas 2D (se cao 1.3) em imagens dis-
cretas pode ocorrer, linha por linha, na ordem como e feita a varredura dos
dispositivos de sada raster. Em cada linha, os pontos extremos dos interva-
los dos polgonos que interceptam com ela s ao ordenados e os intervalos entre
eles s ao desenhados alternadamente na mem oria de exibi cao constituda por
uma unica linha de varredura. Esta forma de desenho foi muito utilizada
antes da mem oria ser economicamente acessvel.
Ao desenhar, por linha, as guras geometricas 3D disponveis na lista de
exibi cao, o problema de desenhar a proje cao de uma cena 3D (Figura 9.14.(a))
pode ser tambem reduzido para um problema de desenhar os segmentos (Fi-
gura 9.14.(b)), com a diferen ca de que n ao se pode mais simplesmente dese-
nhar alternadamente os intervalos entre os pontos extremos. Por exemplo,
na Figura 9.14.(b), os pontos extremos dividem a extensao da coordenada x
em intervalos (, x
1
), (x
1
, x
2
), (x
2
, x
3
), (x
3
, x
4
), (x
4
, ). Se desenharmos
alternadamente estes intervalos, o intervalo (x
2
, x
3
) n ao ser a desenhado. O
resultado ser a incorreto. Baseado na proposta de Catmull, Myers sugeriu
em 1975 alocar mais um vetor para cada linha em processamento. Este
vetor e iniciado com valor m aximo de profundidade e controla a escrita do
conte udo da mem oria de exibi cao com base nas compara coes entre o valor de
profundidade dos pixels e o valor de profundidade das amostras do polgono,
como no algoritmo de z-buer.
Captulo 10
Amostragem
O objetivo deste captulo e mostrar como um computador consegue trans-
formar, com um n umero mnimo possvel de artefatos visuais, a proje cao
de uma cena 3D em um padrao de arranjo de amostras compatvel com o
padrao de pixels dos dispositivos de sada. Apos a leitura deste captulo,
voce deve ser capaz de
diferenciar os algoritmos de rasteriza cao da tecnica de tra cado de raio;
distinguir e justicar casos 3D para os quais algoritmos de rasteriza cao
conseguem se facilmente adaptar;
listar as inova coes conceituais introduzidas pelos algoritmos de ras-
teriza cao;
diferenciar o algoritmo de Bresenham e o algoritmo de ponto medio;
aplicar o algoritmo de ponto medio e scan-line com z-buer;
distinguir em que espa co ocorrem os processamentos ao longo de um
uxo de imageamento, considerando os diferentes modelos de ilumina cao,
tonaliza cao e algoritmos de visibilidade.
modelar uma imagem no domnio espacial e no domnio espectral;
explicar o fenomeno aliasing e formas para atenu a-lo.
Na se cao 1.3 vimos que, essencialmente, existem duas classes de dispo-
sitivos para exibi cao de imagens: os vetoriais e os raster. Um dispositivo
206
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 207
(a) (b)
Figura 10.1: Rasteria cao: (a) imagem contnua; (b) imagem discreta.
(Fonte: http://freespace.virgin.net/hugo.elias/graphics/x polysc.htm
de sada vetorial consegue processar uma lista de exibi cao contendo primi-
tivas gr acas aleatoriamente ordenadas; enquanto um dispositivo de sada
raster requer que os dados sejam organizados em um arranjo bidimensio-
nal de pontos endere caveis denominados pixels (picture elements). Assim,
para exibir a imagem contnua ou vetorial de um polgono tonalizado e
visvel em um dispositivo raster precisamos transforma-la em um conjunto
de amostras (i, j), onde i e j s ao coordenadas inteiras de cada elemento
desse arranjo (Figura 10.1). Este processo particular de amostragem e de-
nominado rasteriza cao, em ingles rasterization ou scan-conversion, e ele
envolve duas decis oes: em qual pixel deve-se desenhar (sele cao das amostras
e truncamento das coordenadas em ponto utuante destas amostras para
coordenadas inteiras) e com qual cor. Veremos na se cao 10.2 os principais
algoritmos de rasteriza cao.
Alem da abordagem geometrica, e util em sistemas de informa cao gr aca
considerar a discretiza cao de uma imagem sob o ponto de vista espectral.
Na abordagem espectral a luminancia I(u, v) de uma imagem e represen-
tada como uma integral/um somat orio de componentes de sinais senoidais
e cossenoidais ao longo das coordenadas u e v, como ilustra Figura 10.2. Na
se cao 10.3 faremos uma breve introdu cao a este paradigma de representa cao.
Ao ver uma imagem no espa co espectral, o computador consegue saber
a causa das varia coes abruptas das cores entre pixels adjacentes e atenuar
uma serie de artefatos, aplicando tecnicas de Processamento de Sinais. Na
se cao 10.4 s ao apresentadas tres tecnicas pr aticas.
Antes de apresentarmos algoritmos de convers ao de imagens contnuas
em imagens discretas, e conveniente introduzirmos alguns conceitos relacio-
nados com imagens discretas na se cao 10.1.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 208
Figura 10.2: Imagem digitalizada (em cima) no espectro de Fourier (em-
baixo, esquerda) e seu angulo de fase (embaixo, direita).
10.1 Imagens Discretas
Uma imagem discreta pode ser considerada um reticulado de pixels, a cada
qual e associada uma luminancia capaz de produzir um certo estmulo crom atico
no olho humano. O pixel e a menor unidade endere cavel por um par de co-
ordenadas inteiras (i, j). A discretiza cao de uma imagem contnua, com
pontos em coordenadas reais, em um espa co discreto, com pontos em co-
ordenadas inteiras, requer adequa cao de alguns conceitos fundamentais no
estudo de espa cos reais para o estudo de um espa co de reticulado.
Analogo ao espa co metrico, podemos denir uma fun cao de dist ancia
entre dois pixels (i, j) e (l, m) no espa co discreto. Entre as medidas de
distancia mais conhecidas citamos (Figura 10.3)
distancia Euclideana : D
E
((i, j), (l, m)) =
_
(i l)
2
+ (j m)
2
.
distancia de quarteirao (city-block distance): D
4
((i, j), (l, m)) = |i l| +
|j m|.
distancia de xadrez (chessboard distance): D
8
((i, j), (l, m)) = max{|i
l|, |j m|}
Em um espa co metrico M, a vizinhan ca de um ponto p e uma bola aberta
B(p; r) = {x M/d(p, x) < r}, onde d(p, x) e a dist ancia euclidiana entre os
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 209
(i,j)
(l,m)
Quarteiro
Euclideana
Xadrez
Figura 10.3: Medidas de dist ancia enre dois pixels (i, j) e (l, m).
vizinhana
r
vizinhana vizinhana vizinhana
(a) (b) (c) (d)
Figura 10.4: Vizinhan ca: (a) disco aberto no espa co contnuo; (b) vizinhos-
de-4; (c) vizinhos diagonais; (d) vizinhos-de-8.
pontos p e x . No caso de uma imagem bi-dimensional, a vizinhan ca de um
ponto e um disco aberto (Figura 10.4.(a)). Por outro lado, em um espa co
discreto, a vizinhan ca de um pixel e constituda por, no m aximo, 8 pixels.
Dizemos que dois pixels p e q s ao vizinhos-de-4 quando eles satisfazem
a rela cao D
4
(p, q) = 1 (Figura 10.4.(b)). O conjunto de pixels vizinhos-
de-4 de um pixel p e denominado vizinhan ca-de-4 de p e representado
por N
4
(p). Dois pixels s ao chamados vizinhos-de-8 se eles satisfazem a
igualdade D
8
(p, q) = 1 (Figura 10.4.(c)). O conjunto de pixels vizinhos-de-8
associados a um pixel p e denominado vizinhan ca-de-8 de p e representado
por N
8
(p). Ele inclui N
4
(p) e os restantes vizinhos diagonais N
D
(p).
Um espa co metrico e conexo quando se pode passar de um qualquer dos
seus pontos para outro por um movimento contnuo, sem sair do espa co.
Em outras palavras, para dois pontos quaisquer existe sempre um cami-
nho no espa co entre eles. Analogamente, no espa co discreto, um subcon-
junto S de pixels e um componente conexo, se para dois pixels quaisquer
p, q S existe um caminho em S entre eles. Como temos agora tres tipos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 210
0 2 1
0 1 0
1 0 1
0 2 1
0 1 0
1 0 1
0 2 1
0 1 0
1 0 1
0 2 1
0 1 0
1 0 1
(a) (b) (c) (d)
Figura 10.5: Conectividade: (a) subespa co S com valores {1,2}; (b)
conectado-de-4; (c) conectado-de-8; (d) conectado-de-m.
de vizinhan ca, N
4
(p), N
D
(p) e N
8
(p), distinguem-se tres tipos de caminhos,
dependendo de como os pixels vizinhos do caminho est ao conectados. Tipi-
camente, um subespa co S e caracterizado pelos valores dos pixels, como por
exemplo a luminancia. Dizemos, entao que dois pixels p e q s ao
conectados-de-4 : se p e q possuem valores do conjunto V e q N
4
(p)
(Figura 10.5.(b)).
conectados-de-8 : se p e q possuem valores do conjunto V e q N
8
(p)
(Figura 10.5.(c)).
conectados-de-m : se p e q possuem valores do conjunto V , e q N
4
(p),
ou entao q N
D
(p) e N
4
(p) N
4
(q) = (Figura 10.5.(d)).
Vale ressaltar aqui que um componente conexo sob a conectividade-de-8
pode n ao o ser pela conectividade-de-4, como ilustra a Figura 10.6. Observe
que os pixels em preto, que correspondem a uma circunferencia rasterizada,
s ao conectados-de-8, mas n ao s ao conectados-de-4. Se a conectividade-de-4
tivesse sido escolhida para avaliar a conexidade da imagem formada pelos
pixels pretos, teramos concludo que ela e uma gura desconexa. Isso n ao
corresponderia ao fato real, pois a circunferencia e uma gura conexa. As-
sim, a escolha do tipo de conectividade a ser utilizado para avaliar a conexi-
dade de uma gura discreta deve ser muito criteriosa para evitar conclusoes
falsas.
Dois pixels vizinhos s ao adjacentes se eles forem conectados. Como
no espa co discreto s ao denidos tres tipos de conectividade, distinguimos
tres tipos de adjacencia: adjacencia-de-4, adjacencia-de-8 e adjacencia-de-
m. Dois componentes S
1
e S
2
de uma imagem s ao adjacentes, se eles tiverem
pixels adjacentes.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 211
Figura 10.6: Circunferencia.
10.2 Rasterizacao
Os primeiros algoritmos de rasteriza cao foram desenvolvidos com o simples
intuito de converter guras geometricas representadas em um espa co veto-
rial em um reticulado de pixels. Essencialmente, a ideia consiste em so-
brepor a gura vetorial sobre o reticulado de pixels e mapear o centr oide
de cada pixel para um ponto da gura geometrica, procurando preservar a
conectividade e a adjacencia entre as amostras como mostra Figura 10.1.
Quem ja n ao viu um trabalho em ponto-de-cruz ou um desenho em papel
quadriculado? O procedimento de convers ao e algo que os homens ja conhe-
ciam h a muito tempo. A pergunta que se colocava e como um computador
consegue determinar esta sobreposi cao de forma eciente? Vale ressaltar
que, diferentemente da tecnica de tra cado de raio que ocorre no espa co de
universo (Se cao 8.5), os algoritmos de rasteriza cao consideram que as gu-
ras geometricas estejam no espa co de dispositivo DC (Se cao 5.4.4). Nesta
se cao vamos apresentar os principais algoritmos de rasteriza cao pelas suas
inova coes conceituais.
10.2.1 Rasterizacao de Pontos
A convers ao pode ser reduzido em um problema de arredondamento de va-
lores reais para inteiros, quando as coordenadas do ponto tiverem a parte
fracionaria diferente de zero. O algoritmo de arredondamento depende da
conven cao utilizada para o endere camento dos pixels. Podemos associar as
coordenadas inteiras ao centro do pixel (Figura 10.7.(a)), ao seu canto supe-
rior esquerdo (Figura 10.7.(b)), ao canto inferior esquerdo (Figura 10.7.(c)),
ou a qualquer um outro ponto. O importante e ter em mente que se deve
optar por uma conven cao que assegure maior similaridade entre a gura ve-
torial original e a gura discretizada, pois ao converter pontos de extensao
nula para pixels com uma area nita, as coordenadas inteiras correspondem,
de fato, a m ultiplos de um pixel na vertical e na horizontal. Isso pode gerar
distor coes nas propriedades geometricas como comprimento, area e volume.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 212
5 3 4 6 13 12 11 10 9 8 7 1 2 0
0
1
2
3
4
6
7
8
5
0
1
3
2
4
5
6
8
7
9
0 1 2 3 4 5 6 7 8 9 1011121314 1 0 2 3 4 5 6 7 8 9 10111213
8
7
6
5
4
3
2
1
0
(a) (b) (c)
Figura 10.7: Endere camento de pixels: (a) centro; (b) canto esquerdo supe-
rior; (c) canto direito inferior.
Um esquema de endere camento de pixel e xar a origem do referencial
no canto inferior esquerdo e referenciar cada area de pixel pelas coor-
denadas inteiras associadas ao seu canto inferior esquerdo. Este esquema
e equivalente ao esquema esbo cado na Figura 10.7.(b). Ele evita mapea-
mento de valores fracionarios de coordenadas reais em valores inteiros, o
que propicia uma representa cao mais exata de guras geometricas vetori-
ais. Adicionalmente, ele simplica o controle de consistencia, em termos de
preserva cao das propriedades geometricas, durante o processamento de al-
goritmos de rasteriza cao. Por exemplo, ao rasterizar um segmento de (1, 1)
a (5, 5), podemos utilizar simplesmente as condi coes de x [1, 5) e y [1, 5)
para assegurar que o segmento rasterizado tenha a extensao de 4 unidades
de medida.
10.2.2 Rasterizacao de Segmentos
Na rasteriza cao de curvas, alem do problema de arrendodamento, deve-se
preocupar com a posi cao relativa dos pixels adjacentes para que o resultado
seja uma boa aproxima cao da forma original da gura geometrica. Para au-
mentar a eciencia, os algoritmos mais conhecidos s ao recorrentes: dado
o primeiro ponto, os outros pontos subsequentes s ao obtidos em fun cao do
ponto anterior dando passos de um pixel, para evitar a gera cao de um con-
junto de pontos de mesmos atributos gr acos (por exemplo, mesma cor)
mapeado em um mesmo pixel .
Para digitalizar uma reta dada pela express ao
y =
y
x
x +b
dois algoritmos mais conhecidos s ao:
algoritmo de analisador do diferencial digital (DDA digital dif-
ferential analyzer) e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 213
x
k
x
k
+ 1x
k
+ 2x
k
+ 3x
k
+ 4
(x
k
, y
k
)
(x
k
+ 1, y
k
+m)
Figura 10.8: Algoritmo DDA.
algoritmo de Bresenham.
Na pr atica, o algoritmo mais utilizado e uma variante do algoritmo de
Bresenham conhecido como algoritmo de ponto medio.
Algoritmo DDA
No DDA, como o nome ja disse, o incremento nas coordenadas de um ponto
(x
k
, y
k
) para obter o ponto subsequente (x
k+1
, y
k+1
) e dado em fun cao do
diferencial
m =
y
x
=
y
k+1
y
k
x
k+1
x
k
.
Para m 1, as coordenadas x crescem mais rapidamente que as coordenadas
y. Portanto, a amostragem e feita incrementando unitariamente na dire cao
x. Com isso,
y
k+1
= y
k
+m.
Se m > 1 faz-se incremento unit ario na dire cao y. Neste caso temos
x
k+1
= x
k
+
1
m
.
Algoritmo de Bresenham
O algoritmo de Bresenham, desenvolvido em 1965, consegue rasterizar uma
linha somente com computa c oes inteiras incrementais. O incremento
e condicionado `a compara cao das dist ancias entre os pixels vizinhos e a
reta.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 214
y
d
1
d
2
x
k
x
k
+ 1
y
k
y
k
+ 1
xk xk+1
y
d2
d1
yk+1
yk
(a) (b)
Figura 10.9: Inclina cao de reta (a) positiva e (b) negativa.
Se m 1, ou seja |y| < |x|, y > 0 e x > 0, o ponto (x
k+1
, y)
= (x
k
+ 1, y), subsequente ao ponto (x
k
, y
k
), deve estar entre (x
k+1
, y
k
) e
(x
k+1
, y
k+1
) (Figura 10.9.(a)).
Denindo d
1
= |y y
k
| e d
2
= |(y
k
+ 1) y|, temos
d
1
d
2
= (
y
x
x +b) y
k
y
k+1
+ (
y
x
x +b)
= 2
y
x
(x
k
+ 1) 2y
k
+ 2b 1
Como x > 0, basta analisarmos o sinal da diferen ca dos erros
p
k
= x(d
1
d
2
) = 2yx
k
+ 2y 2xy
k
x + 2bx
= 2yx
k
2xy
k
+ (2y + 2bx x).
para concluirmos se devemos incrementar, ou n ao, a coordenada y, ou seja,
p
k
0 y
k+1
= y
k
+ 1
p
k
< 0 y
k+1
= y
k
(10.1)
Agora, vamos ver uma forma eciente para determinar p
k
para cada pixel
k, envolvendo somente somas e subtra coes de constantes, x, 2x, 2y.
Fazendo c = (2y + 2bx x), que e um valor constante, temos
p
k
= 2yx
k
2xy
k
+c
e para p
k+1
, podemos derivar uma express ao recorrente
p
k+1
= 2yx
k+1
2xy
k+1
+c
= 2y(x
k
+ 1) 2xy
k+1
+ 2xy
k
2xy
k
+c
= (2yx
k
2xy
k
+c) 2x(y
k+1
y
k
) + 2y
= p
k
+ 2y 2x(y
k+1
y
k
). (10.2)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 215
Em especial,
p
0
= 2yx
0
2xy
0
+c
= 2yx
0
2x(
y
x
x
0
+b) + 2y + 2bx x
= 2y x . (10.3)
Pela Eq. 10.1 podemos simplicar ainda a Eq. 10.2, pois
p
k
0 y
k+1
= y
k
+ 1, entao p
k+1
= p
k
+ 2y 2x
p
k
< 0 y
k+1
= y
k
, entao p
k+1
= p
k
+ 2y. (10.4)
Se y < 0 e x > 0, como na Figura 10.9.(b), temos d
2
= |y (y
k
1)|
e d
1
= |y
k
y|. Assim,
d
1
d
2
= (y
k
y) (y y
k
+ 1)
= 2y
k
2y 1
= 2y
k
2(
y
x
(x
k
+ 1) +b) 1
= 2y
k
2
y
x
x
k
2
y
x
2b 1
Analogamente, como x > 0, basta analisarmos o sinal da diferen ca
dos erros
p
k
= (d
1
d
2
)x = 2yx
k
+ 2xy
k
+ (2y 2bx x).
para determinar o decremento, ou n ao, da coordenada y no ponto (x
k+1
, y
k+1
)
em reala cao ao ponto (x
k
, y
k
):
p
k
0 y
k+1
= y
k
1
p
k
< 0 y
k+1
= y
k
(10.5)
O erro p
k
para cada pixel k pode ser tambem obtido de forma recorrente.
Fazemos c
1
= (2y 2bx x), ou seja,
p
k
= 2yx
k
+ 2xy
k
+c
1
temos para p
k+1
p
k+1
= 2yx
k+1
+ 2xy
k+1
+c
1
= 2y(x
k
+ 1) + 2xy
k+1
+ 2xy
k
2xy
k
+c
1
= (2yx
k
+ 2xy
k
+c
1
) + 2x(y
k+1
y
k
) 2y
= p
k
2y + 2x(y
k+1
y
k
). (10.6)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 216
com
p
0
= 2yx
0
+ 2xy
0
+c
1
= 2yx
0
+ 2x(
y
x
x
0
+b) 2y 2bx x
= 2y x . (10.7)
Pela Eq. 10.5 podemos simplicar ainda a Eq. 10.6, pois
p
k
0 y
k+1
= y
k
1, entao p
k+1
= p
k
2y 2x
p
k
< 0 y
k+1
= y
k
, entao p
k+1
= p
k
2y. (10.8)
Observe ainda que |y| = y, entao
p
k
0 y
k+1
= y
k
1, entao p
k+1
= p
k
+ 2|y| 2x
p
k
< 0 y
k+1
= y
k
, entao p
k+1
= p
k
+ 2|y|.
com
p
0
= 2|y| x
Algoritmo de Ponto Medio
Pitteway apresentou em 1967 uma formula cao ligeiramente diferente da do
algoritmo de Bresenham, com a vantagem de ser facilmente extensvel a to-
das as conicas. Esta nova formula cao e conhecida por algoritmo de ponto
medio. Ao inves de computar recorrentmente a diferen ca dos erros para de-
cidir o incremento, ou n ao, de uma vari avel enquanto a outra varia de uma
unidade, avalia-se no algoritmo de ponto medio em que lado o ponto medio
M da vari avel dependente ca. Se o ponto medio M estiver abaixo da reta,
o pixel NE e escolhido; do contr ario, o pixel E e escolhido (Figura 10.10).
Seja f(x, y) = ax + by + c a representa cao implcita da reta e y < y,
podemos traduzir o criterio de escolha em seguintes condi coes algebricas:
Se f(x
k
+1, y
k
+0.5) 0, M = (x
k
+1, y
k
+0.5) est a acima da/sobre
reta; portanto, o pixel E e escolhido.
Se f(x
k
+1, y
k
+ 0.5) < 0, M = (x
k
+1, y
k
+ 0.5) est a abaixo da reta;
portanto, o pixel NE e escolhido.
Chamamos d
k
= f(x
k
+ 1, y
k
+ 0.5) de variavel de decisao.
De forma an aloga a diferen ca de erros, a vari avel de decis ao tambem
pode ser obtida recorrentemente. Basta observar que a vari avel na itera cao
k + 1 e
d
k+1
= f(x
k
+ 2, y
k+1
+ 0.5).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 217
NE
E
M
y
y
k
y
k
+ 1
x
k
x
k
+ 1
Figura 10.10: Alternativa de escolha: NE, ponto medio abaixo da reta e E,
ponto medio acima da reta.
Se d
k
0, entao y
k+1
= y
k
. Isso signica que
d
k+1
= f(x
k
+ 2, y
k+1
+ 0.5) = a(x
k
+ 2) +b(y
k
+ 0.5) +c
= a(x
k
+ 1) +a +b(y
k
+ 0.5) +c
= f(x
k
+ 1, y
k
+ 0.5) +a
= d
k
+a.
Para d
k
< 0, temos y
k+1
= y
k
+ 1, ou seja,
d
k+1
= f(x
k
+ 2, y
k+1
+ 0.5) = a(x
k
+ 2) +b(y
k
+ 1.5) +c
= a(x
k
+ 1) +a +b(y
k
+ 0.5) +b +c
= f(x
k
+ 1, y
k
+ 0.5) +a +b
= d
k
+a +b.
O valor inicial d
0
pode ser obtido diretamente pela express ao
d
0
= f(x
0
+ 1, y
0
+ 0.5) = a(x
0
+ 1) +b(y
0
+ 0.5) +c
= a(x
0
+ 1) +b(y
0
+ 0.5) +c
= f(x
0
, y
0
) +a + 0.5b.
(10.9)
10.2.3 Rasterizacao de Polgonos
Rasteriza cao de polgonos consiste em transformar uma regi ao plana deli-
mitada por uma sequencia fechada de segmentos em um conjunto de pixels
conexos. Tipicamente, os algoritmos para rasteriza cao de polgonos explo-
ram certos tipos de coerencia entre os pixels, a m de reduzir os passos de
processamento.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 218
Extenso
pixels da borda
5 3 1
0 2 4 6
Linha de
varredura
Figura 10.11: Linha de varredura dividida em varios intervalos.
Algoritmo de Scanline
O algoritmo mais conhecido e o algoritmo de varredura por linha (scan-
line), provavelmente desenvolvido por Wylie et al. em 1967. Este algoritmo
explora varios tipos de coerencia espacial apresentadas na se cao 9.1, e
consegue determinar incrementalmente, linha por linha, os pixels dentro
de uma regi ao, com uso dos seguintes fatos:
1. os pixels das arestas da borda da regi ao podem ser obtidos com uso
dos algoritmos recorrentes de rasteriza cao de linhas (se cao 10.2.2);
2. numa linha de varredura os pixels podem ser divididos em distintas
extensoes (extent) separadas por pixels correspondentes `as arestas da
borda. A classica cao de pertinencia das extensoes `a area de interesse
s o muda nestes pixels divisorios ((Figura 10.11)); e
3. a classica cao de pertinencia das extensoes identicadas em cada linha
se alterna ao longo de uma linha de varredura.
O algoritmo inicia denindo os y-buckets para cada linha de varredura.
Um y-bucket associado a uma linha contem informa coes de uma aresta do
polgono que a intercepta. S ao armazenados no y-bucket a coordenada y do
ponto extremo que tem maior valor de y (y
max
), a coordenada x do ponto
extremo que tem menor valor de y (x
min
) e a inclina cao da reta (
1
m
). O
conjunto de y-buckets e denominado edge table. Figura 10.12 apresenta um
esbo co desta tabela.
Com uso das informa c oes contidas nos y-buckets, e possvel preencher
a regi ao `a medida que se processe sequencialmente as linhas de varredura
come cando com a linha 0. Para cada linha de varredura y, os y-buckets
ativos s ao ordenados de acordo com os valores x no seu campo x
min
para
poder fazer o preenchimento da linha de forma alternada entre os intervalos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 219
10 0.8 14 11 106/7
0
2
4
11
12
13
16
17
15
14
10
9
8
7
6
5
3
1
(10,4)
(10,10)
(4,11)
(18,14)
10 2 14 11 10 6
ybucket
Edge Table (ET)
Figura 10.12: Algoritmo de scanline: tabela de arestas.
de segmento delimitados por estes pontos. O conjunto de y-buckets ativos
associados `a linha de varredura corrente e conhecida como lista ativa (active
edge table). Finalmente, antes de passar para a pr oxima linha, remover
da lista ativa os y-buckets que tiverem y + 1 > y
max
. Para os buckets
remanescentes, substituir o valor x no seu campo x
min
por x +
x
y
. Ao
passar para a pr oxima linha, e adicionada `a lista ativa os y-buckets da linha,
e o procedimento e repetido ate que a tabela de arestas que vazia.
Podemos integrar ao algoritmo de varredura por linha a tonaliza cao de
Gouraud. O computo da cor em cada pixel pode ser feito incrementalmente,
se as cores nos pontos P
1
= (x
1
, y
1
, z
1
, 1) e P
2
= (x
2
, y
2
, z
2
, 1) forem conhe-
cidas. Sejam C
1
= (R
1
, G
1
, B
1
) e C
2
= (R
2
, G
2
, B
2
) as cores em P
1
e P
2
,
respectivamente. Pela interpola cao linear, obtem-se a cor
C(t) = (1 t)C
1
+tC
2
para o ponto
P(t) = (1 t)P
1
+tP
2
.
Numa mesma linha de varredura, o valor t
k+1
deve ser em fun cao do incre-
mento de X
X
k
+ 1 = x
1
+t
k+1
(x
2
x
1
)
ou seja
(x
1
+t
k
(x
2
x
1
)) + 1 = x
1
+t
k+1
(x
2
x
1
).
Da podemos chegar a
t
k+1
= t
k
+
1
x
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 220
E, de forma an aloga, podemos derivar o valor t
k+1
na linha de varredura
k + 1 em rela cao ao valor t
k
da linha anterior k
t
k+1
= t
k
+
1
y
.
Algoritmo de Preenchimento
Quando uma regi ao e rasterizada e queremos trocar, por exemplo, a sua cor
de preenchimento por uma outra, podemos utilizar algoritmos recursivos
com base em preenchimento a partir de uma semente. Um exemplo
desta classe de algoritmos e o algoritmo ood-ll . O algoritmo percorre a
partir da semente todos os pixels conectados que tiverem a cor antiga e
troca-la pela nova de acordo com o seguinte procedimento:
Input: Semente:(s
x
, s
y
)
Output: polgono preenchido
empilhe a semente (s
x
, s
y
);
while pilha n ao e vazia do
Desempilhe o topo da pilha: (x,y) ;
if I(x,y) = I(s
x
, s
y
) then
I(x,y) = I(s
x
, s
y
) ;
end
Empilhe os pixels adjacentes ;
end
Algoritmo 7: Fun cao Floodll: algoritmo de preenchimento de area.
O resultado do procedimento depende do tipo de conectividade conside-
rado. Para a conectividade-de-4, no m aximo 4 pixels adjacentes s ao empi-
lhados em cada itera cao e para a conectividade-de-8, 8 pixels. Um polgono,
como o mostrado na Figura 10.13.(b), s o poder a ser corretamente preenchido
com o novo atributo se for considerada a conectividade-de-8.
10.2.4 Rasterizacao de Modelos 2.5D
Vimos na se cao 5.4.4 que ao transformar os vertices do espa co NDC para
NC podemos preservar a coordenada n, armazenando-a como um atributo
adicional do pixel . Esta coordenada corresponde `a profundidade da amos-
tra projetada no pixel em rela cao ao observador (Figura 10.14). Conforme
vimos na se cao 9.3.3, com esta informa cao adicional o computador consegue
resolver corretamente o problema de oclus ao dos polgonos durante a sua
rasteriza cao.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 221
(a) (b)
Figura 10.13: Algoritmo de preenchimento: (a) conectado-de-4; (b)
conectado-de-8.
z
y
x
de viso
Volume
exibio
Janela de
linha de varredura
Figura 10.14: Raseriza cao de modelos 2
1
2
D.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 222
Figura 10.15: Artefatos na discretiza cao: bordas serrilhadas (Fonte:
http://msdn.microsoft.com/en-us/library/bb172267(VS.85).aspx.
u
v0
v
0
u
I(u, v
0
)
(a) (b)
Figura 10.16: Imagem: (a) intensidade e (b) gr aco fun cao de I(u, v
0
).
10.3 Analise Espectral
Um dos problemas encontrados nos processos de rasteriza cao apresentados
e a presen ca de bordas serrilhadas, jagged ou stair step pattern em ingles,
nas imagens, devido `as decis oes bin arias (acendeapaga) em rela cao `a lu-
min ancia de cada pixel da tela e `as possveis transi coes abruptas de lu-
min ancia entre dois pixels vizinhos, como ilustra Figura 10.15.
E natural
se perguntar se h a alguma forma de eliminar, ou pelo menos atenuar, tais
efeitos. Veremos nesta se cao que esta pergunta pode ser respondida com os
conceitos do Processamento de Sinais.
Uma imagem pode ser representada como uma fun cao contnua I(u, v)
que mapeia um domnio espacial [u
min
, u
max
] [v
min
, v
max
] aos valores de
luminancia. Figura 10.16.(b) mostra o gr aco da fun cao I(u, v
0
) ao longo
da linha v = v
0
.
No processo de rasteriza cao, a fun cao de intensidade luminosa e amos-
trada em alguns pontos (u, v), transformando-se numa fun cao discreta.
Esta fun cao discreta contem somente as intensidades dos pontos amostra-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 223
(a) (b) (c)
Figura 10.17: Amostragem: (a) sub-amostragem; (b) na frequencia de Ny-
quist; e (c) super-amostragem.
dos, podendo haver perda da informa cao de varia cao das intensidades entre
duas amostras vizinhas. Existe uma frequencia de amostragem para a qual
n ao haja esta perda de informa cao? Esta pergunta pode ser respondida
mais facilmente com uso da transformada de Fourier de I(u, v). Uma
transformada de Fourier relaciona esta fun cao denida no domnio espacial
para o domnio de frequencia de varia cao das luminancias w
u
e w
v
I(w
u
, w
v
) =
_
f(u) cos 2w
u
udu B(w
u
) =
_
f(u) sin 2w
u
udu.
Em forma complexa,
f(u) =
_
F(w
u
)e
j2wuu
dw
u
, (10.12)
onde
F(w
u
) =
_
f(u)e
j2wuu
du. (10.13)
Denominamos F(w
u
) a transformada de Fourier da fun cao f(u), F{f(u)},
e dizemos que f(u) e a transformada de Fourier inversa de F(w
u
). f(u)
e F(w
u
) s ao fun coes complexas, contendo dois componentes: um real r(u) e
(w
u
) e um imagin ario i(u) e (w
u
), respectivamente.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 226
(a) (b)
(c) (d)
(e) (f)
Figura 10.20: Aproxima c ao de um sinal por soma de harmonicas: (a)
componente dc; (b) 11 harmonica; (c) 5 harmonicas; (d) 20 harmonicas;
(e) 40 harmonicas; (f) 160 harmonicas (Fonte: http://www.jhu.edu/ sig-
nals/fourier2/).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 227
Sendo Eq. 10.12 uma superposi cao de sinais de todas as freq uencias, ela
e tambem conhecida como uma representa cao espectral de f(x), cujo
espectro de Fourier e
|F(w
u
)| =
_
2
(w
u
) +
2
(w
u
) (10.14)
e o angulo de fase,
(w
u
) = tan
1
(w
u
)
R(w
u
)
. (10.15)
O espectro de freq uencia e muito utilizado para an alise visual de f(u).
A densidade espectral |F(w
u
)|
2
mede a intensidade de f(u) no inter-
valo de freq uencia entre w
u
e w
u
+ W
u
e a integral
_
|F(w
u
)|
2
dw (10.16)
pode ser interpretada como a energia ou potencia do sistema f(u).
Algumas propriedades da transformada de Fourier:
Deslocamento: F{f(u a)} = e
j2awu
F{f(u)}.
Linearidade: F{af(u) +bg(u)} = aF{f(u)} +bF{g(u)}.
Deriva cao: F{
d
n
f(u)
du
n
} = (j2w
u
)
n
F{f(u)}.
Convolu cao: F{f(u) g(u)} = F{f(u)}F{g(u)}.
Multiplica cao: F{f(u)g(u)} = F{f(u)} F{g(u)}.
No caso de imagens, que contem duas vari aveis, e aplicada uma transfor-
mada de Fourier bi-dimensional. Considerando que todas as imagens I(u, v)
satisfa cam a condi cao de continuidade e de integrabilidade, a sua transfor-
mada de Fourier F(I(u, v)) = I(w
u
, w
v
) e dada pela Eq. 10.10. Observe que,
embora I(u, v) seja uma fun cao real, I(w
u
, w
v
) e geralmente complexa, isto
e,
I(w
u
, w
v
) = (I(w
u
, w
v
)) +j(I(w
u
, w
v
)),
cuja amplitude/magnitude e dada por
|I(w
u
, w
v
)| =
_
2
(I(w
u
, w
v
)) +
2
(I(w
u
, w
v
))
e o angulo de fase por
(w
u
, w
v
) = tg
1
(I(w
u
, w
v
))
(I(w
u
, w
v
))
,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 228
u
u
(u)
u
u
v
(u, v)
(a) (b)
Figura 10.21: Fun cao de pente: (a) uni-dimensional; (b) bi-dimensional.
A magnitude da transformada de Fourier de uma imagem indica a quan-
tidade da componente de frequencia (w
u
, w
v
) e o angulo de fase indica
onde se encontra tal componente na imagem. Muitas vezes, um r apido
exame visual da transformada de uma imagem permite ter uma no cao das
harmonicas dominantes. Figura 10.2 mostra o gr aco de magnitude e de
fase da transformada de Fourier da imagem apresentada, sendo o nvel de
cinza proporcional `a amplitude de |I(w
u
, w
v
)| e ao angulo de fase (w
u
, w
v
)
para cada par de frequencias (w
u
, w
v
).
10.3.2 Amostragem
Para obter as amostras uniformes separadas de (u, v), ou seja uma amos-
tragem pontual uniforme, basta multiplicarmos a fun cao I(u, v) por uma
fun cao pente bidimensional (u, v), em ingles comb function (Figura 10.21)
k=
j=
(u ku, v jv).
Ou seja,
I(u, v)
k=
j=
(uku, vjv) =
k=
j=
I(ku, jv)(uku, vjv).
Pelo teorema da convolu cao, a transformada deste produto equivale `a
convolu cao das suas transformadas correspondentes, F{(u, v)} e I(w
u
, w
v
),
ou seja,
F(I(u, v)(u, v)) = F{(u, v)} I(w
u
, w
v
).
Isso equivale a integrar as copias de I(w
u
, w
v
), transladadas e ponderadas
por F{(u, v)}. Se a fun cao I(w
u
, w
v
) for de banda limitada, ou seja, ela
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 229
u
I(u)
u
u
(u)
u
u
I(u)(u)
(a) (b) (c)
U +U
|I(w
u
)|
w
u
w
u
1
u
|F{(u)}| |I(w
u
)|
w
u
1
u
(d) (e) (f)
Figura 10.22: Amostragem: (a c) multiplica cao do sinal I(u)
pela fun cao de pente no domnio espacial equivale a (d f)
convolu cao de I(w
u
) com F{(u)} no domnio espectral (Fonte:
http://idav.ucdavis.edu/%7Eokreylos/PhDStudies/Winter2000/SamplingTheory.html).
tem |I(w
u
, w
v
)| nulos para u fora do intervalo [U, U] e v fora do intervalo
[V, V ] e o espa camento de amostragem satiszer Eq. 10.11, o resultado
da convolu cao seria um trem bidimensional de replicas de I(w
u
, w
v
), sem
distor coes, centradas nas frequencias (2mU, 2nV ). Neste caso, a imagem
poder a ser reconstruda integralmente sem distor coes.
Figura 10.22.(c) ilustra o resultado da multiplica cao de uma fun cao uni-
dimensional I(u) com a fun cao de pente (u) no domnio espacial. Esta
opera cao corresponde `a convolu cao das transformadas de duas fun coes no
domnio espectral (Figura 10.22.(d,e)). Observe que neste caso,
1
u
= 2U e
o resultado e uma sequencia de replicas da transformada de I(u) espa cadas
de
1
u
, sem sobreposi coes.
Caso o inverso do espa camento entre as duas replicas no domnio de
frequencia for menor que a frequencia de Nyquist do sinal de intensidade
da imagem I(u, v), componentes de altas frequencias de uma replica podem
sobrepor as replicas vizinhas, tornando-as indistinguveis. Esta distor cao im-
possibilita a reconstru cao da imagem original. Este fen omeno e conhecido
como aliasing. Figura 10.23 exemplica uma situa cao em que as compo-
nentes de altas frequencias se confundem com as componentes de baixas
frequencias no espectro de frequencias, quando
1
u
< 2U.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 230
|I|
w
1
u
Figura 10.23: Aliasing.
10.3.3 Reconstrucao
Para visualizar a imagem amostrada na tela de exibi cao, o sinal discreto e
convertido em sinal anal ogico pelo esquema sample and hold. Isso corres-
ponde a realizar convolu cao do sinal discreto por uma fun cao pulso Box(u, v)
no domnio espacial. No domnio espectral esta opera cao equivale a multi-
plicar a sequencia de replicas por uma fun cao sinc(u, v), a m de extrair
uma unica replica. Mesmo que esta replica seja intacta, sem distor coes por
sobreposi coes, a fun cao de reconstru cao pode introduzir componentes de al-
tas frequencias quando a sua frequencia de corte e muito alta. Figura 10.24
ilustra o processo de reconstru cao de um sinal uni-dimensional com uso de
uma fun cao pulso em ambos os domnios. Observe que a fun cao pulso pode
introduzir falsas componentes de alta frequencia no sinal a ser reconstrudo,
alargando a sua largura de banda.
10.4 Antialiasing
Visualmente percebeu-se que os algoritmos de rasteriza cao apresentados na
se cao 10.2 s ao passveis `a gera cao de bordas serrilhadas. Na se cao 10.3 mos-
tramos, com base em Processamento de Sinais, que estas bordas serrilhadas
e um efeito de aliasing. Como podemos atenuar tais artefatos para gerar
imagens visualmente mais agrad aveis? Historicamente, a solu cao consiste
em aumentar a resolu cao da tela de exibi cao, ou seja, aumentar a taxa de
amostragem. J a que o degrau do serrilhado n ao pode ser maior que um
pixel , quanto menor o tamanho de um pixel , menos perceptveis cam os
serrilhados. Outra alternativa seria alterar o esquema de convers ao digital
anal ogico, utilizando uma fun cao de reconstru cao de banda estreita. Infeliz-
mente, ambas as solu coes n ao s ao sempre factveis, pois elas dependem do
hardware disponvel.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 231
u
u
I(u)(u) Box(u)
u
I(u)
u
u
(a) (b) (c)
|I(w
u
)|
w
u 1
u
sinc(u)
w
u
|I(w
u
)|
w
u
(d) (e) (f)
Figura 10.24: Reconstru cao: (a c) convolu cao das amostras pelo esquema
sample and hold no domnio espacial equivale a (d f) multiplica cao do sinal
sinc com trem de replicas.
Nesta se cao apresentamos tres outras alternativas. A ideia se baseia
em uma observa cao simples: quando estivermos muito afastados da tela
de exibi cao, n ao distinguimos as bordas serrilhadas. Isso decorre da nossa
limitada acuidade visual, conforme vimos na se cao 1.1. O que percebemos
de fato e o resultado da combina cao de cores de varios pixels em torno
do pixel da borda quando a imagem estiver muito distante. Portanto, uma
solu cao seria emular esta combina cao, eliminando as componentes de altas
frequencias ou atenuando as fortes transi coes de lumin ancias nas bordas,
com uso de mais de uma amostra por pixel.
Amostragem por
Area : Esta solu cao se baseia no fato de que qualquer
primitiva rasterizada ocupa, no mnimo, um pixel. Ela consiste em
ponderar a luminancia calculada para a primitiva pela raz ao da cober-
tura da primitiva no pixel e a area A do pixel
_
P
f(x, y)dxdy
A
.
Esta luminancia suavizada e entao atribuda para o pixel . Observe
as diferen cas na rasteriza cao da borda de um polgono sem e com uso
da tecnica de amostragem de area na Figura 10.25. A suaviza cao
consegue atenuar o padrao serrilhado.
Como a suaviza cao reduz altas frequencias na varia cao da luminancia
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 232
(a) (b)
Figura 10.25: Amostragem por area: (a) sem antialiasing; (b) com antiali-
asing.
Figura 10.26: Amostragem: (a) centro de pixel ; (b) super-amostragem.
dos pixels, a largura da faixa ocupada pelo espectro da imagem dimi-
nui. Isso diminui a probabilidade de aliasing.
Super-amostragem : ao inves de uma amostra, um conjunto de amos-
tras p
1
, p
2
, , p
n
s ao consideradas para cada pixel (usualmente, uma
potencia de 2) e a luminancia media destas amostras e calculada. Po-
demos considerar esta amostragem uma forma discreta da amostragem
por area, tendo um custo computacional menor. Figura 10.26 mostra
a diferen ca entre uma amostragem por pixel e super-amostragem.
Multi-amostragem : e uma otimiza cao de super-amostragem, a m de re-
duzir o seu custo computacional. Esta otimiza cao e alcan cada atraves
da diferencia cao entre os pixels da borda e os interiores, limitando a
aplica cao da tecnica de super-amostragem somente para os pixels da
borda.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 233
Figura 10.27: Imagem da Figura 10.15 com multi-amostragem.
Captulo 11
Quantiza cao
O objetivo deste captulo e mostrar como um computador, condicionado a
uma quantidade limitada de valores representaveis, consegue produzir, de
forma mais pr oxima possvel da nossa percep cao, as cores de uma imagem.
Apos a leitura deste captulo, voce deve ser capaz de
distinguir a amostragem e a quantiza cao;
distinguir os valores ou nveis de quantiza cao e as celulas de quan-
tiza cao;
caracterizar uma tecnica de meio-tom;
distinguir as tecnicas de meio-tom digital e as tecnicas de dithering/difus ao
de erro;
quantizar uma imagem em tons de cinza para os nveis de quantiza cao
pre-denidos;
aplicar tecnicas de dithering ou de Floyed-Steinberg para quantiza-
ruma imagem em tons de cinza
No universo digital a quantidade de bits disponveis para representar um
valor e limitada, requerendo aproxima cao de um intervalo innito de valores
reais por um conjunto nito de valores computacionalmente representaveis,
como vimos na se cao 7.6. Esta aproxima cao e denominada quantiza cao.
Figura 11.1 ilustra um sinal contnuo amostrado e quantizado. Compare-a
com a Figura 10.22.(c) e observe que o valor q
i
que cada amostra assume
234
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 235
Figura 11.1: Amostragem e quantiza cao de um sinal.
na Figura 11.1 n ao e exatamente igual ao seu valor original c
i
como na
Figura 10.22.(c). Os valores c
i
foram aproximados para um dos 11 valores
pre-denidos q
i
{1, 0.8, 0.6, 0.4, 0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0}.
A tecnica de quantiza cao mais trivial e o arredondamento. No caso de
luminancia, simples arredondamento dos valores dos seus componentes, sem
levar em conta a frequencia de ocorrencia de cada valor, pode resultar em
distor coes ou artefatos. Por exemplo, uma imagem, em tons de cinza, com
todos valores menores que 0.5 caria completamente preta ap os o processo de
arredondamento.
E, portanto, desejavel uma outra alternativa que apresente
as seguintes caractersticas:
1. Todas as cores representantes devem corresponder a, pelo menos, uma
cor do gamute da image, a m de minimizar a perda de informa c ao.
2. As cores representantes devem ser pr oximas das cores de maior frequencia
de ocorrencia na imagem, a m de evitar o erro de quantiza c ao.
3. As cores representantes devem ser indistintas perceptualmente, para
evitar bordas falsas ou contornos falsos. Por exemplo, se o nvel de
quantiza cao for pr oximo da resolu cao visual humana ( 50 nveis de
cinza ou 128 cores espectrais), poderemos reproduzir uma imagem
equivalente `a percebida pela nossa visao, sem nenhuma degrada cao
perceptvel. Figura 11.2 ilustra os efeitos produzidos pelo aumento
de planos de bit para representar os nveis de cinza em uma imagem.
Observe que para uma quantidade pequena de nveis de cinza surgem
transi coes abruptas nas areas de nveis de cinza suaves. Tais transi coes
s ao conhecidas como contornos falsos. Tais contornos desaparecem
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 236
(a) (b) (c) (d)
Figura 11.2: Imagem com: (a) 1 plano de bit; (b) 2 planos de bit; (c) 4
planos de bit; (d) 8 planos de bit.
completamente na Figura 11.2.(d), com 2
8
nveis de cinza.
Para o primeiro e o segundo item, e importante que tenhamos o conheci-
mento das propriedades estatsticas relevntes da imagem, como a fun cao de
distribui cao de probabilidade das cores/luminancias em uma imagem. Uma
aproxima cao desta distribui cao pode ser representada gracamente por um
histograma, como veremos na se cao 11.1. Para o terceiro item, devemos
particionar o gamute de cores em celulas de quantiza cao, mutuamente
exclusivas, que cubram cores perceptualmente indisting uveis e que tenham
contornos de quantiza cao imperceptveis. Na se cao 11.2 veremos algu-
mas tecnicas de particionamento do gamute de cores em celulas e a escolha
de uma cor representante para cada celula, ou seja, o seu nvel de quan-
tiza cao ou valor de quantiza cao. Finalmente, apresentamos na se cao 11.3
algumas tecnicas para atenuar impactos visuais da quantiza cao nas imagens
resultantes, dando impressao de um n umero maior de cores e reduzindo os
efeitos de contornos falsos.
11.1 Histograma
Histograma e amplamente utilizado na an alise e no processamento de ima-
gens. Ele nos informa a frequencia de ocorrencia de um determinado
atributo de interesse numa imagem. Um histograma de intensidade
associa a cada nvel de intensidade da imagem o seu n umero de ocorrencias,
ou seja, o n umero de pixels nos quais ele aparece.
E comum representar
um histograma por um gr aco de barras. Figura 11.3.(a) mostra o nvel de
cinza em cada pixel de uma imagem em 2
8
tons de cinza e Figura 11.3.(b),
o seu histograma correspondente. Por exemplo, o n umero de ocorrencias do
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 237
200 200 200
190 190 180 180 200 200 150
180 180
180 180 180
90
140 140 140
140
140 140 140
202 122 122 40 50 60 70
40
40
40 40
40
50 50
122 122
110
110 40 50 110
110
110
90 90 90 50 70
70
70 40
70
150
150
202
202 60 60 122
50
202
110 110
110 110 110
110
50
50
50 50 50
150
150 150 150
150 150
90
90
90
90
90
40
40
40 40 40
122
122 122 122
122 122 122 122
122
122 122 122 122 122 122
122 122
40 50 60 70 90 110 122 140 150 180 190 200 202 Intensidade
F
r
e
q
u
n
c
ia
A
b
s
o
lu
t
a
(a) (b)
Figura 11.3: Imagem: (a) nveis de cinza; (b) histograma.
nvel de cinza 122 e 22, enquanto o n umero de ocorrencias do nvel de
cinza 40 e 13.
Atraves de um histograma de intensidades podemos visualizar a distri-
bui cao das intensidades de uma imagem como um todo, e determinar, por
exemplo, as intensidades dominantes ou o grau de contraste. Em termos
da distribui cao dos valores de intensidade em um histograma, existem es-
sencialmente quatro tipos b asicos de imagens: ocorrencias concentradas na
extremidade esquerda (intensidade baixa) do histograma ou concentradas
na extremidade direita (intensidade alta), concentradas numa faixa muito
estreita de intensidades ou numa faixa muito larga, como ilustra Figura 11.4.
Para as imagens coloridas, e comum utilizar o histograma RGB para
visualizar a uni ao das ocorrencias dos valores nos tres canais de cor R (ver-
melho), G (verde) e B (azul). Ele pode estar acompanhado do histograma
de luminancia que nos proporciona uma melhor sensibilidade do contraste
e da intensidade das imagens.
11.2 Celulas e Valores de Quantizacao
Como ja mencionamos antes, o processo de quantiza cao compreende duas
etapas:
1. determina cao de celulas de quantiza cao mutuamente exclusivas; e
2. determina cao do nvel de quantiza cao para cada celula.
Estas duas etapas podem ocorrer de forma sequencial ou de forma inter-
dependente. A qualidade de um quantizador pode ser avaliada pela medida
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 238
F
r
e
q
u
n
c
i
a
Intensidades
F
r
e
q
u
n
c
i
a
Intensidades
(a) (b)
F
r
e
q
u
n
c
i
a
Intensidades
F
r
e
q
u
n
c
i
a
Intensidades
(c) (d)
Figura 11.4: Imagem: (a) escura; (b) clara; (c) de baixo contraste; (d) de
alto contraste.
Figura 11.5: Imagem colorida: histogramas (Fonte:
http://www.sphoto.com/techinfo/histograms/histograms2.htm.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 239
Intensidades
N
v
e
i
s
d
e
C
i
n
z
a
(a) (b)
Figura 11.6: Particionamento uniforme: (a)
histograma; (b) nveis de cinza (Fonte:
http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/colorreduction/index.html.
de distor cao de quantiza cao, que e dada pelo erro medio quadr atico dos
erros de quantiza cao Q de todas as cores que aparecem na imagem
Q =
_
p(c)(c)dc, (11.1)
onde p(c) e uma fun cao da frequencia de ocorrencia da cor c. Uma apro-
xima cao muito utilizada para o erro de quantiza cao (c) de uma cor c e a sua
dist ancia euclidiana em rela cao ao valor de quantiza c ao q
i
correspondente,
isto e,
(c) = |c q
i
|.
11.2.1 Quantizacao Uniforme
Uma forma mais simples e intuitiva para particionar o intervalo real I =
[a, b] de nveis de cinza em k sub-intervalos e utilizar a raz ao I =
I
k
,
de forma que I = [a, a + I) [a + I, a + 2I) [a +iI, a + (i +
1)I) [a+(k1)I, a+kI = b], como mostra Figura 11.6. Em cada
celula podemos escolher como o valor de quantiza cao a media aritmetica da
intensidade mnima e da intensidade m axima de cada subintervalo. Este
tipo de quantiza cao e conhecida como uniforme. Observe que os valores
de quantiza cao s ao escolhidos ap os o particionamento do gamute em celulas
de quantiza cao.
Estendendo para cores constitudas por 3 componentes, particionamos
cada componente independentemente. Os planos de parti cao denem no
espa co de cores varias celulas (c ubicas) de quantiza cao, cujo valor de quan-
tiza cao pode ser dado pelo centr oide de cada celula. Por legibilidade, Fi-
gura 11.7 mostra 5 fatias do cubo de cores particionado uniformemente.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 240
Figura 11.7: Particionamento uniforme de um cubo de cor.
11.2.2 Quantizacao Adaptativa
Embora simples, a quantiza cao uniforme tem a sua aplica cao muito limitada.
Dependendo da distribui cao de frequencias das cores, podemos ter uma ou
mais celulas de quantiza cao `as quais nenhuma cor do gamute da imagem
esteja associada, o que pode resultar em uma ocorrencia maior dos efeitos
de contornos falsos. Se zermos um particionamento adaptativo, em que o
tamanho de celula de quantiza cao seja fun cao da frequencia de ocorrencia
das cores, podemos diminuir a medida de distor cao dada pela Eq. 11.1.
O particionamento do gamute de uma imagem em K celulas de quan-
tiza cao pode ser feito com base em seu histograma. Pode-se, por exemplo,
escolher as K cores de maior frequencia de ocorrencia e den-las como K
nveis de quantiza cao, a priori. Neste caso, a celula de quantiza cao seria
a celula de Voronoi do diagrama de Voronoi dos K nveis de quan-
tiza cao, isto e, cada cor c numa celula de quantiza cao de nvel de quntiza cao
q
i
deve ter o seu erro de quantiza cao |c q
i
| < |c q
j
| em rela cao a qualquer
outro nvel de quantiza cao q
j
, i = j. Esta tecnica de quatiza cao e conhecida
como algoritmo de populosidade (popularity algorithm), proposto por
Heckbert em 1982. Figura 11.8 ilustra o particionamento de uma imagem
colorida, sem a componente azul, em regi oes de Voronoi a partir de 16 nveis
de quantiza cao pre-selecionados.
11.2.3 Quantizacao por Corte Mediano
O algoritmo de populosidade desconsidera as cores muito distintas dos va-
lores de quantiza cao e que apresentam baixa frequencia de ocorrencia na
imagem, podendo eliminar alguns efeitos visuais relevantes tais como high-
lighting. Como uma forma de contornar esta deciencia, Heckbert apre-
sentou em 1982 o algoritmo de corte mediano (median cut algoritm), que
consiste em particionar recursivamente o gamute de cores pela mediana da
componente que tiver maior faixa de varia coes. O processo de recursao con-
tinua ate que n ao existam mais cores da imagem original contidas em alguma
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 241
(a) (b)
Figura 11.8: Particionamento adaptativo: (a) imagem
RG, sem o canal azul; (b) regi ao de Voronoi (Fonte:
http://en.wikipedia.org/wiki/Color quantization).
celula, ou ate que seja alcan cado o n umero pre-estabelecido de celulas de
quantiza cao. Apos determinadas as celulas de quantiza cao e computado o
nvel de quantiza cao para cada uma delas. Ele pode ser a media aritmetica,
ou media ponderada em rela cao `a frequencia de ocorrencia, das cores do
gamute da imagem contidas na celula
Diferentemente do metodo de populosidade que parte da escolha dos
nveis de quantiza cao para determinar celulas de quantiza cao, a tecnica de
corte mediano computa inicialmente as celulas de quantiza cao para entao
estabelecer o nvel de quantiza cao para cada celula.
Figura 11.9 ilustra o resultado de uma parti cao por corte mediano de
uma imagem em tons de cinza. Inicialmente, calcula-se a mediana c
0
que
divide o intervalo de intensidades em dois sub-intervalos [0, c
0
] e [c
0
, c
max
],
onde c
max
e a intensidade m axima. Aplica-se, entao, o mesmo metodo de
subdivisao para cada sub-intervalo e obtem-se [0, c
10
], [c
10
, c
0
], [c
0
, c
11
] e
[c
11
, c
max
]. Em seguida, calcula-se a mediana de cada um destes intervalos
c
20
, c
21
, c
22
e c
23
para alcan car as 8 celulas de quantiza cao.
Para exemplicar, vamos quantizar a imagem da Figura 11.3.(a) em 4
nveis de quantiza cao. A primeira mediana poderia ser o nvel de cinza 120
que particiona o intervalo em [0, 120] e [120, 255]. O primeiro intervalo com
56 ocorrencias e o segundo com 52 ocorrencias. Em seguida, particionamos
cada um destes intervalos em [0, 65] e [65, 120], [120, 145] e [145, 255], res-
pectivamente. Tendo as 4 celulas de quantiza cao, escolhemos a media pon-
derada dos valores em cada celula como o seu nvel de quantiza cao. Como
resultado, temos a imagem quantizada apresentada na Figura 11.9.(b).
Quando se trata de imagens coloridas, o procedimento e o mesmo. S o
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 242
Intensidade
F
r
e
q
u
n
c
i
a
c
0
c
10
c
11
c
20
c
21
c
22
c
23
177 126
202
59.3 59.3
59.3 59.3
59.3 59.3 59.3 59.3
59.3 59.3
59.3 59.3
59.3 59.3
59.3
59.3 59.3 59.3
59.3
59.3
94.8 59.3
94.8 94.8 94.8
94.8 94.8 94.8
94.8
94.8
94.8
94.8
94.8 94.8 94.8 94.8
94.8 94.8
94.8
94.8
94.8 94.8
94.8 94.8 94.8
59.3 59.3 59.3 59.3
59.3 59.3 94.8
126
126 126 126
126 126 126 126
126 126 126 126 126 126 126 126 126
126
126 126 126 126 126 126 126 126 126
126
177 177 177 177 177
177
177 177 177
177
177
177 177
177 177 177 177 177 177 177
177 177 177
177
177
(a) (b)
Figura 11.9: Particionamento recursivo por corte mediano: (a)
histograma; (b) imagem da Figura 11.3.(a) quantizada (Fonte:
http://en.wikipedia.org/wiki/Color quantization).
que, como tem mais de uma dimensao, procura-se escolher sempre o maior
lado da celula para subdividir, como ilustra Figura 11.10.
11.3 Tecnicas de Redu cao de Contornos Falsos
A percep cao de contornos falsos depende do n umero de nveis de quan-
tiza cao. Em geral, para imagens em nveis de cinza, com uma quantiza cao
em 8 bits consegue-se evitar a percep cao destes contornos; e para imagens
coloridas, basta uma quantiza cao em 24 bits, 8 bits para cada componente.
Nesta se cao apresentamos algumas solu coes para casos em que tais n umeros
de nveis de quantiza cao n ao s ao suportados, com a nalidade de aumentar
o n umero de cores percebidas e atenuar os efeitos de contornos falsos,
atraves da redistribui cao dos erros decorrentes da quantiza cao.
11.3.1 Aproximacao do Meio-Tom
A tecnica de meio-tom (halftoning) e uma tecnica muito utilizada no passado
para impressao de jornais, revistas e livros com apenas dois tons: preto
e branco. A tecnica consiste essencialmente em utilizar pontos pretos de
tamanhos variados sobre o fundo branco de tal sorte que, quando olhados
a uma certa dist ancia, d ao a sensa cao de varios nveis de tons de cinza.
Observe na imagem detalhada da Figura 11.11 a varia cao dos pontos pretos.
Nos jornais a densidade dos pontos varia de 60 a 80 pontos por polegada e
na impressao de revistas e livros de qualidade melhor, e comum encontrar
densidade entre 110 a 200 pontos por polegada.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 243
Figura 11.10: Quantiza cao de uma ima-
gem colorida por corte mediano (Fonte:
http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/colorreduction/index.html.
Figura 11.11: Imagem em meio-tom anal ogico (Fonte:
http://cs.guc.edu.eg/courses/ Winter2007/DMET501/OnlineTutorial/ImageChapter.html.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 244
(a)
(b)
Figura 11.12: Meio-tom digital: (a) 5 nveis
de cinza; (b) 10 nveis de cinza (Fonte:
http://cs.guc.edu.eg/courses/ Winter2007/DMET501/OnlineTutorial/ImageChapter.html).
O processo de meio-tom anal ogico utiliza uma camera fotograca espe-
cial. A imagem e refotografada num lme de alto contraste sobrepondo a
ela uma tela reticulada, de forma que o lme s o e sensibilizado nos pontos
correspondentes aos n os do reticulado. Cada n o do reticulado, por sua vez,
atua como uma lente que focaliza a luz proveniente da imagem. Assim, a
area a ser sensibilizada depende do valor da luminancia recebida.
Os dispositivos utilizados para exibi cao de imagens digitais s o conse-
guem, no entanto, produzir pontos de mesmo tamanho, como os pixels dos
monitores CRT e os pontos de uma impressora matricial. Uma solu cao ado-
tada e simular o metodo de meio-tom atraves da aglomera cao de pixels
(clustered-dots) em diferentes padroes de nveis de cinza. Um grupo de nn
pixels consegue emular n
2
+1 nveis de cinza. Por exemplo, um aglomerado
de 22 e um de 33 pixels consegue emular 5 e 10 nveis de cinza, respecti-
vamente (Figura 11.12). Observe que h a um compromisso entre a resolu cao
espacial e a resolu cao radiometrica a ser emulada, uma vez que a sensa cao
de diferentes tons se deve a diferentes rela coes entre areas escuras e areas
brancas.
Certamente, para n n pixels, quanto maior e n, maior e o n umero de
possibilidades que temos para aglomerar estes pixels para formar os n
2
+ 1
padroes de cinza. Algumas regras uteis para dispor estes pixels num padrao
s ao:
1. n ao devem produzir artefatos visuais numa area grande de mesma
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 245
(a) (b)
Figura 11.13: Meio-tom digital: (a) padroes; (b) substi-
tui cao de um nvel de quantiza cao por um padrao (Fonte:
http://www.geocities.com/ResearchTriangle/Thinktank/5996/techpaps/introip/manual04.html).
intensidade;
2. o aglomerado dos pixels deve formar uma sequencia monot onica cres-
cente. Um pixel que zer parte de um nvel de quantiza cao i, faz parte
dos nveis (de cinza) maiores que i;
3. o aglomerado dos pixels deve crescer do centro para fora para dar
impressao de pontos de tamanhos vari aveis; e
4. os pixels escuros devem car adjacentes.
Figura 11.13.(a) ilustra um conjunto de 17 padroes correspondentes a 17
nveis de cinza quantizados e Figura 11.13.(b) mostra como se substitui o
nvel quantizado em cada pixel de uma imagem por um padrao composto de
16 pixels. Observe que a imagem nal tem uma resolu cao espacial 16 vezes
maior do que a imagem original.
Figura 11.14 ilustra uma imagem quantizada em 10 nveis de cinza exi-
bida pela tecnica de meio-tom digital com uma resolu cao espacial 3 vezes
maior.
11.3.2 Dithering
A aglomera cao dos pixels e importante para dispositivos que n ao conseguem
exibir pontos isolados, como impressoras laser. No caso dos monitores CRT
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 246
Figura 11.14: Imagem quantizada em 10 nveis de cinza exibida pela tecnica
de meio-tom digital (Fonte: http://fhctech.org/fhc/imaging/halftone.htm).
que conseguem exibir os pixels isoladamente, os pixels escuros n ao preci-
sam estar adjacentes para produzir uma dada percep cao de tom de cinza.
Quando se aproxima o metodo de meio-tom por conjunto de pixels escuros
n ao necessariamente adjacentes, dizemos entao, que a aproxima cao e por
dispersao de pixels. A elimina cao da restri cao dos pixels escuros carem
adjacentes permite dar `a imagem uma aparencia com maiores varia coes nos
nveis de cinza.
A tecnica mais conhecida de dispers ao de pixels e a de dither, que con-
siste em introduzir rudos na imagem para que o erro de quantiza cao seja
distribudo de forma aleatoria. Com isso, evita-se a forma cao de padroes de
textura originalmente inexistentes nas regi oes de intensidade constante. O
erro e adicionado `a imagem atraves do arrendondamento dos valores de cada
pixel ap os a compara cao destes valores com limiares pre-estabelecidos. Uma
forma compacta de representar os limiares a serem utilizados para inserir os
erros e atraves de uma m ascara de ordem n contendo a sequencia dos n
2
va-
lores de quantiza cao a serem utilizados como limiar de compara cao em cada
pixel . Os valores de quantiza cao, por sua vez, podem ser determinados por
uma das tecnicas apresentadas na se cao 11.2. Ao ladrilharmos uma imagem
com uma destas m ascaras, podemos decidir ecientemente o erro de quan-
tiza cao a ser introduzido ao zermos o arredondamento do valor original do
pixel para um dos valores exibveis.
Vamos aplicar o seguinte padrao de ordem dos valores de quantiza cao
para gerar uma imagem bin aria que aparenta conter 4 nveis de cinza na
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 247
1
1 1 1 1 1 1 0
1 1
1 1 1
1 1 1
1
1 1 1
1 1
0
1 1 1 0 0 0 1
0
0
0 0
0
0 0
0 1
1
0 0 0 0
1
0
0 0 0 0 0
1
1 0
0
1
1
0
0 0 0 0
0
1
0 0
1 1 1
0
0
0
0 0 0
1
1 1 1
1 1
0
0
0
0
0
0
0
0 0 0
1
0 0
1 1 1 1
0
1 1 1 1 1 1
1 1
0
Figura 11.15: Dithering ordenado: imagem da Figura 11.3.(a) representada
por 2 nveis de intensidade, mas aparentando 4 nveis.
imagem da Figura 11.3. Os quatro nveis de quantiza cao que utilizaremos
s ao {59.3, 94.8, 126, 177}:
0 1
2 3
Isso corresponde a ladrilhar a seguinte m ascara
59.3 94.8
126 177
sobre a imagem e comparar, pixel a pixel , os valores dos pixels com o
limiar da m ascara. Se o valor for menor que o limiar, atribui-se 0 ao
pixel , sen ao, o valor 1 e setado. O procedimento e sintetizado no seguinte
pseudo-codigo:
Input: Imagem em tons de cinza I, m ascara n n
Output: Imagem bin aria ltrada O
foreach 0 x x
max
do
foreach 0 y y
max
do
i = x mod n ;
j = y mod n ;
if I(x,y) > D(i,j) then
O
(x,y) = 1 ;
else
O
end
(x,y) = 0 ;
end
end
Algoritmo 8: Algoritmo de dithering ordenado.
Figura 11.15 mostra o resultado deste processamento.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 248
Bayer mostrou em 1973 que uma dispers ao feita de forma que a dis-
tribui cao de pixels escuros correspondentes a cada nvel de cinza ser mais
uniforme possvel minimiza a forma cao de texturas em regi oes da imagem
com intensidade constante. Ele estabeleceu ainda condi coes necessarias e su-
cientes para construir matrizes de dither de qualquer ordem. As matrizes
s ao conhecidas como matrizes de Bayer.
A matriz de Bayer de ordem 2 e dada por
D
(2)
=
_
0 2
3 1
_
Matrizes de Bayer de ordem superior podem ser obtidas de forma recor-
rente usando a rela cao
D
(n)
=
_
4D
(n/2)
+D
(2)
00
U
n/2
4D
(n/2)
+D
(2)
01
U
n/2
4D
(n/2)
+D
(2)
10
U
n/2
4D
(n/2)
+D
(2)
11
U
n/2
_
,
com
U
(n)
=
_
_
1 1 1 1
1 1 1 1
1 1 1 1
. . . . . . . . . . . . . . .
1 1 1 1
_
_
Por exemplo, a matriz de Bayer de ordem 4 e dada por
2 16 3 13
10 6 11 7
4 14 1 15
12 8 9 5
Figura 11.16 apresenta uma mesma imagem ltrada com (a) dither or-
denado e (b) dither de Bayer.
Em geral, temos varios tipos de matrizes de dither. S o para citar, uma
matriz de dither com a caracterstica de distribuir uniformemente pixels es-
curos em todas as dire coes e a matriz conhecida como quadrado m agico, pelo
fato de que as somas dos elementos das colunas, das linhas e das diagonais
s ao todas iguais a 34
_
_
0 6 9 15
11 13 2 4
7 1 14 8
12 10 5 3
_
_
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 249
(a) (b) (c)
Figura 11.16: Dithering: (a) ordenado; (b) de Bayer; (c) Floyed-Steinberg.
(Fonte: http://www.pl32.com/tutorial/sraster/sraster.htm).
11.3.3 Difusao de Erro
Diferentemente das tecnicas da se cao 11.3.2, que incluem erros de apro-
xima cao em cada pixel ao oscilar de forma aleatoria o seu valor, as tecnicas
por difus ao de erro propagam tais erros para os pixels adjacentes procurando
balance a-los. Assim, ao selecionar o nvel de quantiza cao de uma pixel, leva-
se em conta a soma do valor original do pixel e os erros herdados. Alem
disso, o erro de quantiza cao em rela cao a esta soma e computada e dis-
tribudo para os pixels vizinhos. As tecnicas existentes na literatura diferem
na distribui cao deste erro de quantiza cao.
A tecnica mais classica e a proposta por Floyd e Steinberg em 1976 que
utiliza a seguite matriz de distribui cao
Peso =
1
16
_
_
0 0 0
0 0 7
3 5 1
_
_
sempre centrada no pixel em processamento. Esta matriz de distribui cao
nos indica que ser a distribudo
7
16
j
Peso
i,j
do erro de aproxima cao para o pixel do lado direito;
5
16
j
Peso
i,j
do erro de aproxima cao para o pixel imediatamente
abaixo;
3
16
j
Peso
i,j
do erro de aproxima cao para o pixel abaixo, em dia-
gonal no lado esquerdo; e
1
16
j
Peso
i,j
do erro de aproxima cao para o pixel abaixo, em dia-
gonal no lado direito.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 250
Figura 11.16.(c) mostra uma imagem em 2 nveis de cinza com ltragem de
Floyed-Steinberg. Em pseudo-codigo, temos o seguinte procedimento:
Input: Imagem em tons de cinza I
Output: Imagem em tons de cinza I com erro difundido
foreach 0 y y
max
do
foreach 0 x x
max
do
antigo = I(x,y) ;
novo = nvel de cinza que se aproxima de I(x,y) ;
I(x,y) = novo ;
erro = antigo - novo ;
I(x+1,y) = I(x+1,y) +
7
16
*erro ;
I(x-1,y+1) = I(x-1,y+1) +
3
16
*erro ;
I(x,y+1) = I(x,y+1) +
5
16
*erro ;
I(x+1,y+1) = I(x+1,y+1) +
1
16
*erro ;
end
end
Algoritmo 9: Algoritmo de Floyed-Steinberg.
Outras duas matrizes de distribui cao de erro encontradas na literatura
s ao
Peso =
_
_
0 0 0 0 0
0 0 0 0 0
0 0 0 7 5
3 5 7 5 3
1 3 5 3 1
_
_
Peso =
_
_
0 0 0 0 0
0 0 0 0 0
0 0 0 8 4
2 4 8 4 2
1 2 4 2 1
_
_
Captulo 12
Textura
O objetivo deste captulo e introduzir os principais conceitos de textura em
Computa cao Gr aca. Apos a leitura deste captulo, voce deve ser capaz de
relacionar o conceito de textura empregado em Computa cao Gr aca
e Processamento de Imagens.
diferenciar a aplica cao do modelo de ilumina cao e o modelo de textura
em sntese de imagens para obter imagens com aparencia mais pr oxima
possvel da nossa percep cao.
conceituar os termos: texel , espa co de textura, mapeamento de tex-
tura, pre-imagem de um pixel .
relacionar espa co de textura com outros espa cos.
descrever diferentes formas de gera cao de textura e como os atributos
das texturas podem afetar os par ametros ou resultados de um modelo
de ilumina cao.
distinguir metodo direto e metodo inverso de mapeamento de textura.
descrever um uxo tpico de mapeamento de textura bi-dimensional.
entender problemas de alinhamento entre pixels e texels no mapea-
mento de textura e algumas das suas solu coes.
De modo geral, textura e a caracterstica de uma superfcie que pode ser
percebida pelos estmulos sensoriais visuais e tacteis. Quando tocarmos ou
251
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 252
(a) (b)
Figura 12.1: Analise de imagens: (a) imagem origi-
nal e (b) imagem segmentada em duas regi oes (Fonte:
http://www.mathworks.com/products/image/demos.html?-
le=/products/demos/shipping/images/ipextexturelter.html).
olharmos para um objeto, os nossos org aos dos sentidos nos permitem distin-
guir se a sua superfcie e lisa, rugosa, macia ou aspera. Uma emula cao tpica
deste reconhecimento em sistemas computacionais e particionar a imagem
em regi oes com propriedades similares usando medidas estatsticas, es-
truturais, espectrais, ou combina cao das tres. Os resultados obtidos s ao
valores numericos atraves dos quais e possvel, em muitos casos, fazer um sis-
tema digital sentir a textura dos objetos contidos na imagem (Se cao 1.1).
Neste contexto, uma textura e entendida como uma representa cao que fa-
cilite a identica cao digital das propriedades das superfcies contidas em
uma imagem (Figura 12.1).
Outro interesse em sistemas de informa cao gr aca e produzir imagens
mais pr oximas da nossa percep cao, ou seja, aquelas que consigam desper-
tar sensa coes de distintos aspectos de superfcie. Utilizando o modelo de
ilumina cao de Phong (Eq. 8.9), as imagens caram esteticamente melho-
res do que as geradas pelos modelos anteriores, mas tinham uma aparencia
pl astica. A sensa cao produzida era muito aquem do realismo desejado. Isso
e porque a percep cao da aparencia de uma superfcie est a intimamente rela-
cionada com a sua intera cao com as radia coes luminosas. Alem do material
da superfcie ser anisotropico, a geometria da superfcie e usualmente bem
irregular. Se uma superfcie plana for perfeitamente polida, as radia coes se-
riam coerentemente reetidas numa mesma dire cao (Figura 12.2.(a)); caso
contr ario, as radia coes luminosas que chegam ao observador s ao bem irre-
gulares, aparentando que em alguns pontos a intensidade luminosa reetida
e maior e em outros, menor. Neste ultimo caso, tem-se a sensa cao de uma
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 253
N L R
N
L
R
(a) (b)
Figura 12.2: Intera cao luz superfcie.
aparencia aspera ou rugosa que um modelo de ilumina cao simplicado, como
o de Phong, ainda n ao leva em conta (Figura 12.2.(b)).
Isso motivou pesquisas em diferentes paradigmas para considerar estes
detalhes de intera coes. Tecnicas como tra cado de raios, em ingles ray tra-
cing, e radiosidade, em ingles radiosity, propostas na decada 1980 se baseiam
no paradigma de ilumina cao global, acreditando que o realismo possa ser al-
can cado considerando todas as possveis intera coes de radia coes/energias
luminosas entre os objetos em uma cena. Em paralelo, com o trabalho pio-
neiro de Catmull, iniciou-se o desenvolvimento de tecnicas de textura. Estas
tecnicas, a pre co de um maior consumo de mem oria, s ao muito mais atrati-
vas em termos de custo temporal. Alem disso, elas aproveitam varios passos
do uxo de sntese de imagens baseado em modelos de iluminacao local ja
bem consolidados na epoca.
A engenhosidade da solu cao est a a forma como a modelagem de aparencia
e integrada ao uxo de sntese de imagens. Ao inves de modelar microscopi-
camente a geometria e a reet ancia das superfcies para computar de forma
mais precisa as dire coes das radia coes reetidas, alteram-se os par ametros
do modelo de ilumina cao atraves de uma textura. Os resultados visuais
s ao, em muitos casos, similares aos da nossa percep cao. Neste contexto,
uma textura consiste de um conjunto de valores que afetam os atributos
de cada fragmento de uma imagem, com a nalidade de aumentar realismo
sem onerar o procedimento sob o ponto de vista temporal. Estes valores pre-
computados s ao tipicamente organizados em um arranjo multidimensional
de texels (texture elements) em um espa co pr oprio, denominado espa co de
textura. Figura 12.3 ilustra o mapeamento de uma textura bi-dimensional
(s, t) sobre a superfcie de um objeto, proporcionando sensa c ao de um tampo
de m armore.
O foco deste captulo e a textura em sntese de imagens. Veremos na
se cao 12.1 varios tipos de textura e o seu modelamento. Em seguida, veremos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 254
y
z
x
t
s
Figura 12.3: Sntese de imagens: mapeamento de textura.
na se cao 12.2 uma arquitetura geral de mapeamento do espa co de textura
sobre os fragmentos de uma imagem de interesse para enriquecer os seus
detalhes. Pelo fato do espa co de textura e do de imagem serem discretos,
neste mapeamento inerem problemas de alinhamento exato entre os pixels
e os texels. Analisaremos com mais detalhes solu coes para mapeamento de
imagens 2D na se cao 12.3, por este ser o mais popular.
12.1 Textura
Grosso modo, podemos dizer que textura em Computa cao Gr aca e uma
tecnica simples e barata para modelar a aparencia visual de superfcies
atraves da modula cao dos valores dos par ametros de um modelo de ilu-
mina cao local. Vimos na se cao 8.3 que a cor em cada amostra de uma
superfcie e computada como soma de tres componentes: ambiente (I
a
=
k
a
I
a
), difusa (I
d
= k
d
I
d
(N L)) e especular (por exemplo a de Phong,
I
s
= k
s
I
s
(V R)
n
). Alem de dependerem do material (k
) e da fonte lu-
minosa (L
_
s
t
r
1
_
_
= M
par
_
_
x
y
z
1
_
_
.
Se a fonte de luz for pontual (Se cao 8.1), a proje cao M
per
ser a perspectiva
(Figura 12.9.(b)). Neste caso, as coordenadas no espa co de textura e no
espa co 3D s ao relacionadas por
_
_
s
t
r
_
_
_
_
qs
qt
qr
q
_
_
= M
per
_
_
x
y
z
1
_
_
.
12.1.4 Textura de Reexao
1 u
2
v
2
_
_
(
_
_
u
v
1 u
2
v
2
_
_
_
_
0
0
1
_
_
)
_
_
0
0
1
_
_
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 261
R1
R2
R3
R4
R5
Esfera
Refletora
Mapa Esfrico
P
R V
N
N(N V)
(a) (b)
Figura 12.11: Textura de reexao: (a) raios de reexao e (b) geometria de
reexao.
=
_
_
2
1 u
2
v
2
u
2
1 u
2
v
2
v
2(1 u
2
v
2
) 1
_
_
(12.2)
Observe que
R
2
x
+R
2
y
+ (R
z
+ 1)
2
= 4(1 u
2
v
2
)u
2
+ 4(1 u
2
v
2
)v
2
+ (2(1 u
2
v
2
) 1 + 1)
2
= 4(1 u
2
v
2
)u
2
+ 4(1 u
2
v
2
)v
2
+ (2(1 u
2
v
2
))
2
= 4(1 u
2
v
2
)u
2
+ 4(1 u
2
v
2
)v
2
+ 4(1 u
2
v
2
)
2
= 4(1 u
2
v
2
)(u
2
+v
2
+ 1 u
2
v
2
)
= 4(1 u
2
v
2
). (12.3)
Seguem-se entao
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
= 2
_
1 u
2
v
2
e as seguintes igualdades
R
x
=
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
u u =
R
x
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
R
y
=
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
v v =
R
y
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
.
Partindo do ponto P em dire cao do raio R e procurada na cena a su-
perfcie mais pr oxima com que o raio se intercepta. A cor da superfcie na
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 262
Figura 12.12: Uma textura de reexao sintetica (Fonte:
http://www.opengl.org/resources/code/samples/sig99/advanced99/notes/node179.html.)
intersec cao, por exemplo o ponto P da Figura 12.11.(a), e armazenada na
entrada (u, v) do arranjo de textura. O procedimento e repetido para to-
dos os pontos u
2
+ v
2
1. Observe que com este procedimento e gerado
um mapa de texels no domnio [1, 1] [1, 1]. Para passar para o espa co
de textura usual domnio [0, 1] [0, 1] s ao aplicadas ainda as seguintes
transforma coes de coordenadas do espa co (u, v) para o espa co (s, t):
s =
u + 1
2
=
R
x
2
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
+
1
2
t =
v + 1
2
=
R
y
2
_
R
2
x
+R
2
y
+ (R
z
+ 1)
2
+
1
2
(12.4)
Figura 12.12 exemplica uma textura sintetica.
12.1.5 Mapa C ubico
n
_
_
=
_
_
a b c
d e f
g h i
_
_
_
_
s
t
1
_
_
, (12.7)
onde (U, V ) = (
U
n
,
U
n
). Se estabelecermos 4 correspondencias, poderemos
obter os 9 elementos da matriz de transforma cao por tecnicas classicas, como
o metodo de elimina cao de Gauss. Este procedimento de mapeamento e
tambem conhecido como warping.
O metodo inverso e orientado ao espa co do dispositivo. A partir da
posi cao (U, V ) de um pixel , determina-se as coordenadas (s, t). Embora o
metodo direto seja mais facil para entender, na pr atica o metodo inverso
e o mais utilizado. Ele acessa cada texel em fun cao do pixel de interesse,
permitindo que ele seja prontamente integrado aos algoritmos de varredura
e de z-buer, a m de constituir um eciente uxo de sntese de imagens
foto-realistas.
Em princpio, o metodo inverso e uma transforma cao inversa da Eq. 12.7,
isto e,
_
_
s
q
_
_
=
_
_
ei fh ch bi bf ce
fg di ai cg cd af
dh eg bg ah ae bd
_
_
_
_
U
n
_
_
, (12.8)
No entanto, por requerer, no mnimo, 4 correspondencias conhecidas e por
preservar a colinearidade, os resultados nem sempre s ao visualmente satis-
fatorios. Uma segunda alternativa seria estabelecer uma correspondencia
por meio de uma superfecie parametrizada intermediaria. Determina-se, em
primeiro lugar, para cada pixel o ponto P = (x
w
, y
w
, z
w
) correspondente no
espa co geometrico atraves da transforma cao de projecao inversa. Com uso
de um projetor, e mapeado P sobre uma superfcie parametrizada cujo
domnio pode ser facilmente ajustado em uma textura. Por isso, o texel
(s, t) correspondente a P e tambem conhecido como pre-imagem do pixel .
O valor da pre-imagem e lido, processado e, nalmente, utilizado para mo-
dular os par ametros de geometria ou de material da superfcie visvel atraves
do pixel (Figura 12.16.(b)).
Nesta se cao vamos detalhar cada etapa deste metodo inverso.
12.2.1 Projecao Inversa
Vimos na se cao 5.4 que as matrizes de proje cao paralela e perspectiva s ao,
respectivamente, N
par
(Eq. 5.17) e N
per
(Eq. 5.20), e que a matriz de trans-
forma cao do volume can onico para viewport e V (Eq.5.21). Considerando
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 268
Espao de Textura
(s,t)
Espao Geomtrico
(x,y,z)
Espao de Dispositivo
(U,V)
superfcie
parametrizada
Projeo
(a)
Espao de Textura
(s,t)
Primagem
(x,y,z)
Espao de Dispositivo
(U,V)
Projeo
inversa
(x,y,z)
Projetor
Espao Geomtrico
Correspondncia
Funo de Transformao
(b)
Figura 12.16: Mapeamento: (a) direto e (b) inverso.
a divisao por coordenada homogenea em proje coes perspectivas e aplicando
na sequencia inversa estas transforma coes sobre as coordenadas (U, V, n) de
um pixel , onde (U, V ) s ao as coordenadas da tela e n e a profundidade, ob-
teremos as coordenadas (x
w
, y
w
, z
w
) do ponto correspondente no espa co de
universo.
12.2.2 Projetor
O principal objetivo deste est agio e gerar as coordenadas de textura. Quando
a gura geometrica e uma superfcie parametrizada a correspondencia e ime-
diata, como veremos na se cao 12.2.3. Em casos de superfcies complexas,
Bier e Sloan propuseram em 1986 projetar as guras geometricas em su-
perfcies intermediarias. Eles consideraram 4 superfcies: plano, cilindro,
cubo e esfera. Quais s ao as alternativas de proje cao de um ponto (x
w
, y
w
, z
w
)
sobre estas superfcies?
Raio Reetor
A proje cao pode ser na dire cao do raio reetor do raio de visaoV em rela cao
ao vetor normal N(x
w
, y
w
, z
w
) da superfcie em cada amostra (x
w
, y
w
, z
w
)
(Figura 12.17.(a))
R
i
= V2(V N(x
w
, y
w
, z
w
))N(x
w
, y
w
, z
w
)
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 269
(x
w
, y
w
, z
w
)
V
R
1
R
2
R
3
P
1
P
2
P
3
N(x
w
, y
w
, z
w
)
s
t
s
t
x
y
z
s
t
t
s
s
t
s
t
R
1
R
2
R
3
P
1
P
2
P
3
P
4
(a) (b)
Figura 12.17: Proje cao na dire cao do raio reetor: (a) mapa esferico e (b)
mapa c ubico.
sobre o ponto P
i
= (x
i
, y
i
, z
i
) da superfcie intermediaria. Em particular,
quando se trata de texturiza cao de uma superfcie especular, podemos utili-
zar o vetor R
i
para determinar diretamente as coordenadas (x, y) da esfera
(especular) intermediaria pela Eq. 12.2. Se a textura for um mapa c ubico,
conforme ilustra Figura 12.17.(b), o procedimento se desdobrar a em dois
passos, mapeando o raio reetor sobre um cubo unit ario centrado na origem
como superfcie intermediaria:
1. determina cao da face i do cubo que o raio projetor R
i
= (r
x
, r
y
, r
z
)
intercepta; e
2. projetar ortogonalmente as coordenadas (r
x
, r
y
, r
z
) sobre a face i,
zerando uma das coordenadas. Por exemplo, se o ponto de interse cao
estiver sobre a face x = 0.5, como P
3
na Figura 12.17.(b), a proje cao
ser a (r
y
, r
z
) sobre a face x = 0.5.
Centroide
A proje cao pode ser na dire cao denida pelo centr oide (C
x
, C
y
, C
z
) e o ponto
P
w
= (x
w
, y
w
, z
w
) (Figura 12.18.(a)). O ponto (x
i
, y
i
, z
i
) e a interse cao da
superfcie intermediaria e o raio de proje cao
P(t) = C +t(P
w
C).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 270
Centride
(x
w
, y
w
, z
w
)
(x
i
, y
i
, z
i
)
(x
w
, y
w
, z
w
)
(x
i
, y
i
, z
i
)
N(x
w
, y
w
, z
w
)
(x
w
, y
w
, z
w
)
(x
i
, y
i
, z
i
)
N(x
i
, y
i
, z
i
)
(a) (b) (c)
Figura 12.18: Proje cao: (a) ao longo do centr oide; (b) na dire cao do vetor
normal da gura geometrica; (c) na dire cao do vetor normal da superfcie
intermediaria.
Normal da Superfcie Original
A proje cao pode ser na dire cao da normal N(x
w
, y
w
, z
w
) (Figura 12.18.(b)).
Neste caso, o ponto (x
i
, y
i
, z
i
) e a interse cao da superfcie intermediaria e o
raio de proje cao
P(t) = p
w
+tN(x
w
, y
w
, z
w
).
Normal da Superfcie Intermediaria
A proje cao pode ser na dire cao da normal N(x
i
, y
i
, z
i
) (Figura 12.18.(c)).
Se a superfcie intermediaria for um plano com vetor normal N
P
, o ponto
(x
i
, y
i
, z
i
) e a interse cao dessa superfcie e o raio de proje cao (Figura 12.19.(a))
P(t) = p
w
tN
P
.
Se a superfcie for um cilindro, converte-se as coordenadas cartesianas (x
w
, y
w
, z
w
)
para coordenadas cilndricas (r, , h). O ponto (x
i
, y
i
, z
i
) e a interse cao
dessa superfcie e o raio de proje cao na dire cao d = (cos , sin, h) (Fi-
gura 12.19.(b))
P(t) = p
w
td.
E se for uma esfera, converte-se as coordenadas cartesianas (x
w
, y
w
, z
w
) para
coordenadas esfericas (r, , ). O ponto (x
i
, y
i
, z
i
) e a interse cao dessa su-
perfcie e o raio de proje c ao na dire cao d = (cos cos , sin cos , sin )
(Figura 12.19.(c))
P(t) = p
w
td.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 271
(a)
(b)
(c)
Figura 12.19: Proje c ao na dire cao da normal da superfcie
intermediaria: (a) plano; (b) cilindro; (c) esfera (Fonte:
http://www.siggraph.org/education/materials/HyperGraph/mapping/r wolfe/-
r wolfe mapping 2.htm.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 272
(1,0)
(0,1)
(0,0) [0,
2
]
[0,
2
]
[0, 2)
R S
R
1
S
1
Figura 12.20: Correspondencia de uma superfcie parametrizada.
12.2.3 Correspondencia
No est agio de correspondencia, tendo uma superfcie parametrizada, e ime-
diato achar a correspondencia entre as coordenadas do espa co parametrico
e as coordenadas (s, t) do espa co de textura. Vamos ilustrar o procedimento
com uma esfera representada por par ametros [0, 2) e [
2
,
2
]
x = r cos sin
y = r sin sin
z = r cos .
(12.9)
Podemos obter as coordenadas de textura atraves de uma aplica cao inversa
R
1
S
1
sobre as coordenadas (x, y, z) do espa co de universo (Figura 12.20).
A fun cao S
1
seria
= arccos(
z
r
)
= arccos(
z
r sin
).
(12.10)
Substituindo e em R
1
, chegamos nas coordenadas (s, t) do espa co de
textura
s =
2
t =
+
1
2
,
(12.11)
Mesmo no caso de proje cao de raios reetores, podemos aplicar a Eq. 12.4
para determinar as coordenadas (s, t) do espa co de textura de ambiente
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 273
esferico a partir das coordenadas (x, y) de um ponto (x, y) sobre o plano
de proje cao da esfera especular. Quando se trata de uma textura de am-
biente c ubico, a transforma cao e composta por um deslocamento e, even-
tualmente, uma reexao. Por exemplo, para o ponto P
3
da Figura 12.17, a
correspondencia seria
s = z +
1
2
t = y +
1
2
(12.12)
e para o ponto P
4
da mesma gura,
s = x +
1
2
t = y +
1
2
(12.13)
Tipicamente, o espa co de textura bi-dimensional e denido no domnio
[0, 1.0] [0, 1.0]. No entanto, se precisarmos de mais retalhos de textura
para cobrir uma area extensa, utilizando coordenadas de textura fora deste
domnio, como car a a aparencia da gura geometrica? Ela dependera de
um dos dois seguintes modos de embrulho, em ingles wrapping mode:
repeti cao: a textura ser a repetida ate cobrir toda a extensao da area. Fi-
gura 12.21.(a) mostra o efeito da repeti cao da textura do canto es-
querdo inferior da Figura 12.21.(b) nas duas dire coes.
supressao: a textura ser a suprimida fora do domnio normalizado. Fi-
gura 12.21.(b) mostra o efeito de omissao da textura fora do intervalo
[0, 1.0] na dire cao x e na dire cao y.
A tecnica de superfcie parametrizada n ao consegue gerar efeitos satis-
fatorios em superfcies fechadas, como um cubo, uma esfera, ou um cone.
Sem esticar ou comprimir alguma parte da textura, n ao e possvel ajusta-la
sobre a superfcie. Isso pode provocar distor coes indesej aveis, como ilustra
Figura 12.22. Nesta gura mostramos o resultado da imagem apresentada
na Figura 12.5.(a) aplicada sobre uma esfera. Compare o resultado com o
da Figura 12.5.(c). Observe as distor coes nos p olos da esfera!
Uma forma de solucionar as distor coes e problemas de costura nas
jun coes dos retalhos de textura e o uso da textura tri-dimensional. Em
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 274
(a) (b)
Figura 12.21: Modo de correspondencia: (a) repeti cao e (b) supress ao.
Figura 12.22: Distor cao de uma textura retangular sobre uma esfera.
analogia `a cinzela cao, a textura representaria o material bruto do qual a
forma geometrica de interesse seria esculpida. Textura tri-dimensional
mais conhecida e a do rudo de Perlin apresentado na se cao 12.1.6. Utili-
zando o procedimento proposto pelo Perlin, computa-se diretamente a partir
das coordenadas (x, y, z) as coordenadas de textura (s, t, r).
12.2.4 Funcao de Transformacao
Tipicamente, os valores armazenados em cada entrada (s, t) da textura s ao
as tres componentes de cor (R, G, B) que podem alterar os valores do pixel
correspondente em um dos seguintes modos de combina cao
substitui cao , em ingles replace, a cor do pixel e substituda pela armaze-
nada no texel ;
decalque , em ingles decal , a cor do pixel e combinada com a cor do texel ;
modula cao , em ingles modulate, a cor do pixel e modulado pela cor de
texel .
Ha ainda texturas que armazenam valores que modicam outros par ametros
do modelo de ilumina cao, como textura de bossagem. Neste caso, e ne-
cess ario ainda aplic a-los por fun coes modicadoras em algum atributo da
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 275
P
r
u
r
v
N
P
r
u
r
v
b(s, t)N
P
n
P
bs
r
u
r
v
b(s, t)N
N
N
n
P
n
b
t
(a) (b) (c)
Figura 12.23: Textura de bossagem: (a) visualiza cao do mapa; (b) vetores
originais; e (c) vetores perturbados.
superfcie antes de determinar a nova cor do pixel . Vamos ilustrar a ideia
com a textura de bossagem da se cao 12.1.2.
Supomos que o texel (s, t) do mapa de textura seja correspondente ao
ponto da superfcie P = r(x(u, v), y(u, v), z(u, v)) com normal igual a N
(Figura 12.23.(a)). A sua posi cao e perturbada com uso da textura ao longo
do vetor normal, obtendo uma nova posi cao P
n
(Figura 12.23.(b))
P
n
= P +
b(s, t)N
|N|
.
Blinn mostrou que uma boa aproxima cao para o vetor normal N
n
do ponto
deslocado seria (Figura 12.23.(c))
N
n
= N+
b
s
(Nr
u
) b
t
(Nr
v
)
|N|
,
onde r
u
e r
v
s ao as derivadas parciais da superfcies r e b
s
e b
t
s ao deriva-
das parciais da fun cao de rudo b(s, t) que podem ser obtidas ou com uma
m ascara de convolu cao (p. ex., operador de Prewitt) ou diretamente com as
diferen cas nitas
b
s
=
b(s + s, t) b(s, t)
s
b
t
=
b(s, t + t) b(s, t)
t
.
Ao inves de uma imagem, os rudos b(s, t) podem ser denidos procedural-
mente. Um exemplo simples seria uma fun cao senoidal.
12.3 Mapeamento de Espa cos Discretos
Ate agora, consideramos que o espa co de textura seja contnuo, ou seja,
para cada pixel existe sempre um texel correspondente de forma exata. Na
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 276
pixel
Imagem
Textura
texel
Textura
texel
pixel
Imagem
(a) (b)
Figura 12.24: Correspondencia texel e pixel : (a) magnica cao; (b) mini-
miza cao.
pr atica, o espa co de textura e discreto. Nem sempre a correspondencia
e 1:1. Quando as dimensoes de um texel s ao maiores do que um pixel , ele
cobre mais de um pixel (magnica cao). E se forem menores, ele cobrira uma
fra cao dos pixels (minimiza cao). A pergunta e como deve car a aparencia
da superfcie nestes casos?
12.3.1 Magnicacao
Quando se trata de magnica cao, uma solu cao mais simples e escolher a
amostra de coordenadas mais pr oximas possveis do valor (s, t) obtido, re-
sultando em uma aparencia de quadriculada, conhecida como pixelation
em ingles. Outra solu cao, com efeitos visuais mais agrad aveis, seria aplicar
uma interpola cao bilinear entre os atributos dos quatro texels vizinhos do
texel (s, t) para obter o seu atributo A(s, t). Os fatores f
s
e f
t
utilizados
para interpola cao bilinear s ao, respectivamente, s s e t t
A(s, t) = f
t
(f
s
A(s
r
, t
b
) + (1 f
s
)A(s
l
, t
b
)) +
+(1 f
t
)(f
s
A(s
r
, t
t
) + (1 f
s
)A(s
l
, t
t
))
= (1 f
s
)(1 f
t
)A(s
l
, t
b
) +f
s
(1 f
t
)A(s
r
, t
b
) +
(1 f
s
)f
t
A(s
l
, t
t
) +f
s
f
t
A(s
r
, t
t
) (12.14)
12.3.2 Minimizacao
Se a textura e minimizada, varios texels podem cobrir um unico pixel ; por-
tanto, a aparencia do pixel deve ser uma cor integrada das cores destes
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 277
(s
l
, t
b
)
(s
r
, t
b
)
(s
r
, t
t
)
(s
l
, t
t
)
(s, t)
Figura 12.25: Interpola cao bilinear.
texels. A pergunta e como obter este efeito integrador de forma eci-
ente? Escolher a amostra mais pr oxima das coordenadas (s, t) resulta em
uma aparencia serrilhada. Para atenuar este artefato, pode-se aplicar uma
tecnica de ltragem, removendo sinais de alta frequencia. No entanto, este
processo e computacionalmente caro, ja que, em casos extremos, podem
ocorrer milhares de texels em um unico pixel . Diversas tecnicas foram pro-
postas com o objetivo de baratear o processo.
Hoje em dia, a tecnica mais popular e a tecnica conhecida por MIP
(multum in parvo) que tem como premissa de que a pre-imagem de cada
pixel tenha uma forma quadrada de tamanho igual a uma potencia de 2.
Ao inves de uma unica imagem original de nvel i = 0, uma sequencia de
imagens ltradas de nveis de resolu cao monotonicamente decrescente e pre-
calculada, de tal sorte que a imagem de nvel de resolu cao i +1 e o resultado
da ltragem e subamostragem da imagem de nvel de resolu cao i. Da o nome
sugestivo de piramide de texturas (Figura 12.26.(a)). Como o tamanho
de cada imagem e uma potencia de 2, um espa co de mem oria adicional
correspondente a
1
3
do espa co ocupado pela imagem original e suciente
para armazenar o restante dos nveis de detalhe (Figura 12.26.(b)).
Durante rasteriza cao, deve-se selecionar dentre o conjunto de imagens
pre-computadas a que tiver uma resolu cao mais pr oxima a do pixel. William
propos em 1983 estimar a imagem i a ser utilizada como pre-imagem de um
pixel atraves da verica cao da varia cao D das dimensoes originais s e t
da pre-imagem de um pixel U = V = 1
D = max[
_
(
s
U
)
2
+ (
t
U
)
2
,
_
(
s
V
)
2
+ (
t
V
)
2
]
Se D = 2
i
, o nvel de detalhe i e selecionado para mapeamento; sen ao,
dois nveis de detalhe adjacentes s ao selecionados e interpolados linearmente
para obter um texel com dimensoes pr oximas das do pixel .
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 278
(a) (b)
Figura 12.26: Mipmap: (a) pir amide e (b) organiza cao de dados (Fonte:
http://www.relisoft.com/science/graphics/mip.html).