Vous êtes sur la page 1sur 284

Departamento de Engenharia de Computac ao e Automac ao Industrial

Faculdade de Engenharia Eletrica e de Computac ao


Universidade Estadual de Campinas
EA978
Sistemas de Informacoes Gracas
Sntese de Imagens: Uma Introdu cao ao Mundo de Desenho e Pintura dos
Sistemas Digitais.
Profa. Wu, Shin - Ting
Mar co de 2009
Conte udo
1 Introdu cao 1
1.1 Processamento Visual . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Sistemas de Aquisi cao . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Sistemas de Exibi cao . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Modelos de Imagens . . . . . . . . . . . . . . . . . . . . . . . 11
1.5

Areas de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Programa cao Orientada a Eventos 19
2.1 Dispositivos Fsicos . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Dispositivos de Sada . . . . . . . . . . . . . . . . . . . 21
2.1.2 Dispositivos de Entrada . . . . . . . . . . . . . . . . . 24
2.2 Dispositivos L ogicos . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.1 Dispositivos de Sada . . . . . . . . . . . . . . . . . . . 29
2.2.2 Dispositivos de Entrada . . . . . . . . . . . . . . . . . 31
2.3 Sistema de Janelas . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.1 Fila de Eventos . . . . . . . . . . . . . . . . . . . . . . 33
2.3.2 Despachador de Eventos . . . . . . . . . . . . . . . . . 34
2.3.3 Tratador de Eventos . . . . . . . . . . . . . . . . . . . 34
2.4 Programa cao . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3 Modelagem Geometrica 38
3.1 Pontos e Vetores . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.1 Representa cao . . . . . . . . . . . . . . . . . . . . . . 40
3.1.2 Combina cao Convexa . . . . . . . . . . . . . . . . . . 44
3.1.3 Opera coes com Vetores . . . . . . . . . . . . . . . . . 45
3.2 Figuras Geometricas . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.1 Representa cao de Propriedades Geometricas . . . . . . 46
3.2.2 Fun coes de Bernstein . . . . . . . . . . . . . . . . . . . 48
3.2.3 Vetores Normais . . . . . . . . . . . . . . . . . . . . . 51
i
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) ii
3.3 Malhas Poligonais . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.1 Aproxima cao Poligonal . . . . . . . . . . . . . . . . . 52
3.3.2 Vetores Normais . . . . . . . . . . . . . . . . . . . . . 53
4 Transforma c oes Geometricas 55
4.1 Opera coes com Matrizes . . . . . . . . . . . . . . . . . . . . . 57
4.2 Transforma coes Geometricas Basicas . . . . . . . . . . . . . . 58
4.2.1 Transla cao . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.2 Mudan ca de Escala . . . . . . . . . . . . . . . . . . . . 60
4.2.3 Deslocamento Relativo Linear . . . . . . . . . . . . . . 62
4.2.4 Rota cao . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.5 Reex ao . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3 Transforma coes Ans, Lineares e Rgidas . . . . . . . . . . . 66
4.4 Concatena cao de Matrizes . . . . . . . . . . . . . . . . . . . . 67
4.5 Coordenadas Homogeneas . . . . . . . . . . . . . . . . . . . . 69
4.6 Transforma cao de Vetores . . . . . . . . . . . . . . . . . . . . 72
4.7 Composi cao de Transforma coes . . . . . . . . . . . . . . . . . 74
4.8 Invari ancia sob Transforma coes . . . . . . . . . . . . . . . . . 75
5 Transforma c oes Projetivas 77
5.1 Taxonomia das Proje coes . . . . . . . . . . . . . . . . . . . . 79
5.1.1 Proje coes Paralelas . . . . . . . . . . . . . . . . . . . . 79
5.1.2 Proje coes Perspectivas . . . . . . . . . . . . . . . . . . 83
5.2 No coes do Sistema de Visao . . . . . . . . . . . . . . . . . . . 85
5.3 Espa cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.1 Modelos de C amera . . . . . . . . . . . . . . . . . . . 93
5.3.2 Modelos de Espa co Normalizado . . . . . . . . . . . . 96
5.3.3 Modelos de Dispositivo . . . . . . . . . . . . . . . . . 96
5.4 Matrizes de Transforma cao Projetiva . . . . . . . . . . . . . . 97
5.4.1 WC para VRC . . . . . . . . . . . . . . . . . . . . . . 98
5.4.2 VRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4.3 VRC para NDC . . . . . . . . . . . . . . . . . . . . . 101
5.4.4 NDC para DC . . . . . . . . . . . . . . . . . . . . . . 109
6 Recorte 110
6.1 Recorte de Pontos . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2 Recorte de Segmentos . . . . . . . . . . . . . . . . . . . . . . 113
6.2.1 Algoritmo de Cohen-Sutherland . . . . . . . . . . . . . 113
6.2.2 Algoritmo de Cyrus-Beck . . . . . . . . . . . . . . . . 116
6.2.3 Algoritmo de Liang-Barsky . . . . . . . . . . . . . . . 119
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) iii
6.3 Recorte de Polgonos . . . . . . . . . . . . . . . . . . . . . . . 119
6.3.1 Algoritmo de Sutherland-Hodgman . . . . . . . . . . . 119
6.3.2 Algoritmo de Weiler-Atherton . . . . . . . . . . . . . . 121
6.4 Espa co de Recorte . . . . . . . . . . . . . . . . . . . . . . . . 123
7 Modelos de Cor 127
7.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.2 Percep cao Visual . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.3 Geometria de Cores . . . . . . . . . . . . . . . . . . . . . . . 134
7.3.1 CIE-RGB . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.2 CIE-XYZ . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 Diagrama de Cromaticidade . . . . . . . . . . . . . . . . . . . 142
7.4.1 Gamute de Cor . . . . . . . . . . . . . . . . . . . . . . 144
7.4.2 Pureza de Cor . . . . . . . . . . . . . . . . . . . . . . 145
7.4.3 Cores Complementares . . . . . . . . . . . . . . . . . . 147
7.5 Modelos de Cor em Sistemas de Informa cao Gr aca . . . . . 149
7.5.1 RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.5.2 CMY . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.5.3 NTSC YIQ . . . . . . . . . . . . . . . . . . . . . . . . 153
7.5.4 HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.6 Representa cao Digital de Cor . . . . . . . . . . . . . . . . . . 157
8 Modelos de Ilumina cao 161
8.1 Modelo de Radia coes Luminosas . . . . . . . . . . . . . . . . 164
8.1.1 Fonte Direcional . . . . . . . . . . . . . . . . . . . . . 166
8.1.2 Fonte Pontual . . . . . . . . . . . . . . . . . . . . . . . 167
8.1.3 Fonte Spot . . . . . . . . . . . . . . . . . . . . . . . . 168
8.2 Modelo da Superfcie . . . . . . . . . . . . . . . . . . . . . . . 168
8.3 Modelos de Ilumina cao Local . . . . . . . . . . . . . . . . . . 174
8.3.1 Reex ao Difusa . . . . . . . . . . . . . . . . . . . . . . 174
8.3.2 Reex ao Ambiente . . . . . . . . . . . . . . . . . . . . 175
8.3.3 Reex ao Especular . . . . . . . . . . . . . . . . . . . . 175
8.3.4 Modelo de Ilumina cao de Phong . . . . . . . . . . . . 176
8.3.5 Modelo de Ilumina cao Blinn-Phong . . . . . . . . . . . 177
8.4 Tonaliza cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
8.4.1 Tonaliza cao Constante . . . . . . . . . . . . . . . . . . 179
8.4.2 Tonaliza cao de Gouraud . . . . . . . . . . . . . . . . . 179
8.4.3 Tonaliza cao de Phong . . . . . . . . . . . . . . . . . . 180
8.5 Tra cado de Raio . . . . . . . . . . . . . . . . . . . . . . . . . 181
8.5.1 Raio com Plano . . . . . . . . . . . . . . . . . . . . . . 185
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) iv
8.5.2 Raio com Esfera . . . . . . . . . . . . . . . . . . . . . 186
8.5.3 Raio com Superfcie Implcita . . . . . . . . . . . . . . 186
9 Algoritmos de Visibilidade 187
9.1 Pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . 190
9.2 Algoritmos de Visibilidade de Linhas . . . . . . . . . . . . . . 193
9.3 Algoritmos de Visibilidade de Superfcies . . . . . . . . . . . . 196
9.3.1 Algoritmo de Pintor . . . . . . . . . . . . . . . . . . . 196
9.3.2 Algoritmo de Z-buer . . . . . . . . . . . . . . . . . . 202
9.3.3 Algoritmo de Scanline com Z-buer . . . . . . . . . . 205
10 Amostragem 206
10.1 Imagens Discretas . . . . . . . . . . . . . . . . . . . . . . . . 208
10.2 Rasteriza cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
10.2.1 Rasteriza cao de Pontos . . . . . . . . . . . . . . . . . 211
10.2.2 Rasteriza cao de Segmentos . . . . . . . . . . . . . . . 212
10.2.3 Rasteriza cao de Polgonos . . . . . . . . . . . . . . . . 217
10.2.4 Rasteriza cao de Modelos 2.5D . . . . . . . . . . . . . . 220
10.3 Analise Espectral . . . . . . . . . . . . . . . . . . . . . . . . . 222
10.3.1 Transformada de Fourier . . . . . . . . . . . . . . . . . 224
10.3.2 Amostragem . . . . . . . . . . . . . . . . . . . . . . . 228
10.3.3 Reconstru c ao . . . . . . . . . . . . . . . . . . . . . . . 230
10.4 Antialiasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
11 Quantiza cao 234
11.1 Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11.2 Celulas e Valores de Quantiza cao . . . . . . . . . . . . . . . . 237
11.2.1 Quantiza cao Uniforme . . . . . . . . . . . . . . . . . . 239
11.2.2 Quantiza cao Adaptativa . . . . . . . . . . . . . . . . . 240
11.2.3 Quantiza cao por Corte Mediano . . . . . . . . . . . . 240
11.3 Tecnicas de Redu cao de Contornos Falsos . . . . . . . . . . . 242
11.3.1 Aproxima cao do Meio-Tom . . . . . . . . . . . . . . . 242
11.3.2 Dithering . . . . . . . . . . . . . . . . . . . . . . . . . 245
11.3.3 Difusao de Erro . . . . . . . . . . . . . . . . . . . . . . 249
12 Textura 251
12.1 Textura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12.1.1 Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . 255
12.1.2 Textura de Perturba cao . . . . . . . . . . . . . . . . . 257
12.1.3 Textura de Sombra . . . . . . . . . . . . . . . . . . . . 258
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 0
12.1.4 Textura de Reex ao . . . . . . . . . . . . . . . . . . . 259
12.1.5 Mapa C ubico . . . . . . . . . . . . . . . . . . . . . . . 262
12.1.6 Textura Procedural . . . . . . . . . . . . . . . . . . . . 263
12.2 Mapeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.2.1 Proje cao Inversa . . . . . . . . . . . . . . . . . . . . . 267
12.2.2 Projetor . . . . . . . . . . . . . . . . . . . . . . . . . . 268
12.2.3 Correspondencia . . . . . . . . . . . . . . . . . . . . . 272
12.2.4 Fun cao de Transforma cao . . . . . . . . . . . . . . . . 274
12.3 Mapeamento de Espa cos Discretos . . . . . . . . . . . . . . . 275
12.3.1 Magnica cao . . . . . . . . . . . . . . . . . . . . . . . 276
12.3.2 Minimiza cao . . . . . . . . . . . . . . . . . . . . . . . 276
Captulo 1
Introducao
Como diz o proverbio chines: Uma imagem vale mais do que mil palavras,
a comunica cao visual atraves de imagens sempre foi uma forma ecaz para
transmitir conceitos diretamente relacionados com a realidade que nos cerca.
Desde o tempo das cavernas, os homens ja faziam Embora ninguem saiba
dizer ao certo o que signicavam as pinturas rupestres, conjectura-se que
eles as utilizavam como uma forma alternativa de comunica cao. Atraves
das pinturas retratavam cenas do cotidiano e expressavam seus sentimentos,
suas ideias ou algumas mensagens (Figura 1.1.(a)).
Mesmo com o desenvolvimento da escrita alfabetica, imagens nunca per-
deram sua import ancia na representa cao e express ao visual. A hist oria de
imagens evoluiu das pinturas rupestres para pinturas com uso de pigmentos e
tintas na Idade Media (Figura 1.1.(b)). Pensando na impressao e reprodu cao
de desenhos e pinturas em massa, foram desenvolvidas varias tecnicas de
gravura durante a Revolu c ao Industrial. O artista retira as partes de uma
superfcie plana, denominada matriz, de forma que ela represente uma pin-
tura ou um desenho. Depois a superfcie recebe uma camada de tinta e, com
uma prensa, a tinta e transferida para um papel (Figura 1.1.(c)). A cons-
tante busca pelo maior realismo levou os grandes artistas renascentistas a
desenvolverem conceitos com rigor cientco para reproduzirem a realidade
tal como a observavam. Um dos conceitos e o de camara escura, em ingles
pin-hole camera, que permite a cria cao de imagens por meio de exposi cao
luminosa. A camara escura foi utilizada por muitos artistas para esbo car
pinturas e o seu princpio e utilizado ate hoje. A primeira fotograa reco-
nhecida, no entanto, remonta ao ano de 1826 e e atribuda ao frances Joseph
Nicephore Niepce, quando ele conseguiu produzir uma imagem numa placa
de estanho coberta com um derivado de petr oleo fotossensvel chamado Be-
1
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 2
(a) (b)
(c) (d)
Figura 1.1: Evolu cao das tecnicas: (a) pinturas rupestres; (b) pintura em
cavalete (Fonte: http://www.ibiblio.org/wm/paint/auth/vermeer/art-
painting/art-painting.jpg); (c) gravura (Fonte:
http://www.woodengravers.co.uk/process.html) e (d) primeira fotograa
(Fonte: http://pt.wikipedia.org/wiki/Fotograa).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 3
tume da Judeia (Figura 1.1.(d)). A partir de entao, avan co tecnol ogico tem
sistematicamente melhorado a qualidade das imagens fotogracas, reduzindo
o seu tempo de produ cao e o seu custo.
Com o aumento quase exponencial na capacidade de processamento, os
computadores tem se tornado um instrumento de grande valia em todas as
tarefas relacionadas com imagens. Imagens s ao geeradas, com auxlio de
compuadores, em projetos de engenharia e arquitetonicos, em visualiza cao
de informa cao, em simula c oes para testes de hip oteses, em treinamentos, em
an alise do comportamento de um sistema a baixo custo, em manifesta coes
artsticas, em propaganda e publicidade, e em diversos tipos de entreteni-
mento. Mediado por computadores, imagens s ao utilizadas para diagnosticar
doen cas, para prever tempo, para monitorar um ambiente, para explorar lu-
gares inacessveis, para inspecionar a qualidade dos produtos, para preservar
documentos e mem oria e para restaurar pe cas hist oricas. Nesta disciplina
entendemos estas imagens como informa cao graca.
O objetivo desta disciplina e proporcionar uma visao introdut oria de
computa cao de imagens. Nosso foco n ao e nos aplicativos existentes para
produzir, manipular, interpretar ou analisar imagens, e sim nas tecnicas
engenhosas desenvolvidas para tornar uma realidade tais aplicativos rodando
em m aquinas que foram originalmente projetadas com inteligencia logica e
aritmetica. Tentaremos responder nesta disciplina as seguintes perguntas
(Figura 1.2):
1. Sem inteligencia visual, como as m aquinas podem ver guras geometricas
3D, cores, tons e sombreamento?
2. Sem inteligencia visual, como elas podem produzir, a partir dos
conceitos espaciais, imagens pr oximas `as que a nossa visao consegue
perceber?
3. Sem inteligencia visual, como elas podem interpretar e analisar as
imagens?
Esperamos que com esta visao introdut oria, voce consiga aplicar as tecnicas
existentes para criar melhores solu coes a um problema especco em be-
nefcio da sociedade.
1.1 Processamento Visual
Para inserir em m aquinas digitais faculdades visuais, e fundamental que
entendamos um processo de percep cao. Um dos sistemas de visao mais com-
plexo e o sistema da visao humana. Uma grande variedade de experimentos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 4
Imagens
similares?
Exibio
Objeto Real
Processamento
Aquisio
Armazenamento
?
?
?
High
Disk
Speed
Figura 1.2: Processamento humano processamento computacional.
e simula coes sobre fenomenos opticos, siol ogicos e psicol ogicos tem sido
conduzida para conceber procedimentos programaveis.
A visao humana e um sistema complexo que come ca com os dois olhos.
As radia coes luminosas atravessam o cristalino (lente biconvexa exvel) e
convergem na membrana interna da parte posterior do olho, denominada
retina. A retina e formada pela ramica cao do nervo otico que transmite
as sensa coes luminosas ao cerebro (Figura 1.3). A imagem que se forma na
retina e real, invertida e menor do que o objeto. Entretanto, percebemos
os objetos em posi cao correta gra cas `a forma como os sinais visuais s ao pro-
cessados. De acordo com um modelo de percep cao visual de tres est agios,
os sinais luminosos s ao, em primeiro lugar, transformados em caractersticas
elementares, como forma, cor, textura e orienta cao. Em seguida, estas ca-
ractersticas simples s ao agrupadas em padroes e, conforme as atividades de
aten cao do observador, objetos armazenados na sua mem oria s ao evocados
para criar percep cao de um objeto como todo. Em 2007, os neurocientistas
do MIT obtiveram resultados promissores com este modelo no reconheci-
mento de distintos objetos em diferentes ambientes.
A nossa visao e esterea. Quando olhamos para um objeto, s ao formadas
duas imagens retinianas, uma em cada olho. Devido ao afastamento entre
os dois olhos, as imagens n ao s ao identicas. A observa cao simult anea dessas
duas imagens ligeiramente diferentes for ca movimentos musculares dos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 5
Cristalino
Humor
Aquoso
Retina
Ponto
Cego
Eixo
Visual
Fvea
Esclertica
Coride
Humor
Vtreo
Crnea
ris
Msculo
Nervo
ptico
Figura 1.3: Esquema simplicado de um olho humano.
Esquerdo Direito
Paralaxe
Figura 1.4: Paralaxe.
olhos para a paralaxe na dist ancia entre dois pontos de diferentes alturas (Fi-
gura 1.4). Estes movimentos permitem que o cerebro diferencie a dist ancia
entre tais pontos, proporcionando percep cao de relevo/profundidade. Os es-
tudos revelam, no entanto, que 20% da popula cao n ao possui visao esterea.
Mesmo assim, n ao deixamos de ter a percep cao de profundidade. Outros
elementos, como oclus ao, tonalidade e perspectiva, tambem propiciam per-
cep cao de profundidade.
A compreensao da habilidade visual tem sido muito importante no desen-
volvimento de tecnologias dos dispositivos de exibi cao, como por exemplo,
acuidade: e a capacidade para distinguir dois elementos distintos. Ela nos
d a uma ideia o limite de densidade de informa cao que a visao de um
observador medio consegue perceber.
resposta Gaussiana: e a a cao inibidora de cada fotoreceptor fora do seu
centro de campo receptivo, de forma que nas regi oes onde ocorrem
varia coes abruptas de luz, elas aparentam ser mais claras ou mais
escuras, criando ilus oes como Bandas de Mach (Figura 1.5.(a)).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 6
Intensidade
Resposta ao
de luz
estmulo
(a) (b)
mais prximo do que o azul.
Outras pessoas tem
percepo oposta.
Muitas pessoas exergam o vermelho
(c) (d)
Figura 1.5: Habilidades visuais: (a) banda de Mach; (b) ilus ao de contraste;
(c) ilus ao de profundidade; (d) ilus ao de Ebbinghaus.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 7
contraste de cor: e a a cao inibidora de cores, de forma que uma mesma
cor colocada sobre fundos distintos causa diferente percep cao. Observe
que na Figura 1.5.(b), o quadrado amarelo sobre o fundo preto parece
mais claro que o quadrado de mesma cor sobre o fundo branco,
enquanto o quadrado magenta sobre o fundo azul aparece mais aver-
melhado e o quadrado de mesma cor sobre o fundo vermelho aparece
mais azulado.
aberra cao cromatica: e causada pela diferen ca dos pontos focais de ra-
dia coes de comprimentos de onda distintos ao atravessarem o crista-
lino. Com isso, temos percep cao de objetos de cores diferentes em
distinta profundidade (Figura 1.5.(c)).
precisao na avalia cao de tamanho: e a percep cao diferenciada do ta-
manho de uma mesma forma quando circundada por outras guras
de tamanho diferente. A ilus ao de Ebbinghaus e um exemplo desta
percep cao (Figura 1.5.(d)).
constancia em percep cao: e a capacidade de perceber as cores/intensidades
pelo diferencial entre eles, e n ao pelos seus valores absolutos.

E esta
capacidade de balanceamento que nos faz perceber o mesmo branco
sob luz solar e sob a luz de vela.
1.2 Sistemas de Aquisicao

E o primeiro est agio de qualquer sistema de visao computacional. O princpio


de funcionamento dos dispositivos deste est agio se baseia no modelo de visao
humana que consiste em captura de radia coes luminosas pelas celulas fo-
toreceptoras. Tipicamente, um sistema de aquisi cao de imagens digitais
compreende tres m odulos: um dispositivo fsico sensvel a radia coes eletro-
magneticas para captura-las e transforma-las em sinais eletricos proporcio-
nais ao nvel de energia recebida; um digitalizador para digitalizar os sinais
eletricos; e um processador para melhorar a qualidade da imagem e sua
codica cao em um formato, de preferencia, port atil.
Uns dispositivos s ao sensveis a radia coes de comprimentos de onda na
faixa de 5pm a 1nm (raios X), outros s ao sensveis a radia coes na faixa de
700nm a 1mm (infravermelhas), e h a equipamentos projetados para serem
sensveis a radia coes do intervalo 400nm a 700nm (luz visvel). As cameras
digitais, por exemplo, contem um arranjo de fotosensores a radia coes lumino-
sas. Se o fotosensor for um dispositivo de carga acoplada, em ingles charge-
coupled devices CCD, ele mede a intensidade luminosa recebida por efeito
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 8
Sensor
Bayer
Filtro de
Radiaes
Demosaico/Interpolao
Melhoria da qualidade
Compresso
Figura 1.6: Aquisi cao de imagens.
fotoeletrico. Este arranjo de fotosensores pode ser coberto por um mosaico
de ltros Bayer, sendo 50% dos fotosensores recebem a luz verde; 25%, luz
vermelha e 25%, luz azul, a m de emular o padrao de distribui cao dos tres
tipos de cones na retina humana. Atraves de um algoritmo de interpola cao
de cor, a imagem bruta em mosaico de cores primarias e transformada
em uma imagem colorida. Processamentos adicionais, como melhorar o con-
traste ou balancear cores para que elas pare cam mais pr oximas possveis
da nossa percep cao, podem acontecer antes de codicar as imagens em um
formato que possa ser lido por outros aplicativos. Ha varios formatos de
codica cao. Eles podem ser sem compressao ou com compressao. Se for
com compressao, distingue-se ainda compressao com perda ou sem perda.
Entre os formatos mais pouplares temos JPEG, acr onimo em ingles para
Joint Photographic Experts Group, GIF, acr onimo em ingles para Graphics
Interchange Format e TIFF, acr onimo em ingles para Tagged Image File
Format.
Ha uma grande diversidade de sistemas de aquisi cao, de tecnologia bem
distinta. De acordo com o valor (tipo de informa cao) contido em cada amos-
tra (x, y) capturada por estes sistemas de aquisi cao, as imagens sao classi-
cadas em
imagens convencionais ou fotos: a informa cao em cada ponto da ima-
gem e fun cao da intensidade luminosa no ponto, como as obtidas por
uma camera digital. S ao tambem conhecidas como imagens de in-
tensidade.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 9
Imagens de trasmissao: a informa cao em cada ponto da imagem e fun cao
de algumas propriedades fsicas dos objetos de interesse capazes de al-
terar de forma diferenciada algum fenomeno fsico. Por exemplo, obje-
tos que apresentam propriedades opticas (difra cao, reexao e refra cao)
muito diferenciadas podem modicar de forma visualmente perceptvel
a dire cao de um feixe luminoso homogeneo que passa por eles, como
raios X; ou objetos que apresentam comportamentos magneticos bem
distintos podem ter a sua polaridade alterada quando sujeitos a um
intenso campo magnetico, como as imagens de ressonancia magnetica
MRI. As diferen cas detectadas s ao processadas e codicadas em ima-
gens.
Imagens de profundidade: o valor em cada ponto e a profundidade do
ponto em rela cao ao dispositivo de captura.
1.3 Sistemas de Exibicao
Essencialmente, existem duas classes de dispositivos para exibi cao de ima-
gens: os vetoriais e os raster.
Os dispositivos vetoriais reinaram da decada 1960 a 1980 (Figura 1.7).
Eles s ao fundamentados no modelo de plotador, em ingles pen-plotter. A
principal caractertistica destes dispositivos e que eles conseguem fazer tra cados
retos em qualquer dire cao. Portanto, as instru coes de controle se resumem a
um conjunto de vetores descritos pelos seus dois pontos extremos, o inicial e
o nal. A unidade processadora de display, em ingles display processing unit
DPU, le a lista de (instru c oes para) exibi cao de guras geometricas,
tambem conhecida como display list em ingles, armazenada em mem oria
principal, decodica-a em sinais de controle anal ogicos, e envia tais sinais
para o dispositivo, entre os qusis est ao os sinais de posicionamento ou de
movimento do pincel eletr onico do dispositivo. O pincel eletr onico varia
da tecnologia do dispositivo de exibi cao: pode ser um feixe eletr onico em
monitores de tecnologia CRT (canh oes de raios catodicos) ou canetas em
um plotador.
Nos dispositivos vetoriais o tempo de regenera cao por quadro depende
da quantidade de segmentos a serem desenhados. Quanto maior for a quan-
tidade, maior ser a o tempo. Em monitores de tecnologia CRT, a frequencia
de regenera cao pode ser muito menor que 30Hz, gerando o efeito inc omodo
de cintila cao. Alem disso, o modo de desenho em dispositivos vetoriais
n ao e muito apropriado para pintar uma area. Como uma solu cao alterna-
tiva, surgiu no incio da decada 1970 dispositivos de exibi cao do tipo raster
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 10
Processador
de
dispaly
MOVE
20
20
LINE
650
650
Processadora
Unidade
Perifricos
Sistema
de
memria
Monitor
High
Disk
Speed
Figura 1.7: Arquitetura de um dispositivo de exibi cao vetorial.
(Figura 1.8). Estes dispositivos s ao fundamentados no modelo de preenchi-
mento de pixel , em ingles pixel-lling, e caracterizam-se por exibir uma ima-
gem atraves das suas amostras organizadas em um arranjo bi-dimensional
denominado mem oria de exibi cao, em ingles frame-buer. Cada amostra
e representada por um conjunto de atributos, entre os quais a cor. O con-
trolador de vdeo e respons avel por varrer este arranjo periodicamente para
regenerar o conte udo da tela e o processador de display, pelas opera coes so-
bre os pixels (picture element) ap os a discretiza cao. No caso de monitores de
tecnologia de tubos catodicos, o movimento dos canh oes e sempre o mesmo
(varredura horizontal e retra co). Com isso, foi possvel duplicar a frequencia
de regenera cao fazendo varreduras de forma intercalada, ou seja as linhas
pares e mpares s ao regeneradas alternadamente. Neste caso, dizemos que o
monitor e um monitor entrela cado. Do contr ario, dizemos que o monitor
e entrela cado.
Os algoritmos que produzem imagens levam em considera cao a tecnologia
de exibi cao das imagens. Os dispositivos de sada s ao hoje predominante-
mente do tipo raster; portanto, n os veremos nesta disciplina os metodos
de produ cao de imagens apropriadas para serem exibidas neles. Um uxo
de controle tpico em placas gr acas de ultima gera cao e apresentado na
Figura 1.9. No primeiro est agio, os vertices das guras geometricas s ao pro-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 11
Processadora
Unidade
Processador
de
dispaly
Perifricos
Sistema
de
memria
Controlador
de
vdeo
Monitor
frame buffer
High
Disk
Speed
Figura 1.8: Arquitetura de um dispositivo de exibi cao raster.
Processador
de
Vrtices
Processador
de
fragmentos
Rasterizador
Agrupamento
e recorte
Pixels
Modelos
dos vrtices
Geomtricos
Figura 1.9: Fluxo de controle de renderiza cao.
cessadas. Tanto a sua posi c ao espacial quanto a sua cor s ao computadas. Em
seguida, os vertices s ao agrupados para constituir guras geometricas como
todo, antes de serem recortadas no tamanho especicado pela aplica cao. De-
pois, e aplicado um algoritmo de rasteriza cao para discretizar as guras
geometricas. E, nalmente, e possvel ainda aplicar algumas opera coes sobre
as amostras discretas (fragmentos) para, por exemplo, criar efeitos visuais.
1.4 Modelos de Imagens
Para processar as imagens em sistemas computacionais utilizando unidades
logico-aritmeticas, e necessario representar as imagens com um modelo ma-
tem atico. Uma imagem bi-dimensional pode ser tratada como uma fun cao
f que depende de duas vari aveis (coordenadas x e y de um plano) ou de
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 12
tres vari aveis. Quando ela varia com o tempo, uma terceira vari avel t e
adicionada. O valor da fun cao pode ser um valor escalar ou um vetor de
valores reais, dependendo das informa coes contidas em cada imagem. O
valor de uma imagem monocromatica pode ser um valor (escalar) da lu-
min ancia, isto e intensidade luminosa; enquanto numa imagem colorida ou
multiespectral, o valor da fun cao deveria ser, teoricamente, um vetor de
n valores reais, cada qual corresponde a uma cor espectral para representar
a distribui cao espectral da cor.
Considerando uma imagem como uma fun cao, podemos classica-la em:
imagem contnua: se o domnio e o contra-domnio da fun cao s ao contnuos,
imagem discreta: se o domnio da fun cao e discreto, e
imagem digital: se o domnio e o contra-domnio da fun cao s ao discretos.
A discretiza cao do domnio de coordenadas (x, y) e conhecida como
amostragem e a discretiza cao do contra-domnio, ou seja dos valores ou
da amplitude de f, e chamada quantiza cao. Particularmente, quando a
fun cao f s o assume dois valores, dizemos que a imagem e bin aria ou preto-
e-branco.
De acordo com a quantidade de elementos, ou valores, no domnio e no
contra-domnio, e possvel caracterizar o grau de detalhamento de uma
imagem digital em termos de resolu c oes. Distinguem-se quatro tipos de
resolu cao:
resolu cao espacial (amostragem): dene a proximidade entre as amos-
tras de uma imagem discreta/digital (a disposi cao espacial das amos-
tras em um plano forma um reticulado quadrado ou hexagonal).
resolu cao espectral (quantiza cao): dene a quantidade de cores espec-
trais existentes na imagem.
resolu cao radiometrica (quantiza cao): dene a quatidade de nveis de
intensidade luminosa distinguveis.
resolu cao temporal (amostragem): dene o intervalo entre duas ima-
gens subsequentes.

E util para caracterizar imagens din amicas.
1.5

Areas de Pesquisa
Com advento de computadores de uso geral e surgimento de novos conceitos
de engenharia de software, foi possvel criar as primeiras imagens numa tela
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 13
de monitor de raios catodicos durante a Segunda Guerra Mundial. Cien-
tistas e artistas se uniram para vencer mais um desao: desenhar com um
feixe de eletrons sobre uma tela de fosforos! As primeiras imagens foram
geradas pelo Ben Laposky com uso de um computador anal ogico em 1950
(Figura 1.10.(a)). A possibilidade de utilizar uma m aquina eletr onica para
exibir imagens fez a For ca Aerea Americana investir no desenvolvimento de
um sistema computadorizado de controle de tr aco aereo no seu programa de
defesa aerea SAGE (Semi-Automatic Ground Environment). Este sistema,
provido de solu coes pioneiras de intera cao com uso de um revolver optico, -
cou operacional em 1958 (Figura 1.10.(b)). O termo Computa cao Graca
foi introduzido pelo designer gr aco da Boeing, William Fetter, para referir
o trabalho que ele desenvolvia em 1960: projetar um modelo humano para
simula coes ergonometricas em distintos ambientes (Figura 1.10.(c)).
O grande marco em computa cao gr aca interativa e interface homem-
m aquina foi o trabalho de doutorado de Ivan Sutherland, apresentado em
1963, quando ele implementou o sistema Sketchpad com o qual ele conse-
guiu criar, manipular, copiar e armazenar desenhos tecnicos via uma ca-
neta optica (Figura 1.10.(d)). Para isso ele desenvolveu as primeiras re-
presenta c oes geometricas e os primeiros algoritmos de transforma cao
e recorte. Com esfor co conjunto de pesquisadores de uma grande varie-
dade de areas de conhecimento, tanto o hardware quanto os algoritmos de
computa cao gr aca tem evoludo muito rapidamente nestas ultimas quatro
decadas. Hoje em dia quase n ao se distingue mais o que e virtual e o que e
real ... e e quase impossvel predizer ate onde chegaremos com o lan camento
constante de novas series de placas de vdeo programaveis.
A necessidade de comunica cao entre dois mundos separados por um
imenso oceano, o velho Mundo (Europa) e o novo Mundo (America), impul-
sionou no incio dos anos 1900 o desenvolvimento de tecnicas de transmiss ao
de dados, incluindo as imagens. Em 1907, Belin apresentou uma solu cao
pioneira de processamento de imagens para transmit-las por um sis-
tema sem o (Figura 1.11.(a)). Uma imagem era transformada em uma
gravura, a profundidade de cujos sulcos variava de acordo com o nvel de
cinza em cada ponto, e a partir desta gravura s ao gerados sinais eletricos
cuja intensidade dependia da profundidade dos sulcos. Em 1920 foi implan-
tado o sistema Bartlane de transmiss ao submarina entre Londres e Nova
Iorque. As imagens dos jornais eram digitalizadas. Para isso, era preciso
transformar as imagens contnuas espacial- e colorimentricamente em um
conjunto nito de amostras, cuja cor devia ser um dos 5 possveis nveis de
cinza. Em 1929, a resolu c ao foi aumentada para 15 nveis de cinza, como
ilustra a Figura 1.11.(b). A fase de maior crescimento no desenvolvimento
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 14
(a) (b)
(c) (d)
Figura 1.10: Imagens computadorizadas: (a) primeiras imagens; (b) primei-
ras intera coes com uso de um revolver optico; (c) Boeing Man; (d) Sketchpad
(Fonte: http://design.osu.edu/carlson/history/lessons.html).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 15
das tecnicas de processamento de imagens digitais se deu somente nos anos
1960, principalmente em Jet Jet Propulsion Laboratory, Massachusetts Ins-
titute of Technology MIT, Bell Labs e University of Maryland. Entre as
motiva coes destacam-se: corrigir as distor coes inerentes `a camera de captura
e melhorar a qualidade das imagens da Lua enviadas pela sonda Ranger e
pelo seu sucessor Surveyor; real car as imagens medicas, como de raios X,
para facilitar an alise e interpreta cao humana; e converter os sinais entre os
padroes do sistema televisivo. Figura 1.11.(c) mostra uma imagem envi-
adda pela sonda Ranger. A prolifera cao das tecnicas de processamento de
imagens s o aconteceu, no entanto, nos anos 1970 com o barateamento do
custo e aumento da velocidade dos processadores. Hoje em dia, tecnicas de
processamento de imagens s ao adicionalmente utilizadas tanto na cria cao
de efeitos especiais como na atenua cao de artefatos digitais encontrados em
imagens sinteticas ((Figura 1.11.(c))).
Em paralelo `a prolifera cao de processamento de imagens e `a melhoria da
qualidade das imagens capturadas pelas cameras, emergiu uma nova area de
pesquisa denominada Visao Computacional. Ela consiste em desenvolver
conceitos e teorias para construir algoritmos capazes de extrair informa cao
a partir de imagens reais, de forma a permitir execu cao autom atica de algu-
mas tarefas tediosas como detec cao de objetos, reconhecimento de padroes,
rastreamento e restaura cao de objetos. Como computadores n ao possuem
inteligencia visual, e necessario conceber uma forma de representar de forma
unvoca os objetos de interesse. No desenvolvimento de um sistema de visao
computacional, varios modelos propostos pelos siologistas, neurologistas
e psic ologos para explicar o sistema de percep cao humana foram levados
em considera cao. Figura 1.12 faz uma analogia entre a vis ao humana e a
visao computacional: as cameras e o frame grabber desempenham o papel
similar de aquisi cao de imagens que o olho humano tem; enquanto o pre-
processamento e a an alise dos sinais, que ocorre no caminho da retina para
cortex e no cortex, e feito pelos programas que s ao executados nos processa-
dores. Hoje em dia, os metodos de visao computacional s ao ainda aplicados
para recuperar, a partir das imagens, modelos geometricos 3D de -
guras complexas e utilizar estes modelos recuperados para sintetizar outras
imagens. Isso reduz drasticamente o tempo que um designer despende du-
rante o est agio de modelagem de uma cena sintetica. Esta tecnica e conhe-
cida como imageamento baseado em imagens, em ingles image-based
rendering.
Sintetizando, em torno das imagens digitais atuam tres grandes areas
de pesquisa de Computa cao: Computa cao Gr aca, Processamento de Ima-
gens e Visao Computacional. Grosso modo, Computa cao Gr aca se ocupa
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 16
(a) (b)
(c) (d)
Figura 1.11: Processamento de imagens: (a) transmiss ao sem o; (b) ima-
gem quantizada em 15 nveis de cinza e enviada pelo sistema Bartlane (Fonte:
http://www.digicamhistory.com/); (c) imagem da Lua enviada pela sonda
Ranger em 31/07/1964; e (d) imagem sintetica do lme Idade do Gelo.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 17
frame
grabber
Processamento
Central de
Unidade
Cmera
Figura 1.12: Visao Computacional: analogia entre (a) vis ao humana e (b)
visao computacional.
da transforma cao de ideias, conceitos ou modelos em imagens reproduzveis
pelos dispositivos eletr onicos; Processamento de Imagens foca em trans-
forma cao entre imagens; e Visao Computacional estuda interpreta cao e
an alise de imagens mediado por m aquinas aut onomas.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 18
Imagens
Computao
Grfica:
sntese de
imagens
Computacional:
Viso
anlise de
imagens
Processamento
de Imagens
Modelos
Geomtrica
Modelagem
Figura 1.13:

Areas de pesquisa correlatas.
Captulo 2
Programa cao Orientada a
Eventos
O objetivo deste captulo e dar uma no cao sobre programa cao orientada a
eventos. Este e o modelo de programa cao utilizado para implementa cao de
aplicativos gr acos interativos. Apos a leitura deste captulo, voce deve ser
capaz de
descrever o princpio de funcionamento dos principais dispositivos (fsicos)
gr acos.
caracterizar os dispositivos logicos e estabelecer a correspondencia en-
tre os dispositivos logicos e os dispositivos fsicos.
explicar a organiza cao de um sistema de janelas e o processamento de
eventos.
escrever um programa orientado a eventos utilizando interfaces de pro-
grama cao de aplicativos (API).
Um dos aspectos mais fascinantes dos atuais sistemas de informa cao
gr aca e a sua interatividade. Diferente dos programas tradicionais, que
seguem um uxo de controle pre-estabelecido, o usuario pode interferir no
controle de uxo destes sistemas, compartilhando com o computador a res-
ponsabilidade na execu cao de uma tarefa, como ilustra o ciclo de intera cao
na Figura 2.1. Atraves dos dispositivos de sada, o sistema computaci-
onal exibe para usuario o estado dos dados. O usuario ve/le a informa cao
apresentada, interpreta, avalia e intervem no uxo de controle atraves dos
19
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 20
Usurio
Processador
e
Memria
Dispositivos
de Sada
Dispositivos de Entrada
evento
realimentao
Figura 2.1: Ciclo de Intera cao.
dispositivos de entrada. Os sinais de dispositivos de entrada s ao proces-
sados como eventos pelo processador que dispara um tratador apropriado
para modicar o estado dos dados armazenados em mem oria. Finalmente,
o novo estado dos dados deve ser informado para usuario decidir a pr oxima
a cao. A intera cao e repetida ate que o estado de dados almejado seja al-
can cado.
Ha dois pontos crticos neste ciclo de intera cao. Ambos s ao relaciona-
dos com a possvel discrepancia entre a capacidade de processamento de
uma m aquina e a capacidade de processamento humano. De um lado,
a m aquina pode exibir os estados dos dados de forma ilegvel ou inade-
quada para usuarios interpreta-los e tomar a coes corretas. De outro lado,
o usuario pode gerar uma sequencia de a coes que n ao consiga fazer o pro-
cessador alcan car o estado almejado. Um bom projeto de interface homem-
m aquina pode atenuar as barreiras, melhorando a usabilidade de um sis-
tema gr aco. O foco deste captulo e, no entanto, uma breve visao do
ambiente em que tais programas s ao implementados. Na se cao 2.1 da-
remos uma visao introdut oria da tecnologia dos dispositivos de entrada e
de sada. Em seguida, mostramos na se cao 2.2 como tais dispositivos s ao
abstrados no nvel de programa cao para facilitar o seu uso via um sis-
tema de janelas. Na se cao 2.3 detalharemos o processamento de eventos
em sistemas de janelas, cuja compreensao facilita o entendimento do mo-
delo de programa cao orientada a eventos. Finalmente, apresentamos um
exemplo de programa cao com uso da biblioteca de componentes gr acos
GLUT (http://www.opengl.org/resources/libraries/glut/) que con-
siste uma simples interface de programa cao orientada a eventos para a in-
terface gr aca OpenGL (http://www.opengl.org/).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 21
2.1 Dispositivos Fsicos
Em sistemas de informa cao gr aca s ao fundamentais os perifericos, atraves
dos quais o computador consegue interagir com o mundo externo. Em geral,
um sistema de informa cao gr aca e provido de um dispositivo de sada (mo-
nitor) e dois dispositivos de entrada (um teclador e um apontador). Hoje
em dia, e muito comum encontrar tambem escaneadores, joystick, webcam,
mesas digitadoras, microfone, alto-falantes e impressoras.
2.1.1 Dispositivos de Sada
Caractersticas b asicas de monitores de vdeo e impressoras s ao apresentadas
nesta se cao.
Monitores de Tubo Catodico
O monitor de tubo catodico (CRT) e o dispositivo de sada mais popular.
As informa coes s ao exibidas atraves de uma tela semelhante `a TV. A tela
e revestida por uma pelcula de fosforos. Um feixe de eletrons, cuja dire cao
e controlada pelas placas de deexao, varre a tela linha por linha. Pontos
de luz aparecem na tela quando a energia de eletrons e transferida para
fosforos. Cada ponto e chamado pixel ou picture element. A quantidade
de bits necessarios para distinguir a intensidade em cada ponto e conhecida
como profundidade da tela. Ao chegar no canto inferior direito, o feixe
retorna para o canto superior esquerdo e reinicia a varredura horizontal
(Figura 2.2.(a)). No caso ce monitores coloridos, temos em cada ponto
tres tipos de fosforos capazes de emitirem luzes azuis, verdes e vermelhas
ao serem excitados. Tres feixes de eletrons s ao utilizados para controlar
individualmente cada tipo de fosforo produzindo uma grande variedade de
cores.
O n umero m aximo de pontos distinguveis e conhecido como resolu cao
do monitor. A resolu cao e dependente do tipo de fosforo, da intensidade
da imagem, e do sistema de deexao e foco. A raz ao entre a quantidade
de pontos horizontais e a quantidade de pontos verticais necessarios para
produzir um segmento de mesmo comprimento e conhecida como razao de
aspecto (aspect ratio) . A raz ao de aspecto tpica de um monitor e 4:3, ou
seja 4 pontos horizontais tem o mesmo comprimento de 3 pontos verticais.
A luz emitida pelo fosforo tem curta persistencia. Usualmente, 10 a 60 s.
A tela precisa, portanto, ser retra cada (refresh) periodicamente, ou seja,
fosforos re-energizados periodicamente, a m de manter a imagem xa na
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 22
(a) (b)
Figura 2.2: Monitor de tubo catodico: (a) monocrom atico e (b) colorido
(Fonte: http://www.pctechguide.com/42CRTMonitors Anatomy.htm).
tela. Caso a frequencia de retra co for baixa, ocorre o efeito de cintila cao
(icker), onde uma sombra parece percorrer constantemente a tela, fazendo
com que esta pare ca estar piscando.
Com o aumento da resolu cao e da profundidade a quantidade de dados
que trafega entre computador e monitor aumentou excessivamente, com-
prometendo o desempenho o sistema. Placas de vdeo com um processa-
dor pr oprio, GPU ou acelerador gr aco, conseguiram melhorar comparativa-
mente o desempenho em dezenas de vezes. Com elas, o computador passou
a transmitir a descri cao da imagem com base em primitivas gr acas numa
linguagem pr opria. A descri cao e interpretada e executada na GPU, tendo
como resultado uma imagem. O processo de retra co tambem passou a ser
atribui cao do processador de vdeo, n ao havendo necessidade do processador
principal re-enviar uma imagem que n ao sofresse altera c oes. Alem disso, o
processo de envio das modica coes de uma imagem passou a ser feito por
diferen ca, cando a cargo do processador de vdeo alterar consistentemente
a imagem.
Monitores LCD
Cada vez mais populares, os monitores de cristal lquido LCD (Liquid Crys-
tal Display) ja s ao considerados por muitos indispens aveis ao uso do com-
putador. Alem de emitirem pouqussima radia cao nociva, consomem menos
energia e ocupam menos espa co.
As telas de LCD s ao formadas por um material denominado cristal
lquido. As moleculas desse material s ao distribudas entre duas laminas
transparentes polarizadas. Essa polariza cao e orientada de maneira dife-
rente nas duas laminas, de forma que estas formem eixos polarizadores per-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 23
(a) (b)
Figura 2.3: Monitor LCD.
pendiculares. Estas nas placas possuem pequenos sulcos, isolados entra si,
cada um com um eletrodo transparente. Cada um destes sulcos representa
um pixel . Atr as do conjunto h a uma fonte luminosa (Figura 2.3.(a)). A
primeira lamina s o permite passar a luz orientada verticalmente. Essa luz
atravessa o cristal retorcido e ca orientada horizontalmente. Ela conse-
gue, portanto, atravessar a lamina frontal. Dizemos entao que as moleculas
assumem o estado transparente. Quando se aplica uma tens ao diferente,
as moleculas cam alinhadas e assumem o estado opaco, pois impedem a
passagem da luz pela lamina frontal (Figura 2.3.(b)).
No caso de LCDs mono-cromaticos, cada ponto da tela corresponde a um
pixel da imagem. J a no caso dos monitores coloridos, cada pixel e constitudo
por um grupo de 3 pontos, um verde, um vermelho e outro azul. Como nos
monitores CRT, as cores s ao obtidas atraves de diferentes combina coes de
tonalidades dos tres pontos.
Impressoras
Duas classes de impressoras s ao populares: a jato de tinta e a laser. Nas
impressoras a jato de tinta as cabe cas de impressao jogam pequenos jatos de
tinta sobre o papel formando o desenho da p agina montada no computador.
E nas impressoras a laser um feixe de luz laser desenha sobre o cilindro
com cargas negativas. Como o toner tem carga positiva, ele adere `as areas
negativas do cilindro. Com o toner xado sobre seu corpo, o cilindro rola
sobre a folha de papel, que se movimenta sobre uma cinta abaixo dele. Antes
de entrar na cinta, o papel recebe uma carga negativa de eletricidade. Como
ela e maior que a imagem eletrost atica sobre o cilindro, o papel atrai o
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 24
Figura 2.4: Impressora a laser.
toner enquanto o cilindro gira sobre ele. Para que o papel n ao que colado
no cilindro, o papel e descarregado imediatamente ap os a transferencia
do toner. Finalmente o papel passa por um fusor, dispositivo que emite
calor para fundir o toner com as bras do papel (Figura 2.4). Depois que o
toner que xado no papel, uma lampada de descarga aplica uma luz muito
intensa sobre o cilindro para apagar a imagem que estava gravada. Em
seguida, ele recebe novamente uma carga eletrica positiva para a pr oxima
impressao.
2.1.2 Dispositivos de Entrada
S ao atraves dos dispositivos de entrada que um computador consegue captar
as a coes dos usuarios. Ha dispositivos que captam varia coes nos estados do
dispositivo e h a dispositivos que detectam o estado corrente do dispositivo.
Mouse
O principal objetivo do mouse e traduzir movimentos relativos da m ao
de um usuario em sinais que o computador possa utilizar.
No interior de um mouse mecanico h a uma esfera que toca a mesa
sobre a qual o mouse move. Dois roletes dentro do mouse tocam a esfera.
Um dos roletes e orientado para detectar o movimento na dire cao X e outro
na dire cao Y (90
0
em rela cao ao primeiro). Quando a esfera gira, um ou
ambos os roletes giram tambem. Cada rolete se conecta a uma haste, e esta
haste gira um disco com furos na borda. Quando um rolete gira, a sua haste
e o disco giram. No outro lado do disco h a um LED (diodo emissor de luz)
infravermelho e um sensor infravermelho. Os furos no disco bloqueiam o
feixe de luz que vem do LED, permitindo que o sensor infravermelho capte
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 25
(a) (b)
Figura 2.5: Mouse.
pulsos de luz. A frequencia de pulsa cao est a diretamente relacionada com a
velocidade do mouse e a dist ancia que ele percorre. Um microprocessador le
os pulsos do sensor infravermelho, codica-os em dados bin arios e envia estes
dados bin arios para o computador atraves do o do mouse (Figura 2.5).
Desenvolvido pela Agilent Technologies e lan cado no nal de 1999, o
mouse optico utiliza uma pequena luz vermelha emitida por um LED.
Esta luz atinge a superfcie onde o mouse ca apoiado e e reetida. A luz
reetida e captada pelo sensor CMOS (Complementary Metal Oxid Semi-
conductor). Milhares de imagens captadas s ao enviadas a cada segundo
para o processador digital de sinais (DSP) que procura extrair os padroes
em cada imagem. Atraves da varia cao relativa dos padroes na sequencia
de imagens, o DSP consegue determinar se o mouse movimentou, qual foi a
dist ancia de movimento e em qual velocidade.
Alem de proporcionarem movimentos mais suaves aos cursors, o mouse
optico e capaz de trabalhar em quase toda superfcie sem um mouse pad.
Teclado
O teclado junto com o mouse formam o cojunto de perifericos indispens aveis
em computadores pessoais. Enquanto o mouse foi projetado para capturar
posi coes (relativas) espaciais, o teclado e utilizado predominantemente na
escrita de textos e controle de fun coes do sistema operacional de um compu-
tador. Inspirado de antigas m aquinas de escrever, ele consiste essencialmente
de um arranjo de botoes, denominados teclas, que s ao ligados a um chip
dentro do teclado, onde identica a tecla pressionada e manda para o pro-
cessador o codigo correspondente (Figura 2.6.(a)). Aproximadamente 50%
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 26
(a) (b)
Figura 2.6: Teclado.
delas produzem codigos que representam letras, n umeros e sinais (caracteres
alfa-numericos) e outras afetam o modo como o microcomputador opera ou
agem sobre o pr oprio teclado, como as teclas Caps Lock e as de controle
de cursor. Figura 2.6.(b) ilustra a disposi cao padrao de um teclado com 105
teclas.
Mesa Digitadora
Um mouse n ao reage `a pressao nem a mudan cas mais sutis na dire cao e
inclina cao da m ao. Isso o coloca em posi cao desfavor avel em rela cao a uma
mesa digitadora com a qual consegue-se trabalhar de forma mais parecida
com a que se trabalha com ferramentas artsticas tradicionais, como variar a
espessura ou a intensidade de um tra cado exercendo mais ou menos pressao
sobre a caneta.
Uma mesa digitalizadora, ou tablet em ingles, e composta de uma pran-
cheta e uma caneta (Figura 2.7). Ha mesas digitadoras de varias tecnologias.
Uma delas e baseada em indu cao eletromagnetica, como as da Wacom, que
elimina a necessidade de uso de baterias em canetas. A area retangular da
prancheta contem os horizontais e verticais que operam como bobinas. No
modo de transmiss ao, a prancheta gera sinal eletromagnetico que induz um
sinal no circuito LC contido na caneta. Em seguida, o modo das bobinas
e alternado para recep cao para captar o sinal induzido na caneta. Com
base na intensidade do sinal, a mesa digitalizadora consegue determinar a
posi cao absoluta da caneta sobre a area retangular sem que esta toque na
superfcie. Quando a mesa digitalizadora e provida de sensor de pressao, um
toque da caneta na superfcie pode equivaler a um clique e arrastar a ponta
da caneta e como clicar e arrastar. Ha mesas digitalizadoras que conseguem
determinar o angulo da caneta em rela cao `a superfcie ou que possuem, no
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 27
Figura 2.7: Mesa digitalizadora.
corpo de suas canetas, botoes que servem como duplo clique, botao direito
ou outra fun cao programavel.
Joystick
O joystick e um periferico usado freq uentemente para controlar os jogos de
vdeo. Ele consegue traduzir, de forma natural, os deslocamentos de uma
m ao atraves de um bast ao ou botoes de disparo. Este bast ao e xado a uma
base pl astica com um revestimento de borracha exvel (Figura 2.8.(a)).
Nesta base encontra-se uma placa de circuito constituda de varias trilhas
que se conectam a diversos terminais de contato, a partir dos quais o joystick
se comunica com um computador atraves de os comuns. O circuito na placa
e, de fato, constitudo de diversos circuitos menores entre os terminais de
contato (Figura 2.8.(b)). Quando o bast ao e movido, um destes circuitos
pode ser fechado e o computador consegue reconhecer a posi cao correta
do bast ao pelo circuito que se fechou. Por exemplo, empurrar o bast ao
para frente fecha a chave para frente e empurra-lo para a esquerda fecha
a chave esquerda. Ha joysticks mais sosticados que conseguem captar
adicionalmente movimentos sutis de posi cao.
Camera Digital
Tanto cameras digitais como cameras convencionais possuem uma serie de
lentes para focalizar a luz e criar a imagem de uma cena. Mas em vez de
focalizar essa luz sobre um peda co de lme e disparar um processo qumico
de rea coes, a camera digital o faz sobre um dispositivo semicondutor, conhe-
cido como charge coupled device CCD em ingles, que grava a luz eletroni-
camente. Um processador entao decompoe essas informa coes eletr onicas em
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 28
(a) (b)
Figura 2.8: Joystick.
dados digitais. Assim, sem aguardar a revela cao, pode-se visualizar imedi-
atamente o que foi capturado atraves de uma tela de cristal lquido (LCD)
(Figura 2.9.(a)).
O sensor CCD s o consegue perceber a intensidade da luz. Uma maneira
mais econ omica e pr atica para capturar uma imagem colorida e colocar per-
manentemente um ltro chamado conjunto de ltro de cores sobre cada
sensor individual. Ao decompor o sensor em uma variedade de celulas verme-
lhas, azuis e verdes, e possvel obter, atraves de interpola coes, informa coes
sucientes nos arredores de cada sensor para estimar de forma bastante pre-
cisa sobre a cor verdadeira naquele local. O padrao mais comum de ltros
e o padrao de ltro Bayer, que alterna uma leira de ltros vermelhos
e verdes com uma leira de ltro azuis e verdes. A quantidade de celulas
n ao e dividida por igual: h a tantas celulas verdes quanto azuis e vermelhas
combinadas (Figura 2.9.(b)). Isso ocorre porque o olho humano n ao e igual-
mente sensvel a todas as tres cores.

E necessario incluir mais informa coes
provenientes das celulas verdes para criar uma imagem que o olho perceber a
como uma cor verdadeira.
Ao inves de lmes anal ogicos, as cameras digitais usam diversos sistemas
de armazenagem digitais para guardar as imagens capturadas. A mdia mais
utilizada s ao as mem orias ash. Os fabricantes de cameras digitais freq uen-
temente desenvolvem suas pr oprias mem orias ash, como cart oes SmartMe-
dia, cart oes CompactFlash e Memory Sticks. Outros dispoem possibilidades
de armazenar em dispositivos como discos rgidos. Nao importa o tipo de ar-
mazenamento que usem, todas as cameras digitais precisam de muito espa co
para suas imagens. Para aproveitar ao m aximo o espa co de armazenamento,
quase todas as cameras digitais usam algum tipo de compacta cao de dados
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 29
(a) (b)
Figura 2.9: C amera digital.
para diminuir o tamanho dos arquivos. O formato de arquivo compactado
mais utilizado e JPEG. No entanto, se quisermos preservar a qualidade ori-
ginal das imagens, recomenda-se utilizar formato sem compacta cao. Neste
caso, o formato TIFF e o mais difundido entre as cameras digitais.
Uma camara digital provida de uma conexao USB e de um aplicativo
que consegue capturar as suas imagens numa frequencia pre-especicada e
distribu-lo atraves de uma conexao da internet e conhecida como webcam.
2.2 Dispositivos Logicos
Sob o ponto de vista de programa cao, e interessante que o acesso aos pe-
rifericos ocorra de forma mais independente possvel das caractersticas tec-
nol ogicas de cada um. O conceito de dispositivos logicos foi introduzido para
permitir que os programas vejam os dispositivos pelas suas fun coes e n ao
pela sua especica cao tecnica.
2.2.1 Dispositivos de Sada
O primeiro passo para exibi cao de uma imagem num dispositivo de sada e
a transmiss ao dos dados a partir do computador ou dispositivo de armaze-
namento de dados para o dispositivo de sada. O processador de imagem
rasteriza os dados e converte a informa cao recebida em uma imagem gr aca;
esta imagem e entao enviada para o dispositivo de sada.
A arquitetura dominante para os dispositivos de sada e a de frame-
buer, conforme ilustra Figura 2.10. Nesta arquitetura as imagens discretas
s ao geradas pelos processadores e transmitidas para um dispositivo de sada.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 30
Processador
Frame
Buffer
Monitor Controlador
Figura 2.10: Frame buer.
Figura 2.11: Convers ao digitalanal ogica.
Os valores de cada pixel da imagem s ao armazenados em uma mem oria do
dispositivo, que e conhecida como frame-buer. O conte udo desta mem oria
e convertido para os sinais de imagem atraves de um controlador. A tecnica
de convers ao varia de acordo com a tecnologia do dispositivo de exibi cao.
No caso de dispositivos de tecnologia baseada em raios catodicos, o con-
trolador de vdeo varre o frame buer, de linha em linha, e converte os valores
das cores primarias (vermelho, verde e azul) armazenados em cada posi cao
da mem oria em tens oes que controlam a intensidade de feixe de eletrons que
excitam as partculas de fosforo no correspondente pixel da tela de vidro do
monitor (Figura 2.11). No caso de dispositivos de tecnologia baseada em
cristal lquido, ao inves de tens oes, o controlador converte os valores das
cores primarias em opacidade do cristal. E nas impressoras, tais valores s ao
transformados em carga eletrost atica positiva sobre o tambor (impressoras
a laser) ou em gotculas de tinta emitidas atraves de min usculas aberturas
na cabe ca de impressao (impressoras a jato de tinta).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 31
2.2.2 Dispositivos de Entrada
De acordo com o padrao gr aco GKS (Graphical Kernel System), distinguem-
se seis dispositivos de entrada logicos:
locator: retorna a posi cao de um ponto da imagem. Exemplos de dispositi-
vos fsicos que realizam esta tarefa b asica s ao mouse e teclado. Outros
dispositivos conhecidos s ao joystick, trackball e tablet.
stroke: retorna uma sequencia de pontos. Tipicamente, esta tarefa pode ser
realizada com uso de um mouse.
pick: retorna a referencia de um objeto contido na imagem exibida pelo
dispositivo de sada. O dispositivo fsico que tipicamente realiza esta
fun cao e o light-pen.
valuator: retorna um valor numerico (escalar). Exemplo tpico de um valu-
ator s ao os dials (potenci ometros).
string: retorna uma sequencia de caracteres alfa-numericos. O dispositivo
fsico tpico que realiza esta tarefa e o teclado.
choice: retorna uma op cao dentre um conjunto de alternativas pre-denidas.
Exemplo tpico de um dispositivo fsico que realiza esta tarefe e o
tablet com fun coes pre-denidas.

E comum, hoje em dia, mapear um
conjunto de alternativas `as teclas do teclado, tornando-o tambem um
dispositivo logico de choice. Podemos ainda utilizar o mouse como um
dispositivo logico de choice, se mapearmos cada um dos seus botoes a
uma das fun coes pre-denidas ou provermos na interface do aplicativo
sub-janelas com as op coes pre-denidas.
Um sistema gr aco interativo suporta, usualmente, mais de uma classe
de dispositivos logicos. No mnimo, locator (mouse) e string (teclado).
Considera-se ainda que os dispositivos logicos podem operar em um dos
tres modos: requisi cao, amostragem e evento. No modo de requisi cao,
o aplicativo habilita o dispositivo e ca aguardando a entrada de um dado.
No modo de amostragem, o aplicativo amostra o estado do dispositivo pe-
riodicamente. E no modo de evento, o dispositivo dispara o processamento
de eventos quando h a algum dado disponvel. Na se cao 2.3 explicaremos o
processamento de eventos.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 32
Figura 2.12: Uma area de trabalho com multijanelas.
2.3 Sistema de Janelas
Um dos desaos tem sido projeto e implementa cao de uma interface amig avel
entre um processador digital e um controlador humano, aproveitando
ao m aximo a tecnologia multimodal disponvel. Nesta se cao apresentamos
o conceito de sistema de janelas que facilita a implementa cao dessa in-
terface. Um sistema de janelas e uma camada de software que gerencia o
uso compartilhado dos dispositivos de entrada e de sada entre varios apli-
cativos, de forma similar a um sistema operacional que gerencia os recursos
computacionais entre varios processos. Em um sistema de janelas, uma tela
do monitor e considerada uma area de trabalho atraves da qual um con-
junto de aplicativos pode interagir com o usuario e cada aplicativo tem uma
sub-area pr opria, como se a tela do monitor estivesse dividida em varias sub-
areas totalmente independentes (Figura 2.12). Estas sub-areas, usualmente
retangulares, s ao conhecidas como janelas e s ao organizadas hierarquica-
mente em arvore, sendo a tela considerada a janela-raz. Todas as janelas
s ao referenci aveis por meio de identicadores (ID).
Existe, em adi cao ao sistema de janelas, um gerenciador de janelas
que prove facilidades para usuarios personalizar a aparencia das janelas e
a forma de intera coes atraves dos perifericos. Em Microsoft Windows este
gerenciador e integrado ao sistema de janelas, enquanto em X Windows, o
gerenciador e um componente em separado. Exemplos de gerenciador de
janelas para X Windows: Motif Windows Manager, Tab Windows Manager e
Window Maker.
As a coes dos usuarios, como movimento de mouse, aperto/soltura de um
botao de mouse, pressionamento de uma tecla de teclado e focaliza cao de
uma janela, s ao traduzidas em eventos e despachados para a janela apropri-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 33
cliente
servidor
Figura 2.13: Modelo cliente-servidor.
ada para serem tratadas. Em Microsoft Windows tanto o programa aplicativo
quanto a interface com usuarios est ao residentes numa mesma m aquina. O
X Windows, usado frequentemente em conjunto com o sistema operacional
UNIX, opera segundo o modelo cliente-servidor: o servidor X serve
varios programas aplicativos, conhecidos como cliente X, recebendo as suas
requisi coes de sada gr aca como tambem enviando para eles os eventos ge-
rados pelo usuario. O servidor e o cliente podem estar instalados em uma
mesma m aquina ou em m aquinas distintas. Este modelo de comunica cao
permite o uso de janelas e o controle de aplicativos de modo transparente
atraves da rede (Figura 2.13).
No restante desta se cao vamos detalhar o processamento de eventos.
2.3.1 Fila de Eventos
Como se consegue sincronizar as a coes n ao-programaveis de um usuario
com uma sequencia de instru coes pre-estabelecidas em um programa aplica-
tivo? Uma solu cao popular e por meio de uma la (principal) de eventos
(de entrada), como em X Windows. Apos traduzir as a coes em eventos,
estes s ao inseridos em uma estrutura. O tratador de eventos os remove
da estrutura de acordo com o princpio FIFO (rst in, rst out) e os con-
verte em eventos de intera cao antes de despach a-los para serem tratados
por um fragmento de codigos. O tratador de eventos pode tanto concate-
nar uma sequencia de eventos de entrada em um unico evento de intera cao,
como CTRL+ALT+Del e duplos cliques, quanto mascarar eventos irrelevan-
tes. Algumas classes de eventos process aveis em todos os sistemas de janela:
eventos de dispositivo de apontamento como mouse, eventos de teclado e
eventos de janela, como criar, destruir e focalizar uma janela.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 34
2.3.2 Despachador de Eventos
Sendo a tela do monitor fragmentada em diversas janelas, muitas delas com-
partilhando o mesmo conjunto de pixels, e necessario elaborar uma estrategia
de associa cao entre eventos de intera cao com trechos de codigo de proces-
samento para obter resposta apropriada. Quando a posi cao do cursor em
rela cao a uma janela n ao e ambgua, esta associa cao e simples. Em alguns
sistemas a informa cao posicional do apontador e utilizada para despachar
tambem os eventos do teclado: eles s ao encaminhados para a janela que
contem o cursor. O problema se complica quando existe mais de uma ja-
nela sob o cursor. Neste caso, qual deve ser o criterio de escolha da janela?
Uma solu cao e a introdu cao do conceito de foco: somente uma janela pode
estar em foco em cada instante e todos os eventos gerados num dado mo-
mento s ao despachados para a janela em foco.
2.3.3 Tratador de Eventos
Um ciclo de intera cao envolve o disparo de um evento de intera cao, o des-
pacho deste evento `a janela correta e a execu cao de um trecho de codigo
condizente com a a cao esperada (Figura 2.1). A sequencia de instru coes a
serem executadas deve ser, portanto, dependente do contexto de aplica cao.
Como se integram estas instru coes ao restante dos codigos de processamento
de eventos? Uma solu cao e pelo mecanismo callback que permite passar como
argumento o endere co do tratador de eventos, provido pela aplica cao, para
o sistema de janelas. Assim, quando um evento e disparado, o sistema de ja-
nelas automaticamente chama o seu correspondente tratador para executar
a tarefa pre-programada.
2.4 Programacao
Entendendo a arquitetura de um sistema de janelas, ca mais facil entender
a forma como um programa orientado a eventos e estruturado. Ele possui
sempre um programa inicial contendo instru coes de inicializa cao e um la co
principal de eventos cuja tarefa e simplesmente retirar os eventos da la e
despach a-los. As fun coes de inicializa cao s ao as instru coes comuns a todos os
aplicativos, como mascaramento de eventos irrelevantes, registro de fun cao
callback e cria cao de uma janela principal. O comportamento real de um
aplicativo e, de fato, denido pelos tratadores de evento registrados com
callback.
Para reduzir o tempo de desenvolvimento de uma interface gr aca com
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 35
tela
(a) (b)
Figura 2.14: Widgets: (a) barra de rolagem e (b) tela.
usuario (GUI graphical user interface), s ao disponveis bibliotecas de com-
ponentes de interface gr aca, ou widgets em ingles, em cima de um sistema
de janelas. Um widget e um componente capaz de realizar uma ou mais tare-
fas de intera cao com um tipo especco de dados. Tipicamente, um widget e
desenhado com base no padrao de projeto de software MVC, constitudo de
dois componentes distintos, Modelo de dados e Visualiza cao ou aparencia
gr aca, e um componente de Controle ou modo de intera cao. Uma barra
de rolagem e, por exemplo, um widget que tem como modelo, um intervalo
de valores numericos dependents do aplicativo, como aparencia um desliza-
dor, e como controle, a possibilidade de um usuario deslocar o botao do
deslizador que pode ser traduzido, por exemplo, como rolar uma area de
dimensoes maiores do que a da janela onde ela e exibida (Figura 2.14.(a)).
Em especial, o widget de tela (Canvas widget) e um componente que tem
aparencia de uma tela e prove facilidades gr acas 2D e/ou 3D para criar e
manipular livremente os modelos da dados do aplicativo (Figura 2.14.(a)).
Entre as bibliotecas de widgets amplamente utilizadas temos GTK+, wxWid-
gets, Qt e Swing da linguagem de programa cao Java.
Nesta disciplina utilizaremos a biblioteca de widgets GLUT (OpenGL Uti-
lity Toolkit) para implementar simples interfaces de aplicativos gr acos 3D.
Alem de ser independente do sistema de janelas, GLUT prove um widget de
tela capaz de se comunicar a interface de programa cao de aplicativos OpenGL
e utiliza o modelo de callback para registrar os tratadores de eventos, como
ilustra o seguinte codigo extrado do livro Redbook. O programa desenha
um quadrado branco na janela com uso da interface OpenGL (fun coes gl*)
quando ele recebe um evento de janela. O arquivo glut.h deve ser sempre
includo para denir os macros e constantes utilizados. Com uso das fun coes
glutInitWindowSize(), glutInitWindowPosition() e glutCreateWindow(), foi de-
nida uma janela hello de tamanho 250 250 em (100, 100) que se co-
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 36
munica com API OpenGL (Figura 2.15) e registrado o evento de criar esta
janela. Somente o evento de janela n ao e mascarado e o seu tratador display()
e registrado atraves da fun cao glutDisplayFunc(). O tratador simplesmente
desenha um quadrado branco com os comandos de OpenGL quando a ja-
nela sofre alguma altera cao. O la co principal de eventos glutMainLoop() ca
aguardando tais eventos. Ressaltamos que a janela denida s o aparece na
tela quando entra no la co principal de eventos e o evento de criar a janela
e processado.
#include <GL/glut.h>
void display(void)
{
/* clear all pixels */
glClear (GL_COLOR_BUFFER_BIT);
/* draw white polygon (rectangle) with corners at
* (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)
*/
glColor3f (1.0, 1.0, 1.0); // cor branca
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
/* dont wait!
* start processing buffered OpenGL routines
*/
glFlush ();
}
void init (void)
{
/* select clearing color */
glClearColor (0.0, 0.0, 0.0, 0.0);
/* initialize viewing values */
glMatrixMode(GL_PROJECTION);
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 37
Figura 2.15: hello.c.
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
/*
* Declare initial window size, position, and display mode
* (single buffer and RGBA). Open window with "hello"
* in its title bar. Call initialization routines.
* Register callback function to display graphics.
* Enter main loop and process events.
*/
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}
Captulo 3
Modelagem Geometrica
O objetivo deste captulo e apresentar para voce distintas representa coes
de uma gura geometrica por meio de valores numericos, atraves dos quais
consegue-se caracteriz a-la e desenha-la em sistemas (digital) de informa cao
gr aca. Portanto, ap os a leitura deste captulo, voce deve ser capaz de
distinguir o conceito de pontos e o conceito de vetores.
distinguir as diferentes representa coes de um um ponto e de um vetor
no espa co.
distinguir diferentes formas para descrever uma gura geometrica e
derivar atraves delas os vetores normais.
aproximar uma gura geometrica por malhas poligonais.
Modelos geometricos s ao fundamentais tanto em sntese quanto em an alise
de imagens. Para sntese de imagens, que consiste em determinar a lu-
min ancia/brilhancia das superfcies presentes numa cena sintetica, no
mnimo dois dados geometricos sobre cada ponto visvel de superfcies de-
vem ser conhecidos: a sua posi cao e o vetor normal da superfcie. Um
dos focos de pesquisa na area de Modelagem Geometrica e prover mecanis-
mos para modelar, armazenar, e manipular os objetos sinteticos em sistemas
computacionais. Quando se trata de an alise de imagens, ou seja extrair in-
forma cao sobre uma cena a partir das suas imagens reais capturadas pelos
sensores, informa cao geometrica, como varia cao de vetores normais na vi-
zinhan ca de um ponto, e fotometrica tem sido muito utilizada. Pesquisa
38
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 39
na area de Modelagem Geometrica tem contribuda com algoritmos de in-
ferencia de forma geometrica de um objeto presente numa cena a partir dos
dados geometricos mensur aveis localmente, como posi cao e vetor normal.
Ha uma grande variedade de modelos geometricos para representar for-
mas geometricas process aveis pelos sistemas digitais. Uns modelos, como
representa coes por fun coes, s ao considerados analiticamente precisos; en-
quanto outros, como aproxima coes por malhas poligonais, s ao mais apropri-
ados para renderiza cao eciente. Ha ainda modelos orientados a usuarios
menos experientes, como representa cao por CSG (Constructive Solid Geo-
metry) que permite constru cao de guras geometricas complexas a partir de
um kit de formas b asicas. Tais formas b asicas podem ser descritas tanto por
fun coes como por malhas poligonais. Uma caracterstica comum destes mo-
delos e a representa cao dos pontos por uma n-tupla de n umeros. Isso nos per-
mite associar uma gura geometrica a um sistema de equa coes/inequa coes
e process a-la com uso de opera coes aritmeticas tradicionais.
3.1 Pontos e Vetores
Em sistemas de informa cao gr aca uma posi cao no espa co e denominada
um ponto, enquanto o deslocamento de um ponto P
B
em rela cao a um
outro ponto P
A
e representado pelo vetor (de deslocamento), que e uma
grandeza fsica provida de magnitude (m odulo), dire cao e sentido. Ponto
e, portanto, uma identica cao de um local para a qual n ao tem sentido
aplicar opera coes aritmeticas. Veremos na se cao 3.1.1 que se pode associar,
de forma biunvoca, uma posi cao do espa co por uma n-tupla de valores
numericos (escalares). Quando esses valores numericos correspondem `as
coordenadas cartesianas ou ans, podemos obter o vetor (de deslocamento)
entre P
A
e P
B
por meio da subtra cao entre as suas coordenadas
v = P
B
P
A
. (3.1)
Observe que existe uma innidade de pares de pontos cuja diferen ca re-
sulta em v. A escolha do ponto-origem P
A
e do ponto-extremidade P
B
e
irrelevante na especica cao de um vetor (de deslocamento).
Diferentemente do espa co de pontos, s ao denidas no espa co de vetores
opera coes de multiplica cao por escalar, adi cao, subtra cao, produto escalar,
produto vetorial. Algumas dessas opera coes ser ao detalhadas na se cao 3.1.3.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 40
xz
xy
yz
r
O
P

(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

Indice de vertice Cartesianas Ans Polares


0 (1.0, -1.0, -1.0) (1.0, -1.0, -1.0) (

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.

E possvel ainda especicar uma gura geometrica atraves de um domnio


de par ametros denido arbitrariamente, desde que cada n-tupla de valores
destes par ametros corresponda a um ponto da gura. Neste caso, uma gura
geometrica e vista como uma aplica cao de um domnio de par ametros
em pontos no espa co
3
, representados por coordenadas cartesianas. Se a
gura geometrica for uma curva, o domnio de par ametros e univari avel.
Se a gura for uma superfcie, o domnio e bi-dimensional contendo dois
par ametros. Esta forma de representa cao de guras geometricas e conhecida
como representa cao parametrica.
Seguem-se a representa cao parametrica de algumas superfcies quadricas
conhecidas:
Esfera: P(, ) = (rcos, rsencos, rsensen), 0 , 0
2,
Elipsoide: P(, ) = (acos, bsencos, bsensen), 0 , 0
2,
Toro: P(, ) = (h + acos, (k + bsen)cos, (k + bsen)sen), 0
2, 0 2,
Paraboloide: P(, ) = (au
2
, 2aucos, 2ausen), 0 u u
max
, 0
2, e
Cilindro: P(, ) = (rcos, rsen, u), 0 u u
max
, 0 2.
Exemplo 3.3 Um segmento (curva) e o lugar geometrico do conjunto de
pontos cujas coordenadas cartesianas satisfazem as seguintes propriedades
em representac ao parametrica: P(t) = (t, 2t, t) e 0 t 1.0.
em representac ao implcita: f(x, y, z) = x +z y = 0, 0 x 1.0.
em representac ao explcita: y = x +z, 0 x 1.0.
Uma esfera de raio r (superfcie) e o lugar geometrico de pontos cujas
coordenadas cartesianas satisfazem as seguintes propriedades
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 48
em representac ao parametrica: P(, ) = (r cos sen, r sen sen, r cos),
0 2 e

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
.

E comum denominar a seq uencia dos pontos de controle de polgono de


controle.
Os termos B
n,i
(t) das fun coes de Bernstein satisfazem a igualdade
((1t)+t)
n
=
n

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].

E comum emendar as curvas de Bezier c ubicas para construir um spline


de geometria complexa. Para assegurar uma emenda suave exige-se ti-
picamente que, alem dos pontos-extremo serem os mesmos, a dire cao dos
vetores-tangente nos pontos de emenda seja a mesma, como no ponto P
da Figura 3.6. Como se determina os vetores-tangente a uma curva em um
ponto P(t)? Basta calcular a derivada no ponto
P

(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.

Indice de face Lista de ndice de vertices


0 0, 3, 2, 1
1 2, 3, 7, 6
2 0, 4, 7, 3
3 1, 2, 6, 5
4 4, 5, 6, 7
5 0, 1, 5, 4
3.3.1 Aproximacao Poligonal
Em sntese de imagens, o objetivo e desenhar as guras geometricas de
interesse numa tela de exibi cao. Por questoes de eciencia, os tipos de
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 53
0
1
2
3
4
5
Cubo 0
3
2
1
3
7
6
2
Figura Faces
(1,1,1)
(1,1,1)
(1,1,1)
(1,1,1)
(1,1,1)
(1,1,1)
(1,1,1)
(1,1,1)
Pontos Vrtices
Figura 3.8: Estrutura dos vertices de um cubo.
superfcies suportadas pelas placas de vdeo s ao ainda limitados `a classe de
segmentos e polgonos/facetas planas. Portanto, se quisermos desenhar uma
gura geometrica, representada por uma fun cao com os recursos disponveis
em uma placa de vdeo, precisamos aproxima-la em uma polilinha ou uma
malha poligonal antes do seu envio para o uxo de renderiza cao suportado
por hardware.
A aproxima cao poligonal de curvas e superfcies representadas implicita-
mente e ainda um problema em aberto, enquanto a aproxima c ao poligonal
de guras representadas parametricamente e relativamente simples. A forma
mais trivial e dividir o domnio de par ametros em intervalos uniformes: no
caso de curvas denidas sobre o domnio t [0, 1], elas ser ao aproximadas
pela seq uencia de pontos P(0t), P(1t), P(2t), . . . , P(1), e no caso
de superfcies denidas sobre o domnio uv, elas ser ao aproximadas por face-
tas de tamanho u v denidas pela seq uencia de vertices r(iu, jv),
r((i + 1)u, jv), r((i + 1)u, (j + 1)v) e r(iu, (j + 1)v), onde i e
j representam n umero de passos nas duas ddire coes do domnio, conforme
ilustra Figura 3.9.
3.3.2 Vetores Normais
Se a gura geometrica e uma malha poligonal cuja faceta e denida pela
seq uencia de pontos orientados no sentido-anti-hor ario v
1
v
2
v
3
. . . v
n
, o vetor
normal de cada faceta pode ser obtido a partir dos tres primeiros pontos v
1
,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 54
u
v
Figura 3.9: Subdivisao do domnio de par ametros.
v
2
e v
3
n =

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
.

E importante lembrar que


1. a multiplica cao de matrizes nao e comutativa.
2. na multiplica cao de matrizes, podemos ter A.B = 0 com A = 0 e
B = 0.
3. nem todas as matrizes quadradas s ao inversveis. Quando uma matriz
A e inversvel, a sua inversa e indicada por A
1
e A.A
1
= I. Uma
tecnica muito conhecida para computar uma matriz inversa e o metodo
de elimina cao de Gauss.
4. uma matriz ortogonal e uma matriz cuja inversa coincide com a sua
transposta.
4.2 Transformacoes Geometricas Basicas
Ha duas formas equivalentes de realizar uma transforma cao geometrica,
tendo como resultado um mesmo conjunto de pontos: considerar que o refe-
rencial dos dois domnios R
n
e S
n
seja o mesmo (Figura 4.2.(a)), ou consi-
derar que cada domnio tenha o seu pr oprio referencial e que as coordenadas
dos pontos em rela cao ao referencial sejam invariantes (Figura 4.2.(b)).
Apresentamos nesta se cao as cinco transforma coes geometricas b asicas.
Mostramos ainda que cada uma destas transforma coes pode ser processado
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 59
(a) (b)
Figura 4.2: Transforma coes equivalentes: (a) das coordenadas, mantendo
referencial xo; (b) do referencial, mantendo coordenadas xas.
P
1
P
2

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

Figura 4.12: Vetor normal.


P
1
e P
2
representados em coordenadas cartesianas

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

da nova superfcie deve satisfazer a rela cao


N
t
(MP) = 0.
Agora, estamos prontos para responder a pergunta: qual e a transforma cao
M

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

(a) (b) (c)


Figura 4.13: Rota cao.
Comparando as equa coes do plano antes e ap os a transforma cao, chega-se
na solu cao M
t
M = I, ou seja,
(M
t
)
t
= M

= (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.

E tambem limitada a capacidade do olho humano distinguir dois pontos.


Esta capacidade e medida por acuidade visual que dene o menor angulo
visual para o qual o olho consegue discriminar dois pontos, ou por poder
de resolu cao visual que e a menor dist ancia em que dois pontos quem
distinguveis para o olho. O valor medio da acuidade visual para um olho
normal e em torno de 1 minuto de angulo.
A retina contem dois tipos de celulas fotoreceptoras: bastonetes e co-
nes. Os bastonetes, respons aveis pela visao acrom atica e estimul aveis a
baixa intensidade luminosa, se encontram essencialmente na periferia da re-
tina; enquanto os cones, capazes de distinguir cores num nvel normal de
luminosidade, s ao respons aveis pela visao crom atica e se encontram na parte
central da retina denominada f ovea. Usualmente, os bastonetes s ao 1000
vezes mais sensveis `a luz que os cones.
Os bastonetes diferem dos cones tambem na sensibilidade aos compri-
mentos de onda luminosa. Em media, os bastonetes s ao mais sensveis `as
ondas de comprimento de 510 nm (azul esverdeado) enquanto os cones, `as
de comprimento 555nm (amarelo esverdeado). Isso explica por que distin-
guimos melhor objetos de cor azul do que os de cor vermelha num ambiente
de baixa ilumina cao.
O nervo optico, constitudo pelos axonios das celulas ganglionares,
transmite os sinais visuais para o cortex cerebral. Entre a retina e o nervo
optico, existem ainda celulas receptoras capazes de transformar sinais vi-
suais em sinais neurais/eletricos. No cortex cerebral, esses sinais neurais
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 88
Figura 5.13: Retina (Fonte:http://pt.wikipedia.org/wiki/Ficheiro:Fig retine.png).
A
B
esquerdo
direito
L
2
L
2
d
(a) (b) (c)
Figura 5.14: Visao binocular: (a) campo de visao
(Fonte:http://br.geocities.com/saladesica5/leituras/binocular30.jpg), (b)
paralaxe da visao binocular e (c) paralaxe do movimento.
s ao analisados e interpretados, produzindo diferentes percep coes visuais
(Figura 5.13). Na regi ao da retina onde sai o nervo optico n ao existem bas-
tonetes nem cones, de forma que os sinais que chegam neste ponto n ao s ao
enviados ao cerebro. Este ponto e conhecido como ponto cego.
Como ja mencionado no captulo 1, a nossa visao e binocular, constituda
de dois olhos, proporcionando uma extensao angular, conhecido tambem
como campo de visao ou eld of view em ingles, de aproximadamente 150
o
na vertical e 180
o
na horizontal (Figura 5.14.(a)). Os impulsos eletricos,
que cada olho recebe, s ao ligeiramente diferentes por causa da dist ancia
L 64mm entre os olhos. Isso resulta em paralaxe. Esses sinais convergem
no c ortex occipital do cerebro formando uma unica imagem. O processo
de fusao dos sinais de duas imagens para transforma-los numa unica imagem
e um dos respons aveis pela percep cao de profundidade (Figura 5.14.(b)).
Alem da visao binocular, o sistema visual possui outros recursos que nos
ajudam na percep cao de profundidade com um unico olho, denominado por
visao monocular:
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 89
paralaxe do movimento: consiste na percep cao do movimento relativo
de um objeto xo em rela cao aos outros, tambem xos, quando o
observador desloca de um ponto ao outro (Figura 5.14.(c)).
sombreamento: ou varia cao da tonalidade das cores sob efeitos lumino-
sos. Este recurso foi utilizado pelo Galileu para concluir que existem
montanhas e crateras na Lua, muitos anos antes do primeiro homem
pisar nela.
oclusao: atraves da oclus ao dos objetos distantes pelos objetos mais pr oximos
do observador aumenta a percep cao de proximidade.
perspectiva: a percep cao de linhas horizontais paralelas como linhas con-
vergentes num ponto innito refor ca a no cao de dist ancia dos obje-
tos.
acomoda cao automatica da curvatura do cristalino: objetos de dife-
rentes dist ancias demandam distintos esfor cos musculares para foca-
los.
atenua cao atmosferica: objetos distantes parecem menos ntidos que os
objetos pr oximos
No momento estamos interessados em forma cao de imagens na retina
sob o ponto de vista geometrico. Para isso, utilizamos um esquema extre-
mamente simplicado do olho denominado olho reduzido, no qual os meios
transparentes s ao substitudos por uma unica lente delgada convergente cujo
centro optico est a 17mm da retina e todas as outras partes do olho n ao ne-
cess arias `a constru cao geometrica da imagem s ao omitidas (Figura 5.15.(a)).
Os sinais visuais captados podem ser representados como uma imagem real,
invertida e menor que o objeto na retina (Figura 5.15.(b)). O fato de a
imagem ser invertida n ao causa nenhum inc omodo, pois os impulsos nervo-
sos transmitidos pelo nervo optico ate o cerebro s ao interpretados de modo
coerente com a nossa forma de percep cao. Se rodarmos a imagem duas
vezes, como na Figura 5.15.(c), pode-se perceber que, geometricamente, a
forma cao de imagens na retina e equivalente a uma proje cao perspectiva
ilustrada na Figura 5.8. Portanto, poderemos aplicar Eq. 5.7 para obter
uma imagem de geometria pr oxima `a nossa percep cao visual.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 90
17mm
centro ptico
eixo ptico
retina
biconvexa
lente
crnea
(a) (b)
centro ptico
x
y
z
eixo tico
focal
centro
tico
x y
P
P(x,y,z)
distncia
(c)
Figura 5.15: Forma cao de imagens: (a) olho reduzido
(Fonte:http://www.geocities.com/ppoeys/olho reduzido.jpg); (b) modelo
simplicado; (c) proje cao perspectiva; e (d) modelo matem atico.
5.3 Espa cos
Na se cao 5.2 mostramos que o processo de forma cao de imagens na retina
pode ser modelado como uma proje cao perspectiva com um ponto de fuga
e na se cao 5.1 apresentamos uma variedade de proje coes. Para cada tipo de
proje cao, demos ainda uma possvel forma de manipula-lo como produto de
matrizes simples desde o plano de proje cao, o centro optico e a dire cao proje-
tora satisfa cam as condi coes estabelecidas. Na pr atica, tais condi coes dicil-
mente s ao atendidas, como ilustra Figura 5.16. Naturalmente, pergunta-se
se casos como estes tambem possam ser representados e manipulados como
produto de matrizes. Adicionalmente, ja que o objetivo e que o processo
de proje cao seja realizado pelo computador, e interessante que tenhamos
uma interface simples para especicar os diversos tipos de proje cao e um
algoritmo que derive a partir dela uma imagem bi-dimensional dentro da
expectativa.
A solu cao que apresentaremos no restante deste captulo se baseia no
fato de que a escolha de um referencial cartesiano (base can onica) est a di-
retamente relacionado com o grau de simplicidade das matrizes de trans-
forma cao. Ao inves de utilizarmos um unico referencial, o processo e reali-
zado com auxlio de cinco referenciais, a m de que ao longo do processo os
elementos da cena tenham sempre coordenadas com uma sem antica pr oxima
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 91
raios projetores
plano de
projeo
y
z
x
Figura 5.16: Uma proje cao com arbitrario plano de proje cao e arbitraria
dire cao de proje cao.
Espao
nativo
Criao
da Cena
Espao de
Universo
Universo >
Cmera
Normalizao
Cmera
Espao da
Espao
Normalizado
Exibio
Dispositivo
Espao de
Figura 5.17: Fluxo de Proje cao.
da nossa concep cao (Figura 5.17):
Espa co do Objeto: e o espa co em que uma gura geometrica e denida.
Procura-se, preferencialmente, utilizar um referencial para o qual a for-
mula cao algebrica que representa a gura em valores numericos seja
mais simples e expressiva possvel, como vimos na se cao 3.2.1. O sis-
tema de coordenadas associado a este espa co e denominado de sistema
de coordenadas do objeto, de modelamento ou local.
Espa co de Universo: e o espa co em que se encontram todos os elementos
que comp oem uma cena de interesse, como as formas geometricas, as
fontes de luz e a camera virtual. Uma nalidade deste espa co e posicio-
nar relativamente os elementos da cena; portanto, deve-se transformar
as coordenadas do espa co local de cada elemento para as deste espa co.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 92
O referencial comum a todos os elementos da cena e denominado sis-
tema de coordenadas de universo WC (ou do mundo, em ingles
world-coordinate system).
Espa co da Camera: e o espa co em que o centro optico e o eixo optico
da camera/do observador coincidam, respectivamente, com a origem
e o eixo z do referencial. O uso deste espa co pode facilitar a in-
terpreta cao das coordenadas dos pontos e simplicar a aritmetica de
proje cao. O referencial utilizado para especicar este espa co e conhe-
cido como sistema de coordenadas de camera ou do observa-
dor (viewing-reference coordinate system VRC). Usualmente e neste
espa co em que s ao especicadas as dimensoes do volume de visao de
interesse, ou seja campo de visao em conjunto com a profundidadde de
visao, porque os seus lados s ao paralelos aos eixos-base do referencial
deste espa co (Figura 5.18).
Espa co Normalizado: e o espa co em que as coordenadas dos elementos
de uma cena s ao normalizadas com respeito ao volume de visao de in-
teresse. O sistema referencial deste espa co e conhecido como sistema
de coordenadas normalizado, em ingles normalized device coordi-
nate system NDC. O uso deste espa co aumenta a reusabilidade, ja
que as coordenadas dos elementos da cena car ao normalizadas num
padrao pre-estabelecido, independentemente das dimensoes do volume
de visao. Adicionalmente, veremos no captulo 6 que, por eciencia,
os elementos da cena que estiverem fora do campo de visao devem ser
removidos antes de envia-los para o uxo de imageamento e o algo-
ritmo de remo cao pode ser reduzido em problemas de intersec cao entre
os elementos e o volume de visao. Se a representa cao dos planos que
delimitam o volume de visao for simples, a solu cao do problema ser a
simples.
Espa co da Imagem: e o espa co onde uma proje cao da cena de interesse
e exibida. Em ingles, este espa co e conhecido por viewport. As co-
ordenadas dos elementos da cena, em pixels, s ao dadas em rela cao a
um sistema de referencia denominado sistema de coordenadas da
imagem ou do dispositivo, em ingles, screen-coordinate system
DC).
Nas seguintes subse coes apresentamos os modelos mais conhecidos para
estes espa cos.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 93
5.3.1 Modelos de Camera
Da se cao 5.1, vimos que um sistema de proje cao e determinado, sob o ponto
de vista geometrico, por cinco vari aveis:
centro optico,
eixo optico,
orienta cao da camera,
plano de proje cao, e
tipo de proje cao (paralela ou perspectiva).
Dependendo da aplica cao, estas vari aveis s ao desdobradas em par ametros
de nomes distintos. Um modelo utilizado em Computa cao Gr aca possui,
por exemplo, os seguintes par ametros, dados no referencial de universo:
1. view reference point VRP (posi cao de um ponto do plano de proje cao),
2. view plane normal VPN (vetor normal do plano de proje cao),
3. view up vector VUP (orienta cao da camera),
4. projection reference point PRP (posi cao da camera),
5. tipo de proje cao.
Os par ametros VRP e VPN denem o plano de proje cao, o par ametro
PRP corresponde ao centro optico e o eixo optico corresponde `a reta que
passa por PRP e o centro CW da face frontal do volume de visao de interesse
(Figura 5.18.(a)). Mas como se especica o centro CW? A forma mais
simples para determina-lo seria considerar que as coordenadas dos vertices
do volume de visao sejam especicadas no referencial da camera, ou seja,
quando a dire cao do vetor normal ao plano de proje cao coincide com o eixo
z. Neste caso particular, os valores dessas coordenadas est ao diretamente
relacionados com as dimensoes do volume, conforme ilustra Figura 5.18.(b).
Uma outra alternativa para especicar as quatro vari aveis de um sistema
de proje cao perspectiva e atraves dos seguintes par ametros:
1. posi cao do observador eye,
2. centro de interesse,
3. dist ancia d,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 94
centro ptico (PRP)
CW
VRP
VPN
VUP
WC
plano de
projeo
CW
VRC
(x
min
, y
min
, z
min
)
(x
max
, y
max
, z
max
)
y
max
y
min
x
max
x
min
z
max
z
min
(a) (b)
Figura 5.18: Modelo da c amera 1: (a) par ametros e (b) volume de visao.
4. view up vector VUP (orienta cao da camera),
5. largura L, altura H e profundidae D da janela.
A posi cao do observador corresponde ao centro optico, enquanto o eixo
optico passa por este ponto e o centro de interesse. Neste modelo, a dire cao
do vetor normal do plano de proje cao VPN e sempre coincidente com a
dire cao do eixo optico, o plano de proje cao ca a dist ancia d do observador,
e a interse cao do eixo optico com o plano de proje cao e o centro da janela
CW. Com isso, pode-se derivar, a partir do comprimento L, da altura H e da
profundidade D, os valores das coordenadas dos vertices do volume de visao,
de acordo com a Figura 5.19.(a). No entanto, e comum encontrar, no lugar
de L, H e D, os valores (base, topo, direita, esquerda, frente, fundo), tal
que (topobase), (direitaesquerda) e (fundofrente) correspondam a H,
L e D do volume de visao. Se utilizarmos o sistema de referencia da camera
VRC, esses valores coincidirao com os valores das coordenadas dos vertices
do volume de visao (Figura 5.19.(b)). Outro variante para especica cao do
volume de visao seria por 2 par ametros: raz ao de aspecto L:H e o campo de
visao fovy (Figura 5.19.(c)).
Em Visao Robotica, um sistema de proje cao e comumente denido atraves
de 5 par ametros (Figura 5.20):
1. a dist ancia focal da lente d,
2. a posi cao da camera w
0
,
3. o angulo (pan) do eixo optico em rela cao ao vetor (1, 0, 0, 0) do
sistema de referencia de universo (dire cao do eixo optico),
4. o angulo (tilt) em rela cao ao vetor (0, 0, 1, 0) do sistema de referencia
de universo (orienta cao da camera), e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 95
H
CW
centro de
interesse
VUP
WC
L
observador
d
(x
CW

L
2
, y
CW

H
2
, z
CW
)
(x
CW
+
L
2
, y
CW
+
H
2
, z
CW
D)
(topo, direita, fundo)
(a)
CW
centro de
interesse
VUP
observador
VRC
(base, esquerda, frente)
(topo, direita, fundo)
(b)
CW
observador
VRC
fovy
H
L
frente
fundo
(a)
Figura 5.19: Modelo da camera 2: (a) par ametros, (b) volume de visao em
VRC e (c) fovy no lugar da dist ancia d (d =
H
2tg
fovy
2
).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 96
WC
VRC
z Z
Y
X
y
x
w
0
r

Figura 5.20: Modelo da C amera 3.


5. o deslocamento r do plano de proje cao em rela cao `a base de sus-
tenta cao da camera (junto com w
0
dene a posi cao do centro optico).
5.3.2 Modelos de Espaco Normalizado
A motiva cao primaria do uso de um espa co normalizado e tornar o est agio de
imageamento independente das dimensoes do volume de visao, normalizando-
as em intervalos de valores pre-estabelecidos. E quais s ao os intervalos de
valores mais apropriados? Um dos criterios de escolha pode ser simplicidade
no algoritmo de remo cao dos elementos fora do volume de visao antes da
transferencia de uma cena para o uxo de imageamento. No captulo 6 vere-
mos que um algoritmo de recorte consiste essencialmente em determina cao
de intersec cao seguida de classica cao e sele cao dos resultados de interesse.
Portanto, para o criterio de simplicidade, podemos escolher os seguintes 6
planos para formar um volume de visao canonico de proje coes paralelas
(Figura 5.21.(a))
x = 1 ; x = 1 ; y = 1 ; y = 1 ; z = 0 ; z = 1; (5.8)
e para proje coes perspectivas (Figura 5.21.(b)),
x = z ; x = z ; y = z ; y = z ; z = z
min
; z = 1 (5.9)
com o eixo optico coincidente com o eixo z do sistema de referencia escolhida
e perpendicular ao plano de proje cao.
5.3.3 Modelos de Dispositivo
Vimos na se cao 2.3 que, trabalhando em conjunto com um sistema de janelas,
podemos desenhar as guras geometricas numa area de desenho retangular,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 97
VRC
+1
1
1
1
+1
1
+1
1
1
+1
VRC
fre
n
te
/fu
n
d
o
(a) (b)
Figura 5.21: Volume de visao can onico: (a) paralelo e (b) perspectivo.
de dimensoes W H em pixels e posicionada em P
0
= (U
o
, V
o
), especi-
camente alocada para elas. Como ja comentamos, esta area e conhecida
como viewport, em ingles. De que maneira o computador faria tal desenho?
Basta mapear as imagens projetadas na area de desenho, como mostra
Figura 5.22. Para isso, e necessario conhecer os seguintes par ametros da
area de exibi cao:
1. dimensoes H e W do viewport e
2. posi cao (U
0
, V
0
) do viewport.
Um possvel referencial, que representaria o viewport para o qual as suas
dimensoes aparecem explicitamente nos valores das coordenadas dos pontos,
seria aquele apresentado na Figura 5.17: xar a origem no seu canto esquerdo
superior e considerar os eixos-base paralelos `a janela. Isso, no entanto,
implica em uma opera cao de espelhamento/reexao em torno do eixo x,
a mais, no processo de mapeamento de NDC para DC. Em decorrencia
disso, tem se preferido utilizar em snteses de imagens o referencial que tem
a origem em (U
0
, V
0
) e os dois vetores-base paralelos aos lados da janela
(linhas em verde e em vermelho na Figura 5.22).
5.4 Matrizes de Transformacao Projetiva
Uma vez apresentados os espa cos intermediarios que auxiliam uma trans-
forma cao projetiva, vamos mostrar nesta se cao, passo a passo, como se ma-
nipula algebricamente as formas geometricas entre estes espa cos para chegar
nas imagens desejadas. O objetivo e ilustrar como se consegue, de forma
intuitiva, chegar a uma matriz de transforma cao complexa dividindo o pro-
blema em sub-problemas mais simples.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 98
VRC
+1
1
1
1
+1
W
H
P
0
W
H
P
0
(a) (b)
Figura 5.22: Mapeamento em Viewport do volume can onico: (a) paralelo e
(b) perspectivo.
Ao longo desta se cao, para distinguir os referenciais dos quatro espa cos,
utilizaremos as seguintes conven coes para designar suas respectivas coorde-
nadas:
WC: (x, y, z);
VRC: (u, v, n), com u
min
, u
max
, v
min
, v
max
, F e B, denotando esquerda,
direita, base, topo, frente e fundo, respectivamente (Figura 5.19.(b));
NDC: (u
n
, v
n
, n
n
);
DC: (U, V ).
Observamos aqui que utilizaremos como modelo de camera o modelo
ilustrado na Figura 5.18 e como o modelo de dispositivo o modelo mostrado
na Figura 5.22.
5.4.1 WC para VRC
Estrategicamente, vamos considerar que o referencial do sistema de re-
ferencia VRC seja denido na seguinte maneira: origem em V RP, eixo z,
designado por R3, na dire c ao do vetor VPN, o eixo y, representado por R2,
na dire cao da proje cao do vetor VUP sobre o plano de proje cao, isto e,
R3 =
V PN
V PN
; R1 =
V UPR3
V UPR3
e R2 = R3 R1.
Para isso, mudar as coordenadas no referencial WC para o referencial
VRC, precisaremos colocar a origem (0, 0, 0, 1) do VRC no ponto VRP =
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 99
(V RP
x
, V RP
y
, V RP
z
, 1), cujas coordenadas s ao dadas em WC, atraves de
uma transla cao
T(V RP
x
, V RP
y
, V RP
z
) =
_

_
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

= R T(V RP) PRP. (5.12)


Em nota cao matricial, isso corresponde a aplicar em coordenadas (u, v, n, 1)
dos pontos a seguinte transforma cao.
SH =
_

_
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

(Eq. 5.12) para a origem,


ou seja, T(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

) R T(V RP). (5.20)


Vamos apresentar dois exemplos numericos para mostrar os efeitos de
cada passo da normaliza cao de um cubo denido em WC:
_

_
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

): Como vimos no Exemplo 5.1


PRP

= R T(V RP)PRP = (0, 0, 4

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

E adequado para especicar as cores das impressoras coloridas que utilizam


o sistema subtrativo para forma cao de cores. Nestes dispositivos, os pig-
mentos ou corantes s ao depositados sobre a folha durante a impressao.
Tais materiais funcionam como ltro, deixando somente que ondas de certos
comprimentos sejam reetidas (Se cao 2.1.1). A cor nal percebida depende,
portanto, muito da cor original da qual tais ondas foram subtradas. Por
exemplo, cor ciano sobre papel vermelho resulta em percep cao de cor
preto ou cor ciano sobre uma folha amarela aparece como verde.
Usualmente, considera-se como o referencial o branco (X
w
, Y
w
, Z
w
).
De forma an aloga ao modelo RGB, o modelo CMY uniformiza a repre-
senta cao dos espa cos de cor de sistemas subtrativos por um cubo unit ario de-
nido em um referencial cartesiano. Para uma cor em coordenadas (R, G, B),
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 153
a sua representa cao (C, M, Y ) no sistema CMY deve ser 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
_
_
_
_
R +C
G+M
B +Y
_
_
=
_
_
X
w
Y
w
Z
w
_
_
=
_
_
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
_
_
_
_
1
1
1
_
_
,
ou seja,
_
_
R +C
G+M
B +Y
_
_
=
_
_
1
1
1
_
_
.
Em outras palavras, para um mesmo subespa co 3D de cor, as coordena-
das do modelo RGB e as do modelo CMY satisfazem a seguinte rela cao
(Figura 7.16.(b))
_
_
C
M
Y
_
_
=
_
_
1
1
1
_
_

_
_
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

E utilizado na transmiss ao de sinais de televisao colorida NTSC nos Estados


Unidos e no Japao. A coordenada Y e igual `a coordenada Y do padrao CIE-
XYZ, de forma que uma televisao preto-e-branco possa utiliz a-la para exibir
imagens coloridas em nveis de cinza. Esta coordenada indica, portanto, a
luminancia enquanto as coordenadas I e Q codicam a sua crominancia:
I, In-phase signal em ingles, contem informa cao da faixa laranjaciano e
Q, (Quadrature signal ) em ingles, representa cromas do intervalo magenta
verde. Como a sensibilidade da visao humana e maior para a luminancia e
menor para as varia coes entre magenta e verde, esta decomposi cao contribui
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 154
adicionalmente para maximizar a transmiss ao de informa cao relevante
numa largura de faixa menor que 4.2MHz.
Considerando uma cor especicada no modelo RGB do sistema NTSC
(Se cao 7.4.1) com o iluminante C ((x
w
, y
w
, Y
w
) = (0.31, 0.316, 100.0)) como
o ponto branco, ela pode ser mapeada para uma cor do modelo YIQ atraves
da seguinte transforma cao
_
_
Y
I
Q
_
_
=
_
_
0.299 0.587 0.144
0.595716 0.274453 0.321263
0.211456 0.522591 0.311135
_
_
_
_
R
G
B
_
_
.
7.5.4 HSV
Diferentemente dos modelos RGB, CMY e YIQ, o modelo HSV e orientado
aos usuarios, cuja especica cao se baseia na forma como estamos habituados
a denir uma cor matiz (H), satura cao (S) e valor de brilho (V). O
modelo HSV e derivado do modelo RGB, olhando-o pela diagonal do cubo
unit ario, como ilustra Figura 7.17.(a). A coordenada H indica o angulo,
em grau, da cor em rela cao `a cor vermelho; a coordenada S corresponde
`a pureza da cor: quando a cor e pura, S = 1. E a coordenada V est a
relacionada com a claridade da cor: quando mais ofuscante for a cor, maior
ser a o valor de V . O pseudo-codigo RGB HSV ilustra um procedimento
emprico de mapeamento de uma cor entre os dois espa cos. Figura 7.17.(b)
ilustra um cone HSV.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 155
Branco (S=0,V=1)
Amarelo
Verde
Ciano
Azul
Magenta
Vermelho (S=1, H=0)
(a) (b)
G
H
B
R
O=(1/3,1/3,1/3)
P=(r,g,b)
p
B
A
(c)
Figura 7.17: Cone HSV: (a) vista diagonal do cubo RGB; (b) s olido de cor;
e (c) rela cao entre RGB e HSV.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 156
Input: R,G,B
Output: H,S,V
max = Maximo (R,G,B) ;
min = Mnimo (R,G,B) ;
V = max ;
if max = 0 then
S =
maxmin
max
;
else
S = 0;
end
if S = 0 then
H = indenido ;
Retorne ;
else
delta = max - min ;
if R = max then
H =
GB
delta
;
else if G = max then
H = 2 +
BR
delta
;
else
H = 4 +
GG
delta
;
end
H = H * 60 ;
/* Converter para graus */ if H 0 then
H = H + 360 ;
end
Algoritmo 4: RGB HSV: Procedimento de convers ao do modelo RGB
para HSV.
Um procedimento analtico, mais preciso, consiste em considerar que o
valor/a intensidade da cor P = (R, G, B) seja
V
1
3
(R +G+B).
Projetamos P e o ponto branco sobre o plano R + G + B = 1 para
achar o angulo entre a reta projetada OP

e a reta de referencia OR. A


proje cao do ponto P e P

= (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

Bp, obtemos o valor de


satura cao em termos das coordenadas r, g e b
S = 1
min(r, g, b)
1
3
.
7.6 Representa cao Digital de Cor
Mostramos como e possvel ver cores que percebemos via valores numericos
na se cao 7.3. Adicionalmente, mostramos na se cao 7.5 que os dispositivos
de sada de distintas tecnologias conseguem reproduzir um sub-espa co des-
tas cores e eles conseguem identicar cada cor deste sub-espa co por um
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 158
triplo de valores numericos. Isso signica que se quisermos que um dispo-
sitivo reproduza uma determinada cor, e suciente que digamos para ele
a identica cao numerica de cada cor. Caso tal dispositivo for controlado
por um processador, basta que o processador transmita para ele tal identi-
ca cao. No caso de monitores, estes valores s ao armazenados em frame buer
(Se cao 2.2.1). A resolu cao de cor nesta mem oria depende da quantidade de
planos de bit, ou profundidade como ja introduzimos na se cao 2.1.1, associ-
ada a ela. Vamos ver diferentes alternativas de organiza c ao desta mem oria
para representa cao de cores de uma imagem.
Um dispositivo e monocrom atico, quando h a somente um bit associado a
cada plano (Figura 7.18.(a)). Ele recebe apenas dois tipos de sinais de con-
trole: 0 ou 1. Este sinal digital e convertido, pelo conversor digitalanal ogico
DAC, em sinal anal ogico de controle da luminancia das luzes primarias,
como ja comentamos na se cao 2.2.1. Um frame-buer com somente um
plano de bit e conhecido tambem como bitmap. Uma mem oria com 8 pla-
nos de bit consegue distinguir 2
8
=256 nveis de cinza ou 256 cores, ou seja,
gerar 256 distintos sinais de controle (Figura 7.18.(b)). Podemos ainda,
com auxlio de um look-up table, aumentar a capacidade de discrimina cao
de cores de um monitor colorido. Ao inves de utilizarmos os planos de bit
para representar cores, eles s ao utilizados para armazenar as entradas em
look-up table com M > 8 bits por entrada, conforme ilustra Figura 7.18.(c).
Neste caso, aumentou-se a resolu cao de cor para 2
M
2
8
com a restri cao de
que somente 2
8
distintas cores podem estar disponveis simultaneamente em
cada instante. Para acessar outras cores, e necessario recarregar a tabela.
Por isso, e comum chamar este tipo de mem oria de cor falsa ou pseudo-
cor, em ingles pseudo color. Hoje em dia, e comum utilizar 24 planos de
bit, 8 bits para cada uma das cores primarias R, G e B, ou seja 2
8
sinais
de controle para cada um dos tres canh oes de feixe de eletrons. Ao todo,
consegue-se diferenciar 2
24
cores maior do que a visao de um observador
medio conseguiria distinguir. Por este motivo, este tipo de mem oria e co-
nhecido como do tipo cor real, em ingles true color. A sua organiza cao e
bem similar `a ilustrada na Figura 2.11 com 15 planos de bit.
No caso de dispositivos de tecnologia baseada em raios catodicos, os si-
nais digitais armazenados em frame-buer s ao convertidos em tens oes V que
controlam a intensidade luminosa I a ser emitida por cada fosforo. A fun cao
de transferencia entre o sinal de vdeo e a intensidade de luz perceptvel na
tela do monitor e dada por uma express ao n ao-linear
I = V

. (7.14)
Isso signica que um incremento na tens ao n ao produza necessariamente
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 159
DAC
frame buffer
C
R
T
Registrador
de 1 bit
Processador
Monitor
(a)
8
Registrador
DAC
frame buffer
C
R
T
(b)
8
Registrador
frame buffer
DAC
M
look up table
C
R
T
(c)
Figura 7.18: Frame-buer: (a) bitmap; (b) 8 planos de bit monocrom atico;
(c) pseudo-cor.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 160
Figura 7.19: Corre cao gamma (Fonte:
http://broadcastengineering.com/newsrooms/broadcasting gamma correction/).
uma varia cao em intensidade na mesma propor cao, como ilustra (Figura 7.19).
O expoente que aparece na Eq. 7.14 e uma constante que depende das ca-
ractersticas dos fosforos. Por exemplo, no sistema NTSC, o fator e 2.2 e
no sistema PAL, 2.8. Para corrigir esta n ao-linearidade, e feita em muitos
sistemas uma compensa cao atraves da pre-corre cao do sinal original V ,
aplicando um sinal V

= 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

E tambem conhecida como fonte distante. A energia luminosa ui uni-


formemente no espa co numa dire cao especca d, como se a fonte estivesse
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 167

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

Figura 8.16: Vetor H.


Figura 8.17: Tonaliza cao.
= +
2 = .
Consequentemente, para obter mesmos resultados visuais com os dois mo-
delos, e necessario escolher valores distintos para o expoente de reexao
especular de cada modelo.
8.4 Tonaliza cao
Sendo o processo de determina cao da cor em cada ponto um processo re-
lativamente mais demorado, e comum em sistemas de informacao gr aca
determinar a cor com uso da Eq. 8.9 somente em algumas amostras, tipica-
mente nos vertices, e interpolar os valores nos restantes pixels no espa co de
imagens como est a esquematizado na Figura 8.17.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 179
Figura 8.18: Tipos de tonaliza cao.
Os tres tipos de tonaliza cao mais conhecidos s ao: constante, Gouraud e
Phong.
8.4.1 Tonalizacao Constante
Consiste em simplesmente calcular a cor para um vertice de cada faceta
no espa co de universo (WC) e propaga-la para todos os pontos restantes
da face durante a rasteriza cao (Se cao 10.2.3). Este tipo de tonaliza cao e
conhecida por tonaliza cao constante. Devido `as varia coes abruptas da
intensidade luminosa entre as facetas, a a cao inibidora de cada fotoreceptor
fora do seu centro de campo receptivo acentua ainda mais estas varia coes,
como vimos na se cao 1.1, causando a sensa cao de bordas bem quebradas
entre as facetas como ilustra Figura 8.18.
8.4.2 Tonalizacao de Gouraud
Para suavizar estas varia coes, Gouraud propos em 1971 um esquema de
interpola cao linear das intensidades entre os vertices, determinadas pela
Eq. 8.9 no espa co de universo WC. Este procedimento e conhecido como to-
naliza cao de Gouraud e e aplicado durante a rasteriza cao (Se cao 10.2.3).
Supondo que as intensidades dos vertices do tri angulo da Figura 8.19 tenham
sido calculadas no espa co de universo WC, podemos obter a intensidade I
4
pela interpola cao linear
I
4
=
y
2
y
4
y
2
y
1
I
1
+
y
4
y
1
y
2
y
1
I
2
,
e de forma an aloga, a intensidade I
5
I
5
=
y
2
y
5
y
2
y
3
I
3
+
y
5
y
1
y
2
y
3
I
2
.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 180
y1
y
x x
1
y
1
x
2
x
2
x
3
x
3
I
1
I
2
I
3
I
4
I
5
I
p
Figura 8.19: Tonaliza cao de Gouraud.
Interpolando linearmente estas duas intensidades das arestas do tri angulo,
podemos obter a intensidade I
p
em qualquer ponto no interior do tri angulo
I
p
=
x
p
x
4
x
5
x
4
I
5
+
x
5
x
p
x
5
x
4
I
4
.
A regularidade da organiza cao dos pixels nos permite ainda elaborar um
esquema recorrente de calculo das intensidades, aproveitando os calculos
anteriores. Vamos supor que na linha y seja determinada a intensidade no
ponto (x, y)
I
y
=
y
2
y
y
2
y
1
I
1
+
y y
1
y
2
y
1
I
2
,
a intensidade na pr oxima linha y 1 seria
I
y1
=
y
2
y + 1
y
2
y
1
I
1
+
y 1 y
1
y
2
y
1
I
2
= I
y
+
I
2
I
1
y
2
y
1
.
8.4.3 Tonalizacao de Phong
Um dos problemas que a tonaliza cao de Gouraud apresenta e perda de pon-
tos de brilho no meio de uma faceta. Para evitar isso, recomenda-se au-
mentar o n umero de vertices na malha que a representa, ou seja, renar
mais a malha poligonal. Uma outra alternativa seria estimar os vetores
normais em cada amostra da faceta atraves da interpola cao linear dos
vetores normais dos seus vertices durante a rasteriza cao e aplicar a Eq. 8.9
em cada amostra mapeada em um pixel , a m de obter uma intensidade
mais pr oxima da percep cao real. Chamamos este tipo de interpola cao to-
naliza cao de Phong.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 181
n
1
n
2
n
3
n
4
x
1
y
1
x
2
x
2
Figura 8.20: Tonaliza cao de Phong.
O esquema de interpola cao e similar ao de Gouraud, substituindo apenas
as intensidades pelos vetores normais. Por exemplo, para obter o vetor
normal n
4
na Figura 8.20 utilizamos a seguinte express ao
n
4
=
y
4
y
2
y
1
y
2
n
1
+
y
1
y
4
y
1
y
2
n
2
,
A tonaliza cao de Phong pode gerar imagens falsas quando a superfcie
n ao e suave.
8.5 Tracado de Raio
Diferentemente do modelo de ilumina cao local, um modelo de ilumina cao
global considera idealmente que o computador consiga ver todo o uxo
luminoso que chegue em cada ponto da superfcie. Tanto as radia coes vin-
das diretamente das fontes de luz como tambem todas as radia coes indiretas
das fontes de luz, reetidas ou refratadas por outras superfcies presentes
na cena de interesse, s ao consideradas no computo da cor de cada pixel .
Adicionalmente, o modelo de ilumina cao global considera a possibilidade
de uma radia cao direta ser bloqueada por um outro objeto opaco ao longo
da sua trajetoria. Por exemplo, o ponto P da Figura 8.3.(a) receberia ra-
dia coes diretas se a esfera n ao estiver no trajeto destas radia coes. No mo-
delo de ilumina cao local, como o computador s o ve rela coes diretas entre
luzsuperfcieobservador, incidirao sobre o ponto P as radia coes diretas;
enquanto no modelo de ilumins cao global, o computador veria a esfera no
trajeto das radia coes e perceberia que estas radia coes seriam bloqueadas,
gerando sombra sobre o ponto P.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 182
Figura 8.21: Modelo de ilumina cao global: (a) tra cado de
raio (Fonte: http://hof.povray.org/); (b) radiosidade (Fonte:
http://blenderartists.org/cms/).
Nesta se cao vamos apresentar as principais ideias sobre modelos de ilu-
mina cao global. Existem essencialmente duas classes de algoritmos de ilu-
mina cao global: radiosidade e tra cado de raio. Enquanto o tra cado
de raio se baseia no mesmo princpio fsico do modelo de ilumina cao local,
a tecnica de radiosidade adota um paradigma totalmente distinto. Ela se
fundamenta na Teoria de Transferencia de Calor para modelar a troca de
uxo luminoso entre as superfcies. Diferentemente do tra cado de raio em
que o calculo da especularidade requer a posi cao do observador, a radio-
sidade n ao depende da posi cao do observador, ja que ela considera que as
superfcies sejam lambertianas. Grosso modo, podemos dizer que radiosi-
dade e um modelo de ilumina cao (difusa) global e o tra cado de raio, um
modelo de ilumina cao (especular e de refra cao) global. Figura 8.21 apre-
senta duas imagens: uma gerada pelo algoritmo de tra cado de raio e outra
pela radiosidade.
Pela sua similaridade com o modelo de ilumina cao local em termos de
fundamento teorico, vamos detalhar a seguir apenas a tecnica de tra cado de
raio. Ela consiste em rastrear o percurso de um raio a partir do centro de
proje cao ate a fonte de luz ou ate um nvel de propaga c ao pre-estabelecido.
Uma alternativa seria lan car um raio primario por pixel , em ingles pi-
xel ray, e computar a superfcie mais pr oxima do centro de proje cao. Na
Figura 8.22.(a), para o raio primario desenhado a superfcie mais pr oxima
seria S
1
. Aplicando a lei de Snell-Descartes (Se cao 8.2), lan cam-se dois
raios secundarios: um na dire cao do raio de refra cao e outro na dire cao
do raio de reexao, denominadas, respectivamente, como T
1
e R
1
na Fi-
gura 8.22.(a). Cada superfcie atingida pelo raio secund ario e armazenada
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 183
Centro de
projeo
S
1
R
1
T
1
S
2
R
2
T
2
S
3
R
3
T
3
P(t
1
)
P(t
2
)
fonte de
luz
fonte de
luz
S
1
R
1 T
1
S
2
R
2 T
2
S
3
R
3
T
3
(a) (b)
Figura 8.22: Tra cado de raio: (a) caminho especular; (b) arvore bin aria.
numa arvore bin aria, cuja raz e a superfcie atingida pelo raio primario e
cujos ramos correspondem aos dois raios secundarios derivados, como ilustra
Figura 8.22.(b). O procedimento e repetido para cada raio secundario ate
que as condi coes de parada sejam satisfeitas.
Para determinar a cor a ser atribuda para cada pixel , percorre-se a
arvore no sentido de folhas ate a sua raiz a m de coletar a contribui cao
de intensidades em cada n o da arvore, devidamente atenuadas pelo fator de
atenua cao que leva em conta a dist ancia percorrida entre o n o e o seu n o-pai.
Se o raio primario n ao interceptar nenhuma superfcie da cena, atribui-se ao
pixel a cor de fundo. As componentes ambiente e difusa em cada ponto
podem ser computadas pelas Eqs. 8.6 e 8.4. Para evitar a determina cao
do raio de reexao em rela cao ao vetor L, e comum utilizar Eq. 8.10 para
calcular a componente especular. Figura 8.23.(a) esquematiza a rela cao dos
vetores necessarios nos calculos, denotando o raio secundario por s. A in-
tensidade luminosa em cada ponto e a soma das tres componentes devidas
`as intera coes diretas com as fontes luminosas L
j
e as intensidades oriundas
das dire coes R
i
e T
i
ponderadas pelo coeciente de reexao especular e pelo
coeciente de refra cao da superfcie, respectivamente. O coeciente de
refra cao k
t
e uma aproxima cao emprica da refractancia de Fresnel apresen-
tada na se cao 8.2. Sintetizando, a intensidade luminosa em cada ponto e
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 184
dado por
I(x, y, z) = I
a
(x, y, z) +f
at
(k
d
m

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

> 0. Observe a semelhan ca entre


a equa cao e Eq. 6.3. Se for um plano limitado, como uma face retangular,
e necessario vericar adicionalmente se P(t

) pertence `a face retangular.


8.5.2 Raio com Esfera
Dada uma esfera de raio r centrado em O, entao o ponto P da sua interse cao
com um raio P(t) = P
s
+tV e (Figura 8.24)
P = P
s
+ (v d)V,
onde v =

P
s
OV e d =
_
r
2
((

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
) =
_

I(u, v)[cos 2(w


u
u+w
v
v) i sin 2(w
u
u+w
v
v)]dudv.
(10.10)
Uma breve revisao sobre a transformada de Fourier e dada na se cao 10.3.1.
Sejam [U, U] e [V, V ] as faixas espectrais para as quais I(w
u
, w
v
) n ao
se anula. O teorema de amostragem nos diz que se
1
u
2U
1
u
2V, (10.11)
I(u, v) pode ser completamente recuperada. 2U e 2V s ao chamados li-
mite (de frequencia) de Nyquist nas dire coes u e v, respectivamente.
u e v s ao, por sua vez, conhecidos como intervalos de Nyquist.
Quando a frequencia de amostragem e acima da frequencia de Nyquist,
dizemos que houve uma super-amostragem e abaixo desta frequencia,
sub-amostragem. Figura 10.17 ilustra distintas frequencias de amostra-
gem de um sinal senoidal (uni-dimensional). Pelo teorema de amostragem,
somente amostragem com frequencia maior ou igual a frequencia de Nyquist,
o sinal poder a ser reconstrudo elmente. Observe o sinal reconstrudo, em
azul, a partir de sinais sub-amostrados. Na se cao 10.3.2 justicaremos isso
esbo cando os sinais no espa co espectral.
Para visualizar as amostras num dispositivo de sada anal ogico, como
um monitor CRT, precisamos reconstruir a partir das amostras sinais
anal ogicos atraves de um conversor D/A. O esquema sample and hold por
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 224
(a) (b)
Figura 10.18: Reconstru cao de sinal: (a) amostragem; (b) sinal reconstrudo
(Fonte: http://en.wikipedia.org/wiki/Sample and hold).
um perodo de 1 pixel e tipicamente utilizado para esta nalidade (Fi-
gura 10.18). No caso de um monitor CRT, o valor da luminancia associado
a cada pixel e convertido em tens ao a ser aplicada no canh ao dos eletrons.
Como a fun cao de reconstru cao possui tipicamente componentes de altas
frequencias, veremos que e difcil assegurar a reconstru cao exata da imagem
original. Na se cao 10.3.3 mostraremos, sob o ponto de vista teorico, como
se pode atenuar as componentes de altas frequencias e produzir imagens
visualmente agrad aveis.
10.3.1 Transformada de Fourier
Jean Baptiste Joseph Fourier introduziu no incio do seculo XIX uma forma
simples de visualizar e manipular uma fun cao complexa. Segundo ele, qual-
quer fun cao peri odica, por mais complicada que seja, pode ser represen-
tada como a soma de varias fun coes seno e cosseno com amplitudes, fases e
perodos escolhidos convenientemente. Figura 10.19 mostra a representa cao
da fun cao peri odica f(x), em vermelho, como a soma de duas sen oides e
duas cossenoides de perodos distintos, em cinza
f(x) = 2 sin(x) + 7 sin(2x) + 5 cos(3x) + 4 cos(5x)
Quando a fun cao f(x) e muito complexa, os termos de sen oides e/ou
cossenoides podem ser estendidos indenidamente para obter uma apro-
xima cao melhor de f(x). Figura 10.20 ilustra as diferentes aproxima coes de
uma fun cao f(x) plotada em azul por uma serie de cossenoides. Observe
que quanto maior o n umero de termos ou harmonicas, mais se aproxima o
seu somat orio da curva original.
Se uma fun cao n ao-peri odica f(u)
1. e contnua por parte num intervalo nito,
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 225
(a) (b)
Figura 10.19: Serie de Fourier: (a) fun cao peri odica;
(b) expans ao em fun coes trigonometricas (Fonte:
http://www.seara.ufc.br/tintim/matematica/fourier/fourier1.htm).
2. tem a derivada direita e derivada esquerda em todos os pontos, e
3. e absolutamente integr avel ao longo do eixo x, ou seja, existe o limite
lim
a
_
0
a
|f(u)|du + lim
b
_
b
0
|f(u)|du,
ela tambem pode ser expandida em fun coes simples atraves da integral de
Fourier
f(u) =
_

0
[A(w
u
) cos 2w
u
u +B(u) sin 2w
u
u]dw
u
,
onde
A(w
u
) =
_

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

), as componentes podem depender da geometria da superfcie


(vetor normal N) e da posi cao do observador (P). Assim, temos varias al-
ternativas para alterar a cor de cada amostra. Na ordem de popularidade
destas alternativas, temos
mapeamento de cor : substitui a componente difusa da equa cao de ilu-
mina cao pela cor especicada em textura, de forma a reproduzir a
aparencia da textura (Figura 12.4.(a));
mapeamento de reex oes especulares , em ingles environment map-
ping: substitui a componente especular da equa cao de ilumina cao pela
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 255
cor especicada em textura, de forma a produzir uma aparencia espe-
cular (Figura 12.4.(b));
mapeamento de bossagem , em ingles bump mapping: perturba a dire cao
dos vetores normais com o valor especicado em textura, de forma a
gerar uma aparencia rugosa (Figura 12.4.(c));
mapeamento de deslocamento , em ingles displacement mapping: per-
turba a posi cao do ponto da superfcie na dire cao do vetor normal
com o valor especicado em textura, de forma a causar sensa cao de
protuber ancia (Figura 12.4.(d));
mapeamento de transparencia : perturba a opacidade da superfcies,
de maneira a dar impressao de translucidez (Figura 12.4.(e)).
Para distinguir a modelagem de aparencia de uma superfcie da modela-
gem da sua geometria, e introduzido um novo espa co, denominado espa co
(homogeneo) de textura. A dimensao deste espa co pode ser uni-, bi- ou
tridimensional, com uso de ate quatro coordenadas homogeneas s, t, r
e q, e os seus pontos s ao passveis a todas as transforma coes geometricas
apresentadas no captulo 4, como os pontos do espa co geometrico. Alem
disso, podemos aplicar tais transforma coes para mudar as coordenadas dos
pontos entre os dois espa cos. Finalmente, e comum normalizar as coorde-
nadas dos pontos no espa co de textura para o intervalo [0, 1]. Isso facilita o
mapeamento entre os espa cos.
Veremos nesta se cao alguns tipos de textura.
12.1.1 Imagens
Em aplica coes de tempo-real, utiliza-se predominantemente imagens sinteticas
ou imagens capturadas por dispositivos, como camaras fotogracas, vdeos e
escaneadores. Cada uma dessas imagens e, de fato, um arranjo de radia coes
reetidas pelas superfcies reais em uma cena. A ideia consiste, entao, em
utilizar estas imagens para obter as radia coes que deveriam ser reetidas em
cada ponto de uma imagem sintetica, ao inves de determina-las numerica-
mente por meio de equa coes de modelos de ilumina cao, como as apresentadas
na se cao 8.3.
A forma mais direta para transformar uma imagem digital de m n
pixels em uma textura de m n texels e associar a cada texel um pixel .
Figura 12.5 exemplica o uso de uma foto na dimensao 400 322 como
textura de cor. Em primeiro lugar, dene-se um referencial do espa co de
textura (s, t) de 400 322 texels. Em seguida, normaliza-se as coordenadas
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 256
(a) (b)
(c) (d)
(e)
Figura 12.4: Tipos de textura: (a) mapeamento de cor; (b) ma-
peamento de ambiente em um toro; (c) mapeamento de bossa-
gem; (d) mapeamento de deslocamento em uma esfera (Fonte:
http://www.spot3d.com/vray/help/150R1/examples displacement.htm);
e (e) mapeamento de transparencia em um cubo (Fonte:
http://www.codeguru.com/cpp/g-m/opengl/article.php/c2687/) .
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 257
s
t
+ =
(a) (b) (c)
Figura 12.5: Textura de cor: (a) imagem digital; (b) forma geometrica em
malha retangular; e (c) ret angulo texturizado.
s e t para o intervalo [0, 1], de forma que o espa camento entre dois texels
adjacentes na dire cao s e na dire cao seja, respectivamente,
1
400
= 0.0025 e
1
322
0.0031 como mostra Figura 12.5.(a). Apos esta normaliza cao, po-
demos referenciar cada elemento da imagem digital por valores numericos.
Projetando ortogracamente esta textura sobre um ret angulo de mesmas
dimensoes da textura, ilustrado na Figura 12.5.(b), transferimos para a
superfcie do ret angulo a imagem. A sensa cao que a imagem nal, mostrada
na Figura 12.5.(c), nos produz e uma cena 3D contendo um calice e o perl
de uma crian ca.
Observamos que em Medicina aparelhos, como ressonancia magnetica e
tomograa computatorizada, conseguem formar uma sequencia de fatias de
imagens internas de corpos humanos, alinhadas entre si. Esta sequencia de
imagens e conhecida por imagem 3D. Figura 12.6 ilustra uma imagem 3D.
12.1.2 Textura de Perturbacao
Uma textura bi-dimensional pode ser um conjunto de rudos que perturbem
ligeiramente os valores de um par ametro do modelo de ilumina cao, como
a textura de bossagem, em ingles bump map, proposto em 1978 pelo
J. Blinn. Esta textura teve como principal motiva cao reduzir a aparencia
pl astica das imagens geradas com o modelo de Phong. Cada texel (s, t)
da textura contem um valor b(s, t), que e utilizado tanto para deslocar li-
geiramente a dire cao do seu vetor normal quanto a posi cao de um ponto da
superfcie. Se projetarmos ortogracamente a textura sobre um ret angulo e
mapearmos os valores de rudo em nveis de cinza, veremos um mosaico de
varias tonalidades de cinaza (Figura 12.7.(a)). Quanto mais escura for a to-
nalidade, menor ser a o rudo ou a perturba cao, como ilustra Figura 12.7.(c).
Os texels s ao tambem utilizados para perturbar a posi cao dos pontos da
superfcie. Veremos na se cao 12.2.4 que, junto com a perturba cao de vetores
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 258
Figura 12.6: Imagem 3D (Fonte: www.medscape.com).
t
s
(a) (b) (c)
Figura 12.7: Textura de bump: (a) visualiza cao do mapa; (b) vetores origi-
nais; e (c) vetores perturbados.
normais, consegue-se produzir uma variedade de efeitos realistas de terreno.
Exemplos de textura s ao apresentados na Figura 12.8.
12.1.3 Textura de Sombra
Sombra e fundamental para aumentar realismo de uma cena. Em 1978,
Lance Williams propos uma maneira eciente de criar efeitos de sombra
com uso de textura de sombra. Uma textura de sombra contem, es-
sencialmente, a dist ancia d de cada amostra (s, t) em rela cao a uma fonte
luminosa.
Para gerar uma textura de sombra, basta posicionar a camera na fonte
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 259
(a) (b) (c)
Figura 12.8: Exemplos de textura de bump.
luminosa com os raios de proje cao alinhados com as radia coes luminosas
e determinar a matriz de proje cao correspondente. Se a fonte de luz for
distante (Se cao 8.1), a proje cao M
par
ser a paralela (Figura 12.9.(a)). A
dist ancia r em cada texel (s, t) pode ser computada atraves de
_
_
s
t
r
_
_

_

_
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

E muito utilizada para produzir, em tempo-real, aparencia de reexoes es-


peculares em superfcies met alicas bem polidas. A ideia b asica consiste em
pre-computar a cor a ser reetida por cada amostra da superfcie quando
ela e observada na dire cao d e organizar essas cores em uma textura de
reexao. Na verdade, h a varias formas para gerar uma textura especular.
Ela poderia ser uma foto convencional de uma esfera espelhada, altamente
reexiva, como ilustra a Figura 12.10.(b), ou uma foto de uma camera de
lente de peixe. No primeiro caso, a camera apareceria na foto (observe
o fotografo na imagem da Figura 12.10.(b)) e no segundo caso, os efeitos
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 260
Em sombra
p
ro
fu
n
d
id
a
d
e
d
e
T
e
x
tu
ra
Iluminada
Cmera
s
t
Em sombra
Cmera
p
ro
fu
n
d
id
a
d
e
d
e
T
e
x
tu
ra
Iluminada
t
s
(a) (b)
Figura 12.9: Textura de sombra: (a) paralela e (b) perspectiva.
(a) (b) (c)
Figura 12.10: Efeito de especularidade: (a) cena sintetica;
(b) foto de uma bola de Natal; e (c) mapeamento (Fonte:
http://www.debevec.org/ReectionMapping/.
s ao aproximados, ja que n ao h a ainda uma lente com um campo de visao de
360
0
. Uma terceira alternativa seria gerar computacionalmente uma textura
de reexao.
Seja u
2
+ v
2
+ n
2
= 1 uma esfera altamente especular, denida no re-
ferencial do observador, ou seja, referencial em que o observador esteja na
origem e o raio de visao esteja na dire cao V = (0, 0, 1) (Figura 12.11.(a)).
Neste caso, a dire cao do raio R que chega em cada ponto P e reete na
dire cao V e (Figura 12.11.(b))
R = 2N(N V) V, (12.1)
onde N e o vetor normal da esfera em P.
Como a esfera e unit aria e centrada na origem, as coordenadas do vetor
normal em cada ponto coincidem com as coordenadas do ponto. Portanto,
podemos escrever as componentes do raio R como
_
_
R
x
R
y
R
z
_
_
= 2
_
_
u
v

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

E uma alternativa para mapa esferico, tendo a vantagem de um custo bem


menor. Um mapa c ubico e constitudo por seis imagens/mapas obtidas
atraves de 6 distintos angulos a partir de um mesmo ponto do ambiente.
Estas imagens correspondem `as vistas que teramos, olhando para a dire cao
das quatro paredes, do teto e do ch ao de um comodo em forma de um cubo,
como mostra Figura 12.13. Cada uma dessas imagens e conhecida tambem
como um mapa de ambiente. Ao inves de tra car raio por raio para obter
as cores dos texels de um mapa esferico, pode-se aplicar o procedimento
convencional de sntese de imagens para gerar cada uma das 6 imagens de
um mapa c ubico, ou simplesmente utilizar as fotos capturadas por uma
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 263
Figura 12.13: Um mapa c ubico (Fonte:
http://www.developer.com/lang/other/article.php/2169281.)
camera digital convencional. Certamente, o segundo procedimento e o mais
r apido no estado-da-arte.
12.1.6 Textura Procedural
Em 1985, Perlin propos uma fun cao que mapeia diretamente uma n-upla
coordenadas P de um ponto no espa co de n dimensoes em um valor escalar.
Textura gerada deste modo e conhecida como textura procedural. Ela se
caracteriza por n ao precisar mais da deni cao de um mapa de textura para
relacionar as coordenadas parametricas (u, v) de ponto P(u, v) a um mapa
de escalares. A fun cao e bem generica, podendo ser aplicada para modular
a cor, o vetor normal ou qualquer outro par ametro de ilumina cao. Duas
propriedades devem ser satisfeitas por tal fun cao:
1. as medidas estatsticas da regi ao perturbada devem ser preservadas
sob transforma coes rgidas (Se cao 4.2.4); e
2. deve possuir uma banda limitada de frequencia.
A primeira propriedade e para garantir que os efeitos de rudo sejam inva-
riantes sob transforma coes rgidas e a segunda, assegurar que a varia cao do
rudo n ao seja abrupta nem suave demais.
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 264
A proposta de Perlin e simples, eciente e e uma boa aproxima cao para
a fun cao ideal. Vamos detalhar o seu procedimento original para uma
textura 3D. O seu gerador de rudo 3D come ca com um volume discreto
representado por um arranjo tri-dimensional. Para cada entrada (x
i
, y
i
, z
i
)
do arranjo e armazenada uma tripla de n umeros aleatorios pre-calculados
(a
i
, b
i
, c
i
). Esta tripla e conhecida como vetor de gradiente G. Para
uma arquitetura de 32 bits (MAXINT = 7f) e tpico utilizar a fun cao
Random(x) para gerar n umeros aleatorios, em ponto utuante, no intervalo
Random(inteiro x)
x = XOR
bit
(shift(x,13),x) ;
x = AND
bit
((x * (x * x * 15731 + 789221) + 1376312589),MAXINT);
r = 1.0 - x*2.0/MAXINT ;
return r ;
Fun cao Random(x).
[-1.0,1.0] e construir este vetor gradiente
a
i
= Random(64 x
i
+ 56 y
i
+ 71 z
i
)
b
i
= Random(73 x
i
+ 79 y
i
+ 83 z
i
)
c
i
= Random(89 x
i
+ 97 y
i
+ 101 z
i
). (12.5)
Dado um ponto P = (x, y, z), determina-se o seu deslocamento d em
rela cao `a amostra Q
5
= (x, y, z) da Figura 12.14, isto e,
d = (d
x
, d
y
, d
z
) = (x x, y y, z z)
e as outras 7 amostras adjacentes
Q
8
= (x + 1, y, z)
Q
6
= (x, y, z + 1)
Q
7
= (x + 1, y, z + 1)
Q
1
= (x, y + 1, z)
Q
2
= (x, y + 1, z + 1)
Q
4
= (x + 1, y + 1, z)
Q
3
= (x + 1, y + 1, z + 1)
Dados os rudos de duas amostras adjacentes R
A
= (P Q
A
) G
A
=
a
A
x +b
A
y +c
A
z (a
A
x
A
+b
A
y
A
+c
A
z
A
) e R
B
= (P Q
B
) G
B
= a
B
x +
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 265
P
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
Q
8
L
1
L
2
L
3
L
4
M
1
M
2
Figura 12.14: Interpola cao trilinear.
b
B
y + c
B
z (a
B
x
B
+ b
B
y
B
+ c
B
z
B
), estima-se o rudo R(t) de um ponto
intermediario entre as amostras A e B pela interpola cao linear
R
AB
(t) = R
A
+t(R
B
R
A
). (12.6)
Com uso de d, estima-se os fatores (f
x
, f
y
, f
z
) de interpola cao linear nas
tres dire coes por uma fun c ao c ubica 3t
2
2t
3
, ou seja,
f
x
= 3d
2
x
2d
3
x
f
y
= 3d
2
y
2d
3
y
f
z
= 3d
2
z
2d
3
z
Interpolando linearmente na dire cao x, teremos
R
L
1
= R
Q
1
+f
x
(R
Q
4
R
Q
1
)
R
L
2
= R
Q
2
+f
x
(R
Q
3
R
Q
2
)
R
L
3
= R
Q
5
+f
x
(R
Q
8
R
Q
5
)
R
L
4
= R
Q
6
+f
x
(R
Q
7
R
Q
6
)
A partir de R
L
1
, R
L
2
, R
L
3
e R
L
4
, aplica-se interpola cao linear na dire cao y
R
M
1
= R
L
3
+f
y
(R
L
1
R
L
3
)
R
M
2
= R
L
4
+f
y
(R
L
2
R
L
4
)
e nalmente na dire cao z para obter o rudo de Perlin em P
RuidoPerlin(P) = R
P
= R
M
1
+f
z
(R
M
2
R
M
1
).
Utilizando este rudo, podemos por exemplo perturbar a cor (R, G, B)
em um fragmento P, multiplicando cada componente da cor pelo valor
RuidoPerlin(P).
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 266
(a) (b) (c)
Figura 12.15: Rudo de Perlin na gera cao de textura de: (a) nuvens; (b)
fogo; e (c) m armore (Fonte: http://mrl.nyu.edu/ perlin/doc/oscar.html).
Varias vers oes de rudo de Perlin foram propostas posteriormente. Hoje
em dia aplica-se estas fun c oes de rudo para gerar proceduralmente textura
3D de varios fenomenos da natureza com um realismo impressionante, como
ilustra Figura 12.15.
12.2 Mapeamento
Por um lado, a separa cao entre o espa co de representa cao geometrica e o
espa co de descri cao da aparencia visual (textura) aumenta a reusabilidade
dos modelos. Por outro lado, ela requer que seja determinada a corres-
pondencia T entre os dois espa cos para associar corretamente um pixel a um
texel . Para simplicar, n os vamos referir o procedimento de correspondencia
entre pixels e texels por texturiza cao. O problema de texturiza cao e si-
milar ao problema que temos no dia-a-dia quando tentamos encapar uma
superfcie de geometria arbitraria com papel contact, com a vantagem de
termos em texturiza cao um papel contact mold avel que se estica ou enco-
lhe facilmente. Por simplicidade, consideremos nesta se cao que o espa co de
textura seja contnuo. Na se cao 12.3 discutiremos considera coes adicionais
para situa coes pr aticas, em que texturas s ao mapas discretos.
Essencialmente, h a dois paradigmas para mapeamento entre dois espa cos:
metodo direto e metodo inverso. O metodo direto e orientado ao espa co
de textura. Cada texel sofre contra coes ou esticamentos, como uma lamina
de borracha, para cobrir os pixels aos quais ele deve ser associado. Usu-
almente, usa-se uma superfcie parametrizada, isto e, uma aplica cao
diferenci avel de (s, t)
2
em
3
, ou uma transforma cao projetiva entre
as coordenadas (U, V ) do espa co da imagem DC e as coordenadas (s, t) do
espa co de textura(Figura 12.16.(a)). Tal trasforma cao pode ser representada
EA978 notas de aula FEEC 1
o
SEM/2009 (Ting) 267
por uma matriz 3 3
_
_
U

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).

Vous aimerez peut-être aussi