Você está na página 1de 178

Introduc~ao a

Computac~ao Gra ca

Notas do Curso de Computac~ao Gra ca I,


2000

Paulo Roma Cavalcanti

Universidade Federal do Rio de Janeiro - UFRJ

Sumario
1 Introduc~ao

1.1
1.2
1.3
1.4
1.5
1.6
1.7

2 Cor

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

A reas Correlatas . . . . . .
Paradigma dos Universos .
Escopo . . . . . . . . . . . .
Estrutura do Livro . . . . .
Objetivos e Pre-Requisitos .
Refer^encias Bibliogra cas .
Exerccios . . . . . . . . . .

..
..
..
..
..
..
..

Modelo Espectral de Cor . . . .


Sistemas Fsicos de Cor . . . .
Representac~ao Discreta de Cor
Espacos de Cor . . . . . . . . .
Diagrama de Cromaticidade . .
Lumin^ancia . . . . . . . . . . .
Padr~ao CIE-XYZ . . . . . . . .
Sistemas de Cor . . . . . . . . .
Exerccios . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

3 Dispositivos Gra cos

3.1
3.2
3.3
3.4
3.5
3.6
3.7

Formato de Dados Gra co . . . . . . . . .


Classi cac~ao dos Dispositivos . . . . . . .
Equipamentos de Entrada Gra ca. . . . .
Equipamentos de Processamento Gra co .
Equipamentos de Sada Gra ca . . . . . .
Estaco~es Gra cas Interativas . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . .

4 Imagem

4.1
4.2
4.3
4.4
4.5

Modelo de Imagem . . . . . . . . . .
Discretizac~ao . . . . . . . . . . . . .
Representac~ao Matricial . . . . . . .
Classi caca~o para Imagem Digital .
Quantizac~ao . . . . . . . . . . . . . .
3

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

7
7
9
10
10
11
12
13

13
14
15
16
18
21
22
25
28

33

33
35
36
39
40
47
48

51

51
52
52
53
54


SUMARIO

4.6 Dithering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.7 Codi caca~o de Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5 Geometria

5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9

Geometria Euclideana . . . . . . . . . . . . . . . . . . . . . .
Transformac~oes Lineares . . . . . . . . . . . . . . . . . . . . .
Transformaco~es Rgidas . . . . . . . . . . . . . . . . . . . . .
Geometria Projetiva . . . . . . . . . . . . . . . . . . . . . . .
Transformaco~es Projetivas . . . . . . . . . . . . . . . . . . . .
Composic~ao de Transformaco~es Projetivas bi-dimensionais . .
Transformaco~es tri-dimensionais . . . . . . . . . . . . . . . . .
Transformac~ao Perspectiva . . . . . . . . . . . . . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Modelagem Geometrica

6.1
6.2
6.3
6.4
6.5
6.6

Esquemas de Representaca~o . . . . . . . . . .
Representac~ao por Bordo . . . . . . . . . . .
Representac~ao Implcita . . . . . . . . . . . .
Convers~ao entre Representac~oes . . . . . . . .
Ambiguidade e Unicidade de Representac~oes .
Exerccios . . . . . . . . . . . . . . . . . . . .

7 Sistemas de Modelagem

7.1
7.2
7.3
7.4
7.5

Operac~oes com Modelos


Tecnicas de Modelagem
Objetos Compostos . . .
Representaca~o Interna .
Exerccios . . . . . . . .

8 Visualizac~ao

8.1
8.2
8.3
8.4

.
.
.
.
.

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

Espacos de Refer^encia . . . . . .
Especi cac~ao da Visualizac~ao . .
Transformac~oes de Visualizac~ao .
Exerccios . . . . . . . . . . . . .

..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

.
.
.
.
.

..
..
..
..
..

.
.
.
.
.

..
..
..
..

.
.
.
.

..
..
..
..

.
.
.
.

.
.
.
.

..
..
..
..

.
.
.
.

..
..
..
..

.
.
.
.

.
.
.
.

..
..
..
..

.
.
.
.

9 Recorte

65

65
66
68
69
69
73
74
76
78

79

79
80
83
87
90
91

99

99
100
101
102
102

105

106
107
109
116

117

9.1 Recorte de Segmentos de Reta . . . . . . . . . . . . . . . . . . . . . . . . . 118


9.2 Recorte de Polgonos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
9.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

10 Rasterizac~ao

10.1
10.2
10.3
10.4

Rasterizaca~o de Elementos Lineares . . .


Rasterizaca~o de Elementos n~ao Lineares .
Amostragem . . . . . . . . . . . . . . . .
Reconstruc~ao Exata . . . . . . . . . . . .

.
.
.
.

.
.
.
.

..
..
..
..

.
.
.
.

..
..
..
..

.
.
.
.

.
.
.
.

..
..
..
..

.
.
.
.

..
..
..
..

.
.
.
.

.
.
.
.

..
..
..
..

.
.
.
.

123

124
132
136
137


SUMARIO

10.5 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138


10.6 Tipos de Amostragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
11 Visibilidade

11.1 Classi caca~o dos Algoritmos . .


11.2 Transformac~ao Perspectiva . .
11.3 Back-Face Culling . . . . . . .
11.4 z-Bu er . . . . . . . . . . . . .
11.5 Scan-Line . . . . . . . . . . . .
11.6 z-Sort . . . . . . . . . . . . . .
11.7 Partic~ao do Espaco - BSP . . .
11.8 Subdivis~ao de A rea . . . . . . .
11.9 Recorte Recursivo . . . . . . .
11.10Tracado de raios . . . . . . . .
11.11Linhas Escondidas . . . . . . .
11.12Exerccios . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..

.
.
.
.
.
.
.
.
.
.
.
.

143

144
144
145
146
147
148
150
152
153
154
154
155

12 Iluminac~ao

157

13 Colorizac~ao

165

12.1 Modelos de Iluminaca~o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158


12.2 Calculo do Vetor de Re ex~ao . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
13.1
13.2
13.3
13.4
13.5
13.6

Colorizaca~o Constante . . . . . . . . .
Colorizaca~o de Gouraud . . . . . . . .
Colorizaca~o de Phong . . . . . . . . .
Colorizaca~o por Tracado de Raios . . .
Integrac~ao da Equac~ao de Iluminac~ao
Exerccios . . . . . . . . . . . . . . . .

14 Mapeamentos

..
..
..
..
..
..

.
.
.
.
.
.

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

.
.
.
.
.
.

..
..
..
..
..
..

.
.
.
.
.
.

166
167
169
170
170
171

173

14.1 Mapeamento de Textura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174


14.2 Mapeamento de Rugosidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
14.3 Mapeamento de Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175


SUMARIO

Cap
tulo 1

Introduc~ao
O objetivo deste texto e servir como base a um curso introdutorio de Computac~ao Gra ca.
Considerando a Computaca~o Gra ca, em ultima analise, como uma forma de matematica
aplicada, isto signi ca que ir~ao ser utilizados, na maioria das vezes, modelos matematicos
simpli cados, cando para os cursos mais avancados o estudo dos modelos mais complexos,
que procuram retratar a realidade mais elmente.


1.1 Areas
Correlatas
O primeiro ponto a ser discutido e: qual o objetivo da Computaca~o Gra ca? Colocando de
maneira extremamente espartana, pode-se a rmar que o objetivo primordial da Computac~ao
Gra ca e transformar dados em imagens. Assim, existe o problema da modelagem dos dados
(criac~ao, estruturac~ao e analise dos dados) e o problema da visualizaca~o destes dados.
O objetivo inverso, ou seja, a recuperac~ao dos dados a partir de uma imagem (analise de
imagem), corresponde a area de Vis~ao Computacional, que e muito importante, por exemplo,
em robotica. Por m, ainda existe a necessidade de manipulac~ao de imagens com o objetivo
de processar, de alguma forma, uma imagem, para produzir uma nova imagem, a partir de
operac~oes de ltragem e de deformac~ao, ou simplesmente com o objetivo de compactac~ao.
Estes problemas s~ao tratados na area de Processamento de Imagens. Tanto a area de Vis~ao
Computacional como a area de Processamento de Imagens n~ao ser~ao abordadas neste texto.
A gura 1.1 busca esquematizar os relacionamentos entre as areas citadas.
1.2 Paradigma dos Universos
Um paradigma de abstrac~ao util consiste em estabelecer quatro universos (conjuntos) distintos:
 o universo fsico F , que contem os objetos do mundo real que pretende-se estudar;
 o universo matematico M , que contem uma descric~ao matematica abstrata dos objetos
do universo fsico, em geral, idealizados (simpli cados), para permitir a sua descric~ao
atraves de um modelo matematico simples;
7

~
CAPITULO 1. INTRODUC
 AO

Sintese de
Imagens Realistas
MODELAGEM

VISUALIZACAO

Computacao
Grafica
DADOS

IMAGEM

Visao
Computacional

RECONHECIMENTO
DE PADROES

Processamento
de Imagens

Figura 1.1: Relacionamentos entre as A reas de CG, VC e PI.


 o universo de representaca~o R, que e constitudo por descric~oes simbolicas e nitas

associadas aos objetos do universo matematico;


 e o universo C de codi cac~ao, que e constitudo pelas estruturas de dados utilizadas
na codi caca~o da representaca~o em uma dada linguagem de programac~ao.
O paradigma dos quatro universos parte do suposto de que para estudar, com o auxlio
do computador, um determinado fen^omeno ou objeto do mundo real, associa-se ao mesmo
um modelo matematico para, em seguida, procurar-se uma representac~ao nita do modelo
associado. O espaco dos modelos consiste, em geral, em uma quantidade in nita de pontos
e os esquemas de representac~ao buscam uma descrica~o nita destes pontos que seja manipulavel (passvel de implementac~ao) em um computador digital. Podem-se tracar, ent~ao,
em linhas gerais, os diversos problemas a serem estudados:
 de nica~o dos elementos de M ;
 estabelecimento de relaco~es entre os universos;
 de nica~o das relaco~es de representaca~o de M em R (esquemas de representac~ao);
 estudo das propriedades das diversas representac~oes de M em R;
 convers~ao entre diferentes representaco~es.

Universo
Fisico

Universo
Matematico

Universo de
Representacao

Figura 1.2: Paradigma dos Universos.

Universo de
Codificacao

1.3. ESCOPO

Este modelo conceitual vai ser utilizado em quase todos os captulos, de forma a que
o leitor tenha sempre em mente qual o nvel de abstraca~o correto a cada momento. Para
isto, no incio de cada captulo, existe uma ilustraca~o com o modelo conceitual apropriado
e um texto explicativo, que vai se tornando mais resumido a medida que os captulos v~ao
avancando, pois espera-se que o leitor ja esteja devidamente familiarizado com ele.

1.3 Escopo
Este texto se atem a correta conceitualizac~ao do problema de Sntese de Imagens de Cenas
Tridimensionais e ao estudo dos pricincipais metodos e algoritmos envolvidos. As areas de
aplicac~ao s~ao diversas, podendo ser citadas as seguintes:
 Entretenimento
Televis~ao
Filmes
Jogos
 CAD / CAM
Engenharia
Arquitetura
Design
 Visualizac~ao Cient ca
Medicina
Biologia
Matematica
N~ao e o objetivo deste texto tratar os seguintes assuntos: Gra cos bidimensionais, Processamento de imagens e Interac~ao Homem-Maquina. Como areas de aplicac~ao citam-se:
 Editoraca~o Eletr^onica
Illustraca~o
Sistemas de Pintura
Layout de Pagina
 Processamento de Imagens
Vis~ao Computacional
Efeitos para Vdeo
Reconhecimento de Padr~oes
 Projeto de Interfaces
Sistemas de Gerenciamento de Interface com o Usuario
Sistemas de Janela
Toolkits

10

~
CAPITULO 1. INTRODUC
 AO

1.4 Estrutura do Livro


Como ja foi dito, o problema basico da Computac~ao Gra ca consiste em transformar dados
em imagens (gerar uma fotogra a virtual). Desse modo, de um ponto de vista didatico, esse
processo de transformaca~o pode ser dividido em duas etapas: Modelagem e Visualizac~ao.
A Modelagem se ocupa da criac~ao e representac~ao dos objetos, chamados modelos, no
computador. Na Modelagem, tenta-se representar no computador o mundo fsico real. Ja a
visualizac~ao estuda os metodos e tecnicas utilizados para obter-se, a partir do modelo, uma
imagem, que e o produto nal da Computac~ao Gra ca.
Uma proposta deste texto e que as noc~oes basicas sobre cor e imagem sejam apresentadas
antes que se discutam a visualizac~ao e iluminac~ao, e n~ao, como faz a maioria dos livros
de Computaca~o Gra ca, apos. Isto evita que o aluno que com uma vis~ao distorcida ou
simpli cada do problema e que possa entender (ou implementar) algoritmos capazes de lidar
adequadamente com cores (algoritmos policromaticos). Desta forma, este texto se divide
do seguinte modo:
 Noco~es Preliminares
Fundamentos de Cor
Dispositivos Gra cos
Imagem Digital
 Modelagem Geometrica
Geometria e Transformac~oes
Esquemas de Representac~ao
Sistemas de Modelagem
 Visualizaca~o
C^amera e Recorte
Rasterizac~ao e Amostragem
Visibilidade
 Iluminaca~o
Propriedades dos Materiais e Modelos de Iluminac~ao
Colorizac~ao e Mapeamentos
 Decis~oes de Sistema
1.5 Objetivos e Pre-Requisitos
Os objetivos que pretendem-se atingir s~ao:
 Oferecer uma vis~ao global da area de Computac~ao Gra ca
 Discutir os conceitos pre-estabelecidos

^

1.6. REFERENCIAS
BIBLIOGRAFICAS

11

 Apresentar os principais problemas da area


 Fornecer uma base solida para um desenvolvimento futuro

O publico alvo deste texto e composto por:


 Futuros Pesquisadores
 Projetistas de Sistemas Gra cos
 Programadores de Computac~ao Gra ca
e os pre-requisitos necessarios s~ao:
 Programaca~o de Computadores
 A lgebra Linear
 Calculo

1.6 Refer^encias Bibliogra cas


Existem varios livros de Computac~ao Gra ca, geralmente em lngua inglesa, no mercado. Eles podem ser consultados dependendo da disponibilidade e interesse de cada leitor.
Indicam-se aqui os mais adequados, na opini~ao dos autores:
 De carater Geral
Foley [1]
Newman [2]
Watt [3]
Slater
 Modelagem
Farin [4]
Mantyla [5]
Ho man [6]
K B's [7]
 Visualizac~ao
Glassner [8]
Hall [9]
 Processamento de Imagem
Gonzalez [10]
Wolberg [11]

12

~
CAPITULO 1. INTRODUC
 AO

 Implementac~ao

Harrington [12]
Gems [13] [14] [15] [16] [17]
 Outros
Samet [18]
Pavlidis [19]
Rogers [20]

1.7 Exerccios
1.1 Faca uma comparac~ao entre as areas de Computac~ao Gra ca, Processamento de Imagens e Vis~ao Computacional. D^e pelo menos dois exemplos de aplicaca~o em cada uma
dessas areas.
1.2 Explique o Paradigma dos Universos. Discuta a natureza de cada nvel de abstraca~o.
1.3 Considere o seguinte problema: Implementar no computador um sistema para desenhos
de discos metalicos. Discuta detalhadamente esse problema do ponto de vista do paradigma
dos quatro universos (incluindo implementac~ao).

Cap
tulo 2

Cor
Uma imagem e de nida, em ultima analise, pela cor dos seus pontos. Surge a o primeiro problema: o que e cor? Embora seja um termo utilizado amplamente no cotidiano, e
de difcil formalizac~ao. O paradigma dos quatro universos fornece a conceitualizac~ao necessaria. No universo fsico o fen^omeno a ser estudado e a luz que corresponde, no universo
matematico, a um modelo que descreve o fen^omeno luz adequadamente. Ja no universo
de representac~ao existem esquemas que fornecem uma representac~ao nita para o modelo
adotado, conforme pode ser visto na gura 2.1.

Luz

Modelo
Espectral

Representacao
Tricromatica

Sistemas
de Cor

Figura 2.1: Modelo Conceitual.

2.1 Modelo Espectral de Cor


Voltando ao paradigma dos quatro universos, do ponto de vista fsico, a sensac~ao de cor e
produzida por uma radiac~ao eletro-magnetica que chega ate aos nossos olhos. Esta radiaca~o
pode ser modelada matematicamente por uma func~ao, chamada de func~ao de distribuica~o
espectral, que associa a cada comprimento de onda presente na radiac~ao1 , o valor de alguma
grandeza radiometrica (em geral energia radiante). Assim, do ponto de vista matematico,
cor e uma funca~o. Neste caso, o universo matematico e constitudo pelo conjunto D de
todas as func~oes de distribuic~ao espectral:
D = ff : U  <+ ! <+ g:
1 Newton foi o primeiro pesquisador a mostrar qua a luz branca possui energia em todos os comprimentos de onda

do espectro visvel.

13

14

CAPITULO 2. COR

2.2 Sistemas Fsicos de Cor


O olho humano e um sistema fsico de processamento de cor. Em particular, trata-se de
um sistema re etivo, pois faz uma amostragem em tr^es faixas do espectro. Existem, em
contrapartida, sistemas emissivos que fazem o inverso, ou seja, reconstroem a cor. Generalizando um pouco mais, em geral, um sistema re etivo possui um numero nito de sensores,
s1 ; s2 ; :::; s ; que fazem a amostragem em n faixas do espectro. Matematicamente, este fato
e expresso da seguinte forma:
n

C () ! (c1 ; c2 ; :::; c ); c


n

+1

C ()s ()d;
i

onde s () e a funca~o de resposta espectral do i-esimo sensor ( g. 2.2).


i

Figura 2.2: Funca~o de Resposta Espectral Tpica de um Sensor.


A amostragem ideal e aquela na qual a resposta dos sensores e um impulso:
s () = 1 se  =  ou 0 se  6=  :
Neste caso, c = 11 C () (  ) d = C ( ):
Um sistema emissivo e responsavel pela reconstruc~ao da cor, a partir de emissores que
emitem luz com uma certa distribuic~ao espectral. Assim, se os emissores s~ao caracterizados por n func~oes de distribuic~ao espectral P1 (); P2 (); :::; P (); chamadas de base de
primarias, tem-se que a cor reconstruda e dada por:
i

C () =

n
X

c P ():
k

=1

Para compreender melhor o processo de amostragem e reconstruc~ao de cor, considerese o que ocorre quando se utiliza uma c^amara de televis~ao para captar uma imagem da
natureza, que e ent~ao transmitida por tele-difus~ao. A luz que atinge a lente e focada,
gerando uma imagem no tubo da c^amara, e os circuitos eletr^onicos da c^amara fazem uma
varredura da imagem, gerando um determinado numero de linhas (que depende do padr~ao
de vdeo adotado). A imagem e transmitida desta forma. As ondas s~ao ent~ao captadas por

15

~ DISCRETA DE COR
2.3. REPRESENTAC
 AO

uma antena e o sinal original e reconstrudo pelo monitor da televis~ao. A cor reconstruda
e id^entica (perceptualmente) a cor original devido ao fen^omeno do metamerismo, de nido
na proxima sec~ao. A gura 2.3 ilustra o processo.
antena
Cena

Sinal
Reconstruido

amostragem
camara

TV

(R,G,B)

Sinal
Original

Transmissao
Reconstrucao

Figura 2.3: Amostragem e Reconstruc~ao.

2.3 Representac~ao Discreta de Cor


O espaco de todas as distribuic~oes espectrais possui dimens~ao in nita. Para obter-se uma
representaca~o nita, ou seja, aproximar este espaco de dimens~ao in nita por um espaco de
dimens~ao nita, e necessario fazer algum tipo de amostragem. Isto faz com que se utilize
um vetor de dimens~ao nita na representac~ao de uma func~ao:
R : f 2 D ! (f (x1 ); f (x2 ); :::; f (x

)) 2 <

Esta representac~ao de ne uma transformac~ao linear, pois: R(af1 + bf2) = aR(f1)+ bR(f2):
E claro que este processo de amostragem acarreta em perda de informac~ao ( g. 2.4) (a
representaca~o e ambgua, ou seja, um mesmo vetor pode representar mais de uma func~ao).
Este tipo de representaca~o e valida, no entanto, porque o problema de cor deve ser
abordado do ponto de vista perceptual e n~ao do ponto de vista fsico (na realidade e um
problema psico-fsico). Em 1807, Young concluiu, a partir de experimentos, que o olho humano possui tr^es tipos de receptores luminosos (celulas) que s~ao mais sensveis ao intervalo
(da radiac~ao) que corresponde aos comprimentos de onda na faixa do vermelho, verde e
azul, respectivamente. Estes tr^es tipos de receptores fazem uma amostragem da radiaca~o
nestes tr^es comprimentos de onda. Desta forma, o espaco perceptual de cor e um espaco
de dimens~ao nita (dimens~ao tr^es). Isto signi ca que uma mesma sensaca~o de cor pode ser
obtida a partir de distribuico~es espectrais distintas, um fen^omeno conhecido por metamerismo. Gracas a isto a televis~ao produz imagens aceitaveis ao ser humano, uma vez que o
conjunto de distribuic~oes espectrais existentes na natureza e muito mais rico do que aquele
que pode ser produzido arti cialmente no monitor de uma televis~ao.

16

CAPITULO 2. COR

x1

x2

blue
(400 nm)

x3

(comprimento de onda)

red
(700 nm)

Figura 2.4: Representac~ao Finita de duas Func~oes.

2.4 Espacos de Cor


Dada uma func~ao de distribuic~ao espectral C () (que corresponde a uma sensaca~o de cor),
um sistema emissivo com uma certa base de primarias P () e um sistema re etivo, como
calcular as componentes na base de primarias de forma a que a cor reconstruda C () seja
perceptualmente equivalente a cor original em relaca~o ao sistema re etivo?
E possvel mostrar que conhecendo-se a resposta espectral do sistema em cada comprimento de onda, obt^em-se as func~oes de reconstruca~o de cor r () ( g 2.5), que indicam as
proporc~oes nas quais as cores primarias devem ser combinadas para igualar a cor desejada.
k

Por de nica~o, a resposta espectral do sistema e dada para um certo comprimento de


onda pelas componentes, na base de primarias, da distribuic~ao espectral conhecida como
cor espectral ( g. 2.6), que e diferente de zero apenas neste comprimento de onda. Desta
forma, tem-se que
C () =

n
X

c P ();
k

=1

+1

C ()r ()d:
k

A resposta espectral do sistema pode ser obtida experimentalmente. Para isto usam-se
quatro emissores de luz. Os tr^es primeiros correspondem as cores primarias e podem ter
as intensidades controladas. O quarto emite a luz monocromatica que se deseja igualar.
Direcionando os tr^es fachos de luz provenientes dos tr^es emissores primarios para um unico
ponto, e ajustando as suas intensidades ate que, para um observador padr~ao, a cor resultante
seja id^entica a cor do quarto emissor, obt^em-se as componentes da luz monocromatica de
teste em relaca~o a base de primarias ( g. 2.7). Algumas cores n~ao s~ao igualadas, a menos
que se adicione uma primaria junto com a cor de teste. Matematicamente, isto corresponde
a uma intensidade negativa.
Neste ponto o leitor ja deve ter percebido que o objetivo e escrever uma dada cor como

17

2.4. ESPAC
 OS DE COR

1.0

2.4

0.8

2.2
2.0
546 - green

1.8
1.6
1.4
1.2
1.0
0.8

0.6

0.4
700 - red

0.6
0.4

0.2

0.4

0.6

0.8

0.2

435.8 - blue
0.2

2.8
2.6

Y
y

-1.6-1.4-1.2-1.0-0.8-0.6-0.4-0.2

1.0

0.2 0.4 0.6 0.8 1.0 1.2 1.4


X

1.78

1.97
1.80

XYZ

1.22
1.00

1.06

446
446

RGB

555 599

543

770

Figura 2.5: Func~oes de Reconstruc~ao de Cor.

Figura 2.6: Cor Espectral.

604

18

CAPITULO 2. COR

r2

r3

P2

P3

r1

P1

(metamerismo)

Figura 2.7: Obtenc~ao Experimental das Func~oes de Reconstruc~ao de Cor.


combinaca~o linear das cores primarias2. Voltando ao universo matematico, e facil concluir
que a multiplicac~ao de uma func~ao de distribuica~o espectral por um escalar positivo n~ao
altera a sensaca~o de cor, mas apenas o que se costuma chamar de intensidade. Diz-se que a
informac~ao de croma foi preservada. Uma combinac~ao convexa de duas distribuic~oes espectrais ainda e uma distribuic~ao espectral. Como a cada distribuic~ao espectral corresponde
um unico ponto no espaco de cor, e a aplicac~ao de representaca~o (amostragem) nada mais e
do que uma transformaca~o linear, pode-se concluir que o espaco de cor e o espaco formado
pelas retas que passam pela origem. Conclui-se ent~ao que o conjunto de todas as cores
visveis, chamado de solido de cor, e um cone convexo.
 C () e cor visvel ) t C () e cor visvel ) R(t C ()) = t R(C ()).
 C1() e C2() s~ao cores visveis ) (1 t) C1() + t C2(); t 2 [0; 1]; e cor visvel
) R((1 t) C1 () + t C2()) = (1 t) R(C1()) + t R(C2()).
Um sistema fsico n~ao suporta intensidades arbitrariamente altas, pois os seus sensores
s~ao destrudos. Na pratica, o que se faz e trabalhar com uma representaca~o normalizada de
cor. Escolhe-se uma cor de refer^encia, chamada de branco padr~ao (b ; b ; b ), e atribuemse a ela as componentes (1; 1; 1). Qualquer outra cor (c ; c ; c ) t^em as suas componentes
normalizadas:
c c c
r

2.5 Diagrama de Cromaticidade


Uma forma de considerar apenas um representante em cada reta de cor e utilizar a projeca~o
radial de um determinado ponto da reta sobre um plano. Maxwell utilizou o plano
x+y+z =1
2 Se as cores primarias pertencerem ao espectro visvel, havera, eventualmente, componentes negativas.

19

2.5. DIAGRAMA DE CROMATICIDADE

que, por este motivo, e chamado plano de Maxwell. Sabe-se que:


 As cores visveis de nem um solido convexo de cor (um cone).
 A interseca~o do solido de cor com o plano de Maxwell gera uma curva convexa (diagrama
de cromaticidade).
 As cores espectrais correspondem a pontos na fronteira do diagrama de cromaticidade
(por que?).
A projec~ao de uma cor sobre o plano de Maxwell produz as coordenadas de cromaticidade
da cor ( g 2.8). O seu calculo e imediato. Sejam (c ; c ; c ) as coordenadas de uma cor c
no espaco de cor. A reta que passa pela origem e por c e dada pelos pontos da forma:
fp; p = tc; t 2 <g:
A projec~ao c0 = (c0 ; c0 ; c0 ) da cor c sobre o plano de Maxwell imp~oe que c0 + c0 + c0 = 1.
Em particular, tem-se que t(c ; c ; c ) = (c0 ; c0 ; c0 ) para algum t. Logo,
1
t(c + c + c ) = c0 + c0 + c0 = 1; ou t =
(c + c + c ) :
Assim,
c
c0 =
(c + c + c ) :
O diagrama de cromaticidade e obtido, ent~ao, projetando-se ortogonalmente, sobre o
plano rg, a interseca~o do solido de cor com o plano de Maxwell. O diagrama de cromaticidade e util por permitir uma visualizac~ao padr~ao de um corte do solido de cor. Baseado
neste diagrama, pode-se de nir um comprimento de onda dominante para qualquer cor c,
tracando-se uma semi-reta com origem no ponto acromatico (1=3; 1=3; 1=3) e contendo c.
A intersec~ao da semi-reta com o bordo do diagrama de cromaticidade fornece, diretamente,
o comprimento de onda dominante de c. O comprimento de onda dominante pode ser interpretado como correspondendo a uma cor pura (espectral) que se combinada com branco
nas proporc~oes apropriadas produz a cor c.
r

O conceito de cor complementar de uma cor c tambem pode ser de nido de forma
analoga. E uma cor que se misturada com a cor c nas proporc~oes apropriadas produz
branco ( c1 + c2 = cor acromatica(branco)). O ponto acromatico deve estar contido no
segmento de reta que une c a sua cor complementar (por que?).
2.5.1 Decomposic~ao Lumin^ancia-Cromin^ancia

As coordenadas de cromaticidade captam a noc~ao de cor propriamente dita. Juntamente


com a informac~ao de intensidade ou lumin^ancia, determinam unicamente qualquer cor.
A lumin^ancia e, por de nic~ao, um funcional linear: L :  = <3 ! <. Dada uma cor
c = (c ; c ; c ), existem constantes l ; l ; l tais que L(c) = l c + l c + l c . Da linearidade
vem que:
L(c + c0 ) = L(c) + L(c0 ) e L(tc) = tL(c):
r

20

CAPITULO 2. COR

Ponto
Acromatico
(1/3,1/3,1/3)

Cor c

Comprimento de
onda dominannte
da cor c

cor
complementar

1
R

Linha Purpura

1
B

Figura 2.8: Diagrama de Cromaticidade.


Todo vetor de cor c pode ser escrito, de modo unico, como soma direta de um vetor
pertencente a ker(L) = fc 2 <3 : L(c) = 0g (nucleo de L) e de um vetor pertencente a um
subespaco complementar de ker(L) | na forma c = ker(L)  `; c = c + c .
Sabe-se da algebra linear que a dimens~ao do nucleo mais a dimens~ao da imagem de uma
transformaca~o linear L : < ! < e igual a dimens~ao do domnio da transformac~ao:
c

dim(Ker(L)) + dim(Im(L)) = n:

No caso presente, isto signi ca que a dimens~ao do nucleo do funcional de lumin^ancia e 2.


Se duas cores t^em a mesma lumin^ancia, L(c1 ) = L(c2 ), conclui-se que c1 e c2 est~ao em um
hiperplano a m c = c0 + v, paralelo ao nucleo do operador de lumin^ancia ( g. 2.9):
v

L(c1 c2 ) = 0 ) c1

c2 2 ker(L):

Cada hiperplano a m paralelo ao nucleo do operador de lumin^ancia e chamado de um


hiperplano de cromin^ancia (lumin^ancia constante).
A decomposic~ao em cromin^ancia-lumin^ancia e de extrema import^ancia na de nic~ao de
diversos sistemas de coordenadas no espaco de cor.
Para nalizar, de ne-se um solido de cor como sendo o conjunto de cores realizaveis em
um espaco de cor e um mapa de cor como sendo uma curva no solido de cor
' : I  < ! S  <3 :

21

^
2.6. LUMINANCIA

c1-c2

ker(L)
c1-c2

c1
c2

Figura 2.9: Decomposic~ao Cromin^ancia-Lumin^ancia.

2.6 Lumin^ancia
Apos a discus~ao sobre decomposic~ao cromin^ancia-lumin^ancia, o leitor deve estar se perguntando o que e, a nal de contas, a lumin^ancia. Para compreender este conceito, suponha-se
uma luz monocromatica com pot^encia constante de 1 watt. Sera que a resposta do olho
a este estmulo e linear, ou seja, perceptualmente, se variarmos o comprimento de onda,
sera que um observador padr~ao concluira que as luzes tem brilho constante? A resposta e
n~ao. A resposta e maxima para comprimento de onda igual a 555 nm (faixa do verde). A
gura 2.10 mostra a sensibilidade relativa do olho em func~ao do comprimento de onda.
sensibilidade
relativa
1.0
V(

400

555

700

(nm)

Figura 2.10: Curva de Sensibilidade Relativa.


Convencionou-se que uma luz monocromatica com comprimento de onda igual a 555 nm
e com 1 watt de pot^encia produz 680 lumens. A constante K () = 680 V () lm=w permite converter de watts para lumens. Note-se ent~ao que a lumin^ancia3 e uma grandeza
3 Lumin^ancia = lumens=(m2 Sr).

22

CAPITULO 2. COR

colorimetrica que corresponde aos termos perceptuais de brilho (para emissores) ou luminosidade (para re etores).
Se a luz n~ao for monocromatica, mas sim caracterizada por uma distribuica~o espectral
C (), tem-se que:
L(C ()) = K ()

C () V () d:

Isto pode ser expresso em func~ao da representac~ao de C no sistema CIE4 -RGB por
L(C ()) =< L; c >=< (0:177; 0:812; 0:0106); (c ; c ; c ) > :
r

2.7 Padr~ao CIE-XYZ


Para evitarem-se coordenadas de cromaticidade negativas (por que isto e importante?), foi
criado um outro padr~ao de cor chamado de CIE-XYZ. As primarias deste sistema n~ao est~ao
contidas no solido de cor justamente para que qualquer cor possa ser expressa, apenas com
coordenadas positivas, como combinac~ao linear das cores primarias. A convers~ao do sistema
CIE-RGB para o CIE-XYZ e uma mera mudanca de sistema de coordenadas.
Como foi criado o sistema CIE-XYZ? De niu-se que duas cores primarias t^em lumin^ancia
zero (pertencem ao nucleo do operador de lumin^ancia). Traca-se ent~ao uma reta coincidente
com o segmento (quase) retilneo do diagrama de cromaticidade. A intersec~ao desta reta com
a reta de lumin^ancia zero (que passa pela origem e e perpendicular ao vetor (0:176; 0:81))
de ne a primaria X . As duas outras primarias cam de nidas pelo tracado de uma segunda
reta que e tangente ao diagrama de cromaticidade pela esquerda e que minimiza a area do
tri^angulo formado pela reta de lumin^ancia zero, a reta anterior e esta reta. A primaria Z
esta na reta de lumin^ancia zero e a Y no terceiro vertice do tri^angulo ( g. 2.5).
rgb
x
y
z xyz
r
g
b
r 1.2750 -1.7395 -0.7431 x 0.73467 0.27376 0.16658
g -0.2779 2.7675 0.1409 y 0.26533 0.71741 0.00886
b 0.0029 -0.0280 1.6022 z 0.00000 0.00883 0.82456
Tabela 2.1: Bases do CIE (vetores coluna).
Aqui talvez valha a pena reavivar a memoria daqueles que n~ao est~ao muito familiarizados
com algebra linear. Considere-se o seguinte problema: obter as coordenadas do objeto da
gura 2.11 no sistema de coordenadas b).
2.7.1 Mudanca de Sistema de Coordenadas

Uma mudanca de sistema de coordenadas corresponde a uma transformac~ao linear. Desta


forma, basta que seja determinado como a transformac~ao age nos vetores de uma base para
que se tenha a transformac~ao correspondente. Assim se v = a e ; a 2 <, v,e 2 < (fe g
P

4 Comission Internationale de Eclairage.

23

~ CIE-XYZ
2.7. PADRAO

a)

b)

(-0.5,1)

(1.5,1)

(0.5,1)

(0,1)

(0,1)

(0.5,0)
(1,0) (1.5,0)

(1,1)

(1,0)
T(1,0) = (1,0)
T(0,1) = (0.5,1)

T(1,0) = (1,0)
T(0.5,1) = (0,1)
T(0,1) = (-0.5,1)

Figura 2.11: Mudanca de Sistema de Coordenadas.


formam uma base), tem-se que T (v) = T ( a e ) = a T (e ). Este e o motivo pelo qual
uma transformaca~o linear pode ser representada por uma matriz (a matriz onde os vetores
coluna representam os vetores da base ja transformados).
No exemplo proposto T (1; 0) = (1; 0) e T (0:5; 1) = (0; 1), o que, na forma matricial,
produz o seguinte sistema de equac~oes:
T (e1 ) T (e2 )
a1 a 2
T (v1 ) T (v2 )
a
b
1 0:5 = 1
0 :
c
d
0 1
0
1
Resolvendo o sistema acima, obt^em-se: a = 1; 0:5a + b = 0; c = 0; 0:5c + d = 1, ou
T = 10 10:5 . A transformac~ao T leva do sistema de coordenadas a) para o sistema de
coordenadas b), sendo denotada por T .
A transformac~ao T = T 1 pode ser obtida pelo mesmo procedimento ou pela invers~ao
da matriz correspondendo a T . Deve-se notar que xada uma base de vetores existe um
sistema de coordenadas associado. A representaca~o gra ca do sistema de coordenadas e
feita, normalmente, utilizando-se um par de eixos perpendiculares, e n~ao como foi apresentado no sistema b) da gura 2.11. Se os vetores representam alguma grandeza fsica, no
caso presente cor, o sistema de coordenadas especi ca em que proporc~oes as grandezas correspondendo aos vetores da base devem ser combinadas para gerar qualquer outra grandeza
representada por um elemento do espaco vetorial.
P

10

A@

ab

ba

ab

ab

2.7.2 Sistema xyY

O diagrama de cromaticidade retira a lumin^ancia. Logo sensaco~es de cores relacionadas com


lumin^ancia n~ao aparecem (por exemplo, marrom = vermelho-alaranjado com lumin^ancia
muito baixa). Assim, ve-se que o diagrama de cromaticidade n~ao e uma palete de cores.

24

CAPITULO 2. COR

Ha uma in nidade de planos no espaco XY Z que se projetam sobre o diagrama, perdendo
a lumin^ancia nesse processo. Projetando uma cor no plano de Maxwell tem-se:
X
Y
Z
; y=
; z=
;
X +Y +Z
X +Y +Z
X +Y +Z

x
z
x 1 x y
:
X = Y; y = Y; Z = Y ) (X; Y; Z ) = Y ; 1;
y
y
y
y
As coordenadas xyY permitem que se faca uso do diagrama de cromaticidades na espex=

ci cac~ao de cores.

2.7.3 Mudanca do Sistema RGB

$ XY Z

A mudanca do sistema RGB para o sistema XYZ n~ao pode ser feita diretamente a partir
da tabela 2.1 porque as coordenadas la presentes s~ao coordenadas de cromaticidade. Ent~ao
procura-se uma matriz que represente a transformaca~o apropriada:
X1 0
xC
@Y A = @
yC
Z
(1 x y )C
onde C = X + Y + Z ; C

10
0
xC
R1
C R1
A@GA = M @C GA;
yC
(1 x y )C B
CB
; C = X +Y +Z :
Na realidade so dispoem-se das coordenadas xyz e precisa-se determinar o valor dos tr^es
escalares C ; C ; C , que escalam apropriadamente os vetores da base. E necessario ent~ao
0

xC
yC
(1 x y )C
=X +Y +Z
g

que se conheca o valor das coordenadas tricromaticas de um ponto. Normalmente, tem-se


as coordenadas tricromaticas (X ; Y ; Z ) do branco padr~ao de refer^encia: (R ; G ; B ) =
(1; 1; 1). Assim:
r

X
@ Y
Z
0

w
w

C
A = M @C
C
1

g
b

C
A ) @C
C
1

g
b

X
A = M 1@ Y
Z
1

1
w

Fazendo-se estas contas utilizando os dados da tabela 2.1 e considerando (X ; Y ; Z ) =


(R ; G ; B ) = (1; 1; 1), obtem-se:
X
0:489989 0:310008 0:200003 R
Y = 0:176962 0:812400 0:010638
G ;
Z
0:000000 0:009999 0:990001 B
R
2:364666 0:896583 0:468083 X
G =
0:515155 1:426409 0:088746
Y :
B
0:005203 0:014407 1:009204
Z
Note-se que o resultado e o esperado, por exemplo:
0:896583
r =
0:896583 + 1:426409 0:014407 = 1:7395226:
Este mesmo processo pode ser usado para fazer a mudanca da base mRGB de um dispositivo para a base XYZ e vice-versa.
w

10

A@

10

A@

2.8. SISTEMAS DE COR

25

2.8 Sistemas de Cor


Um sistema de cor e o espaco de cor mais um sistema de coordenadas nele de nido. Existem
varios sistemas de cor. Uma classi cac~ao possvel e a seguinte:
 Sistemas padr~ao;
 Sistemas dos dispositivos;
 Sistemas computacionais;
 Sistemas de interface.
2.8.1 Sistemas Padr~ao

Os sistemas padr~ao s~ao aqueles homologados por alguma instituic~ao normativa. Pode-se
citar o sistema de cor CIE-RGB, criado em 1931, que xa uma base de primarias composta
pelas cores monocromaticas de comprimento de onda 700 m(Red); 546 m(Green) e 435.8
m(Blue); o sistema CIE-CMY, que utiliza como primarias as cores complementares ciano (azul-piscina), magenta (violeta) e amarelo para simular um sistema subtrativo de cor
( g. 2.12); e o sistema CIE-XYZ, cuja base de primarias, chamadas X, Y e Z, esta fora do
espectro visvel.
A principal nalidade de um sistema padr~ao e que, por ser independente de qualquer
dispositivo fsico, possibilita a mudanca de coordenadas entre sistemas distintos e fornece
uma maneira de armazenamento de imagens que independe de um dispositivo particular.
2.8.2 Sistemas dos Dispositivos

Os sistemas dos dispositivos s~ao de nidos pelas bases de primarias dos dispositivos. O gamute de um dispositivo (o conjunto de cores realizaveis pelo dispositivo) e um tri^angulo
contido no diagrama de cromaticidade (por que?). Os sistemas dos dispositivos t^em uma
import^ancia intrnseca porque, em ultima analise, s~ao com eles que as imagens s~ao reconstrudas. O espaco de cor de um dispositivo e um subconjunto do solido de cor que, em
geral, tem a forma de um paraleleppedo cujas faces s~ao paralelogramos. Quando se efetua
a mudanca de coordenadas tem-se ent~ao um cubo ( g. 2.12).
2.8.3 Sistemas Computacionais

Os sistemas computacionais s~ao sistemas utilizados tanto para sntese de imagens como no
processamento de imagens. Podem ser, por exemplo, sistemas padr~ao, ou sistemas com
alguma caracterstica propria, tal como utilizar uma base com mais de tr^es primarias.
2.8.4 Sistemas de Interface

Sistemas de cor baseados em espacos vetoriais s~ao praticos do ponto de vista computacional,
mas s~ao muito ruins para serem usados na interface com o usuario. Os sistemas de interface
objetivam oferecer uma interface adequada a especi caca~o de cores por um usuario comum,

26

CAPITULO 2. COR

branco

preto

Figura 2.12: Espaco de Cor de um Dispositivo (cubo RGB).


sem qualquer conhecimento espec co a respeito de colorimetria. Alguns sistemas permitem
escolher uma cor a partir de tr^es par^ametros: tonalidade, saturaca~o e lumin^ancia.
 tonalidade ou matiz (comprimento de onda dominante).
 saturaca~o (pureza da cor).
 brilho ou valor (lumin^ancia).
A tonalidade varia quando se caminha angularmente no diagrama de cromaticidade e
a saturac~ao quando se caminha radialmente. A saturac~ao tem a ver com a pureza da cor
(o quanto ela contem de branco). As cores espectrais s~ao as cores consideradas puras.
Consulte-se a gura 2.13.
Existem dois metodos basicos para se criar um sistema de interface de cor:
 por coordenadas: utilizam-se coordenadas (ex, HSV e HSL).
 por amostras: discretiza-se o solido de cor criando-se um atlas de cor (ex, Pantone e
Munsell).
O sistema HSV (Hue, Saturation, Value), criado por Alvy Ray Smith, projeta o cubo
RGB sobre o plano perpendicular a linha de lumin^ancia (a diagonal do cubo) x + y + z = 3,
conforme pode ser visto na gura 2.14.

27

2.8. SISTEMAS DE COR

brilho

tintas

branco
tonalidade

cor pura

tons
cinzas

shades

saturacao

preto

Figura 2.13: Paradigmas de Cor.


y

Figura 2.14: Projeca~o do Cubo RGB no plano x+y+z=3.


Este sistema de coordenadas n~ao se baseia numa base de um espaco vetorial. Logo, a
convers~ao do sistema HSV para o sistema RGB n~ao e dada por uma transformac~ao projetiva
e consequentemente n~ao pode ser representada por uma matriz. A coordenada valor de uma
cor c = (c ; c ; c ) e de nida como max(c ; c ; c ) ( g. 2.15).
O sistema HSL (Hue, Lightness, Saturation) foi criado pela Tektronix e e muito parecido com o sistema HSV. Neste sistema o brilho e de nido por 1=2(max(c ; c ; c )
min(c ; c ; c )) (preto tem brilho 0 e branco brilho 1). O modelo geometrico do sistema
HSL e um hexacone duplo.
r

28

CAPITULO 2. COR

valor

tonalidade

saturacao
M

Preto

Figura 2.15: Sistema HSV.


Um atlas de cor e constitudo por um numero nito de amostras retiradas do espaco
de cor. O sistema de Munsell (1915) obedece o criterio de uniformidade perceptual e o
sistema Pantone (1960) foi criado para ser usado no processo de impress~ao em papel pela
industria gra ca. Estes sistemas amostram as tonalidades; para cada tonalidade, amostram
a saturaca~o; e para cada saturaca~o, amostram a lumin^ancia ( g. 2.16).

2.9 Exerccios
2.1 O que e metamerismo? D^e exemplos de metamerismo em nosso cotidiano.
2.2 De na o espaco espectral de cor.
2.3 D^e uma justi cativa para mostrar que o espaco espectral de cor tem dimens~ao in nita.
2.4 Mostre que o solido das cores visveis e um conjunto convexo e apresente uma visualizaca~o 3D do sistema CIE-RGB.
2.5 Justi que por que as cores espectrais est~ao situadas no bordo do diagrama de cromaticidade.

29

2.9. EXERCICIOS

valor

saturacao

tonalidade

Figura 2.16: Sistema de Munsell.


2.6 Explique por que a chamada linha purpura e a unica parte retilnea do bordo do diagrama de cromaticidade.
2.7 De na mapa de cor (computacionalmente e matematicamente) e crie um mapa de cor
que contenha todas as cores espectrais.
2.8 Crie uma imagem para visualizar o mapa de cor do exerccio anterior e discuta-a em
relac~ao a palavra todas.
2.9 Discuta a representac~ao do diagrama de cromaticidade no computador e crie uma
imagem do diagrama de cromaticidade do sistema CIE-XYZ.
2.10 D^e uma classi cac~ao dos sistemas de cor utilizados em Computac~ao Gra ca, dando
um exemplo de cada tipo de sistema.
2.11 De na e d^e uma descric~ao dos par^ametros perceptuais utilizados na escolha de cor
no computador.
2.12 O sistema de interface HSV e de nido a partir do sistema padr~ao RGB.
a) Exiba um algoritmo para a convers~ao de uma cor do sistema mRGB (RGB de um
monitor) para o sistema HSV correspondente e outro para converter do sistema HSV
para o mRGB.
b) Explique o princpio de funcionamento dos dois algoritmos.
c) Discuta as diferencas entre os dois sistemas.

30

CAPITULO 2. COR

d) Diga como pode ser feita uma interpolac~ao entre duas cores no sistema HSV.

2.13 Dado um monitor com base de primarias com coordenadas de cromaticidade


R(0.628, 0.346), G(0.268, 0.588) e B(0.150, 0.070).
a) Mostre que a cor com coordenadas de cromaticidade (0.274, 0.717) n~ao pode ser exibida
de modo preciso neste monitor.
b) Qual a denominac~ao da cor do item anterior?

2.14 Considere o solido de cor de um dispositivo gra co e uma cor que n~ao pode ser
representada acuradamente neste dispositivo.
a) Quais s~ao os tipos de situac~ao que podem causar este problema.
b) Proponha metodos de aproximar esta cor no dispositivo.
c) Discuta os aspectos positivos e negativos de cada metodo proposto.

2.15 Calcule as coordenadas de cromaticidade de uma cor com coordenadas C = (r; g; b).
2.16 Dado que a mistura de duas cores, segundo as leis de Grassman, pode ser calculada
pela adic~ao de suas coordenadas tricromaticas (X,Y,Z) e que os valores de cromaticidade
(x; y; z) de uma cor s~ao
X
Y
Z
x=
;
y=
;
z=
(X + Y + Z )
(X + Y + Z )
(X + Y + Z ) ou

xY
(1 x y)Y ;
;
Y =Y;
Z=
y
y
determine as coordenadas de cromaticidade da mistura das tr^es cores c1 ; c2 ; c3 dadas no
sistema CIE-xyY, respectivamente, por (0.1,0.3,10.0), (0.35,0.2,10.0), (0.2,0.5,10.0).
X=

= Yy11 ; T2 = Yy22 ;
= (x1T1 ; Y1; (1 x1
= (x2T2 ; Y2; (1 x2

T1
X1
X2
X12 = X1 + X2
X12x + X12y + X12z

y1 )T1 );
y2 )T2 ):

= (x1 T1 + x2T2 ; Y1 + Y 2; (1 x1 y1)T1 + (1 x2


= x1 T1 + x2 T2 + Y1 + Y2 + T1 x1T1 y1T1 + T2
= T1 + T2 :

) x12 = x1TT1 ++ Tx2 T2 ; y12 = y1TT1 ++ Ty2T2 ; Y12 = Y1 + Y2 :


1

y2 )T2 ) )
x2 T2 y2 T2

(2.1)

(2.2)

31

2.9. EXERCICIOS

x2

x1

X1

X12

x12 X2

Figura 2.17: Combinac~ao de Cores.


2.17 Dada uma cor c1 = (x1 ; y1 ; Y1 ) e o ponto acromatico a = (a ; a ; 1) derive a formula
para calcular a cor c2 = (x2 ; y2 ; Y2 ) complementar de c1 .
x

x1 T1 + x2 T2 = a (T1 + T2 );
c1 + c2 = a (2:2) ) : y1 T1 + y2 T2 = a (T1 + T2 );
Y1 + Y2 = y1 T1 + y2 T2 = 1:
8
<

a (T1 + T2 ) = 1 ) (T1 + T2 ) =
y

x2

1 )T = 1
2
a
a
y

x
x1 T1
a (T1 + T2 ) x1 T1
y
;
=
1
T2
T1
y
a (T1 + T2 ) y1 T1 1 y1 T1
= 1 T ;
T2
1
y
1 Y1:

(2.3)

T1 :

y2
Y2

=
=

(2.4)

2.18 O comprimento de onda dominante de uma cor c e obtido, calculando-se a intersec~ao


da reta de nida pelas coordenadas de cromaticidade de c e do ponto acromatico com o bordo
do diagrama de cromaticidade. Pela de nica~o acima, alguns pontos contidos no diagrama
de cromaticidade n~ao t^em comprimento de onda dominante no espectro visvel.
a) Por que?
b) Proponha um esquema que permita representar o comprimento de onda dominante de
um desses pontos, baseado no conceito de complementaridade.

2.19 Dados dois espacos tricromaticos de cor A e B com bases (A1 ; A2 ; A3 ) e (B1 ; B2 ; B3 ),
respectivamente, e a matriz [a ] de mudanca de base entre A e B .
ij

a) Mostre como calcular as coordenadas (c1 ; c2 ; c3 ) de uma cor c em A a partir de suas


coordenadas em B .

32

CAPITULO 2. COR

b) Sendo rB () as func~oes de reconstruca~o de cor associadas as primarias (B1 ; B2 ; B3 ),


diga como podem-se obter as funco~es de reconstruc~ao de cor rA () associadas as
primarias (A1 ; A2 ; A3 ).
i

c) Justi que os itens anteriores.

2.20 Considere o sistema de cor RGB do monitor (mRGB ).


a) Qual a geometria do solido de cor desse sistema?
b) Faca um esboco do solido de cor.
c) Considere as cores do sistema mRGB normalizadas para o interval0 [0; 1]. De na o
sistema de cores complementares CMY , correspondentes as cores primarias do sistema
mRGB . Mostre que
C = 1 R;
M = 1 G;
Y = 1 B:

Cap
tulo 3

Dispositivos Gra cos


Os equipamentos desempenham um papel bastante importante na computac~ao gra ca, n~ao
so pela relev^ancia da imagem como um dos produtos da atividade, mas tambem pela in u^encia que as caractersticas dos equipamentos exercem nos processos computacionais da
area.
Neste captulo advoga-se que a representac~ao dos dados no computador e a apresentac~ao
da imagem nos equipamentos gra cos formam uma via de m~ao dupla, com muitas interrelac~oes e interdepend^encias. Ser~ao estudados os equipamentos com relaca~o a certos criterios
de classi caca~o, em particular do ponto de vista da classi cac~ao funcional e, em cada caso,
ser~ao dados exemplos de equipamentos que utilizam os diversos formatos de dados gra cos.

Uso

Funcoes

Formato

Estrutura

Aplicacao

Modelo

Tipo de Dados

Tecnologia

Figura 3.1: Modelo Conceitual.

3.1 Formato de Dados Gra co


Existem dois formatos basicos para a representac~ao e o armazenamento de dados gra cos
no computador: o formato vetorial e o formato matricial. O formato vetorial e utilizado,
em geral, para descrever a estrutura geometrica dos objetos gra cos, enquanto o formato
matricial esta frequentemente associado a imagem digital.
33

34


CAPITULO 3. DISPOSITIVOS GRAFICOS

3.1.1 Formato Vetorial

No formato vetorial, os dados s~ao representados por unidades basicas de informac~ao, descritas por coordenadas em um espaco vetorial. Estes elementos s~ao associados a posic~oes
ou a vetores deste espaco. No primeiro caso, eles podem ser usados na especi caca~o dos
pontos iniciais e nais de segmentos de reta, vertices de polgonos e malhas de controle
de curvas ou superfcies parametricas. Ja no segundo caso, eles podem especi car forcas,
direc~oes ou orientaco~es. A dimens~ao do espaco vetorial determina o numero de coordenadas
de seus elementos basicos. Alem disso, o espaco pode ser contnuo ou discreto, tendo suas
coordenadas representadas por numeros reais ou inteiros, respectivamente.
As informac~oes geometricas, em muitos casos, precisam ser complementadas por informac~oes topologicas para especi car completamente o modelo de um objeto gra co. Este
assunto sera discutido em profundidade nos captulos dedicados a Modelagem.

Figura 3.2: Formato Vetorial.


3.1.2 Formato Matricial

As imagens digitais s~ao tratadas no captulo 4. Entretanto, no que se segue, de ne-se este
conceito de uma forma um tanto limitada, porem su ciente, ao proposito de estudo dos
equipamentos gra cos.
Uma imagem digital e uma matrix M  N onde cada elemento da matriz e um elemento
de um espaco vetorial V . O caso mais comum e quando V e um espaco de cor. Chama-se
de resoluc~ao da imagem a ordem M  N da matriz. De modo analogo, de ne-se imagem
volumetrica tomando matrizes de ordem M  N  P , onde cada entrada tambem e um
elemento do espaco de cor. E comum utilizarem-se os termos imagens bidimensionais e
imagens tridimensionais para cada um dos dois casos, respectivamente.
O formato matricial de dados permite a representaca~o de imagens bidimensionais e volumetricas. Note-se que a estrutura da matriz determina implicitamente a conectividade de
seus elementos. Cada elemento e chamado de pixel.
3.1.3 Convers~ao entre Formatos

A convers~ao entre formatos e desejavel e muitas vezes necessaria.


Da-se o nome de rasterizac~ao a transformac~ao de dados do formato vetorial para o

~ DOS DISPOSITIVOS
3.2. CLASSIFICAC
 AO

35

Figura 3.3: Formato Matricial.


formato matricial ( g. 3.4 (a)). Essa tecnica, que constitui uma parte fundamental dos
algoritmos de sntese de imagens, e estudada em detalhe no Captulo 10.
A transformac~ao oposta, ou seja, de dados no formato matricial para o formato vetorial,
e chamada de segmentac~ao e faz parte da area de Vis~ao Computacional. Essa convers~ao,
em alguns casos, n~ao e bem de nida, sendo impossvel de ser realizada ( g. 3.4 (b)).

(a)

(b)
Figura 3.4: Convers~ao entre Formatos.

3.2 Classi cac~ao dos Dispositivos


Os dispositivos gra cos s~ao projetados usualmente de forma a privilegiar um dos formatos
de dados descritos acima. Isso n~ao signi ca que um tipo de equipamento somente possa
operar com um determinado formato de dados. Os dispositivos do tipo matricial podem,
por exemplo, reproduzir segmentos de reta utilizando processos de rasterizac~ao. Alguns
equipamentos deste tipo disp~oem ate mesmo de suporte em hardware para tal operac~ao.
Embora n~ao seja t~ao comum, os dispositivos do tipo vetorial podem tambem reproduzir
imagens utilizando padr~oes de linhas. Por exemplo, em mapas e desenhos tecnicos, varios
tipos de hachuras s~ao empregados para diferenciar areas, simulando tonalidades de cinza.

36


CAPITULO 3. DISPOSITIVOS GRAFICOS

A evoluca~o dos equipamentos gra cos re ete, de uma certa forma, o desenvolvimento da
computac~ao gra ca como um todo. Inicialmente, quando havia uma grande preocupac~ao
com a modelagem geometrica, os dispositivos vetoriais eram mais populares. Depois, com
a ^enfase na sntese de imagens so sticadas, os equipamentos matriciais passaram a ser
mais utilizados. Atualmente, a tend^encia e a busca de soluco~es integradas, combinando
dispositivos do tipo vetorial e matricial nas diversas fases do processo da computac~ao gra ca
para atender classes espec cas de aplicac~oes. De um modo geral, os dispositivos vetoriais
est~ao vinculados a especi caca~o e manipulac~ao dos modelos geometricos, enquanto que os
dispositivos matriciais est~ao relacionados com a exibic~ao e o processamento de imagens.
Alem disso, varios fatores de natureza tecnica, industrial e econ^omica, determinaram a
evoluc~ao dos equipamentos gra cos. Os dispositivos do tipo matricial necessitam do uso de
muita memoria para armazenar a imagem. Por outro lado, os dispositivos do tipo vetorial se
bene ciaram da tecnologia de radar, numa epoca em que o custo da memoria inviabilizava
o uso de dispositivos de formato matricial (decada de 60 e 70). Ja os dispositivos do
tipo matricial foram impulsionados na decada de 80 por dois fatores: a queda do preco de
memoria, e a revoluca~o nas comunicaco~es que a televis~ao provocou (neste captulo sera visto
que os dispositivos de sada gra ca mais comuns utilizam o formato matricial e se baseiam na
tecnologia de monitores de televis~ao). Os avancos recentes nas areas da supercomputac~ao e
da computaca~o paralela t^em tido um impacto signi cativo nos dispositivos de processamento
gra co.
3.2.1 Criterios de Classi cac~ao

No estudo dos dispositivos gra cos e necessario criar abstrac~oes das suas caractersticas
operacionais, de modo que o vnculo entre programas e equipamentos n~ao se transforme num
fator de depend^encia. Varios aspectos contribuem para o estabelecimento de criterios para
uma classi cac~ao dos equipamentos gra cos. Nessa analise ha categorias de equipamentos
estruturadas, hierarquicamente, segundo dois pontos de vista: o funcional, e o do formato
dos dados gra cos.
Em relac~ao ao criterio funcional, dividem-se os dispositivos gra cos em:
 equipamentos de entrada;
 equipamentos de processamento;
 equipamentos de sada.
Quanto ao formato de dados os dispositivos gra cos se dividem em equipamentos do tipo
vetorial e do tipo matricial. O diagrama da gura 3.5 mostra como essas classi cac~oes se
relacionam.

3.3 Equipamentos de Entrada Gra ca.


Os equipamentos de entrada de dados gra cos s~ao equipamentos de captaca~o de informaco~es
gra cas. Do ponto de vista do formato da imagem, os dispositivos podem ser classi cados
como vetoriais e matriciais.

37


3.3. EQUIPAMENTOS DE ENTRADA GRAFICA.

Graphics
Devices

Input

Vector
Matrix

Process

Vector
Matrix
Hybrid

Output

Vector
Matrix

Figura 3.5: Classi cac~ao dos Equipamentos.


Os dispositivos de entrada vetorial s~ao em sua maioria utilizados como componentes de
estac~oes gra cas interativas. Um exemplo tpico e o \mouse", componente indispensavel
em uma estaca~o de trabalho interativa que utilize ambiente de janelas.
Os dispositivos de entrada matricial s~ao tradicionalmente utilizados de modo n~ao-interativo,
devido, principalmente, ao grande volume de dados que devem ser manipulados. Esta situac~ao tende a se modi car com a evoluc~ao dos equipamentos de aquisica~o, exibic~ao e processamento de imagens, que poder~ao tornar possvel aplicaco~es em tempo real envolvendo
dados matriciais.
3.3.1 Dispositivos de Entrada Vetorial

Os dispositivos cujo sistema de coordenadas e absoluto s~ao: a \light pen", a \tablet", o


\touch pannel", e o \3D-digitizer". As caractersticas tecnicas relevantes dos dispositivos de
entrada vetorial absolutos s~ao a sua resoluca~o, linearidade, repetibilidade, e area de ac~ao.
A light pen e um dispositivo bidimensional que funciona necessariamente acoplado a um
terminal de vdeo. Este equipamento e composto por uma caneta com uma foto-celula na
ponta ligada ao circuito de vdeo do terminal. Dessa maneira, e possvel detectar pontos
apresentados na tela e consequentemente sua localizac~ao. Este dispositivo surgiu com os
primeiros equipamentos gra cos interativos. Atualmente ele caiu em desuso devido a alguns
problemas tecnicos apresentados.
O touch pannel tambem e um dispositivo bidimensional de entrada que deve ser integrado a um terminal de vdeo. Ele consiste em uma tela transparente, sensvel ao toque, que e
sobreposta a tela do terminal. Este dispositivo apresenta severas limitaco~es em termos de
resoluc~ao. Por este motivo, ele e indicado apenas para a selec~ao de objetos gra cos apresentados na tela. Um exemplo desse tipo de utilizaca~o pode ser visto em alguns terminais
eletr^onicos de banco.
A tablet ou mesa digitalizadora consiste em uma base plana e um instrumento indicador
em forma de caneta ou bloco. No indicador existem um ou mais bot~oes. O equipamento

38


CAPITULO 3. DISPOSITIVOS GRAFICOS

fornece a posica~o do indicador em relac~ao ao sistema de refer^encia da base, juntamente com


o estado dos bot~oes (\on" ou \o "). Alem desses par^ametros, com relac~ao aos dados de
entrada, a tablet em geral e um dispositivo bidimensional. Porem em alguns dispositivos
e possvel especi car a press~ao exercida na ponta da caneta e tambem a sua orientac~ao.
Nesse caso, o espaco vetorial de entrada tem dimens~ao 6 (i.e. posic~ao (X; Y ), press~ao
( ; ) e orientac~ao ( ; ; )). Estes dados podem ser interpretados de maneira bastante
efetiva em um programa de pintura eletr^onica, para permitir a simulac~ao de instrumentos
tradicionais como o pincel, o crayon, etc. O instrumento indicador pode ou n~ao estar ligado
a mesa digitalizadora por um o. A caneta sem o possibilita uma interac~ao mais natural,
especialmente para aplicac~oes de desenho livre.
O 3D digitizer permite captar posic~ao (X; Y; Z ) e orientac~ao ( ; ; ) no espaco tridimensional. Este dispositivo e constitudo por um emissor magnetico e um sensor que, em
geral, tem a forma de uma caneta. Ele e bastante conveniente para digitalizar diretamente
pontos na superfcie de um objeto tridimensional.
Os dispositivos vetoriais que operam com referencial relativo s~ao: o \mouse", a \trackball", o \joystick" e os \dials". Esses dispositivos registram deslocamentos que s~ao transformados em informac~oes de movimento relativo. Isso implica que o programa de controle
do dispositivo deve manter a posic~ao corrente que e atualizada a cada movimento relativo.
O mouse, como foi dito anteriormente, e um dos dispositivos de entrada gra ca mais
comuns atualmente, por estar associado a estac~oes de trabalho que utilizam sistemas de
janelas. Esse equipamento consiste em um pequeno bloco com bot~oes de press~ao, que se
comunica com o computador.
A trackball e constituda por uma esfera que gira livremente numa base. Os movimentos
de rotaca~o em relac~ao a dois eixos ortogonais s~ao transformados em informac~oes de posic~ao
de maneira semelhante a do mouse.
O joystick e formado por uma haste conectada a uma base. Em geral, o movimento
da haste e transformado em um vetor de velocidades que controla a variac~ao dos dados
posicionais. Ou seja, na medida em que a haste se afasta do eixo central, a velocidade
aumenta proporcionalmente naquela direca~o. Alguns tipos de joystick possuem um terceiro
grau de liberdade, associado a rotaca~o da haste. Esse dispositivo e utilizado com frequ^encia
como interface de entrada dos vdeo-games.
Os dials s~ao potenci^ometros tipicamente montados em grupos de seis ou oito. Os potenci^ometros fornecem valores escalares e podem ter uma faixa de rotac~ao xa menor do
que 360 graus, ou podem permitir a rotac~ao livre. No primeiro caso, o intervalo escalar dos
dados e mapeado na faixa de operac~ao do dispositivo, enquanto no segundo caso os dados
s~ao especi cados de forma relativa.
3.3.2 Dispositivos de Entrada Matricial

A estrutura dos dispositivos de entrada do tipo matricial consiste em um sensor que capta
sinais no espaco ambiente e um circuito digitalizador que converte esses sinais analogicos
para o formato matricial.
O processo de convers~ao de uma imagem para uma imagem digital e conhecido como
digitalizac~ao. Os dispositivos de entrada matricial s~ao, em sua maioria, destinados a digitalizac~ao de imagens. Dependendo do meio no qual se encontra a imagem a ser digitalizada


3.4. EQUIPAMENTOS DE PROCESSAMENTO GRAFICO

39

t^em-se o \frame grabber", o \scanner", o \ lm scanner", e o \depth scanner".


O frame grabber faz a digitalizac~ao a partir de um sinal analogico de vdeo. O sinal de
vdeo pode ser gerado diretamente por uma c^amera ou por um equipamento de reproduc~ao
de vdeo. A resoluc~ao geometrica da imagem digitalizada e a resoluc~ao de vdeo, que e
aproximadamente de 512  512 pixels. Os dispositivos mais so sticados digitalizam com
uma resoluca~o de cor de 24 bits.
O scanner digitaliza a partir de imagens em papel. A imagem e colocada sobre uma
superfcie transparente, em geral plana ou cilndrica, que se move numa direca~o ortogonal
a um elemento de digitalizac~ao de linha. Este elemento se comp~oe de uma fonte de luz e de
um sensor que mede a luz re etida linha por linha, em sincronismo com o deslocamento da
imagem. A resoluca~o deste dispositivo esta situada entre 200 a 1500 pontos por polegada.
O lm scanner digitaliza a partir de imagens em transpar^encias utilizando o laser para
maior resoluc~ao. Um feixe de luz precisamente colimado e dirigido ao lme e a quantidade
de luz transmitida e medida por uma celula fotoeletrica. Este dispositivo pode atingir uma
resoluc~ao superior a 2000 pontos por polegada.
O depth scanner, ao inves de digitalizar uma imagem, captura informaco~es de uma cena
tridimensional, produzindo uma matriz de coordenadas com a profundidade de cada ponto
da cena. A estrutura dessa matriz depende do processo de varredura utilizado. Os tipos
mais comuns possuem varredura plana ou cilndrica.

3.4 Equipamentos de Processamento Gra co


Os equipamentos de processamento gra co s~ao computadores com uma arquitetura especial,
orientada para a manipulaca~o e processamento de dados gra cos.
Dois problemas recorrentes do equacionamento da arquitetura dos equipamentos gra cos
de processamento est~ao relacionados com aspectos de funcionalidade e acoplamento. O primeiro aspecto diz respeito ao grau de especializaca~o das func~oes do processador gra co. Processadores especializados s~ao mais e cientes e caros, enquanto processadores de proposito
geral s~ao mais exveis e baratos. O segundo aspecto diz respeito ao canal de comunicac~ao
do processador gra co com o sistema de computac~ao. Um alto acoplamento possibilita um
acesso rapido aos dados do sistema, mas implica em grande interdepend^encia. Em contrapartida, um baixo acoplamento permite maior independ^encia entre o processador gra co e
o sistema, mas implica em uma comunicac~ao restrita entre eles.
Estes aspectos est~ao claramente interrelacionados. Um processador gra co especializado
necessita de um canal de comunicac~ao de alta capacidade porque muitas das func~oes gra cas
ser~ao realizadas pelo processador principal. Por outro lado, um processador gra co mais
geral disp~oe de recursos para executar localmente grande parte das func~oes de visualizac~ao,
podendo ter um canal de comunicaca~o limitado com o computador principal.
Existe uma tend^encia na industria de equipamentos gra cos que consiste em gradativamente adicionar funcionalidade aos processadores gra cos especializados, ate que eles se
tornam equivalentes a um computador de uso geral. A unica opc~ao, que existe ent~ao, e
completar o ciclo voltando a especializac~ao. Este fen^omeno cou conhecido como a \roda
da reencarnaca~o" (weel of reincarnation).

40


CAPITULO 3. DISPOSITIVOS GRAFICOS

3.4.1 Dispositivos de Processamento Vetorial

Os dispositivos do tipo vetorial se destinam principalmente ao processamento de modelos geometricos. Eles atuam portanto sobre as coordenadas das diversas componentes dos
modelos, tais como segmentos de reta, polgonos, e etc. Em func~ao do numero de processadores, podem-se ter dispositivos do tipo SISD (single-instruction, single data stream), ou
MISD (multiple-instruction, single data stream).
Os dispositivos do tipo SISD s~ao uniprocessadores que possuem instruc~oes especiais para
processamento de dados geometricos, do tipo multiplicaca~o de matrizes por vetores.
Os dispositivos do tipo MISD s~ao pipelines compostas de varios processadores organizados sequencialmente. O processamento gra co e dividido em etapas, onde cada processador
e especializado numa classe de operac~oes gra cas, como projeca~o, recorte, etc.
3.4.2 Dispositivos de Processamento Matricial

Os dispositivos do tipo matricial s~ao equipamentos multiprocessadores utilizados para o


processamento de imagens, para a rasterizaca~o (Captulo 10) e outros algoritmos gra cos
paralelizaveis. Ha os dispositivos do tipo SIMD (single-instruction, multiple data stream),
ou MIMD (multiple-instruction, multiple data stream) com diferentes con guraco~es dos
processadores.
Os dispositivos do tipo SIMD s~ao utilizados para realizar a mesma operaca~o em varios
elementos simultaneamente. Um exemplo desse tipo de equipamento e o computador de
imagem Pixar.
Os dispositivos do tipo SIMD s~ao processadores paralelos que se comunicam entre si. A
maneira como eles est~ao interligados de ne uma topologia de rede e, consequentemente, o
uxo de dados. Um equipamento desse tipo e a estac~ao gra ca Pixel Machine.

3.5 Equipamentos de Sada Gra ca


Os equipamentos de sada gra ca s~ao equipamentos que permitem a visualizac~ao de dados
gra cos. Podem ser subdivididos em dispositivos vetoriais ou matriciais, de acordo com
o tipo de dado gra co por eles manipulado. Dentre todos os equipamentos gra cos de
sada, os dispositivos de exibic~ao de vdeo s~ao, sem duvida alguma, os mais importantes
e mais comuns. A tecnologia de vdeo implica em uma serie de caractersticas comuns
aos equipamentos vetoriais e matriciais. Por esse motivo, inicia-se esta seca~o analisando a
estrutura basica dos dispositivos de exibic~ao de vdeo. Em seguida discutem-se os detalhes
espec cos dos diversos tipos de equipamentos de vdeo no contexto dos dispositivos vetoriais
e matriciais.
3.5.1 Dispositivos de Exibic~ao de Vdeo

Um dispositivo de exibic~ao de vdeo e constitudo por quatro elementos: um monitor, um


controlador de vdeo, uma memoria de exibica~o (\frame bu er") e um conversor digital
analogico ( g. 3.6).

41


3.5. EQUIPAMENTOS DE SAIDA GRAFICA

Perifericos

CPU

BUS

Memory

Video
Controler

Frame
Buffer

Monitor

(a)
CONTROLADOR DE VIDEO

end.
x
F
R
A
M
E
B
U
F
F
E
R

inicia ou
incrementa
sinal de
deflexao

endereco
linear

raster.
end.
y

valor do
pixel

inicia ou
decrementa

sinal de
cor ou
conversor video
luminancia D/A

CONVERSOR D/A

(b)
Figura 3.6: Dispositivo de Vdeo.
O monitor de vdeo ( g. 3.7) consiste em um tubo de raios catodicos com uma tela e um
canh~ao que produz um ou mais feixes de eletrons controlado por um sistema de focalizac~ao
e exploraca~o. Em cada ponto da tela se colocam uma ou mais camadas de fosforo, de
modo que, ao atingir um desses pontos, o feixe de eletrons provoca a emiss~ao de radiac~ao
eletromagnetica na faixa visvel do espectro. O funcionamento basico de qualquer monitor
de vdeo e bastante similar ao funcionamento de um monitor de televis~ao. No sistema
NTSC1 e PAL-M2 existem 525 linhas (483 visveis) e 644 pixels por linha (raz~ao de aspecto
4:3). Monitores para aplicaco~es gra cas, no entanto, costumam ter uma resoluc~ao muito
maior, algo em torno de 1024  1024 pontos enderecaveis.
O espaco de cor do monitor de vdeo depende do numero de camadas de fosforo em cada
ponto. Os monitores monocromaticos, ou de dois nveis (bitmapped), utilizam uma unica
camada de um fosforo que e sensibilizado com voltagem mnima ou maxima; os monitores
que permitem a exibica~o de tons de cinza (gray scale) utilizam uma unica camada de fosforo
cuja sensibilidade produz uma radiaca~o com a lumin^ancia proporcional a voltagem aplicada
1 National Television System Cometee.
2 Phase Alternating Lines.

42


CAPITULO 3. DISPOSITIVOS GRAFICOS

ao feixe de eletrons do canh~ao.


O espaco tricromatico de cor e implementado por meio de tr^es tipos de fosforo diferentes
em cada ponto (e tr^es feixes de eletrons), de modo que cada fosforo emite uma das cores
primarias do sistema. A dist^ancia entre os centros dos pontos R, G e B de ne o pitch do
tubo, que varia de 0.60 mm num monitor de televis~ao ate 0.21 mm em monitores de alta
resoluca~o. Uma mascara metalica perfurada colocada a frente da camada de fosforo garante
que cada feixe de eletrons atinge e excita apenas o ponto correspondente ao tipo correto de
fosforo.
cobertura
metalica (+)
15 a 20000 V
amplificador
de
deflexao vertical

luz
visivel

feixe
defletido

feixe de eletrons
catodo
(-)

grade de
foco (-)
amplificador
de
deflexao horizontal
anodo
(+)
cobertura de
fosforo

Figura 3.7: Monitor de Vdeo.


Como a resposta luminosa do fosforo utilizado na tela decai exponencialmente com o
tempo, a imagem precisa ser redesenhada periodicamente. O numero de vezes por segundo
que a imagem deve ser exibida na tela para que seja percebida como um fen^omeno contnuo
no tempo, e chamado de frequencia crtica de fus~ao. Este numero e determinado por varios
fatores, desde a persist^encia do fosforo, ate a aspectos psico siologicos. Em media ele se
situa proximo dos 50 Hz.
O controlador de vdeo, tambem chamado de DPU (Display Processing Unit), tem a
nalidade de controlar o movimento de explorac~ao na tela do feixe de eletrons, para que
a imagem desejada seja produzida. Esse processo, denominado de varredura, pode ser
aleatorio ou regular. Na varredura aleatoria, o feixe se desloca numa trajetoria que segue o
desenho das curvas da imagem. Na varredura regular, o feixe se movimenta de acordo com
um padr~ao xo que percorre toda a tela da esquerda para a direita e de cima para baixo,
cobrindo-a por linhas horizontais. Este padr~ao regular e chamado de raster. A gura 3.8
ilustra os dois padr~oes utilizados. Os dispositivos de exibic~ao vetorial empregam a varredura


3.5. EQUIPAMENTOS DE SAIDA GRAFICA

43

aleatoria enquanto os dispositivos de exibic~ao matricial empregam a varredura regular.


Padrao de Varredura Entrelacada
1
2
3
4
5
6
7
8
9
Varredura Regular

Varredura Aleatoria

Figura 3.8: Padr~oes de Varredura.


A memoria de exibic~ao (frame bu er) armazena os dados que v~ao ser utilizados para gerar
a imagem. Atraves do conversor digital analogico os valores armazenados nessa memoria s~ao
convertidos para uma voltagem que e utilizada pelo canh~ao para gerar o feixe de eletrons.
Nos dispositivos matriciais, a memoria de exibic~ao e organizada em uma estrutura matricial
de modo a armazenar os valores de cada cor dos pixels da imagem. O tamanho da memoria
de exibica~o determina a resoluca~o de cor e a resoluc~ao geometrica da imagem. A resoluca~o
de cor esta ligada diretamente ao tipo do espaco de cor do dispositivo. Podem-se identi car
tr^es tipos mais comuns de memoria de exibic~ao: os do tipo bitmap que utilizam 1 bit por
pixel, sendo portanto monocromaticos com apenas dois nveis (preto e branco) ( g. 3.9 (a));
os do tipo cor falsa (\pseudo-color") que utilizam de 2 a 12 bits para cada pixel, podendo
reproduzir imagens monocromaticas e tambem imagens coloridas, em geral com auxlio de
uma look-up table ( g. 3.9 (b)); os do tipo cor real (\true color"), que utilizam 24 bits
por pixel, 8 bits para cada uma das componentes das cores primarias R (red), G (green)
e B (blue). Vale ressaltar que mesmo monitores de exibic~ao de vdeo que utilizam cor real
podem possuir uma look-up table cuja nalidade e permitir alterac~oes de cor da imagem

44


CAPITULO 3. DISPOSITIVOS GRAFICOS

de uma forma mais rapida e exvel, alem de permitir que a coorec~ao gama seja feita por
intermedio da look-up table. Nesse caso o esquema correto para os dispositivos de cor real
e como mostrado na gura 3.9 (c).
Frame Buffer

CRT matricial

registrador

DAC
conversor D/A

(a)
Frame Buffer
3
CRT matricial

Canhoes

registradores
1

DAC

BLUE

DAC

GREEN

0
1

DAC

RED

conversores D/A

(b)

Frame Buffer
Look-up Table

CRT matricial

registrador

conversor D/A

DAC

canhao

BLUE

255

(c)
Figura 3.9: Memoria de Exibic~ao.
Nos dispositivos vetoriais, a memoria de exibic~ao contem instruc~oes de desenho com as
coordenadas de tela dos objetos gra cos. Este conjunto de instruc~oes, denominado de lista
de exibic~ao (\display list"), e executado ininterruptamente pela controladora de vdeo para


3.5. EQUIPAMENTOS DE SAIDA GRAFICA

45

manter a imagem visvel na tela.


3.5.2 Dispositivos de Sada Vetorial

Os dispositivos de sada vetorial produzem imagens tracando segmentos de reta descritos


pelas coordenadas de seus pontos iniciais e nais. Nesta categoria de equipamentos est~ao:
o display caligra co, o display de armazenamento, e as tracadoras.
O display caligra co e um dispositivo de exibica~o de vdeo interativo. O sistema de
varredura e aleatorio e o fosforo do monitor e de baixa persist^encia e distribudo de forma contnua sobre a tela, ou seja, o feixe de eletrons se movimenta livremente sobre a
tela e a imagem precisa ser regenerada constantemente. Essas caractersticas permitem a
manipulac~ao dos dados em tempo real ( g. 3.10).

M x,y
D x,y

Display List

Controller

Figura 3.10: Display Caligra co.


O display de armazenamento ou DVST (Direct View Storage Tube) disp~oe de um monitor de vdeo com fosforo de alta persist^encia (cerca de uma hora no maximo). Nesse
equipamento a imagem tracada e mantida na tela atraves de um circuito especial, sem necessidade de regenerac~ao. Uma desvantagem desse tipo de monitor e que partes da imagem
n~ao podem ser modi cadas sem que a imagem inteira seja apagada (o que leva cerca de um
segundo) e redesenhada. Esses monitores t^em uma import^ancia historica em Computaca~o
Gra ca: devido ao baixo custo, pelo fato de n~ao necessitarem de uma memoria de exibica~o,
eles deram incio a grande expans~ao das aplicac~oes da Computaca~o Gra ca nas diversas
areas 3 .
As tracadoras s~ao equipamentos eletromec^anicos para o desenho de linhas sobre papel
ou lme. Esse equipamento e constitudo por um suporte para a super ce de desenho, e
um mecanismo de controle do instrumento de tracado. Quanto ao suporte, as tracadoras
podem ser de mesa ou de tambor. Quanto ao mecanismo de desenho, podem ser do tipo
contnuo ou incremental.
3 A import^ancia desse tipo de display pode ser avaliada pelo seguinte fato. Esse foi o criterio escolhido

pela SIGGRAPH para de nir quem pode pertencer ao grupo dos Pioneiros da Computac~ao Gra ca. A
pessoa deve ter trabalhado na area antes do aparecimento do primeiro display DVST da Tektronix

46


CAPITULO 3. DISPOSITIVOS GRAFICOS

3.5.3 Dispositivos de Sada Matricial

Os dispositivos de sada matricial produzem imagens a partir de uma matriz de intensidades.


Nesta categoria de equipamentos est~ao: o display raster, o painel de plasma, o display de
cristal liqudo, as impressoras de impacto, as impressoras gra cas, e o lm recorder.
O display raster e um dispositivo de exibic~ao de vdeo matricial. Ele consiste em um
monitor, um controlador de vdeo e uma memoria de display que armazena a matriz de imagem. Esse equipamento normalmente disp~oe de uma \look up table" ( g. 3.11). Projetores
de vdeo tambem podem ser utilizados nos displays raster em substituic~ao aos monitores.

Frame Buffer

LUT

Figura 3.11: Display Raster.


O painel de plasma e constitudo por uma matriz de celulas microscopicas de neon.
Ele e um display monocromatico, bitmap de armazenamento, n~ao precisando portanto de
memoria adicional nem de regeneraca~o da imagem.
O display de cristal liqudo e semelhante ao painel de plasma, mas utiliza celulas de
cristal lquido na matriz de imagem. Essa tecnologia tem um grande potencial, por permitir
displays coloridos e monitores com tela plana.
As impressoras de impacto s~ao destinadas principalmente para sada alfa-numerica. Algumas delas, do tipo \dot matrix", t^em capacidade gra ca. Possuem cabecas com um
conjunto que contem de sete a vinte e quatro pinos (7, 9, 18 ou 24) que s~ao impulsionados
contra uma ta impregnada de tinta sobre o papel.
As impressoras gra cas podem utilizar uma tecnica de reproduc~ao a laser, eletrostatica,
termica, ou por jato de tinta. As impressoras laser utilizam um raio de laser para sensibilizar
os pontos que n~ao aparecem na imagem (permanecem brancos), retirando a carga de um
ponto (tornando-o negativo) sobre um cilindro rotativo de sel^enio | que e um material
foto-sensvel | carregado positivamente. Partculas de toner (carregado negativamente)
s~ao atradas para a superfcie do cilindro e, em seguida, transferidas para o papel ( g. 3.12).
As impressoras eletrostaticas carregam negativamente os pontos do papel | por meio de
um pente com contatos eletricos | que devem receber tinta. E utilizado um toner carregado
positivamente. As impressoras termicas transferem seletivamente pigmentos de tinta para
o papel por calor. As impressoras da jato de tinta possuem uma cabeca de impress~ao que
lanca gotculas de tinta no papel por meio de pequenos jatos. As impressoras gra cas podem
ser monocromaticas ou coloridas.

47

~

3.6. ESTAC
 OES
GRAFICAS
INTERATIVAS

Laser
espelho
lente

cilindro de
selenium
(-)

papel

fuser

+
toner (-)

Figura 3.12: Impressora a Laser.


O \ lm recorder" registra em pelcula fotogra ca imagens geradas por computador. Para
reproduzir a cor, o lme e exposto tr^es vezes, atraves de ltros, para as componentes de cor
azul, verde e vermelha.

3.6 Estac~oes Gra cas Interativas


As estac~oes gra cas combinam dispositivos gra cos de entrada, sada e processamento em
um sistema destinado ao uso interativo. Nesta seca~o descrevem-se os tipos mais comuns de
estac~oes gra cas, que podem ser classi cadas em estac~oes caligra cas e estac~oes matriciais.
Estas, por sua vez, se divididem em estac~oes de baixa e alta performance. Alem destas,
existem estac~oes com uma arquitetura dedicada para aplicac~oes espec cas, tais como o
processamento de imagens em tempo real e a visualizac~ao de dados volumetricos.
As estaco~es caligra cas s~ao constitudas por um monitor de exibic~ao de vdeo do tipo
caligra co, um processador de display e varios dispositivos de entrada, tais como teclado,
mesa digitalizadora e dials. Um exemplo classico desse tipo de equipamento s~ao as estaco~es
da serie PS-300 produzidas pela Evans & Sutherland ( g. 3.13).

HOST

Graphics
Processor

Display
Processing
Unit

Monitor
Keyboard
Tablet
Dials

Figura 3.13: Estac~ao Caligra ca.


As estac~oes gra cas de baixa performance integram um computador de uso geral com um

48


CAPITULO 3. DISPOSITIVOS GRAFICOS

display bitmap, teclado e mouse. Opcionalmente, o display pode incorporar um processador


gra co para operac~oes com imagens do tipo BitBlt (Bit Block Transfer). Um exemplo
desse tipo de equipamento s~ao as estac~oes mais simples da linha \SPARCstation" da Sun
Microsystems e da linha RS-6000 da IBM ( g. 3.14).
Keyboard
Mouse

CPU
+
Memory

FrameBuffer
+
BitBlt

Monitor

Figura 3.14: Estac~ao Bitmap.


As estac~oes gra cas coloridas de alta performance conhecidas como \super-workstations"
s~ao os equipamentos interativos de tecnologia mais moderna. Elas s~ao compostas por um
display raster colorido, processadores gra cos organizados de forma sequencial ou em paralelo, alem de diversos dispositivos de entrada como teclado, mouse e dials ( g. 3.15).
Exemplos desse tipo de equipamento s~ao as estaco~es gra cas IRIS da Silicon Graphics e
a DN-10000 da HP/Apolo. A estac~ao IRIS se utiliza de uma CPU com processamento
paralelo, e de um processador gra co com processamento vetorial e paralelo; A DN10000
se utiliza de processamento paralelo na CPU que e utilizada, tambem, para fazer operac~oes
gra cas.

Keyboard
Tablet
Etc

CPU
+
Memory

Pipeline

Frame
Buffer

Monitor

Parallel
Proc

Figura 3.15: Estac~ao Gra ca de Alta Performance.


Entre as estac~oes gra cas do tipo bitmap com baixa performance, e as super-workstations,
existe toda uma faixa intermediaria de estac~oes gra cas variando a capacidade de processamento da CPU e do processador gra co.

3.7 Exerccios
3.1 Explique a diferenca entre os formatos gra cos vetorial e matricial.
3.2 Discuta o problema da convers~ao de dados gra cos. D^e exemplos praticos de aplicac~oes.

3.7. EXERCICIOS

49

3.3 Explique o funcionamento de um CRT. Em seguida, particularize a sua explicac~ao


para:
a) Dispositivo caligra co;
b) Dispositivo raster;
c) Dispositivo de armazenamento (storage tube);
d) Destes, quais s~ao os dispositivo chamados de rand^omicos? Por que?
e) Qual o formato dos dados de cada um?
f) Classi que-os a partir do criterio funcional e quanto ao modo de utilizaca~o.
g) Explique por que os primeiros monitores de vdeo matriciais utilizavam varredura entrelacada e por que este tipo de varredura n~ao produz icker.

3.4 Descubra a resoluc~ao espacial e de cor das placas CGA, EGA, VGA, SuperVGA e
de uma impressora matricial padr~ao Epson. Elas possuem look-up table? Com quantas
entradas? Qual o universo (tamanho da palete) de cor?
3.5 Liste a funcionalidade basica de um subsistema gra co 2D e 3D.

50


CAPITULO 3. DISPOSITIVOS GRAFICOS

Cap
tulo 4

Imagem
A imagem digital e a materializac~ao de grande parte dos processos de Computac~ao Gra ca,
servindo como elo de ligac~ao entre o usuario e esses processos, evidenciando, desta forma,
os seus resultados. E valido a rmar-se que a imagem esta presente em todas as areas da
Computac~ao Gra ca, seja como produto nal, como no caso da visualizac~ao, ou como parte
essencial do processo de interac~ao, no caso da Modelagem. Por este motivo, e de fundamental import^ancia a perfeita compreens~ao do signi cado da imagem nos diversos contextos.
Neste captulo vai-se desenvolver uma conceitualizac~ao da imagem digital, apresentando-se
modelos abstratos para uma imagem e diversas formas de representac~ao. Aqui, mais uma
vez, o paradigma dos quatro universos e bastante apropriado para obter-se um perfeito
entendimento dos diversos modelos de imagem que v~ao-se estudar ( g. 4.1).

Imagem

Modelo
Continuo

Representacao
Matricial

Imagem
Digital

Figura 4.1: Modelo Conceitual.

4.1 Modelo de Imagem


Uma imagem e o resultado de estmulos luminosos associados a um suporte bidimensional
que corresponde a superfcie (curva) da retina do olho humano. Essa e a forma de percepca~o
do universo fsico no qual habitamos atraves da vis~ao, um sentido que processa imagens,
sejam elas o resultado de um processo intermediado, como por exemplo uma fotogra a, ou
o resultado de um processo de projeca~o do mundo tridimensional diretamente na retina.
Para representar e manipular imagens no computador, devem-se de nir modelos matematicos adequados a esses objetivos. Uma imagem pode ser de nida como uma aplicaca~o
 : U  <2 !   <3
51

52

CAPITULO 4. IMAGEM

de um subconjunto do plano (um ret^angulo, na pratica) em um espaco de cor. Com um


espaco de cor de dimens~ao 1, o gra co da func~ao imagem e o conjunto dos pontos do R3
dado abaixo:
G() = f(x; y; z ); (x; y) 2 U; z = (x; y)g
Esta de nica~o, embora pareca um tanto abstrata, capta com precis~ao a noca~o de que uma
imagem e de nida pelas cores dos seus pontos. O espaco de cor e identi cado com o <3 se
for usado um espaco perceptual de cor de dimens~ao 3. Assim, cada ponto da imagem tem
a sua cor de nida por uma tripla de numeros reais.
Uma fotogra a e um exemplo de uma imagem contnua, no sentido de que assume valores em todos os pontos do domnio1. Um problema no armazenamento da imagem no
computador e que ela possui um numero in nito de pontos. Novamente, deve-se obter uma
representac~ao nita por um processo de discretizac~ao.

4.2 Discretizac~ao
O processo de discretizaca~o produz uma imagem discreta, a partir de um numero nito
de amostras colhidas da imagem contnua. Isto signi ca que a func~ao  e amostrada num
subconjunto discreto U 0  U :
U = [a; b]  [c; d] = f(x; y) 2 <2 ; x 2 [a; b]; y 2 [c; d]g;
U 0 = f(x ; y ) 2 U ; x = ix; y = j y; i; j 2 Z; x; y 2 <:g
Para codi car uma imagem, em geral, discretiza-se, tambem, o espaco de cor, para que
a informaca~o de cor possa ser armazenada com um numero nito de bits. A discretizac~ao
do espaco de cor e chamada de quantizaca~o. A rigor, quando se trabalha com numeros em
ponto utuante, signi ca que ja foi feita uma quantizac~ao, no entanto, ignora-se esse fato.
Uma imagem digital e uma imagem discretizada no domnio espacial e no espaco de cor
( g. 4.2).
i

4.3 Representac~ao Matricial


Uma imagem digital pode utilizar a representaca~o matricial. Considerando que o domnio
espacial de uma imagem e um ret^angulo, pode-se xar um par de eixos ortogonais, paralelos
aos lados do ret^angulo. Cada um desses eixos e particionado uniformemente em celulas de
comprimento x e y, respectivamente. Ao se fazer o produto cartesiano das celulas
correspondentes, obtem-se um reticulado. Cada celula (i; j ) deste reticulado e chamada de
pixel ( g. 4.3). A representac~ao matricial utiliza uma matriz A  , onde m e a resoluc~ao
vertical e n a resoluca~o horizontal da imagem.
O produto m  n do numero de pixels em cada dimens~ao da imagem e chamado de
resoluc~ao espacial da imagem. A densidade de resoluc~ao e o numero de pixels por unidade
de comprimento e a resoluc~ao de cor e o numero de bits usados para armazenar uma
componente de cor do pixel. Com m bits e possvel codi car 23 cores.
m

1 Isto n~ao quer dizer que a func~ao  e contnua. Em geral, ela n~ao e.

~ PARA IMAGEM DIGITAL


4.4. CLASSIFICAC
 AO

53

Imagem Continua

discretizacao

reconstrucao

Imagem Discreta

quantizacao

decodificacao

Imagem Digital (codificada)

Figura 4.2: Imagem Digital.

4.4 Classi cac~ao para Imagem Digital


Uma imagem digital pode ser classi cada de acordo com o seu espaco de cor. Chama-se
gamute ao conjunto das cores do espaco quantizado de cor da imagem. Quanto a dimens~ao
do espaco de cor, a imagem pode ser monocromatica ou colorida.
Uma imagem monocromatica possui um espaco de cor de dimens~ao 1 e pode ser classi cada como:
 bitmap ou dois tons (gamute de duas cores): lumin^ancia maxima e lumin^ancia mnima;
 gray scale: mais de dois tons (intensidade variavel).

(i,j)

n
p
o
n
t
o
s

dy

dx

i
m pontos

Figura 4.3: Modelo Matricial de Imagem.


Uma imagem colorida possui um espaco de cor com dimens~ao maior do que 1 e pode ser
classi cada como:

54

CAPITULO 4. IMAGEM

 pseudo-cor: o gamute do dispositivo e menor do que o numero de pixels;


 cor real (true color): numero de pixels e igual a 23 (resoluca~o de cor de pelo menos 8
m

bits, para efeitos praticos).

4.5 Quantizac~ao
A quantizaca~o tem dois propositos principais: permitir que a imagem digital seja exibida
em um dispositivo com uma resoluc~ao de cor menor ou ent~ao servir como uma forma de
compactaca~o da imagem.
O processo de quantizac~ao costuma fazer surgir contornos de quantizac~ao, que marcam a
transic~ao de um nvel para outro. Em imagens monocromaticas, o numero mnimo de tons,
para obter-se um gradiente de cor razoavel, e 64 (6 bits). O ideal, para evitar o surgimento de
contornos de quantizac~ao, s~ao 256 (8 bits) tons. No entanto, existem aplicac~oes importantes,
por exemplo impress~ao em papel, onde e necessario fazer a quantizac~ao para 1 bit, ou duas
cores { preto e branco.
Uma fotogra a pode ser digitalizada por um scanner gerando uma representac~ao matricial, na qual a cor de cada ponto pode ser armazenada em 8 bits, por exemplo. No processo
de impress~ao desta imagem digital, uma impressora laser faz a quantizac~ao para 1 bit. E
claro que a intenc~ao n~ao e obter uma imagem chapada em dois tons. Para que a imagem
seja visualmente aceitavel empregam-se os algoritmos de dithering.
 Fotogra a!Scanner!Impressora Laser.
 Imagem!quantizaca~o!dithering!exibic~ao.
Formalizando, a quantizac~ao para m bits
q : S1 ! S2; S2  S1;
 : U !  ) 0 : U !  0 ; 0 (x; y) = q((x; y))
e uma transformac~ao sobrejetiva que para toda cor c 2 S 1 , representada com n bits, associa
q(c) 2 S 2 representada por m bits, m < n.
Logicamente, a quantizac~ao e um processo de partic~ao do espaco de cor. Cada celula
da partic~ao e chamada de celula de quantizac~ao. Todas as cores contidas em uma celula
de quantizac~ao s~ao mapeadas em uma certa cor chamada de nvel (valor) de quantizac~ao.
Dada uma celula de quantizaca~o % , com nvel de quantizac~ao c , ent~ao para toda cor c 2 % ,
d(c; c ) e o seu erro de quantizac~ao ( g. 4.4).
i

Um algoritmo de quantizac~ao deve selecionar as celulas de quantizac~ao e, para cada


celula, achar o nvel de quantizac~ao correspondente. Matematicamente, e uma quest~ao de
minimizaca~o do erro de quantizaca~o. O problema e que deve ser utilizada uma metrica
perceptual. Os metodos de quantizac~ao podem ser classi cados em:
 metodos uniformes (as celulas de quantizaca~o s~ao congruentes);

55

~
4.5. QUANTIZAC
 AO

Niveis de Quantizacao

c1
c2
c3
c4
S

S1

Celulas de Quantizacao
m
(2 conjuntos)

Figura 4.4: Celulas de Quantizac~ao.


 metodos adaptativos (levam em conta a distribuic~ao das cores na imagem).

Neste texto, v~ao-se considerar dois algoritmos de quantizaca~o: o algoritmo por populosidade e o algoritmo do corte mediano.
4.5.1 O Algoritmo de Populosidade

O algoritmo por populosidade baseia-se no histograma de frequ^encia das cores na imagem.


No eixo das abcissas est~ao as cores e no eixo das ordenadas e indicado quantos pixels
possuem aquela cor ( g. 4.5). Dado o numero de nveis de quantizac~ao, s~ao escolhidas
as cores mais frequentes. As celulas de quantizac~ao s~ao determinadas, ent~ao, a partir de
alguma metrica. Se for utilizada a metrica Euclideana, as celulas podem ser determinadas
com a construc~ao do diagrama de Voronoi.
Uma observac~ao importante e que o algoritmo de populosiade ignora completamente as
cores com baixa populosidade.
Frequencia

f1
f2
f3

c1

c2

cn

Cor

Figura 4.5: Histograma de Frequ^encia.

56

CAPITULO 4. IMAGEM

4.5.2 O Algoritmo do Corte Mediano

O algoritmo do corte mediano, criado por Paul Heckbert em 1982, determina, em primeiro
lugar, as celulas de quantizac~ao. O objetivo do algoritmo e que cada celula de quantizac~ao
possua mais ou menos o mesmo numero de cores da imagem.
O primeiro passo e determinar o menor ret^angulo no espaco de cor (bounding box) que
engloba todas as cores da imagem. Em seguida ele ordena as cores usando como chave
a componente (r; g ou b) que corresponde ao eixo coordenado paralelo a maior dimens~ao
do ret^angulo. Por m ele calcula a mediana deste conjunto ordenado levando em conta
o histograma de frequ^encia das cores. Por de nic~ao a mediana de um conjunto ordenado
" = f1  2  :::   1   g e:
;
 n impar: ( n+1
2 )
 n par: (( n2 ) + ( n2 +1) )=2.
Feito isto, corta-se o ret^angulo por um plano que contem a mediana do conjunto de
cores e e perpendicular ao eixo coordenado escolhido. Este processo e repetido ent~ao,
recursivamente, para cada sub-ret^angulo resultante, ate que se atinja o numero de celulas
de quantizac~ao desejado.
Os nveis de quantizac~ao podem ser escolhidos, por exemplo, tomando-se a media das
cores de cada celula de quantizac~ao. O algoritmo do corte mediano e o melhor algoritmo
de quantizaca~o para 8 bits conhecido. A implementac~ao e ciente do algoritmo necessita de
uma estrutura de dados espaciais adequada ao processo de subdivis~ao recursiva do espaco.
n

4.6 Dithering
Dithering e um processo de ltragem para minimizar a percepc~ao dos contornos de quantizac~ao. Em certos casos, mesmo utilizando-se bons algoritmos de quantizaca~o ca difcil
n~ao perceber os contornos de quantizaca~o, por exemplo, na quantizac~ao para dois nveis.
Em geral, quando se faz uma quantizac~ao comete-se um erro. Os contornos de quantizac~ao surgem devido a forte correlac~ao entre a cor de um pixel e a cor dos seus vizinhos.
Geometricamente trata-se de uma curva conexa, o que acarreta que a passagem entre os
diferentes nveis de quantizac~ao seja perceptvel.
O objetivo de um algoritmo de dithering e descorrelacionar o erro de quantizac~ao. O
erro torna-se crtico quando a quantizac~ao e para 1 bit apenas. Neste caso, existem somente
duas celulas de quantizaca~o, que correspondem a dois nveis de quantizac~ao, conforme pode
ser visto na gura 4.6.
4.6.1 Por que Funciona?

O sistema visual humano integra (soma) os estmulos luminosos recebidos dentro de um


certo a^ngulo solido. Assim e possvel perceberem-se intensidades que n~ao existem individualmente. Na realidade, o que e importante e o meio tom em uma regi~ao e n~ao os tons dos
pixels individualmente.

57

4.6. DITHERING

c1
C1
c2
C2

Figura 4.6: Quantizac~ao de 1 bit.


O a^ngulo de vis~ao humano e de 150 na horizontal e 120 na vertical e a acuidade mnima
e de 1=60 = 10 . A percepc~ao de detalhes depende ent~ao de tr^es fatores:
 dist^ancia da imagem ao olho;
 densidade de resoluca~o da imagem;
 abertura do olho.
4.6.2 Classi cac~ao dos Algoritmos

Os algoritmos de meio tom para industria gra ca datam do incio do seculo. O metodo
utiliza um processo fotogra co tradicional. A imagem e refotografada com uma retcula
sobreposta. Regi~oes de alta lumin^ancia (claras) geram pontos pequenos enquanto regi~oes
de baixa lumin^ancia (escuras) geram pontos grandes que se superp~oem.
Os algoritmos de dithering devem preservar as altas frequ^encias, que correspondem aos
contornos das areas de interesse, e substituir as baixas frequ^encias, que correspondem as
texturas presentes no interior das areas, por outras perceptualmente equivalentes.
A classi caca~o dos algoritmos e feita utilizando padr~oes produzidos em areas de intensidade constante. De acordo com a regularidade dos padr~oes, estes podem ser periodicos ou
aperiodicos e de acordo com a estrutura podem estar aglomerados ou dispersos.
 periodicos: processos determinsticos que usam grades de amostras regulares.
 aperiodicos: minimizam o erro distribuindo-o globalmente.
 dispersos: criam os tons de cinza com pontos individuais uniformemente distribudos
(indicado para dispositivos com controle preciso, ex. monitores de vdeo).
 aglomerados: concentram os pontos em pequenos grupos de mesmo valor (indicado
para dispositivos sem controle preciso, ex. impressoras).
4.6.3 Dithering com Modulac~ao Aleatoria

O algoritmo de dithering com modulac~ao aleatoria aplica uma pequena perturbac~ao aleatoria, uniformemente distribuda no intervalo das intensidades, ao valor de uma cor c antes
de quantiza-la:

58

CAPITULO 4. IMAGEM

q(c) = (c + random()) 2 C1 ? c1 : c2 :

Este processo simples descorrelaciona a intensidade do pixel da intensidade dos pixels


vizinhos. Este foi o primeiro algoritmo de dithering criado e e o mais simples. No entanto,
ele introduz um rudo aleatorio (pontos brancos) na imagem. Porem, este algoritmo pode
ser efetivo se for utilizado junto com algoritmos de quantizac~ao para mais de 1 bit.
4.6.4 Dithering Periodico Ordenado

O algoritmo de dithering ordenado utiliza uma pertubac~ao aleatoria de media nula, dada
sob a forma de uma matriz quadrada D  de numeros pseudo-aleatorios:
Q(k; l) = (f (k; l) > D(i; j )); i = k%n; j = l%n:
Esta matriz funciona como um ltro2 de passa baixa.
n

4.6.5 Dithering Ordenado com Aglomerac~ao de Pontos

O dithering ordenado com aglomerac~ao de pontos simula o metodo fotogra co tradicional.


O primeiro passo e normalizar as intensidades da imagem para o intervalo dos nveis de
quantizac~ao. Considere-se o padr~ao da gura 4.7. Neste exemplo a primeira coluna e
linha est~ao repetidas e a matriz e 6  6, o que da um total de 37 nveis (0 a 36). Assim
int = 36  int=int e a intensidade media e 18.5.
Numa imagem com intensidade constante igual a 18.5, a entrada com o valor 18, por
exemplo, gera branco na imagem ltrada porque 18:5 > 18.
n

max

35

30

18

22

31

36

35

29

15

10

17

21

32

29

14

16

20

14

13

11

19

13

28

24

25

28

34

27

12

23

26

33

34

35

30

18

22

31

36

35

Figura 4.7: Matriz de Dithering Ordenado por Aglomerac~ao.


2 Um operador unario que recebe um sinal na entrada e produz um outro sinal na sada.

59

4.6. DITHERING

Apos processar a imagem pelo ltro acima, a imagem resultante apresenta a repetic~ao
do padr~ao da gura 4.7:
 intensidade constante acima da media (+clara) : regi~ao clara (branco) e aumentada.
 intensidade constante abaixo da media (+escura): regi~ao clara (branco) e diminuda.
 intensidade variavel: area do aglomerado varia.
4.6.6 Dithering Ordenado com Dispers~ao Pontual

O algoritmo de dithering ordenado com dispers~ao reduz a resoluc~ao espacial da imagem


para aumentar arti cialmente a sua resoluc~ao de cor. A imagem e particionada em celulas
quadradas congruentes. As celulas s~ao percorridas ordenadamente e e tirada uma media das
intensidades de cada celula de pixels. Esta media endereca uma tabela de matrizes (cada
matriz possui a mesma dimens~ao da celula). Se o i-esimo elemento da matriz vale 1, o pixel
correspondente da imagem reduzida e aceso, caso contrario ele e apagado. Cada uma dessas
matrizes possui um arranjo de 0's e 1's que faz com que o sistema visual humano integre as
intensidades da celula, de forma que e percebida uma unica intensidade. Bayer criou uma
famlia de matrizes que podem ser geradas iterativamente dada a sua dimens~ao.
A gura 4.8 mostra a matriz de Bayer de ordem 2. Neste caso ha 5 nveis de intensidade.
Apos a normalizac~ao das intensidades da imagem para o intervalo 0 5, uma intensidade
de 2.4, por exemplo, e mapeada para a matriz de ndice 2.

0)

1)

2)

3)

4)

Figura 4.8: Distribuica~o das Intensidades com Dithering de Bayer de Ordem 2.


Para a reproduca~o de imagens com alta qualidade, a dimens~ao da matriz de dithering
(com aglomerac~ao ou dispers~ao, tanto faz) deve estar entre 8 e 10, ou seja, gerando entre 65
e 101 nveis respectivamente. A densidade de celulas de dithering e chamada de frequ^encia
de tela. Valores de frequ^encia de tela entre 120 e 150 linhas (celulas) por polegada produzem

60

CAPITULO 4. IMAGEM

bons resultados. Isto signi ca que o dispositivo de exibic~ao deve ter uma resoluc~ao entre
150  8 = 1200 dpi3 e 150  10 = 1500 dpi.
4.6.7 Algoritmo de Dithering Aperiodico

O algoritmo de Floyd-Steinberg procura dispersar o erro de quantizaca~o, ocorrido em um


pixel, para os pixels vizinhos ( g. 4.9).
Q(i,j)
erro
f(i+1,j)
f(i,j+1)
f(i+1,j+1)

=
=
+=
+=
+=

(f(i,j)>0.5);
Q(i,j) - f(i,j);
erro*3/8;
erro*3/8;
erro*1/4;

Como consequ^encia do modo com que o erro e propagado, surge um contorno de quantizac~ao
que se propaga na direc~ao da diagonal da imagem.

(i,j)

(i+1,j)

(i,j+1)

(i+1,j+1)

Figura 4.9: Algoritmo de Floyd-Steinberg.


Em geral, os algoritmos de dithering eliminam as altas frequ^encias presentes na imagem,
como consequ^encia do descorrelacionamento do erro. Este problema pode ser atenuado,
usando-se um ltro de passa alta, para realcar as altas frequ^encias, antes de empregar-se o
algoritmo de dithering4.

4.7 Codi cac~ao de Imagem


A codi caca~o e o terceiro nvel de abstrac~ao de uma imagem, conforme o modelo conceitual apresentado no incio deste captulo ( g. 4.1). Na codi cac~ao a representac~ao discreta
da imagem e quantizada e a imagem digital resultante e transformada em um conjunto de
smbolos organizados segundo uma estrutura de dados. A codi cac~ao pode ser feita utilizando um numero de bits constante para codi car cada parte da imagem, sendo chamada neste
caso de codi cac~ao uniforme, ou pode se valer da probabiliade de ocorr^encia dos diferentes
3 Dots per inch.
4 A traduc~ao de dithering seria exitac~ao.

4.8. EXERCICIOS

61

nveis de quantizac~ao e utilizar um numero de bits variavel de acordo com a distribuic~ao de


probalidade de ocorr^encia destes nveis. Neste caso, a codi cac~ao e dita adaptativa.
Para se conseguir uma reduca~o no espaco necessario ao armazenamento de uma imagem,
costumam-se utilizar metodos de compress~ao de imagens. Isto e possvel porque as imagens
tendem a apresentar um alto grau de coer^encia, que se traduz em uma redund^ancia de
informaca~o quando codi cada. Existem metodos de compress~ao reversveis e irreversveis,
dependendo da possibilidade de recuperac~ao exata da imagem ou n~ao (com ou sem perda de
informaca~o). Quando utilizar um ou outro metodo ira depender da natureza da aplicac~ao,
que pode ser objetiva ou subjetiva.
Os metodos de compress~ao podem ser classi cados em metodos espaciais, por transformada ou por modelo. Os metodos espaciais utilizam diretamente a representac~ao espacial
da imagem para fazer a compress~ao, por exemplo, o metodo conhecido como Run-length
Encoding.
Nos metodos por transformada, a compress~ao e feita com base em uma representac~ao
n~ao espacial da imagem (por exemplo, representac~ao espectral). Como exemplos citam-se
os metodos baseados em transformadas de Fourier, Cosseno ou de Hadamard.
Nos metodos de compress~ao por modelo utiliza-se um modelo da imagem para obter-se
a compress~ao. Como exemplo, cita-se a compress~ao por fractais.
Existem, na pratica, diversos padr~oes (a maioria padr~oes de fato) para armazenamento
de imagens. Cada padr~ao costuma utilizar algum metodo de compress~ao, alguns suportam
true-color, outros s~ao mais adequados ao armazenamento de sequ^encias animadas, etc. Os
mais famosos s~ao os padr~oes GIF (Graphics Interface Format), TIFF (Tagged Image File
Format), JPEG (Joint Photograph Expert Group), MPEG (Motion Photograph Expert
Group), SUN-raster le, Encapsulated PostScript.

4.8 Exerccios
4.1 De na e explique a correc~ao gama.
4.2 De na quantizac~ao de uma imagem.
4.3 Discuta o problema de um sistema de cor para armazenamento de imagens.
4.4 Considere o algoritmo de populosidade para quantizac~ao de cor.
a) Qual o procedimento de ordenac~ao mais adequado ao algoritmo?
b) Em que condic~oes o algoritmo apresenta resultados insatisfatorios?
c) Escreva um pseudo-codigo para o algoritmo.
d) Faca uma analise da complexidade do algoritmo.

4.5 O metodo de quantizac~ao por subdivis~ao do espaco obtem as celulas de quantizaca~o


pelo particionamento recursivo do volume de cor. Em cada iterac~ao, este e dividido em dois
sub-volumes por um hiperplano ortogonal a uma das direc~oes principais do espaco.

62

CAPITULO 4. IMAGEM

a) Qual o criterio utilizado pelo algoritmo do corte mediano para escolher a direc~ao e o
ponto de subdivis~ao?
b) Qual a raz~ao desta escolha?
c) Sugira um outro criterio de subdivis~ao.

4.6 Considere o conjunto de cores, e a tabela de frequ^encia dessas cores numa imagem
digital, mostrado na gura 4.10. Obtenha a quantizaca~o da imagem para quatro nveis.
a) Determine a func~ao de quantizaca~o para o algoritmo de populosidade.
b) Esboce as celulas de quantizac~ao pelo algoritmo do corte mediano.

C6
Cor
C1
C2
C3
C4
C5

C5
C7

C4
C3
C2

C8
C9

C6
C7
C8
C9

Freq
2
3
2
1
2
1
1
1
2

C1

Figura 4.10: Conjunto de Cores e Tabela de Frequ^encia.


4.7 Considere-se a imagem de uma esfera metalica com a re ex~ao especular de uma fonte
de luz pontual (\highlight").
a) O que pode ocorrer com esse highlight se for feita uma quantizac~ao da imagem por
populosidade.
b) Que modi cac~ao pode ser feita no algoritmo de populosidade para minimizar o problema
levantado no item anterior?

4.8 Como transformar uma imagem digital colorida em uma imagem em preto e branco
(ou seja, \descolorizar" a imagem)?

63

4.8. EXERCICIOS

4.9 Como pode ser de nido o mapa de cor de uma look-up table de modo a mostrar o
negativo de uma imagem em gray-scale?
4.10 Considere-se um dispositivo raster com 4 bits por pixel e uma LUT(look-up table) com
12 bits por entrada (4 bits para R, G e B). Suponha-se que os quatro planos de memoria s~ao
particionados para armazenar duas imagens: imagem A nos dois planos de mais alta ordem
e imagem B nos dois planos de mais baixa ordem. Sabendo-se que as atribuico~es de cor para
os 2 bits dos valores dos pixels de cada imagem s~ao: 00 = R; 01 = G; 10 = B e 11 = W:
a) Mostre como carregar a LUT para que somente a imagem A seja exibida.
b) Mostre como caregar a LUT para que somente a imagem B seja exibida.

4.11 Dadas uma LUT com 16 entradas  12 bits e imagens com 2 bits por pixel, mostre
como a tabela deve ser carregada para produzir uma fus~ao entre duas imagens A e B ,
correspondendo a express~ao, A  t + B  (1 t), para valores de t = 0:0; 0:25; 0:5; 1:0. As
atribuico~es de cor s~ao as mesmas do item anterior.
4.12 Um dos problemas de uma imagem digital e o erro de quantizaca~o.
a) De na \dithering" e explique o seu objetivo frente ao problema apontado.
b) Escreva o pseudo-codigo do algoritmo de dithering de oyd-steinberg.
c) Escreva o pseudo-codigo de um algoritmo de dithering ordenado.
d) Que tipos de dispositivo s~ao adequados ao uso de um algoritmo de dithering com dispers~ao pontual?
e) Que tipos de dispositivo s~ao adequados ao uso de um algoritmo de dithering com aglomerac~ao de pontos?

4.13 Considere-se o algoritmo de run-length encoding que codi ca imagens usando o seguinte formato:
m; n; L1 I1 ; L2 I2 ; :::; L I ;
onde m e n s~ao numeros inteiros de 32 bits e especi cam a resoluc~ao da imagem; os pares
(L I ); j = 1; :::; k s~ao numeros de 8 bits e indicam respectivamente o comprimento e a
intensidade do j esimo bloco de elementos da imagem com valor de intensidade constante
igual a I .
k

a) Que tipo de imagem produz a menor codi caca~o?


b) Que tipo de imagem produz a maior codi caca~o?
c) Calcule (em bytes) o espaco necessario para armazenar imagens de
correspondendo aos items anteriores, comprimidas pelo algoritmo.

640  480 pixels,

64

CAPITULO 4. IMAGEM

Cap
tulo 5

Geometria
As transformaco~es Geometricas ocupam uma posic~ao de destaque em Computac~ao Gra ca.
Elas permitem o reposicionamento de objetos no espaco, favorecendo o agrupamento desses
objetos e a gerac~ao de famlias de modelos a partir de um modelo basico. Os objetos
geometricos representados por estes modelos podem ser transformados aplicando-se uma
transformac~ao geometrica a um numero nito de pontos, por exemplo, nos vertices de
curvas poligonais ou de polgonos de controle de curvas algebricas por partes.
Espacos

Geometria

Relacoes

Operacoes

Figura 5.1: Modelo Conceitual.


As transformaco~es geometricas que podem ser aplicadas a um objeto s~ao induzidas pelo
tipo de geometria adotado e a pergunta a ser respondida e: qual o tipo de geometria mais
adequado as necessidades da Computac~ao Gra ca?

5.1 Geometria Euclideana


Uma geometria pode ser de nida de forma sintetica, a partir de axiomas e teoremas, ou por
coordenadas, como e feito em A lgebra Linear.
No caso da Geometria Euclideana, por exemplo, pode-se3 constru-la a partir de um
espaco vetorial (<3) munido de produto
interno: < x; y >= =1 x y ; os comprimentos s~ao
p
dados pela norma Euclideana kxk = < x; x >.
Sera que a Geometria Euclideana | com o seu postulado basico que diz que dado um
ponto p e uma reta r existe uma unica reta paralela a r que passa pelo ponto p | e a mais
adequada? Se n~ao, como nega-la? Basicamente existem duas formas: dizer que existe uma
in nidade de retas paralelas (Geometria Hiperbolica) ou dizer que n~ao existe paralelismo
(Geometria Projetiva).
P

65

66

CAPITULO 5. GEOMETRIA

Neste captulo vai ser visto que, embora seja natural de nir os objetos no espaco Euclideano, a geometria projetiva e a mais adequada para a computaca~o gra ca, pois estende a
geometria Euclideana com uma serie de vantagens.

5.2 Transformac~oes Lineares


Neste texto, entenda-se por transformac~ao n-dimensional uma aplicaca~o invertvel T : U 
< ! < : Os modelos poligonais e poliedrais s~ao comuns em Computac~ao Gra ca, pois
podem ser exibidos em qualquer dispositivo gra co e, assim, uma classe importante de
transformac~oes e formada por aquelas que preservam estruturas lineares. Estas transformac~oes s~ao conhecidas como transformac~oes lineares em < , ou operadores lineares, e se
caracterizam por transformarem retas em retas e a origem na propria origem.
De nic~ao: Um operador linear e uma transformac~ao T que 8x; y 2 < ;  2 <:
 T (x + y) = T (x) + T (y),
 T (x) = T (x).
Da algebra linear, sabe-se que o conjunto de todos os operadores lineares em < forma
um espaco vetorial de dimens~ao n2. Um resultado importante e que existe um isomor smo
entre a algebra dos operadores lineares em < , determinado por uma base, sobre a algebra
das matrizes quadradas nn. Note-se que qualquer matriz quadrada nn, A, sobre < de ne
um operador linear em < , pela transformaca~o v ! Av (onde v e escrito como um vetor
coluna). E possvel mostrar que a representac~ao matricial deste operador e, justamente, a
matriz A, se for usada a base can^onica do < .
A representac~ao matricial de um operador linear e bastante adequada do ponto de vista
computacional, pois permite que a composic~ao de diversas transformac~oes seja alcancado
atraves do produto de matrizes.
n

5.2.1 Transformac~oes Lineares Bi-dimensionais

Vai-se iniciar o estudo das transformac~oes lineares bi-dimensionais considerando o seu efeito
sobre os pontos do plano. Como foi visto anteriormente, um operador linear bi-dimensional
pode ser representado por uma matriz 2  2. O resultado da multiplicaca~o de um vetor
coluna (x; y) , que contem as coordenadas de um ponto, por uma matriz 2  2 generica
pode ser escrito como:
+ cy = x :
T (X ) = ab dc xy = ax
bx + dy
y
Atribuindo valores aos elementos a; b; c; d, pode-se obter uma relac~ao entre o ponto transformado e o ponto original, conforme mostrado abaixo.
a; d > 0; b = c = 0
! x = ax; y = dy { escalamento das componentes x e y.
a = 1; d = 1; b = c = 0 ! x = x; y = y { re ex~ao em relac~ao ao eixo y.
a = 1; d = 1; b = c = 0 ! x = x; y = y { re ex~ao em relac~ao ao eixo x.
a = d = 1; b = c = 0 ! x = x; y = y { re ex~ao em relac~ao a origem.
T



67

~
5.2. TRANSFORMAC
 OES
LINEARES

a = d = 0; b = c = 1
a = d = 0; b = c = 1
a = d = 1; b = 0
a = d = 1; c = 0

! x = y; y = x { re ex~ao em relaca~o a reta y = x.


! x = y; y = x
{ re ex~ao em relac~ao a reta y = x.
! x = x + cy; y = y { cisalhamento na direc~ao x.
! x = x; y = bx + y { cisalhamento na direc~ao y.

Um objeto geometrico qualquer pode ser transformado por um operador linear, aplicando-se a matriz de transformaca~o a cada um de seus pontos. A area do objeto transformado e
dada pelo produto do determinante da matriz de transformac~ao pela area do objeto original.
Uma mudanca de variavel no < e dada por T : < ! < , onde T e um operador
continuamente diferenciavel. Sendo R  < com fronteira constituda por um numero nito
de conjuntos diferenciaveis e supondo-se que R e sua fronteira est~ao contidos no domnio
de T , e que:
 T e injetiva em R;
 det T 0, o determinante jacobiano de T , e diferente de zero em R;
ent~ao, se a func~ao f e limitada e contnua em T (R) (a imagem de R por T ), tem-se:
(u; v) (u; v) :
fdv = (f:T ) det T 0 dv;
T0 =
(u; v) (u; v)
( )
n

T R

@x

@x

@u
@y

@v
@y

@u

@v

y
T(R)

R
Dominio de T

T(R)

Figura 5.2: Mudanca de Variavel.


Como exemplo, tem-se a conhecida mudanca para coordenadas polares, dada pela transformac~ao abaixo ( g. 5.2):
x = x(u; v) = ucos(v) ; J = cos(v) usin(v) ; det J = u:
y
y(u; v)
usin(v)
sin(v) ucos(v)


68

CAPITULO 5. GEOMETRIA

Se T e uma transformac~ao linear de < em < com matriz A, ent~ao T multiplica volumes
pelo fator jdet Aj :
V (T (R)) =
dv = jJ j dv = jJ j V (R):
( )
Afortunadamente, a transformac~ao de segmentos de reta pode ser obtida apenas pela
transformaca~o das suas extremidades1, existindo uma correspond^encia um a um entre os
pontos do segmento transformado e os pontos do segmento original:
T [p1 p2 ] = T [(1 t)p1 + tp2 ] = (1 t)T [p1 ] + tT [p2 ]:
Um operador linear aplicado a segmentos de reta paralelos sempre produz segmentos
paralelos. Pode ser mostrado que se dois segmentos AB e EF s~ao paralelos com inclinac~ao
m ent~ao os segmentos transformados possuem inclinaca~o m = (b + dm)=(a + cm). Isto
signi ca que paralelogramos s~ao transformados em paralelogramos.
Quando um operador linear e aplicado a um par de segmentos que se interceptam, o
resultado e um par de segmentos que tambem se interceptam. Alem disso, o ponto de
intersec~ao dos segmentos originais e transformado no ponto de intersec~ao dos segmentos
transformados. Entretanto, dois segmentos perpendiculares que se interceptam podem ser
transformados em dois segmentos que se interceptam e n~ao s~ao perpendiculares ou viceversa, ou seja, os ^angulos, em geral, n~ao s~ao preservados. Como vai ser visto adiante, os
^angulos s~ao preservados se a matriz de transformac~ao for ortonormal.
De nic~ao: Uma matriz A; n  n, e ortonormal quando os seus vetores linha (ou coluna)
formam uma base ortonormal, ou seja:
a :a = 0 se i 6= j e a :a = 1; 8i; j 2 [1::n]:
Neste caso, AA = I , uma vez que o elemento (i; j ) e obtido pelo produto da i-esima linha
de A com a j -esima coluna de A , justamente a e a . Segue que A = A 1 tambem e uma
matriz ortonormal.
Alem dos efeitos de escalamento, re ex~ao e cisalhamento, o efeito de rotac~ao de um
objeto, por um ^angulo  ao redor da origem, tambem pode ser obtido por um operador
linear representado por uma matriz da forma:
cos() sin() :
R = sin
() cos()
Claramente, R e uma matriz ortonormal.
n

T R

5.3 Transformaco~es Rgidas


Do estudo dos operadores lineares foi visto que, em geral, um objeto pode ser deformado
pela aplicaca~o de uma transformac~ao generica. Para evitar deformaco~es e necessario que
seja aplicado apenas um tipo particular de transformaca~o, que preserve os ^angulos entre
os segmentos de reta que se interceptam e o comprimento destes segmentos. Utilizando a
noc~ao de produto escalar e vetorial, pode-se mostrar que esta condic~ao e satisfeita quando
os elementos da matriz de transformac~ao satisfazem as seguintes restrico~es:
1 Combinac~oes a m de pontos s~ao invariantes sob transformaco~es a m.

5.4. GEOMETRIA PROJETIVA

69

 a2 + b2 = 1; c2 + d2 = 1;
 ac + bd = 0; ad bc = 1.

Isto signi ca que a matriz de transformac~ao deve ser ortonormal. Os comprimentos e os


^angulos entre segmentos que se interceptam s~ao preservados (ou seja, o produto escalar
ou interno) por transformac~oes de rotac~ao pura. As matrizes de re ex~ao pura possuem
determinante = -1 e, embora o comprimento dos segmentos seja preservado, tecnicamente,
o ^angulo entre os segmentos transformados e 2 . Rotaco~es e re ex~oes pura s~ao chamadas
de transformac~oes rgidas, que s~ao as isometrias de um espaco Euclideano2. Deve-se notar
que os escalamentos uniformes tambem preservam os ^angulos, mas n~ao a magnitude dos
vetores transformados.
Os movimentos rgidos do espaco, juntamente com as transformac~oes lineares de semelhanca3, constituem o grupo de transformaco~es da Geometria Euclideana. Os conceitos
estudados nessa geometria s~ao os de congru^encia e semelhanca. O conjunto das transformac~oes lineares de um espaco vetorial, juntamente com a translac~ao, constituem o grupo
das transformac~oes da Geometria A m do espaco, que estuda as raz~oes e proporc~oes entre
objetos geometricos.

5.4 Geometria Projetiva


Como foi dito anteriormente, a Geometria Projetiva4 e a que se adequa melhor a Computac~ao Gra ca. Intuitivamente, isto pode ser constatado imaginando-se uma fotogra a
de uma estrada sem curvas. Claramente, as linhas que delimitam a estrada se encontram
num ponto distante, na linha do horizonte, conforme pode ser visto na gura 5.3. A transformac~ao fotogra a n~ao pode ser obtida a partir da Geometria A m (translac~oes mais
transformac~oes lineares), uma vez que, neste tipo de geometria, retas paralelas s~ao transformadas em retas paralelas. Como esta aplicac~ao e importante no contexto da Computac~ao
Gra ca, e-se levado na direca~o da Geometria Projetiva, que oferece a soluc~ao por meio da
transformac~ao projetiva chamada de perspectiva.
O modelo sintetico da Geometria Projetiva foi introduzido por Pascal, que criou a noc~ao
de ponto no in nito ou ponto ideal. O conjunto de todos os pontos no in nito forma uma
reta chamada de reta ideal. Aqui, vai-se propor um modelo para a Geometria Projetiva,
para depois adicionarem-se as coordenadas (tanto reais como ideais).
5.5 Transformaco~es Projetivas
Um numero muito grande de transformaco~es pode ser obtido com os operadores lineares bidimensionais, por exemplo, rotac~ao, escalamento, re ex~ao, cisalhamento, etc. Entretanto,
a origem do sistema de coordenadas n~ao e alterada por nenhuma destas transformac~oes,
2 Um espaco vetorial de dimens~ao nita, munido de produto interno.
3 Da forma I ;  2 < e I e a matriz identidade.
4 Introduzida em Computac~ao Gra ca por Roberts em 1966.

70

CAPITULO 5. GEOMETRIA

Linha do Horizonte
Cena Original
Transformacao
nao Linear

Fotografia

Figura 5.3: Transformaca~o Projetiva.


impossibilitanto que o efeito de translac~ao seja representado por um operador linear bidimensional. Alem disso, um paralelogramo n~ao pode ser transformado num quadrilatero
arbitrario por um operador linear. Estes problemas podem ser tratados, de forma uni cada,
com a introduc~ao de coordenadas homog^eneas e o uso da Geometria Projetiva.
De nic~ao: O plano projetivo RP 2 e conjunto das retas do <3 que passam pela origem, a
menos da propria origem. Um ponto no plano projetivo e um conjunto
P = f(x; y; z );  6= 0; (x; y; z ) 6= (0; 0; 0)g:
Este ponto e denotado por P = [x; y; z] em coordenadas homog^eneas.
Considerando o plano z = 1 como sendo o plano a m Euclideano mergulhado no plano
projetivo, ent~ao, qualquer ponto
P

= [x; y; z] 2 RP 2; z =6 0 pode ser escrito como: P =

x y 
; ;1 ;
z z
( = 1=z). Os pontos
z = 1. Tem-se, desta

que representa a interseca~o da reta (x; y; z) com o plano z = 1


[x; y; 0] do plano projetivo n~ao possuem representantes no plano
forma, uma partica~o natural do plano projetivo em dois conjuntos:
RP 2 = f[x; y; 1]g [ f[x; y; 0]g:
Os pontos [x; y; 0] s~ao os pontos ideais do plano projetivo. E interessante veri car que,
nesse modelo, duas retas paralelas l e m no plano a m se interceptam em um ponto ideal,
uma vez que a interseca~o de dois planos, que passam pela origem, contendo l e m, e uma
reta no plano z = 0 (um ponto ideal), conforme pode ser visto na gura 5.4.
Uma reta no plano projetivo e o conjunto dos pontos [x; y; z] que satisfazem a uma
equac~ao linear ax + by + cz = 0: Note-se que, se a equac~ao e satisfeita por um ponto
(x0 ; y0; z0 ) 6= (0; 0; 0), ent~ao, ela tambem e satisfeita por qualquer ponto com coordenadas
homog^eneas (x0; y0 ; z0 ). Isto signi ca que o ponto [x0 ; y0; z0 ] do plano projetivo pertence a
reta. No modelo a m do plano projetivo, a equac~ao da reta projetiva representa um plano
em <3 passando pela origem e, portanto, se esse plano contem o ponto (x0; y0 ; z0 ), ent~ao,
ele tambem contem a reta que passa por esse ponto e pela origem.

71

~
5.5. TRANSFORMAC
 OES
PROJETIVAS

Indica-se por  a aplicaca~o que associa a cada ponto v = (x; y; z) no espaco a m <3, o
ponto [x; y; z] do plano projetivo (isto e, (x; y; z) = [x; y; z] e a reta do espaco Euclideano
de nida pelo vetor v). Essa aplicac~ao e chamada de aplicac~ao quociente.
(x,y,z)
z
RP

ponto projetivo

retas projetivas

(x/z,y/z,1)
Plano Afim

r2

y
x
Reta Ideal
(plano xy)

ponto ideal

~
(intersecao
de r1 e r2)
,

Figura 5.4: Plano Projetivo.


Se T e uma operador linear invertvel do <3, ent~ao T transforma retas em retas e deixa
a origem (0; 0; 0) xa. Desse modo, T de ne naturalmente uma transformac~ao no plano
projetivo. Essa transformac~ao e chamada de transformaca~o projetiva induzida por T e sera
indicada por T . Se [x; y; z] s~ao as coordenadas homog^eneas do ponto P e M e a matriz
3  3 do operador T , ent~ao: T (P ) = M (x; y; z) . Diz-se que M e a matriz da transformaca~o
projetiva T . Utilizando coordenadas homog^eneas, pode-se representar uma transformac~ao
a m bi-dimenional (A(u) = T u + v) por uma matriz 3  3.
A matriz projetiva M , 3  3, generica pode ser dividida, para efeito de estudo, em quatro
partes:
T

B
B
@

a
b

c
d

j
j

m
n

1
C
C
A

Colocando a = d = s = 1 e b = c = p = q = 0, obtem-se a matriz de translac~ao pura:


1 0 m x
x+m
0 1 n y = y+n :
0 0 1 1
1
Com s = 1 e m = n = p = q = 0, obtem-se escala, rotac~ao, re ex~ao e cisalhamento,
produzindo os mesmos efeitos dos operadores lineares bi-dimensionais:
a c 0
x
ax + cy
y = bx + dy :
b d 0
0 0 1 1
1
0

10

A@

10

A@

72

CAPITULO 5. GEOMETRIA

Em ambos os casos, v^e-se que pontos do plano a m s~ao levados em pontos do plano a m e
que pontos ideais s~ao levados em pontos ideais.
Para mostrar o efeito de p; q 6= 0 na terceira linha da matriz, considere-se o seguinte:
X
x
1 0 0 x
x
Y = y = 0 1 0
y =
y
:
Z
z
p q 1
1
px + qy + 1
Agora, um ponto do plano a m, expresso em coordenadas homog^eneas, e levado para um
ponto do espaco tri-dimensional de nido por z = px + qy + 1. Aplicando esta mesma
transformac~ao a um ponto ideal obtem-se:
M (x; y; 0) = (x; y; px + qy) :
Observando as equac~oes acima, v^e-se que n~ao ocorre o efeito de invari^ancia dos casos
anteriores: pontos ideais podem ser transformados em pontos do plano a m e vice-versa.
Geometricamente, se um ponto ideal e transformado em um ponto P0 do plano a m, ent~ao
a famlia de retas paralelas, que se interceptam nesse ponto ideal, s~ao transformadas em
uma famlia de retas incidentes no ponto P0 ( g. 5.5). O ponto P0 e chamado de ponto de
fuga da transformaca~o. Um ponto de fuga correspondendo a uma direca~o paralela a um
dos eixos coordenados e chamado ponto de fuga principal. Como no plano a m existem no
maximo duas direc~oes ortogonais, podem-se ter transformac~oes projetivas com no maximo
dois pontos de fuga principais. Cada um desses pontos de fuga e a imagem do ponto ideal
que corresponde a estas direco~es: [x; 0; 0] e [0; y; 0]. A exist^encia desses pontos de fuga e
controlada pelos elementos p e q, correspondendo as direc~oes x e y, respectivamente.
0

10

A@

z
RP

2
r2
r

Plano Afim

ponto
de fuga

Reta Ideal
(plano xy)

y
transformacao
perspectiva

Figura 5.5: Ponto Ideal Transformado em Ponto Real.


Entretanto, interessa obter o resultado desta transformac~ao nos pontos do plano a m. Isto
e feito considerando a intersec~ao com o plano z = 1:
[x; y; z] =

x y 
; ; 1 ; z = px + qy + 1:
z z

~ DE TRANSFORMAC
~
5.6. COMPOSIC
 AO
 OES
PROJETIVAS BI-DIMENSIONAIS

73

A interseca~o so existe se z 6= 0.


O efeito do elemento s corresponde a um escalamento global. De fato,
X
x
1 0 0 x
x
Y = y = 0 1 0
y = y :
Z
z
0 0 s 1
s
Aqui ocorre uma transformac~ao que n~ao altera os pontos ideais, mas os pontos do plano
a m n~ao cam invariantes. O ponto do plano a m que representa o ponto transformado e
(x=s; y=s; 1). Neste caso, tem-se uma expans~ao ou compress~ao uniforme de todos os pontos
do plano a m.
0

10

A@

5.6 Composic~ao de Transformac~oes Projetivas bi-dimensionais


Uma composica~o de transformac~oes e obtida pre-multiplicando-se as matrizes que representam os operadores correspondentes. Como a multiplicac~ao de matrizes n~ao e uma operac~ao
comutativa, conclui-se que a ordem em que os operadores s~ao aplicados in ui no resultado
nal.
Ate agora, foram consideradas apenas rotaco~es ao redor da origem. Coordenadas homog^eneas prove^em uma maneira de obter uma rotac~ao, em torno de um ponto qualquer,
pela composica~o de transformac~oes. Em geral, uma rotac~ao deste tipo pode ser obtida em
tr^es passos:
 Transladando o objeto e o centro da rotac~ao para a origem.
 Executando a rotaca~o desejada.
 Transladando o resultado de volta ao centro de rotaca~o original.
 [R ] = [T 1 ][R ][T ]
Da mesma forma, uma re ex~ao em relac~ao a uma linha arbitraria e obtida em cinco
passos, a partir da composica~o das transformac~oes correspondentes:
 Transladando a linha e o objeto de maneira a que a linha passe pela origem.
 Rotacionando o objeto e a linha ao redor da origem ate que a linha coincida com um
dos eixos coordenados.
 Re etindo em relac~ao ao eixo coordenado escolhido.
 Aplicando a rotaca~o inversa ao redor da origem.
 Transladando de volta para a localizac~ao original.
 [Rflt ] = [T 1 ][R 1][Rflt ][R][T ]
p

74

CAPITULO 5. GEOMETRIA

5.7 Transformac~oes tri-dimensionais


A capacidade de representar e exibir um objeto tri-dimensional e fundamental para perceber
a forma deste objeto. Alem disso, a capacidade de rodar, transladar e projetar vistas do
objeto e, em muitos casos, fundamental a esta percepc~ao.
Baseado na experi^encia previa do caso bi-dimensional, vai-se introduzir de imediato o
espaco projetivo. De um ponto de vista sintetico, a cada famlia de planos paralelos em <3
associa-se uma reta ideal, que e a intersec~ao dessa famlia. Note-se que a cada famlia de
retas paralelas em cada plano esta associado um ponto ideal nessa reta ideal.
O modelo analtico do espaco projetivo pode ser introduzido de modo semelhante ao
modelo do plano projetivo. Considere-se o espaco <4 = f(x1 ; x2 ; x3; x4 ); x 2 <g e nele
mergulhe-se o espaco <3 como sendo o hiperplano x4 = 1. O espaco RP 3 e o conjunto das
retas
f(x; y; z; w);  6= 0; (x; y; z; w) 6= (0; 0; 0; 0)g de <4; excluda a origem:
A cada ponto P est~ao associadas as suas coordenadas homog^eneas, P = [x; y; z; w], e o
espaco projetivo possui, portanto, uma decomposica~o natural:
RP 3 = f[x; y; z; 1]g [ f[x; y; z; 0]g;
que corresponde exatamente aos pontos do espaco a m e aos pontos ideais no in nito.
As transformac~oes projetivas s~ao introduzidas de maneira analoga. Dado um operador
linear invertvel T : <4 ! <4, sabe-se que T transforma retas em retas e deixa a origem xa.
Assim, T de ne uma transformac~ao T : RP 3 ! RP 3. Se M e a matriz 4  4 do operador
T e P = [x; y; z; w] e um ponto em RP 3 , ent~ao, T (P ) tem coordenadas homog^eneas dadas
por: P  = M (x; y; z; w) .
Para se estudar as transformac~oes projetivas de RP 3, do ponto de vista geometrico,
vai-se dividir a matriz de transformac~ao em quatro partes:
j 3
33
j 
j 1 :
j
13
j 11
A submatriz 3  3 produz uma transformac~ao linear na forma da combinac~ao de um
escalamento, cisalhamento, re ex~ao e rotac~ao. A submatriz 3  1 produz uma translac~ao,
a submatriz 1  3 produz uma transformac~ao perspectiva e a submatriz 1  1 produz um
escalamento global.
A operac~ao de rotaca~o ao redor de um eixo coordenado e obtida apenas com a submatriz
3  3. Por exemplo, rodar um objeto ao redor do eixo x n~ao altera as coordenadas x dos
seus pontos, pois a rotaca~o acontece em planos perpendiculares ao eixo x. Este fato vale
para os outros eixos coordenados. A rotaca~o em cada um desses planos e governada pela
matriz de rotac~ao bi-dimensional. A partir desta matriz, e usando o fato que uma rotaca~o
ao redor do eixo x n~ao altera as coordenadas x, pode-se escrever a matriz 4  4 de rotaca~o,
i

B
B
B
B
B
@

C
C
C
C
C
A

75

~
5.7. TRANSFORMAC
 OES
TRI-DIMENSIONAIS

por um ^angulo , ao redor do eixo x:


1 0
0 0
0 cos() sin() 0 :
0 sin() cos() 0
0 0
0 1
A rotac~ao e positiva (sentido anti-horario) quando se olha para a origem, a partir do lado
positivo do eixo de rotaca~o. Analogamente, a matriz de rotac~ao, por um ^angulo , ao redor
do eixo z e:
cos( ) sin( ) 0 0
sin( ) cos( ) 0 0 :
0
0
1 0
0
0
0 1
Para a rotaca~o, por um ^angulo , ao redor do eixo y a matriz e:
cos() 0 sin() 0
0
1 0 0
sin() 0 cos() 0 :
0
0 0 1
Neste ultimo caso, o sinal dos senos foram trocados para manter a convenc~ao da direc~ao
positiva de rotac~ao.
A rotac~ao ao redor de um eixo arbitrario do espaco e obtida, em coordenadas homog^eneas,
com uma composica~o de transformac~oes (o eixo e especi cado por um ponto (x0 ; y0; z0 ) e
uma direc~ao (c ; c ; c )):
 Transladando o ponto (x0 ; y0; z0 ) para a origem.
 Rotacionando o eixo de rotac~ao de forma a que coincida com o eixo z. Em geral, este
passo envolve duas rotac~oes; uma em torno do eixo x e a outra em torno do eixo y.
 Rotacionando em torno de z pelo ^angulo desejado.
 Rotacionando pelo inverso das rotac~oes aplicadas ao eixo de rotac~ao.
 Transladando de volta ao ponto (x0 ; y0; z0 ).
 [R ] = [T 1 ][R 1][R 1 ][R ][R ][R ][T ]
Algumas orientaco~es de um objeto tri-dimensional n~ao podem ser obtidas usando rotaco~es
puras; elas requerem re ex~oes. Em 3D, uma re ex~ao ocorre em relaca~o a um plano. Uma
re ex~ao em relac~ao ao plano xy altera somente as coordenadas z (seus sinais s~ao trocados).
A matriz de re ex~ao e id^entica a matriz identidade, a menos do elemento (3,3), que e
negativo. O mesmo vale para os planos xz e yz, onde o elemento negativo e o elemento
(2,2) e (1,1), respectivamente.
Uma re ex~ao em relac~ao a um plano arbitrario, tambem pode ser obtida, em coordenadas
homog^eneas, por uma composic~ao de transformac~oes. Os passos necessarios s~ao:
 Transladar um ponto qualquer do plano de re ex~ao para a origem.
x

B
B
@

C
C
A

B
B
@

C
C
A

B
B
@

C
C
A

76

CAPITULO 5. GEOMETRIA

 Rodar o vetor normal ao plano de re ex~ao, em relaca~o a origem, ate que coincida com

o eixo z. Tambem envolve, tipicamente, duas rotac~oes; uma em relaca~o a x e a outra


em relac~ao a y.

 Re etir o objeto em relac~ao ao plano z = 0.


 Executar as transformac~oes inversas daquelas aplicadas ao plano de re ex~ao.
 [Rflt ] = [T 1][R 1 ][R 1][Rflt ][R ][R ][T ]
p

5.8 Transformac~ao Perspectiva


Chama-se de transformaca~o perspectiva a uma transformac~ao projetiva cuja imagem de
algum ponto ideal P0 e um ponto P do espaco a m. Neste caso, as retas paralelas na
direc~ao do ponto P0 s~ao transformadas em retas incidentes a P . Este tipo de transformac~ao
e muito importante no processo de visualizac~ao.
Quando algum elemento da submatriz (1  3) e diferente de 0, ocorre uma transformac~ao
perspectiva. Uma transformaca~o perspectiva com um unico ponto de fuga, sobre o eixo z,
e dada por:
1 0 0 0 x
x
0 1 0 0 y = y :
0 0 1 0 z
z
0 0 r 1 1
rz + 1
Aqui, um ponto do espaco a m e levado para o hiperplano w = rz + 1 6= 1. As coordenadas homog^eneas usuais s~ao obtidas dividindo-se por w : [x0 ; y0; z0 ; 1] = [x=w; y=w; z=w; 1]:
Note-se que os pontos do espaco a m com coordenada z = 0 n~ao s~ao afetados por esta
transformac~ao e aqueles com coordenada z = 1=r s~ao transformados em pontos ideais
( g. 5.6).
Uma projec~ao perspectiva em algum plano de vis~ao bi-dimensional e obtida pre-multiplicando-se, uma matriz de projec~ao ortogra ca5 , a matriz de transformac~ao perspectiva
(projetanto no plano z = 0, o efeito e descartar a coordenada z). Escolhendo-se um centro
de projec~ao z , sobre o eixo z, e fazendo r = 1=z ; obtem-se o mesmo resultado de uma
projec~ao sobre o plano z = 0.
c

10

B
B
@

CB
CB
A@

C
C
A

B
B
@

C
C
A

Aplicando a transformac~ao perspectiva ao ponto ideal [0; 0; 1; 0], que corresponde a intersec~ao das retas paralelas ao eixo z, obtem-se [0; 0; 1; r]. O ponto [x0; y0 ; z0 ; 1] = [0; 0; 1=r; 1]
representa a imagem deste ponto ideal. Dessa forma, v^e-se que as retas paralelas a direc~ao
z convergem para um ponto de fuga, de coordenada 1=r, sobre o eixo z . Isto signi ca que
o semi-espaco in nito 0  z  1 e transformado no semi-espaco nito 0  z0  1=r.
Quando mais de um elemento da submatriz (1  3) e n~ao nulo, t^em-se transformaco~es
perspectivas com dois ou tr^es pontos de fuga. A transformac~ao perspectiva com tr^es pontos
5 Esta matriz e singular (n~ao e invertvel), pois possui as terceiras linha e coluna, nulas.

77

~ PERSPECTIVA
5.8. TRANSFORMAC
 AO

B
z

1/r

ponto de fuga
segmento AB transformado
pela transf. perspectiva.
y
B

B*
A*

segmento AB projetado
no plano z=0.
-1/r

centro de projecao
,~

Figura 5.6: Perspectiva com um ponto de fuga.


de fuga e dada por:
1 0 0 0 x
x
x0
x=w
0
0 1 0 0 y =
y
y
y=w :
;
=
0
0 0 1 0 z
z
z
z=w
p q r 1
1
w = px + qy + rz + 1
1
1
A transformac~ao perspectiva com tr^es pontos de fuga tem tr^es centros de projec~ao: um
sobre o eixo x, com coordenadas [ 1=p; 0; 0; 1]; outro sobre o eixo y, com coordenadas
[0; 1=q; 0; 1]; e o terceiro sobre o eixo z, com coordenadas [0; 0; 1=r; 1]. Os pontos de fuga
se localizam sobre o eixo x, com coordenadas [1=p; 0; 0; 1]; sobre o eixo y, com coordenadas
[0; 1=q; 0; 1]; e sobre o eixo z, com coordenadas [0; 0; 1=r; 1]. O mesmo resultado e obtido
pela aplicac~ao, em cascata, de tr^es transformac~oes perspectivas com um unico ponto de
fuga, um em cada eixo coordenado.
Transformaco~es perspectivas com dois pontos de fuga podem ser obtidas pela composic~ao
de uma transformac~ao perspectiva, com um unico ponto de fuga, com uma transformac~ao
de rotac~ao ao redor de um eixo coordenado perpendicular ao eixo coordenado que contem o
centro de projeca~o. Se forem usadas duas rotac~oes, obtem-se uma transformac~ao perspectiva
com tr^es pontos de fuga: [T3 ] = [P ][R ][R ]:
Os pontos de fuga correspondendo as direc~oes n~ao paralelas aos eixos principais podem
ser encontrados calculando, diretamente, a intersec~ao de dois segmentos (originalmente
paralelos a direca~o desejada) transformados, ou encontrando a imagem do ponto ideal correspondente.
0

10

B
B
@

CB
CB
A@

C
C
A

B
B
@

C
C
A

B
B
@

C
C
A

B
B
@

C
C
A

pf

rz

78

CAPITULO 5. GEOMETRIA

5.9 Exerccios
5.1 Faca um estudo comparativo das Geometrias Euclideana e A m, incluindo uma discuss~ao dos principais conceitos, tipos de transformaco~es e invariantes.
5.2 Explique as principais vantagens do uso da Geometria Projetiva em Computac~ao
Gra ca.
5.3 Mostre, a partir de um exemplo 2D e um 3D, que transformaco~es geometricas n~ao s~ao
comutativas.
5.4 Discuta um metodo que permita rodar um objeto 3D em torno de um eixo de rotac~ao
arbitrario e re et-lo em relac~ao a um plano arbitrario.
5.5 Prove que uma transformac~ao linear preserva paralelismo. Em seguida, construa uma
transformac~ao projetiva que leve um quadrado unitario num quadrilatero arbitrario (em
2D).
5.6 D^e uma justi cativa geometrica para o fato de uma transformaca~o projetiva transformar uma c^onica em outra c^onica qualquer, por exemplo, um crculo em uma hiperbole.
5.7 Veri que que a transformac~ao a m
x
y
leva o crculo x2 + y2

=
=

x1
y1 x1

1 na elipse 2x21

=x
= x+y
2x1 y1 + y12 1.
x1
y1

5.8 Veri que que a transformac~ao projetiva


x
y
w
leva o crculo x2 + y2

=
=
=

x1 y1
w1
x1 + y1

w2 na hiperbole w12

x1
y1
w1

= (w + x)=2
= (w x)=2
=y

4x1 y1.

Cap
tulo 6

Modelagem Geometrica
A Modelagem Geometrica ocupa uma posic~ao central em Computac~ao Gra ca devido ao
seu imapcto sobre os processos industriais automatizados de projeto e manufatura (sistemas
CAD/CAM). Desde o seu surgimento, na decada de 60, esta area vem evoluindo sensivelmente. Inicialmente, o problema que se colocava eram os sistemas de desenho, tanto bi
como tri-dimensionais1. Estes sistemas utilizavam modelos bastante ing^enuos, que nada
mais eram do que conjuntos de pontos ligados por segmentos de reta, conhecidos como
modelos de arame (wire frame models).
O principal problema dos modelos de arame e que eles n~ao conseguem captar a noca~o de
solido2, que e caracterizado por propriedades fsicas (como massa, volume, area, momento
de inercia, etc...) e, por conseguinte, n~ao atendem as demandas da industria. Na realidade,
faltava, nessa epoca, uma conceituaca~o precisa do que e um objeto solido.

6.1 Esquemas de Representac~ao


O conceito de solido e melhor compreendido a partir do paradigma dos quatro universos3
( g. 6.1), onde ca clara a necessidade de um modelo matematico que caracterize, precisamente, um objeto solido. A base teorica para esta conceituaca~o e encontrada na geometria
diferencial e na topologia diferencial. Um estudo da teoria necessaria destas duas disciplinas da matematica foge ao escopo deste texto. Assim, v~ao-se discutir apenas representaco~es
para um solido, onde as caractersticas importantes para a validade da representac~ao ser~ao
apontadas.
6.1.1 Descric~ao de Solidos

Informalmente, assuma-se que um solido e um conjuntos de pontos. Este conjunto de pontos


pode ser descrito, basicamente, de duas formas:
1 O trabalho pioneiro de Ivan Sutherland, que criou o Sketchpad, um sistema de desenho bi-dimensional, e o marco

inicial desta area.


2 A detecca~o de colis~ao, por exemplo, necessita do conceito de solido.
3 Introduzido em 1980 por Ari Requicha, um pesquisador portugu^es radicado nos USA.

79

80


CAPITULO 6. MODELAGEM GEOMETRICA

Formas

Representacoes

Modelos

Estruturas
de Dados

Figura 6.1: Modelo Conceitual.


 por coordenadas (parametricamente);
 por densidade (implicitamente).

Estes dois tipos de descrica~o originam dois tipos de representaca~o de solidos a saber:
 Representac~ao por bordo, B-rep (Boundary representation);
 Representac~ao implcita, CSG (Constructive Solid Geometry).

6.2 Representac~ao por Bordo


Na representaca~o por bordo ou por fronteira, o solido e de nido indiretamente, atraves da
superfcie, compacta4 e sem bordo, que o delimita (forma a sua fronteira). Esta superfcie
e descrita parametricamente por um mapeamento, ' : U  <2 ! <3, chamado de uma
parametrizac~ao da superfcie ou carta local ( g. 6.2).
sistema de coordenadas
herdado
v

1
u
v

Figura 6.2: Parametrizac~ao de uma Superfcie.


Desta forma, a parametrizaca~o
'(u; v) = ('1 (u; v); '2 (u; v); '3 (u; v)) = (x; y; z )
associa a cada ponto do plano, um ponto do espaco tri-dimensional. Para que o solido seja
bem de nido, exige-se que a superfcie n~ao apresente auto-interseca~o e que o vetor normal,
(@'=@u  @'=@v), n~ao se anule em algum ponto da superfcie. Isto porque a normal e
4 Fechada e limitada.

~ POR BORDO
6.2. REPRESENTAC
 AO

81

utilizada para determinar o interior e o exterior do solido, a partir de alguma convenc~ao,


por exemplo, que a normal em qualquer ponto da superfcie aponte, localmente, para o
exterior do solido.
A parametrizac~ao estabelece um sistema de coordenadas sobre a superfcie, herdado de
um sistema de coordenadas no plano. Em geral, e impossvel cobrir (descrever) toda a
superfcie com uma unica parametrizac~ao. Por isso, s~ao utilizadas descric~oes por partes,
onde empregam-se varias parametrizac~oes que de nem pedacos de superfcie que v~ao sendo
colados uns aos outros ( g. 6.2), formando um atlas.
A parametrizac~ao de uma esfera de raio um, centrada na origem, e dada por exemplo:
f (; ) = (cossin; sinsin; cos):
O vetor normal e dado em cada ponto por:
@f
@

 @f
= ( sinsin; cossin; 0)  (coscos; sincos; sin):
@

Se  =  ou  = 0 a normal a esfera n~ao esta de nida, por esta parametrizac~ao, nos polos.
Assim, o domnio U desta parametrizac~ao e dado por:
U = f(; ) 2 <2 ; 0 <  < ; 0   < 2g:
6.2.1 Representac~ao Linear por partes

Uma superfcie parametrizada e geometricamente complexa pode ser aproximada por uma
superfcie linear por partes. Um metodo bastante empregado consiste em poligonizar o
domnio da parametrizaca~o (em geral s~ao utilizados tri^angulos ou quadrilateros). Cada
vertice no domnio poligonal e levado para a superfcie pela parametrizac~ao e ligado aos
vertices adjacentes. Este processo cria uma superfcie poligonizada, chamada de malha
poligonal. Com isto, obtem-se uma geometria aproximada mas, em compensac~ao, bastante
simples.
Uma malha poligonal nada mais e do que uma decomposica~o celular5 poligonal de nida
por uma colec~ao conexa de vertices, arestas e polgonos, tal que cada aresta e compartilhada
por no maximo dois polgonos e a intersec~ao de dois polgonos quaisquer e uma aresta, um
vertice ou e vazia. Algumas operac~oes basicas com malhas poligonais correspondem a:
 achar todas as arestas que incidem em um vertice;
 achar os polgonos que compartilham uma aresta ou um vertice;
 achar as aresta que delimitam um polgono;
 exibir a malha.
Existem quatro formas basicas para codi car uma malha poligonal:
 codi cac~ao explcita;
5 Um complexo a m homeomorfo a superfcie.

82


CAPITULO 6. MODELAGEM GEOMETRICA

 codi cac~ao com ponteiros para lista de vertices;


 codi cac~ao com ponteiros para lista de arestas;
 codi cac~ao com arestas aladas (winged-edge).
Codi cac~ao Explcita

Nesta codi caca~o, cada polgono armazena explicitamente uma lista de coordenadas de
vertices: P = f(x1 ; y1 ; z1 ); (x2 ; y2 ; z2 ); :::; (x ; y ; z )g. Esta codi cac~ao e adequada para
armazenar um unico polgono. No entanto, produz redund^ancia de informac~ao, quando o
objetivo e armazenar varios polgonos, uma vez que s~ao armazenados vertices duplicados.
Alem disso, cada aresta compartilhada e desenhada duas vezes na exibic~ao da malha, o que
e problematico quando se utilizam plotadoras ou lme. A execuc~ao de querys tambem e
complicada, porque os relacionamentos de adjac^encia entre vertices, arestas e polgonos n~ao
s~ao armazenados explicitamente (obriga a execuca~o de algoritmos geometricos).
n

Codi cac~ao com Ponteiros para Lista de Vertices

Neste tipo de codi caca~o, os vertices s~ao armazenados separadamente, em uma lista de
vertices. Cada polgono faz refer^encia aos seus vertices, na lista de vertices, por meio de
ponteiros ( g. 6.3).
V2

E2

E1
P1

E4

V3

P2

V1

E5

E3
V4

Figura 6.3: Codi cac~ao com Ponteiros para Lista de Vertices.


 V = fV1 = (x1 ; y1 ; z1 ); V2 = (x2 ; y2; z2 ); V3 = (x3 ; y3; z3 ); V4 = (x4; y4 ; z4 )g;
 P1 = fV1 ; V2 ; V4g;
 P2 = fV4 ; V2 ; V3g:

Esta codi cac~ao proporciona uma maior economia de espaco, pois cada vertice e armazenado uma unica vez. Alem disso, as coordenadas de um vertice podem ser alteradas
facilmente. Porem, ainda e di cl determinar os polgonos que compartilham uma aresta e
as arestas compartilhadas ainda s~ao desenhadas duas vezes.

~ IMPLICITA
6.3. REPRESENTAC
 AO

83

Codi cac~ao com Ponteiros para Lista de Arestas

Se, alem de uma lista de vertices, for introduzida tambem uma lista de arestas, os polgonos
agora fazem refer^encia as suas arestas, na lista de arestas, atraves de ponteiros ( g. 6.3).
 V = fV1 = (x1 ; y1 ; z1 ); V2 = (x2 ; y2; z2 ); V3 = (x3 ; y3; z3 ); V4 = (x4; y4 ; z4 )g;
 E1 = fV1; V2 ; P1 ; g;
 E2 = fV2; V3 ; P2 ; g;
 E3 = fV3; V4 ; P2 ; g;
 E4 = fV2; V4 ; P1 ; P2 g;
 E5 = fV4; V1 ; P1 ; g;
 P1 = fE1 ; E4 ; E5 g;
 P2 = fE2 ; E3 ; E4 g:
Agora, desenham-se todas as arestas a partir da lista de arestas e n~ao mais percorrendo
a fronteira dos polgonos. A determinac~ao das arestas que incidem em um vertice ainda
requer um algoritmo geometrico. Se for introduzido para cada aresta as refer^encias para os
dois polgonos que a compartilham (, se houver apenas um), ca imediata a determinac~ao
dos polgonos que incidem na aresta.
Codi cac~ao com Arestas Aladas

A codi cac~ao com arestas aladas surgiu em 1974 e foi um marco no desenvolvimento de
codi cac~oes para representac~ao por fronteira. Criada por Baungart, ela armazena uma
serie de informaco~es na estrutura associada a arestas, pois o numero de campos necessario
e xo (uma aresta e delimitada por dois vertices e delimita dois polgonos, chamados faces).
S~ao mantidas uma lista de vertices, uma lista de arestas e uma lista de faces. Cada aresta
possui, ent~ao, ponteiros para as duas faces que a compartilham, para o seu vertice inicial
e para as quatro arestas que a sucedem e antecedem no ciclo ordenado de arestas ao redor
das duas faces ( g. 6.4).
Todos os nove tipos de relacionamentos de adjac^encia que podem ser formados a partir de
vertices, faces e arestas s~ao obtidos, diretamente, da estrutura de dados. A atualizac~ao da
estrutura de dados neste tipo de codi cac~ao e uma tarefa complexa e e feita, normalmente,
com o emprego dos chamados operadores de Euler, para garantir que apos cada atualizac~ao
o modelo continua satisfazendo a equac~ao de Euler: V A + F = 2.

6.3 Representac~ao Implcita


Na representaca~o implcita, o solido e de nido a partir de um conjunto de valores de densidade que caracteriza os seus pontos. Por exemplo, uma mesa e caracterizada pelo conjunto

84


CAPITULO 6. MODELAGEM GEOMETRICA

Ecw

Eccw

F1

F2
E

Ecw

Eccw

Figura 6.4: Codi cac~ao por Arestas Aladas.


de pontos do ambiente com densidade da madeira, enquanto o seu complemento e formado
pelo conjunto de pontos com densidade do ar. O conjunto dos pontos do < que estejam
associados a um certo intervalo de densidades forma o conjunto de pontos que de ne o
solido. Este tipo de representac~ao descreve a superfcie dos objetos, implicitamente, por
uma equac~ao do tipo: F (X ) = c; X 2 < ; c 2 <: A func~ao F : < ! < e de classe C e e
chamada de funca~o implcita.
Em geral, uma superfcie de nida de forma implcita pode apresentar auto-interseca~o. A
pergunta e: F (x; y; z) ! < de ne implicitamente z = f (x; y) em algum domnio razoavel?
Em Computac~ao Gra ca n~ao se deseja que uma curva ou superfcie que delimita a fronteira
de um solido se auto-intercepte. A veri cac~ao deste tipo de situac~ao e feita com base no
teorema da func~ao implcita:
Teorema 6.1 Seja F : < ! < de nida em um aberto U . Se F possui derivadas parciais
contnuas em U (ou seja, F e diferenciavel em U ) e rF 6= 0 em U , ent~ao F e uma
subvariedade de dimens~ao n 1 do < (uma superfcie sem auto-interseca~o).
Um valor c 2 < e dito um valor regular de F se F 1 (c) n~ao contem pontos onde o
gradiente de F se anula (chamados de pontos singulares):
n

@F @F @F 
8p 2 F (c) ) rF = @x ; @y ; @z j 6= 0:
interessam apenas os casos em que n = 2 ou n = 3, onde
1

Neste texto
se t^em curvas e
superfcies implcitas, respectivamente.
Considere-se a func~ao F (x; y) = x2 + y2 que de ne um paraboloide no <3. Fixando
um valor constante c para F , obt^em-se as curvas de nvel da func~ao que, neste caso, s~ao
crculos, se c > 0. Esta e uma forma de de nir um crculo implicitamente. Note-se que

85

~ IMPLICITA
6.3. REPRESENTAC
 AO

rF = (2x; 2y) se anula na origem. Neste caso, 0 n~ao e um valor regular de F e, por

conseguinte, F (x; y) = 0 n~ao de ne uma superfcie implcita6. Pode-se mostrar que o vetor
gradiente e perpendicular a curva de nvel em cada ponto (faca-o!).
F(x,y)

y
-1
F(c)

Figura 6.5: Crculo De nido Implicitamente.


Um outro exemplo s~ao cascas esfericas de nidas implicitamente por uma func~ao
F (x; y; z ) = x2 + y2 + z 2 :
Para todo k > 0; F 1(k) representa a superfcie de uma esfera no <3. Novamente, 0 n~ao e
um valor regular de F , pois F 1(0) = (0; 0; 0) e rF = (2x; 2y; 2z) se anula na origem.
Um exemplo mais interessante e dado pela func~ao abaixo:
F (x; y)
rF
x(t)
y(t)

= y2 x2 x3;
= (2y; 3x2 2x); ou na forma parametrica,
= t2 1;
= t(t2 1):

(6.1)
Note-se que a curva de nvel 0 de F e um laco, que apresenta uma singularidade na origem
( g. 6.6):
z = F (x; y) = y2 x2 x3 = 0:
Se olhar-se agora para F(x,y) como superfcie de nvel 0 da func~ao
H : <3 ! <;
H (x; y; z ) = z + y2 x2 x3 ;
rH = ( 3x2 2x; 2y; 1);
rH(0 0 0) = (0; 0; 1);
6 F 1 (0) = (0; 0).

; ;

86


CAPITULO 6. MODELAGEM GEOMETRICA

v^e-se que todos os pontos s~ao regulares, pois o gradiente de H e diferente de (0; 0; 0) em
todos os pontos do <3. Conclui-se ent~ao que o gra co de F no <3 e realmente gra co de
uma funca~o.

t=

y
F(x,y) > 0
20/27
t=0

F(x,y) < 0
-1

-2/3

x
t = +-1

t=-

Figura 6.6: Curva do Laco.


6.3.1 Objeto Implcito

Ate aqui foram dados exemplos de superfcies implcitas. Na realidade, necessita-se do


conceito de objeto implcito, para que se possa construir uma representac~ao para solidos.
De nic~ao: Um subconjunto O  < e chamado de objeto implcito ( g. 6.7) se existe
F : U ! <; O  U; e existe um subconjunto
V  < tal que O = F 1 (V ) ou O = fp 2 U; F (p) 2 V g:
n

Um objeto implcito e regular se a funca~o F satisfaz a condic~ao de regularidade. Um


objeto implcito e valido se ele de ne uma superfcie no < .
Seja p = (x; y; z). Ent~ao, vai-se considerar que sendo F (p):
 > 0 ) p 2 exterior de O;
 = 0 ) p 2 fronteira de O;
 < 0 ) p 2 interior de O.
A func~ao F faz uma classi cac~ao dos pontos do espaco. Dado qualquer ponto, F permite
decidir se o ponto esta no interior, na fronteira ou no exterior do objeto.
n

87

~ ENTRE REPRESENTAC
~
6.4. CONVERSAO
 OES

F
c
-1
F

Figura 6.7: Objeto Implcito.


6.3.2 Esquema de Representac~ao CSG

Um metodo efetivo para construir objetos complexos, a partir de objetos simples, e atraves
de operac~oes CSG (Constructive Solid Geometry). Este esquema e baseado em operac~oes
booleanas regularizadas de conjuntos de pontos: [; \; = (uni~ao, intersec~ao e diferenca).
Um objeto e regular se o fecho do interior do seu conjunto de pontos e igual ao proprio
conjunto de pontos. Um modelo CSG e codi cado por uma arvore, onde os nos cont^em
operac~oes de conjunto ou transformac~oes geometricas e as folhas cont^em objetos primitivos.
Um solido CSG e de nido como um conjunto de pontos do < que satisfaz F (X )  0
para algum F : <3 ! < de classe C 1. As operac~oes booleanas s~ao de nidas por (prove!):
 F1 [ F2 = min(F1 ; F2 );
 F1 \ F2 = max(F1 ; F2 );
 F1 =F2 = F1 \ F2 = max(F1 ; F2 ):
n

6.4 Convers~ao entre Representac~oes


A convers~ao entre as representac~oes por bordo e implcita e um topico importante porque
ambas apresentam vantagens e desvantagens. Na representac~ao por bordo as intersec~oes
de superfcies est~ao armazenadas explicitamente, alem de ser facil exibir um ponto sobre
uma superfcie. Em contra partida, a determinaca~o da inclus~ao de um ponto em um objeto
requer algoritmos n~ao triviais, especialmente em dimens~ao tr^es. A avaliac~ao de operac~oes
booleanas e bastante trabalhosa do ponto de vista algoritmico.
Na representaca~o implcita, a determinac~ao da inclus~ao de um ponto e imediata, bastando
avaliar o sinal da func~ao de densidade no ponto. Porem, exibir um ponto sobre a superfcie
de um objeto implica em resolver uma equac~ao que pode ser complicada, mas a avaliaca~o
de operaco~es booleanas e simples.
Estas consideraco~es apontam na direc~ao de sistemas com multi-representac~ao. Determinados algoritmos s~ao mais facilmente implementados a partir de uma certa representaca~o.
Assim, caso exista convers~ao entre as representac~oes, cada algoritmo pode se valer da re-

88


CAPITULO 6. MODELAGEM GEOMETRICA

presentac~ao mais apropriada. A convers~ao se encarrega de manter ambas as representaco~es


atualizadas ( g. 6.8).
R1
Aplicacao

Algoritmo1

Conversao
R2

Algoritmo 2

Figura 6.8: Multi-representac~ao.


A convers~ao basicamente pode ser efetuada de duas formas: exata ou aproximada. Por
exemplo, um crculo de nido implicitamente pela equac~ao x2 + y2 = 1 possui uma descric~ao
parametrica equivalente:
'() = (cos(); sin());
0   < 2:
Porem, em geral, n~ao existe convers~ao exata (e facil converter de forma exata curvas
algebricas de grau 2 e 3 ou monoides).
A convers~ao de uma representac~ao implcita para uma representaca~o por bordo e designinada pelo termo | avaliaca~o do bordo. Esta convers~ao e feita de forma aproximada
e envolve a poligonizaca~o de superfcies implcitas7. No caso em quest~ao, seja M uma
superfcie implcita. Construa-se uma triangulac~ao T su cientemente na do espaco Euclideano, de forma que, para todo simplexo  de T , M \  e homeomorfo a um disco
m-dimensional. Exige-se que a triangulac~ao T seja uma "boa triangulaca~o", que satisfaca
as seguintes condic~oes:
 O di^ametro de cada simplexo  de T e =2;
 T n~ao possui vertices sobre M ;
 M intercepta o esqueleto de ordem 1 de T transversalmente (n~ao ha tang^encia);
 Cada aresta de T intercepta M em no maximo um ponto.
A primeira condic~ao e satisfeita se for utilizada, por exemplo, a triangulac~ao CFK
(Coxeter-Frendenthal). As outras condic~oes podem ser obtidas a partir de uma pequena perturbac~ao na triangulac~ao. Com uma boa triangulac~ao, a intersec~ao de uma superfcie
no <3 com um simplexo (no caso, um tetraedro) se da em tr^es ou quatro pontos ( g. 6.9a).
O problema se reduz, ent~ao, em determinar, para cada aresta de um simplexo, se M
a intercepta e, se for o caso, encontrar a intersec~ao. Avaliando-se a funca~o implcita nos
7 Toda superfcie, tanto parametrica como implcita, conforme de nida neste texto, admite uma poligonizac~ao.

89

~ ENTRE REPRESENTAC
~
6.4. CONVERSAO
 OES

a)

M
-

+
+
+
+

b)

Figura 6.9: Intersec~ao de M com um Tetraedro.


vertices de uma aresta e se, em cada vertice, os sinais forem opostos signi ca que ha intersec~ao ( g. 6.9b). Assim, '(t) = tv1 + (1 t)v0 , que e a equaca~o parametrica do suporte da
aresta, e usada para encontrar as razes da equac~ao F ('(t)) = 0; 0  t  1: Os pontos de
intersec~ao devem ser ligados na ordem apropriada.
Uma triangulac~ao CFK e obtida no <2 dividindo-se a regi~ao de interesse em quadrados
e tracando-se uma diagonal em cada quadrado ( g. 6.10a). No <3, a regi~ao e dividida em
cubos. Uma diagonal e tracada e projetada em cada face do cubo. Adiciona-se, ent~ao, a
cada simplexo 2D, o vertice da diagonal que n~ao pertence ao simplexo ( g. 6.10b). Em
geral, no < , um hipercubo tem n! simplexos de dimens~ao n.
n

A gerac~ao de imagens medicas, a partir de dados colhidos atraves de aparelhos de tumogra a computadorizada, envolve, justamente, a convers~ao de uma representac~ao implcita
(estes aparelhos retornam as densidades dos diferentes tecidos) para uma representaca~o por
bordo (neste processo, o bordo e aproximado por uma superfcie poligonal composta por
milhares de tri^angulos).
Note-se que a convers~ao CSG ! B-rep e mais complicada, pois est~ao envolvidos varios
objetos implcitos. Neste caso, interessa apenas a fronteira externa. Os polgonos devem
ser recortados e aqueles contidos no interior do objeto nal devem ser descartados.
A convers~ao da representac~ao por bordo para a implcita se da atraves de uma subdivis~ao
espacial. O espaco e particionado em celulas e, em seguida, s~ao enumeradas as celulas
que interceptam o objeto (n~ao existe ocupac~ao parcial). As estruturas quadtree e octree,
encontradas na literatura, n~ao s~ao esquemas de representac~ao propriamente ditos, mas
apenas estruturas de dados para a decomposic~ao celular do espaco.
Uma octree e codi cada como uma arvore na qual a raz corresponde a um cubo do <3
que contem todo o modelo. Em seguida, este cubo e subdividido em oito cubos congruentes,

90


CAPITULO 6. MODELAGEM GEOMETRICA

p7

p3

p6

p2
p5

p4

a)

 (p0; p1 ; p3 ; p7)
 (p0; p2 ; p3 ; p7)
 (p0; p4 ; p5 ; p7)

p1

p0

b)

(p0; p1 ; p5; p7 )
(p0; p2 ; p6; p7 )
(p0; p4 ; p6; p7 )
Figura 6.10: Triangulac~ao CFK.

chamados octantes, por tr^es planos ortogonais aos eixos coordenados. Cada octante e ent~ao
classi cado em:
 cheio - completamente contido no interior do objeto;
 vazio - completamente contido no exterior do objeto;
 incompleto - uma parte esta contida no interior e a outra no exterior do objeto.

Octantes incompletos s~ao subdivididos, recursivamente, ate um nvel maximo. Neste ponto,
os octantes incompletos s~ao considerados cheios.

6.5 Ambiguidade e Unicidade de Representac~oes


Retornando ao paradigma dos quatro universos, de ne-se que uma representac~ao e unica
quando um modelo possui uma, apenas uma, representac~ao. Em geral, a condic~ao de
unicidade e de difcil obtenca~o. Tanto a representac~ao implcita como a representaca~o por
bordo n~ao s~ao representaco~es que apresentam unicidade (d^e exemplos!).
O conceito de ambiguidade e mais importante pois estabelece que, dada uma representac~ao, existe um unico modelo associado. Uma representac~ao ambgua e catastro ca, pois
n~ao se consegue determinar qual o modelo que ela representa (tornaria uma maquina de
controle numerico, inviavel). A representac~ao wire-frame e extremamente ambgua.
Um dos problemas que se coloca na area de Modelagem Geometrica diz respeito a obtenc~ao de algoritmos robustos para a convers~ao (aproximada) entre representaco~es distintas.

91

6.6. EXERCICIOS

Universos

nao unicidade

ambiguidade

Figura 6.11: Unicidade e Ambiguidade de Representac~ao.

6.6 Exerccios
6.1 Discuta a obtenc~ao dos relacionamentos de adjac^encia, entre vertices, arestas e faces,
a partir das seguintes estruturas de dados:






lista de faces;
ponteiros para lista de vertices;
ponteiros para listas de arestas;
winged edge.

6.2 Considerando apenas vertices, arestas e faces e possvel formar 9 tipos de relacionamentos de adjac^encia diferentes. Por exemplo, F(A) refere-se ao conjunto de arestas
em torno de uma face, F(V) ao conjunto de vertices em torno da face, etc. Quais destes
conjuntos podem ser ordenados?
6.3 Como alterar a estrutura de dados baseada em ponteiros para lista de arestas de forma
a que a determinac~ao das faces que compartilham uma aresta possa ser executada e cientemente?
6.4 Prove as seguintes igualdades:

 F1 \ F2 = max(F1 ; F2 );
 F1 [ F2 = min(F1 ; F2 );
 F1 F2 = max(F1 ; F2 );

92


CAPITULO 6. MODELAGEM GEOMETRICA

onde F : < ! < s~ao func~oes que determinam um objeto implcito como a imagem inversa
do ponto zero (assumindo que zero e um ponto regular de F ). Qual a import^ancia deste
resultado?
i

6.5 Construa um programa para gerar uma aproximac~ao poligonal para uma superfcie
implcita de dimens~ao 1 (curva), compacta e sem bordo.
6.6 Estenda a implementac~ao do exerccio anterior de forma a a aproximar tambem superfcies implcitas de dimens~ao 2.
6.7 Discuta as vantagens e desvantagens da representaca~o por bordo, que usa uma descric~ao parametrica do solido, e volumetrica, que usa uma descric~ao implcita do solido. Que
tipos de aplicac~ao se adequam mais a cada uma destas representac~oes? Por que?
6.8 Construa uma parametrizac~ao,  : <2 ! <3 , para um tri^angulo no espaco, dado pelas
coordenadas dos seus tr^es vertices.
Sugest~ao: utilize coordenadas baric^entricas.
6.9 Um esquema de representac~ao para poli-linhas usando segmentos de reta associa a uma
poli-linha L o conjunto f(x0 ; y0 ; x1 ; y1 ); (x1 ; y1 ; x2 ; y2 ); :::; (x 1 ; y 1 ; x ; y )g onde (x ; y ; x +1 ; y +1 )
representam as coordenadas iniciais e nais de cada segmento de reta que comp~oe a polilinha.
n

a) Discuta essa representac~ao em relac~ao as propriedades de validade, ambiguidade e unicidade.


b) De na uma noc~ao de proximidade entre poli-linhas e discuta a representac~ao em relac~ao
a este conceito.

6.10 Um polgono P no espaco e uma sequ^encia V1 ; V2 ; :::; V de pontos distintos, situados


no mesmo plano, tal que V1 = V . O esquema de representac~ao LV associa a P a n-tupla
LV (P ) = (V1 ; V2 ; :::; V 1 ):
k

a) Especi que um tipo abstrato de dados (TAD) para implementar essa representac~ao.
b) Relacione as operac~oes associadas a esse TAD com operaco~es no modelo.
c) Investigue as possveis inconsist^encias topologicas e geometricas que podem ocorrer nessa representac~ao.
d) Descreva procedimentos para identi car as inconsist^encias no item anterior.

6.11 Considere o universo dos polgonos convexos de n lados e elabore metodos de representac~ao geometrica para descrever os elementos desse universo.
a) Usando um esquema construtivo.
b) Usando um esquema de decomposic~ao.
c) Usando um esquema de aproximac~ao.

93

6.6. EXERCICIOS

d) Discuta a convers~ao entre estes sistemas.

6.12 Estenda o exerccio anterior usando metodos de representac~ao algoritmica.


a) De na os par^ametros do modelo.
b) Inclua pelo menos duas representac~oes geometricas.
c) Descreva a implementac~ao das operac~oes de:
Visualizac~ao em aramado.
Calculo de area.
Escalamento.
Teste de inclus~ao de um ponto.

6.13 Considere um sistema de representac~ao CSG bidimensional que utiliza as seguintes


primitivas:
Disco (D): f(x; y) 2 <2 ; x2 + y2  1g;
Quadrado (Q): f(x; y) 2 <2 ; jxj  1 e jyj  1g:
Desenhe o objeto geometrico que e representado pela arvore CSG da gura 6.12:

A-B
+

T (2,0)
S (2,0.5)

T (0.5,-1)
+
T (-2,0)
S (0.5,0.5)
T (-2,0)

T = Translaca~o
S = Escalamento

S (2,1)
Q

+ = Uni~ao de Conjuntos
- = Diferenca de Conjuntos
Figura 6.12: A rvore CSG.

94


CAPITULO 6. MODELAGEM GEOMETRICA

6.14 Em um levantamento topogra co, a altura do terreno em relaca~o ao nvel do mar


(nvel 0) e determinada pela amostragem mostrada na gura 6.13.
a) Construa uma aproximac~ao poligonal que delimite a area do terreno que esta acima do
nvel do mar.
b) Explique o problema do item a) sob o ponto de vista da representac~ao de modelos em
Modelagem Geometrica.

-20

-35

-30

-30

-20

-30

-10

+5

+7

-45

+15

+10

+15

-20

-50

+10

+20

+25

-15

-55

-10

-5

-10

-50

-45

-43

-40

-25

-25

-30

Figura 6.13: Levantamento Topogra co.


6.15 Considere o crculo de nido implicitamente por x2 + y2 1 = 0 e o conjunto das retas
que passam pelo ponto p = ( 1; 0), conforme indicado na gura 6.14. Uma forma de converter da forma implcita para a parametrica consiste em parametrizar as retas que passam
por p; r(t) : y = tx + t, e encontrar os pontos de interseca~o com o crculo (substituindo y na
equac~ao do crculo e resolvendo para x). Das duas razes, uma corresponde a coordenada x
do ponto p e a outra corresponde ao ponto (variavel) x(t) no qual r(t) intersepta o crculo.
Derive ent~ao a forma parametrica:
2
= 11 + tt2 ;
2t :
y(t) =
1 + t2

x(t)

95

6.6. EXERCICIOS

y = tx + t

(x(t), y(t))
(-1, 0)

t
x

Figura 6.14: Convers~ao Implcita - Parametrica.


6.16 Para uma c^onica geral, o ponto p do exerccio anterior pode n~ao ser t~ao obvio. Para
estes casos, e mais facil considerar a equac~ao homogeneizada ([x; y; w] = (x=w; y=w; 1)):
a11 x2 + a22 y2 + a33 w2 + 2a12 xy + 2a13 xw + 2a23 yw = 0:
Se a c^onica contem um dos pontos fundamentais ((0; 0; 1), (0; 1; 0) ou (0; 0; 1)) ent~ao a
equaca~o e linear na variavel correspondente, que pode ser explicitada em funca~o das outras
duas. Considerando-as coordenadas projetivas parametrizadas, tem-se uma parametrizac~ao
da c^onica.
a) Considere o crculo x2 +y2 2xw que contem a origem (0; 0; 1). Derive a parametrizaca~o
projetiva da forma projetiva da c^onica:

x
y
w

= s
= t
= (s2 + t2)=2s:

b) Coloque s = 1 e obtenha coordenadas a ns parametrizadas. Divida por w e obtenha


uma parametrizac~ao a m da forma a m do crculo ( g. 6.15):

x(t)
y(t)

= 2=(1 + t2)
= 2t=(1 + t2 ):

96


CAPITULO 6. MODELAGEM GEOMETRICA

t>0

(0,0,1)
t=0

t=-

t=

x
y
t<0
x

Figura 6.15: Parametrizaca~o de C^onicas.


6.17 Considere a c^onica x2 +6xy +5y2 2x 2y 1 = 0. Na forma homog^enea, x2 +6xy +
5y2 2xw 2yw w2 = 0, v^e-se que ela n~ao contem nenhum dos pontos fundamentais,
uma vez que possui os termos quadrados em x; y e w. A estrategia e ent~ao encontrar um
ponto no in nito (correspondendo a w = 0), e leva-lo para (0; 1; 0). Parametriza-se ent~ao
a c^onica transformada e aplica-se a transformac~ao inversa a parametrizac~ao obtida.
a) Ache os dois pontos no in nito resolvendo a11 x2 +2a12 xy + a22 y2 = 0, fazendo y = a11
e resolvendo uma equac~ao do segundo grau para encontrar duas coordenadas x.
b) Seja (u; v; 0) um ponto no in nito. Aplicando a transformac~ao

x
y
w

=
=
=

x1 + uy1 ;
vy1 ;
w1 ;

que leva (u; v; 0) ! (0; 1; 0), encontre a equac~ao a m da c^onica transformada.


c) Parametrizando a c^onica resultante e aplicando a transformaca~o inversa, obtenha a
parametrizac~ao da c^onica original:
2
= 5t 42tt 1 ;
1 + 2t t2 :
y(t) =
4t

x(t)

d) Entenda o que foi feito desenhando cada passo no plano projetivo. No caso presente,
a interpretac~ao geometrica e que a c^onica original, que representa uma hiperbole, e
levada em uma elipse por uma rotaca~o.

97

6.6. EXERCICIOS

6.18 Um ponto p de uma curva algebrica de grau n tem multiplicidade m se um numero


in nito de retas por p interceptam a curva em n m pontos adicionais (considerando pontos
complexos e intersec~oes no in nito).
Nem todas as cubicas irredutveis possuem uma forma parametrica racional. Aquelas que
t^em um ponto singular devem t^e-lo com multiplicidade 2. Geometricamente, a parametrizac~ao de uma cubica e analoga a parametrizac~ao de uma c^onica; consideram-se as retas que
passam pelo ponto singular duplo e calculam-se as intersec~oes com a cubica. So pode haver
mais uma unica intersec~ao.
a) Considere a cubica y2

x2 x3 . Mostre que a origem e um ponto singular duplo.

b) Parametrizando as retas r(t) : y


zaca~o apresentada na sec~ao 6.3.

= tx que passam pela origem, obtenha a parametri-

6.19 O teorema de Bezout diz que duas curvas algebricas de grau m e n se interceptam
em exatamente mn pontos ou t^em uma componente comum.
a) Explique o metodo de parametrizaca~o de c^onicas e cubicas, baseado na intersec~ao de
retas com a curva, em face ao teorema de Bezout.
b) Uma curva algebrica possui um numero nito de pontos multiplos. Um monoide e uma
curva algebrica de grau n com um ponto de multiplicidade n 1. Generalize o metodo
de parametrizac~ao do item anterior para monoides.
6.20 Suponha que se deseja ter apenas planos com coe cientes racionais. Uma rota
ca~o de
um a^ngulo em torno de um eixo qualquer pode fazer com que o plano transformado passe
a ter coe cientes irracionais.

a) Dado qualquer encontre um novo ^angulo 0 tal que (u; v) = (cos( 0 ); sin( 0 )) seja
racional.
Sugest~ao: use a parametrizac~ao racional do crculo unitario do exerccio 6.15, onde
t = m=n = tan( 0 =2).
b) Encontre os novos coe cientes (racionais) do plano rodado em torno do eixo z .
c) Componha tr^es rotac~oes racionais para obter a rotac~ao racional em torno de um eixo
arbitrario.

98


CAPITULO 6. MODELAGEM GEOMETRICA

Cap
tulo 7

Sistemas de Modelagem
Os Sistemas de Modelagem s~ao sistemas, geralmente interativos, que permitem a criaca~o e
manipulaca~o de modelos, no computador, por um usuario. Ao longo do tempo, varios sistemas de modelagem surgiram com os mais diferentes propositos. Sistemas CAD/CAM, por
exemplo, tornaram-se viaveis a partir do surgimento de sistemas de modelagem poderosos,
robustos e de facil utilizaca~o (sera?).
Um sistema de modelagem pode ser caracterizado do seguinte modo ( g. 7.1):
 pela sua interface com o usuario;
 por um conjunto de operac~oes utilizadas para construir os modelos;
 pelo conjunto de tecnicas de modelagem que ir~ao implementar, efetivamente, as operac~oes sobre os modelos.
 e por um esquema de representac~ao interna (arquitetura);

Interface

Tecnicas de
Modelagem

Operacoes

Arquitetura

Figura 7.1: Modelo Conceitual.

7.1 Operac~oes com Modelos


Existem, basicamente, tr^es classes de operac~oes que podem ser utilizadas na construca~o de
um modelo:
 Operac~oes Topologicas
99

100

CAPITULO 7. SISTEMAS DE MODELAGEM

 Operac~oes de Combinaca~o

Operac~oes de Conjunto
Blending
 Operac~oes Geometricas
Movimentos Rgidos
Deformac~oes
A classe de operac~oes topologicas e muito utilizada para construir representac~oes por
bordo, e deve garantir a consist^encia topologica do modelo resultante. Em geral, utilizamse operadores de Euler que constroem modelos que satisfazem a formula de Euler. As
operac~oes topologicas costumam ser empregadas para "costurar" as diversas partes do modelo a medida que elas v~ao sendo criadas. Elas atuam, diretamente, sobre a topologia do
modelo, construindo o seu grafo de adjac^encias.
As operac~oes de combinaca~o constroem um modelo a partir da combinaca~o de dois outros modelos pre-existentes. As operac~oes de conjunto utilizam as operac~oes booleanas para
construir modelos complexos a partir de modelos simples, que s~ao instanciados e posicionados, apropriadamente, no espaco. Ja as operac~oes de blending s~ao utilizadas para combinar
dois objetos implcitos, por meio do blending (da ponderaca~o) das func~oes implcitas que
os de nem. As operac~oes de combinac~ao s~ao excenciais numa representac~ao CSG.
As transformac~oes geometricas atuam diretamente sobre a geometria dos modelos, reposicionando-os, atraves de movimentos rgidos, ou deformando-os com o uso de transformac~oes
de deformac~ao.

7.2 Tecnicas de Modelagem


O processo de construca~o de uma representac~ao, a partir de uma sequ^encia de dados fornecidos por um usuario comum, constitui o que se costuma chamar de uma tecnica de modelagem. E intuitivo que existam tecnicas de modelagem mais convenientes a construc~ao de
um certo tipo de representac~ao.
A tecnica de modelagem mais adequada a uma representac~ao CSG e aquela que utiliza o
paradigma de modelagem com massa. A partir de formas basicas que v~ao sendo combinadas,
o usuario pode ir esculpindo o seu objeto. As ferramentas utilizadas s~ao as operac~oes
booleanas, que costumam ser desgnidadas como operac~oes CSG.
O conjunto de operac~oes CSG pode ser visto como uma tecnica de modelagem, que
tambem pode ser empregada numa representac~ao por bordo. Para representac~oes baseadas
em modelos parametricos, no entanto, existem outras tecnicas de modelagem que podem
ser aplicadas na construc~ao das suas partes. Desse modo, os pedacos de superfcie v~ao
sendo criados e colados uns aos outros, montando-se um grafo de adjac^encias. As principais
tecnicas s~ao:
 superfcies de revoluca~o;
 superfcies com forma livre;
 lofting;

7.3. OBJETOS COMPOSTOS

101

 varredura (sweep).

superfcies tubulares
superfcies de extrus~ao

7.2.1 Revoluc~ao

Uma superfcie de revoluc~ao e criada a partir de uma curva plana (possivelmente poligonal),
chamada de per l, que e rotacionada em torno de um eixo de revoluc~ao.
7.2.2 Formas Livre

Uma superfcie com forma livre e esculpida atraves da manipulac~ao de uma malha de
controle poligonal, que de ne uma superfcie algebrica descrita atraves dos seus coe cientes
em relac~ao a uma base qualquer, por exemplo, base de Bezier ou B-spline.
7.2.3 Lofting

A operaca~o de lofting constroi a superfcie interpolando as suas sec~oes transversais ao longo


de um eixo. Esta tecnica e bastante utilizada na construc~ao de imagens medicas. Um
caso particular e aquele no qual se aplica uma translac~ao aos vertices de uma das faces do
modelo, criando um levantamento da face.
7.2.4 Varredura

A operaca~o de sweep, ou varredura, cria uma superfcie a partir do deslocamento de uma


curva contida em um plano  que intersepta um caminho transversalmente. Deslocandose o plano  ao longo do caminho e mantendo-se constante o ^angulo entre a sua normal e
o vetor tangente a curva , obtem-se uma superfcie gerada pela curva , que e chamada
de superfcie de translac~ao. A curva e chamada de curva guia e a curva e chamada de
sec~ao. Dois casos particulares importantes s~ao as superfcies tubulares, onde o plano  e
ortogonal a curva e a curva e um crculo com centro em , e as superfcies de extrus~ao,
onde a curva e uma reta e o plano  e ortogonal a .

7.3 Objetos Compostos


E muito comum, quando da criac~ao do modelo de um objeto complexo, utilizarem-se composic~oes de objetos mais simples. Pode-se de nir ent~ao um objeto composto como sendo
formado pelo agrupamento de dois ou mais objetos primitivos. O processo de criac~ao de
um objeto composto e bastante similar aquele empregado por uma crianca que manipula
um jogo de montagem de objetos a partir de algumas pecas (blocos) basicas. No caso do
computador, a montagem e feita a partir dos primitivos, que s~ao instanciados e posicionados (por meio de transformac~oes geometricas) no local apropriado. Este processo cria uma
hierarquia de objetos, que pode ser representada por uma arvore binaria. As folhas est~ao
associadas a objetos primitivos e os nos internos correspondem a operaco~es sobre objetos
ou transformac~oes geometricas.

102

CAPITULO 7. SISTEMAS DE MODELAGEM

A visualizac~ao de um objeto composto pode ser implementada atraves do percorrimento


da arvore. Deve-se notar que as transformac~oes geometricas devem ser acumuladas a medida que se avanca no percurso. Pode-se imaginar que cada objeto primitivo esta de nido
no seu proprio sistema de coordenadas e que as transformac~oes geometricas executam uma
mudanca de sistema de coordenadas: para o sistema de coordenadas do objeto composto.
Para isto, normalmente, utiliza-se uma pilha de transformaco~es geometricas, onde a transformac~ao (possivelmente composta) corrente encontra-se no topo. As operac~oes de nidas
sobre esta pilha s~ao as seguintes:
 empilhar | pushmatrix
 desempilhar | popmatrix
 multiplicar (compor) uma transformaca~o a transformac~ao corrente | multmatrix
 copiar uma transformac~ao para o topo da pilha (torna-la corrente) | loadmatrix
 recuperar uma copia da transformac~ao corrente | getmatrix
Hierarquias s~ao muito importantes tambem na criac~ao de objetos articulados. Neste
caso, cada ponto de articulaca~o possui uma matriz de transformac~ao associada, que ira agir
sobre todos os sub-objetos in uenciados pela articulac~ao em quest~ao.

7.4 Representac~ao Interna


A analise feita no captulo 6 indica que n~ao existe um esquema de representac~ao ideal. Se,
por um lado, um esquema CSG apresenta facilidade de edic~ao dos modelos, e de execuc~ao de
operac~oes booleanas, por outro lado, ele torna difcil o estudo das propriedades geometricas
do modelo, bem como a de nic~ao de outras operac~oes com os modelos. A representac~ao
B-rep, por sua vez, tem um controle muito bom sobre a geometria do modelo, porem
apresenta di culdade quanto a implementac~ao das operac~oes booleanas. Varias linhas de
pesquisa, atualmente, indicam a direc~ao de sistema mistos de representac~ao. Os sistemas
mistos se classi cam em: hbridos e de multi-representac~ao.
Nos sistemas hbridos, as varias representac~oes do modelo convivem simultaneamente e
tanto a criaca~o quanto a manipulac~ao do modelo podem ser feitas em qualquer das representac~oes. Isso acarreta a necessidade de manter-se a consist^encia interna do modelo, de
modo a que as operaco~es feitas com uma representac~ao se re itam nas outras. Nesse caso,
devem-se desenvolver algoritmos robustos, que permitam a passagem de um esquema de
representac~ao para outro. Em geral, esta e uma tarefa difcil e, as vezes, impossvel.
Nos sistema de multi-representac~ao, tem-se uma representaca~o principal do modelo e
varias representaco~es secundarias. Estas ultimas s~ao utilizadas para resolver os problemas
espec cos que n~ao afetam a estrutura do modelo. Todas as operac~oes de modi cac~ao do
modelo devem ser feitas na representac~ao principal.
7.5 Exerccios
7.1 Desenvolva algoritmos para construir a representac~ao por fronteira de objetos poliedrais usando as seguintes tecnicas de modelagem:

7.5. EXERCICIOS

103

a) Varredura (Sweep)
b) Extrus~ao
c) Revoluc~ao
Especi que os par^ametros de cada tipo de modelo.

7.2 Especi que uma linguagem para a implementac~ao de um Sistema de Modelagem CSG
com:
a) Primitivas: esferas.
b) Operac~oes: uni~ao, intersec~ao e diferenca.

104

CAPITULO 7. SISTEMAS DE MODELAGEM

Cap
tulo 8

Visualizac~ao
A visualizac~ao e uma disciplina da Computac~ao Gra ca que tem como objetivo produzir
imagens, em um dispositivo de exibic~ao, a partir de um modelo representado de alguma
forma no computador. A grosso modo, e dependendo do modelo utilizado, tem-se a visualizac~ao bi-dimensional, a visualizac~ao de superfcies tri-dimensionais e a visualizac~ao
volumetrica. Aqui, vai-se tratar apenas da visualizac~ao de superfcies tri-dimensionais.

Visualizacao

Camera

Transformacoes

Operacoes
Matriciais

Figura 8.1: Modelo Conceitual.


Pode-se de nir a visualizac~ao tri-dimensional como o processo de gerac~ao de imagens
de uma cena tri-dimensional com um determinado grau de realismo. Essencialmente, este
processo implica na soluc~ao de dois tipos de problemas distintos: a determinaca~o, a partir
de uma descric~ao da cena, das areas visveis de cada objeto na imagem nal e o calculo
da func~ao de iluminaca~o correspondendo a estas areas visveis, para a obtenca~o da cor dos
elementos da imagem (shading).
A funca~o de iluminac~ao esta diretamente ligada a sem^antica dos dados e, em consequ^encia, com as caractersticas de cada classe de aplicac~ao. No caso mais geral da sntese
de imagens foto-realistas, a func~ao de iluminac~ao se tratuz no fen^omeno fsico de re ex~ao
e refrac~ao da luz. Ja em outras aplicac~oes, como por exemplo na area de engenharia, a
func~ao de iluminac~ao pode servir para revelar propriedades intrnsecas dos objetos, tais
como curvatura, tens~ao estrutural e temperatura.
A descric~ao da cena e contituda pela especi caca~o dos elementos da cena e por uma
transformaca~o de visualizac~ao. Os elementos da cena s~ao primordialmente os objetos a
serem visualizados, mas incluem, tambem, os objetos que ir~ao contribuir indiretamente
no resultado nal da imagem, como as fontes de luz. A transformac~ao de visualizaca~o e
especi cada atraves de uma c^amara virtual e do suporte de exibic~ao.
105

106

~
CAPITULO 8. VISUALIZAC
 AO

O processo de visualizaca~o divide-se, basicamente, nas seguintes etapas (n~ao necessariamente nesta ordem):
 Seleca~o das partes dos objetos contidas no campo de observaca~o da c^amara virtual
(recorte).
 Calculo da func~ao de iluminac~ao.
 Projeca~o das superfcies de cada objeto no plano da imagem e o mapeamento destas
projec~oes em areas correspondentes no suporte de exibica~o (transformac~ao de visualizac~ao).
 Determinac~ao das areas visveis dos objetos do ponto de vista da c^amara virtual (determinac~ao da visibilidade: ordenac~ao e rasterizac~ao).
 Calculo da func~ao de colorizac~ao (amostragem).
As transformac~oes de visualizac~ao, no seu conjunto, objetivam mapear as superfcies
dos objetos em cena para o suporte de exibica~o. A sua principal nalidade e propiciar a
execuc~ao mais e ciente das diversas etapas do processo de visualizaca~o. Para atingir-se este
objetivo, os objetos devem ser transformados para sistemas de coordenadas (ou espacos de
refer^encia) nos quais se torne mais natural e conveniente a realizac~ao das tarefas inerentes
a cada etapa do processo.

8.1 Espacos de Refer^encia


Os espacos de refer^encia s~ao sistemas de coordenadas que est~ao associados da seguinte
maneira as etapas da visualizac~ao:
 Espaco do Objeto - Modelagem;
 Espaco da Cena - Posicionamento;
 Espaco da C^amara - Iluminac~ao;
 Espaco Normalizado - Recorte;
 Espaco da Ordenaca~o - Visibilidade;
 Espaco da Imagem (ou da tela) - Rasterizac~ao.
A seguir, s~ao descritos cada um desses espacos de refer^encia e as suas propriedades.
Espaco do Objeto

Corresponde aos sistemas de coordenadas nos quais os objetos primitivos est~ao descritos.
Geralmente, o objeto esta posicionado na origem, possui dimens~oes que s~ao multipos inteiros
da unidade e esta alinhado com os eixos principais, sendo chamado, neste caso, de um
objeto padronizado. Note-se que e muito mais facil manipular a geometria de um objeto
padronizado, de forma a reorienta-lo, reposiciona-lo ou aplicar-lhe um fator de escala.

~ DA VISUALIZAC
~
8.2. ESPECIFICAC
 AO
 AO

107

Espaco da Cena

E um sistema de coordenadas global. Nele s~ao posicionados e orientados, uns em relac~ao


aos outros, todos os elementos da cena, incluindo a c^amara virtual. As dimens~oes est~ao
normalmente em um padr~ao de escala natural da aplicac~ao.
Espaco da C^amara

E um espaco isometrico ao espaco da cena. A c^amara esta na origem do sistema de coordenadas, dois eixos principais s~ao perpendiculares a direc~ao de vis~ao e o plano de projec~ao
esta sobre o terceiro eixo.
Espaco Normalizado

E um sistema de coordenadas que privilegia o observador. A c^amara esta centrada na


origem deste sistema. A pir^amide de vis~ao e normalizada para o recorte.
Espaco de Ordenac~ao

E o sistema de coordenadas utilizado para a determinac~ao da visibilidade. Esse sistema de


coordenadas e obtido atraves de uma transformaca~o projetiva do sistema de coordenadas
normalizadas, de modo a trocar a projec~ao perspectiva pela projec~ao paralela ortogra ca,
preservando a planaridade, linearidade e ordenac~ao dos objetos em relaca~o a profundidade
da cena. E importante manter a precis~ao em relac~ao ao eixo z. A^ ngulos n~ao s~ao preservados.
Ocorre uma compress~ao n~ao linear na direc~ao z.
Espaco da Imagem

E o sistema de coordenadas do dispositivo. Algumas de suas caractersticas s~ao: formato


dos pixels, raz~ao de aspecto, resoluc~ao espacial e de cor e o fator gama.

8.2 Especi cac~ao da Visualizac~ao


As transformac~oes de visualizaca~o s~ao especi cadas atraves da c^amara virtual e do suporte
de exibic~ao. A c^amara virtual de ne os par^ametros de observac~ao da cena no espaco tridimensional, enquanto que o suporte de exibic~ao de ne os par^ametros relativos ao formato
da imagem.
Ha varias maneiras de se de nir os par^ametros da c^amara virtual. Aqui, vai-se adotar um
modelo generico, derivado do trabalho de Alvy Ray Smith na Lucas Film1. Neste modelo
de visualizac~ao tri-dimensional, especi ca-se um volume de vis~ao, contra o qual os objetos
s~ao recortados, um tipo e um plano de projec~ao e uma viewport no suporte de exibic~ao.
Existem diversos tipos de projec~ao cuja nalidade e transformar pontos de um espaco
de dimens~ao n em pontos de um espaco de dimens~ao menor do que n. No caso em quest~ao,
s~ao pontos do espaco tri-dimensional sendo levados em pontos do espaco bi-dimensional. A
classe de projec~ao que normalmente e utilizada em Computac~ao Gra ca e conhecida como
projec~oes geometricas planares, porque a projec~ao e sobre um plano e utiliza projetores
retilneos. Em cartogra a e muito comum a utilizaca~o de outros tipos de projec~ao.
As projeco~es geometricas planares, daqui para frente simplesmente projec~oes, podem ser
1 Transformation Tutorial Notes, Technical Memo no.78 - Lucas lm Ltda - May 11,1983.

108

~
CAPITULO 8. VISUALIZAC
 AO

divididas em duas categorias: perspectiva e paralela (ortogra ca ou oblqua). A distinc~ao


e em relac~ao a dist^ancia do centro de projec~ao ao plano de projec~ao. Se esta dist^ancia for
nita tem-se a projec~ao perspectiva, caso contrario, a projec~ao paralela.
Contrastando com a projec~ao paralela, na projec~ao perspectiva linhas paralelas convergem, o tamanho do objeto e reduzido a medida que a sua dist^ancia ao centro de projec~ao
aumenta e ocorre um encurtamento n~ao uniforme das linhas do objeto em func~ao da orientac~ao e da dist^ancia do objeto ao centro de projeca~o. Todos estes efeitos ajudam na
percepc~ao de profundidade do sistema visual humano (embora a forma do objeto n~ao seja
preservada). Por este motivo, v~ao-se considerar aqui apenas as projec~oes perspectivas.
O plano de projec~ao e completamente arbitrario, sendo de nido pela sua normal (VPN)
e pela sua dist^ancia (View Distance) ao centro de projec~ao (COP). Uma vez determinado o
plano de projec~ao, especi ca-se sobre ele uma area retangular, chamada janela, que, juntamente com o COP, determina uma pir^amide semi-in nita. A janela e de nida sobre o plano
de projec~ao a partir de dois eixos ortogonais que, juntamente com o VPN, formam o sistema
de coordenadas da c^amara (VRC). A origem deste sistema e a projec~ao do COP no plano
de projeca~o. Os dois eixos coordenados sobre o plano de projec~ao cam determinados por
um vetor, chamado VUP, cuja projec~ao sobre o plano de projeca~o determina, diretamente,
o primeiro deles. Chamando o eixo indeterminado de u, o eixo na direc~ao do VPN, de n e
o eixo na direc~ao da projeca~o de VUP, de v, tem-se que u = n  v, de forma que u, v e n
formam um sistema de m~ao esquerda. A janela e especi cada, ent~ao, por suas coordenadas
mnimas e maximas ao longo de u e v.
Para limitar o volume de vis~ao, especi ca-se um par de planos - frontal e traseiro, paralelos ao plano de projec~ao, distando F (near) e B (far) em relac~ao ao COP, ao longo da
linha que une o COP ao centro da janela. Para que o volume de vis~ao seja positivo, exige-se
F < B . O volume de vis~ao e ent~ao um tronco de pir^amide ( g. 8.2).

view plane
VUP
v
n = VPN
left hand

window

sv

view
distance

su

(cu,cv)

F
near

far

Vp= COP

Figura 8.2: Sistema de Coordenadas da C^amara.

109

~
~
8.3. TRANSFORMAC
 OES
DE VISUALIZAC
 AO

8.3 Transformac~oes de Visualizac~ao


Uma vez especi cados os par^ametros de visualizac~ao, uma serie de transformac~oes devem ser
aplicadas aos objetos, de forma a mapea-los para espacos mais apropriados a execuc~ao dos
algoritmos de visualizaca~o. Estas transformaco~es podem ser convenientemente realizadas
por meio de coordenadas homog^eneas e transformaco~es projetivas.
Toda transformaca~o linear bijetiva do <4 induz, naturalmente, uma transformaca~o no
espaco projetivo (captulo 5). Esta transformaca~o e chamada de transformac~ao projetiva
induzida e e representada por uma matriz 4  4. Uma sequ^encia de transformac~oes pode
ser agrupada, pela concatenac~ao das matrizes individuais de cada transformac~ao, em uma
unica matriz. Esta propriedade permite concentrar as transformac~oes de visualizac~ao em
matrizes que fazem o mapeamento de um espaco de refer^encia para o outro.
Assumindo que os objetos ja foram transformados para o espaco da cena, estes ser~ao
subsequentemente transformados para o espaco da c^amara (uma translac~ao seguida de uma
mudanca de base).
 Translada-se o COP ( V V V 1 ) para a origem;
 Roda-se o VRC de forma a que o eixo n coincida com o eixo z, que o eixo u coincida
com o eixo x e que o eixo v coincida com o eixo y (troca-se o sistema de coordenadas:
x; y; z ! u; v; n).
Isto e feito pela transformaca~o representada pela matriz V , a seguir. A matriz A, n~ao mostrada, representa a translaca~o e a matriz B faz a mudanca de base, podendo ser facilmente
determinada a partir da relac~ao abaixo:
B (u v n) = I ) B = (u v n) 1 = (u v n) ;
T

px

py

pz

u
Bv
V = BA = B
@n
0

u
v
n

u
v
n

u:V
v:V
n:V

C
C
A

u
Bu
V 1=B
@u
0

x
y

v
v
v

x
y

n
n
n

x
y

V
V
V

px
py

C
C
A

0 0 0 1
0 0 0 1
O proximo passo e calcular a transformaca~o de normalizac~ao para que o volume de vis~ao
seja transformado no volume can^onico (pir^amide normalizada), de nido pelos planos:
x = z; x = z; y = z; y = z; z = z ; z = 1:
As etapas necessarias s~ao:
 Aplicar um cizalhamento de forma a que o segmento de reta que une o COP ao centro
da janela seja posicionado sobre o eixo z ( g. 8.3).
 Aplicar fatores de escala, em relaca~o aos tr^es eixos, para que o volume de vis~ao seja
mapeado no volume can^onico ( g. 8.4).
x

min

pz

110

~
CAPITULO 8. VISUALIZAC
 AO

y, x

view plane

(cu,cv)
sv
sv

COP

Figura 8.3: Cizalhamento.


y, x
(-1,1,1)

COP

(-1,-1,1)

Figura 8.4: Escala.


A matriz C faz o cizalhamento baseado nas seguintes relac~oes:
c
c
x0 = x
z;
y0 = y
z;
z 0 = z:
d
d
u

Assim, o centro da janela ca sobre o eixo z: ( c c d ) ! ( 0 0 d ) ;


1 0 c =d 0
C = 00 10 c1 =d 00 :
0 0 0 1
As equac~oes dos planos que limitam a pir^amide s~ao dadas, respectivamente, por:
s
s
x =  z;
y =  z;
z = 1:
d
d
u

B
B
@

C
C
A

A matriz D, abaixo, transforma os pontos da seguinte forma:


 ((s =d)f (s =d)f f ) ! ( 1 1 1 );
u

111

~
~
8.3. TRANSFORMAC
 OES
DE VISUALIZAC
 AO








( (s =d)f (s =d)f f ) ! ( 1 1 1);


( (s =d)f (s =d)f f ) ! ( 1 1 1 );
((s =d)f (s =d)f f ) ! (1 1 1);
(0 0 n ) ! (0 0 z ) ; z = n=f ;
(0 0 d ) ! ( 0 0 d=f );
(0 0 f ) ! ( 0 0 1 ).
u

min

min

0
0 0
0
d=
(
s
f
)
0 0
D=
0
0 1=f 0 :
0
0
0 1
N e a matriz resultante, que leva os pontos para o espaco normalizado.
d=(s f )
0
c =(s f ) 0
0
d=
(
s
f
)
c =(s f ) 0 ;
N = DC =
0
0
1=f
0
0
0
0
1
s f=d
0 c f=d 0
0 s f=d c f=d 0 :
N 1=
0
0
f
0
0
0
0 1
O ultimo passo e encontrar a transformac~ao projetiva da pir^amide normalizada no prisma
retangular unitario:
1  x  1; 1  y  1; 0  z  1:
Esta etapa e executada em tr^es passos:
1) Translada-se z para a origem ( g 8.5);
2) Escala-se na direc~ao z para que o plano traseiro coincida com o plano z = 1;
3) Aplica-se a transformac~ao perspectiva ( g. 8.6):
0

d=(s f )

B
B
@

C
C
A

B
B
@

B
B
@

C
C
A

C
C
A

min

1
translac~ao = T1 = 00
0
0
B
B
@

0
1
0
0

0
0
1
0

0
0
z
1

min

1
C
C
A

112

~
CAPITULO 8. VISUALIZAC
 AO

x,y

z
1

zmin

COP

1-zmin

Figura 8.5: Transformac~ao Perspectiva - Passo 1).


y, x
view plane
x, y = z
zmin

zmin

COP

x, y = -z

y, x
1
zmin

view plane

-zmin
______
1-zmin
zmin
1

COP

Figura 8.6: Transformaca~o Perspectiva - Passos 2) e 3).


1
escala = T2 = 00
0
1
perspectiva = T3 = 00
0
0
B
B
@

0
B
B
@

0
0
1
0
0 1=(1 z )
0
0
0
0
1
0
0
1
0 (1 z )=z
min

min

0
0
0
1

1
C
C
A

min

0
0
0
1

1
C
C
A

113

~
~
8.3. TRANSFORMAC
 OES
DE VISUALIZAC
 AO

1 0
0
0
T3 T2 T1 = 00 10 1=(1 0 z ) z =(10 z ) :
0 0 1=z
0
A matriz P , que leva os pontos para o espaco da ordenaca~o, difere da matriz acima por um
fator de escala 1=z em x, y e z. Este fator de escala e necessario porque a transformac~ao
perspectiva empregada n~ao altera os pontos sobre o plano z = 0, logo o tronco de pir^amide
foi levado no prisma com dimens~oes 2z , em x e y, e z em z.
1=z
0
0
0
0 1=z
0
0
S  T3 T2 T1 =
0
0 1=(z (1 z )) 1=(1 z ) :
0
0
1=z
0
Por m, multiplicando-se esta ultima matriz por z obtem-se a matriz P . Isto pode
ser feito uma vez que a multiplicaca~o de uma matriz que representa uma transformac~ao
projetiva por um escalar n~ao altera a transformaca~o (no nal a divis~ao por w "compensa"o
efeito).
1 0
0
0
1 0
0
0
0
0 :
P = 00 10 1=(1 0 z ) z =(10 z ) ; P 1 = 00 10
0
1
0 0
1
0
0 0 1 1=z 1=z
Neste processo, a origem e levada para o in nito, ou seja, o COP passa a estar no in nito,
de maneira que projetar neste espaco signi ca executar uma projec~ao paralela ortogra ca
(ignorar a coordenada z).
As transformac~oes projetivas utilizadas nas etapas anteriores se caracterizavam por manter os pontos do espaco a m2, e os pontos ideais3, invariantes, ou seja, pontos do espaco a m
eram transformados em pontos do espaco a m e pontos ideais em pontos ideais. No entanto,
o ultimo passo exige um tipo de transformaca~o projetiva, chamada transformaca~o perspectiva, que n~ao possui esta caracterstica de invari^ancia (a imagem de pelo menos um ponto
ideal e um ponto do espaco a m, o que cria um ponto
de fuga). Um ponto P = (x ; y ; z ; 1)
0
do espaco a m e transformado em um ponto P = (x; y; z; w) do espaco projetivo. Para
obter o ponto correspondente do espaco a m e necessario dividir cada coordenada de P 0 por
w: (x ; y ; z ; 1) = (x=w; y=w; z=w; 1). Como z n~ao varia linearmente com z | a medida
que z se aproxima do plano traseiro, z se aproxima de 1 mais rapidamente | surgem
problemas quando se deseja interpolar quantidades, afora posic~oes, no espaco de Ordenac~ao
(por exemplo, na colorizac~ao de Gouraud, onde e feita uma interpolaca~o de intensidades).
Como ja foi dito, sem justi cativa, o espaco de Ordenac~ao n~ao e o espaco no qual a
func~ao de iluminaca~o deve ser avaliada. Isto porque, esta avaliac~ao envolve, entre outras
coisas, o produto escalar entre a normal e a direca~o da fonte de luz, no ponto a ser iluminado.
0

B
B
@

C
C
A

min

min

min

min

min

min

min

min

B
B
@

min

min

min

min

C
C
A

min

min

B
B
@

C
C
A

B
B
@

C
C
A

min

min

min

min

min

2 Pontos da forma (x; y; z; 1):


3 Pontos da forma (x; y; z; 0).

114

~
CAPITULO 8. VISUALIZAC
 AO

Uma vez que as transformac~oes de visualizac~ao n~ao s~ao isometricas (envolvem cizalhamento,
fatores de escala distintos em cada direc~ao e perspectiva), os ^angulos n~ao s~ao preservados e,
consequentemente, o produto escalar tambem n~ao. Por este motivo, avalia-se a func~ao de
iluminac~ao no espaco da Cena, ou em qualquer espaco isometrico a ele, por exemplo, o espaco
da C^amara. Na colorizaca~o de Phong, por exemplo, e necessario fazer uma interpolaca~o de
normais em cada pixel. Neste caso, e aplicada a transformaca~o inversa, de forma a mapear
o ponto de volta ao espaco da C^amara e al avaliar a func~ao de iluminac~ao.
Um quest~ao importante e como aplicar transformac~oes projetivas a normais. Considerando o caso simples em que a superfcie e poligonal, isto signi ca transformar a normal a
um plano. Sendo N = ( A B C D ), um plano e de nido como o conjunto dos pontos
P = ( x y z 1 ) tais que N:P = 0 ou, na forma de matriz, N :P = 0. Supondo-se que
todos os pontos do plano foram transformados por uma matriz M , para manter N :P = 0
para os pontos transformados, deve-se transformar N por uma matriz Q, a ser determinada,
tal que: (Q:N ) :M:P = 0. Reescrevendo esta express~ao como N :Q :M:P = 0, concluise que Q :M deve ser um multiplo da matriz identidade. Se o fator multiplicativo for 1,
chega-se a Q =0 (M 1 ) , signi cando que o vetor normal N 0 do plano transformado por M
e dado por: N = (M 1 ) :N . Esta express~ao tem aplicaca~o importante em modelagem geometrica, onde e comum aplicarem-se deformaco~es aos objetos e as normais (que costumam
fazer parte do banco de dados) devem sofrer as mesmas deformac~oes.
T

8.3.1 Mapeamento para Viewport

O programador especi ca uma viewport 3D, contida no espaco de coordenadas do dispositivo,


0xX ; 0yY ; 0zZ ;
na qual o volume de vis~ao e mapeado.
Dada uma viewport 3D, o mapeamento do volume de vis~ao, para as coordenadas do dispositivo, e feito em quatro etapas4 ( g. 8.7):
1) Translada-se o volume de vis~ao can^onico de forma a que o vertice ( 1 1 0 1) va
para a origem e aplica-se um fator de escala de 0.5 em x e y.
2) Escala-se o volume para as dimens~oes da viewport 3D.
3) Translada-se o novo volume para o canto inferior esquerdo da viewport 3D.
4) Arredonda-se para o pixel virtual mais proximo.
max

max

A matriz K faz a translaca~o e a escala inicial:


0:5 0
K = 00 00:5
0 0
0
B
B
@

0
0
1
0

max

0:5
0:5
0
1

1
C
C
A

4 Em alguns dispositivos, as coordenadas (0; 0) correspondem ao canto superior esquerdo da tela, devendo-se, neste

caso, fazer Ymax

y.

115

~
~
8.3. TRANSFORMAC
 OES
DE VISUALIZAC
 AO

y
(2,2,0)
(1,1,0)

(1,1,0)

(-1,-1,0)

Figura 8.7: Mapeamento para Viewport.


A matriz L executa o mapeamento de NDC para as coordenadas do dispositivo:
X
X
0
0
X
0
Y
Y
0
Y
L=
:
0
0
Z
Z
Z
0
0
0
1
A matriz M executa o arredondamento:
1 0 0 0:5
M = 00 10 01 00::55 :
0 0 0 1
A matriz D e a matriz resultante, onde  = (i
i ) e r = (i + i ):
 =2 0 0 (r + 1)=2
0  =2 0 (r + 1)=2 ;
D = MLK =
0
0  Z + 0:5
0
0 0
1
0

max

min

B
B
@

min

max

min

min

max

B
B
@

C
C
A

max

min

min

min

max

C
C
A

min

B
B
@

C
C
A

min

2= 0
0
(r + 1)=
0
2
=

0
(r + 1)= :
D 1=
0
0 1= (Z + 0:5)=
0
0
0
1
Esta e a ultima etapa nas transformaco~es de visualizaca~o. O mapeamento completo, do
espaco da cena para o espaco da imagem, e dado ent~ao pela matrix DP NV . Apos aplicarse esta matriz a um ponto, basta truncar as coordenadas resultantes para obterem-se as
coordenadas inteiras de tela correspondentes (isto pode ser feito, em C, pela func~ao oor).
O mapeamento inverso, do espaco da imagem para o espaco da cena, e dado pela matrix
V 1N 1P 1D 1.
0

B
B
@

min

C
C
A

116

~
CAPITULO 8. VISUALIZAC
 AO

8.4 Exerccios
8.1 Quais s~ao as principais operac~oes de visualizac~ao?
8.2 Enumere os espacos de refer^encia para especi caca~o das operac~oes de visualizaca~o e
descreva as suas caractersticas. Explique por que eles s~ao adequados as respectivas operac~oes.
8.3 Descreva os par^ametros que especi cam uma c^amara virtual.
8.4 Discuta o processamento das transformaco~es de visualizaca~o para modelos parametricos
e implcitos.
8.5 Mostre que no caso da projec~ao paralela a matriz P N deve ser substituda pela matriz
O dada abaixo:

1=s 0
0
0
1
=s
0
O=
0 0 1=(f n)
0 0
0

c =s 1
c =s C
C
n=(f n) A ; O

B
B
@

0
0
s
1=
0 0
0 0
0

B
B
@

0 c
0 c
f n n
0 1

C
C
A

8.6 Um plano de recorte traseiro no in nito acarreta problemas nas transformaco~es apresentadas neste captulo. Por exemplo, a matrix N ca com todos os elementos nulos exceto
N [4][4] = 1 (o que isso signi ca?). Neste caso, e necessario que se de na um novo volume
de vis~ao can^onico para o recorte. Recomenda-se deixar o plano traseiro no in nito, ao inves
de mapea-lo para o plano z = 1, mapeando-se o plano de vis~ao z = d no plano z = 1.
a) Derive um mapeamento que leve z
em 0 e deixe z = 1 inalterado (z
= n=d),
em seguida mapeie o plano traseiro (no in nito) no plano z = d=(d n). Ent~ao,
pre-multiplicando por (d n)=d, obtenha:
min

1=s 0
0 1=s
N1 =
0 0
0 0

c =(s d)
c =(s d)
1=d

B
B
@

min

0
0 ;
0
1
1
C
C
A

1
P1 = 00
0

0
1
0
0

0
B
B
@

0
0
1
1

0
0
n=d
0

1
C
C
A

b) No caso da projec~ao paralela, derive o mapeamento que leva o plano frontal no plano
z = 0 e o plano de vis~ao no plano z = 1, para obter:

1=s 0
0
0 1=s
0
O1 =
0 0 1=(d n)
0 0
0
0

B
B
@

c =s 1
c =s C
C
n=(d n) A :
u

Cap
tulo 9

Recorte
O recorte e uma operac~ao muito importante no contexto da Computac~ao Gra ca devido a
variedade de suas aplicaco~es. Uma de nic~ao precisa de recorte e a seguinte:
De nic~ao: Dada uma superfcie M fechada de co-dimens~ao 1 do < , o complemento de
M , < M , possui duas componentes conexas. Se S e um subconjunto do < , chama-se
de recorte de S por M a operaca~o que consiste em determinar os subconjuntos de S que
est~ao em cada uma das componentes conexas de M ( g. 9.1).
n

Recorte

Separacao

Intersecao

Algoritmos

Figura 9.1: Modelo Conceitual.


Quando n = 3, M e uma superfcie fechada do <3 e diz-se que o recorte e tri-dimensional.
Qundo n = 2, M e uma curva fechada do <2 e diz-se que o recorte e bi-dimensional. A
maioria das aplicaco~es de Computac~ao Gra ca usa recorte bi-dimensional, onde S e uma
curva poligonal ou simplesmente um ret^angulo, ou recorte tri-dimensional, onde a superfcie
S e um poliedro, um prisma retangular ou uma pir^amide.
Dentre as aplicaco~es do recorte uma das mais importantes, pelo papel que desempenha
no processo de visualizac~ao, e a determinac~ao dos objetos contidos na pir^amide de vis~ao.
Esta operac~ao precisa ser realizada com a maior e ci^encia nos algoritmos de visualizac~ao,
para uma classe bem de nida de primitivas geometricas. Os unicos algoritmos que n~ao
utilizam o recorte explicitamente s~ao aqueles baseados no tracado de raios (ray tracing).
Outras aplicaco~es do recorte dizem respeito as areas de visibilidade, realismo, simulac~ao,
selec~ao (pick) de primitivas, modelagem e sistemas interativos.
Na area dos algoritmos de visibilidade, pode-se citar o metodo de Weiler-Atherton que
utiliza o recorte recursivo de polgonos para resolver o problema da visibilidade. Varios
algoritmos para a visualizac~ao de sombras se resumem, essencialmente, em operaco~es de
recorte e projeca~o.
117

118

CAPITULO 9. RECORTE

O recorte pode ser empregado como um metodo padr~ao para implementar a operac~ao
de pick. Para isto, um pequeno ret^angulo circundando o cursor, chamado janela de pick,
e usado para determinar que primitivas est~ao na vizinhanca do cursor. A maioria das
primitivas s~ao trivialmente rejeitadas e, dentre as aceitas, aquela de mais alta prioridade e
a selecionada.
Na modelagem solida, o recorte e empregado de maneiras diversas, dentre as quais se
destaca o seu uso em operac~oes CSG. Sistemas de interface com o usuario baseados em
janela utilizam recorte no processo de superposica~o de varias janelas.
O recorte aplicado aos algoritmos de visibilidade tem como nalidade primaria eliminar
todos os objetos fora do campo de vis~ao da c^amara virtual. Essa operac~ao se faz necessaria
por motivo de e ci^encia e, principalmente, para evitar que objetos atras do centro de projec~ao sejam mapeados erroneamente no plano de projec~ao.
Existem outras tecnicas que, em alguns casos, podem ser aliadas ao recorte na execuc~ao
desta tarefa. Um exemplo e a eliminac~ao de polgonos de superfcies fechadas, orientados
na direc~ao oposta a da c^amara virtual que, por este motivo, n~ao s~ao visveis.
Os algoritmos de recorte podem operar com uma con gurac~ao espec ca ou arbitraria.
No primeiro caso, a geometria da superfcie de recorte e pre-de nida, de modo a simpli car
a execuc~ao do algoritmo. As transformac~oes de visualizac~ao deformam a pir^amide de vis~ao
com este intuito.
Dependendo do sistema de visualizac~ao, o recorte pode operar com tipos diferentes de
dados geometricos. Os tipos mais comuns s~ao segmentos de reta e polgonos. Outras primitivas geometricas, tais como superfcie algebricas e parametricas, requerem um processo
mais complexo de recorte e podem, alternativamente, ser aproximadas por polgonos, antes
da visualizaca~o.
O metodo empregado no recorte pode envolver uma soluc~ao direta ou recursiva. No
primeiro caso, a intersec~ao e calculada analiticamente, enquanto que, no segundo, o objeto
a ser recortado e subdividido recursivamente, ate que as suas partes estejam inteiramente
dentro ou fora do volume de recorte.
O calculo do recorte pode ser exato ou aproximado. Muitas vezes, n~ao e necessario um
calculo preciso da interseca~o. Metodos recursivos de recorte, geralmente, operam dentro de
uma determinada toler^ancia.

9.1 Recorte de Segmentos de Reta


O algoritmo mais conhecido de recorte foi criado por Cohen & Sutherland. A partir dele,
varios outros algoritmos foram desenvolvidos visando uma maior e ci^encia. Esta classe de
algoritmos utiliza uma regi~ao de recorte retangular, alinhada com os eixos principais do
sistema de coordenadas.
O algoritmo de Cohen-Sutherland e baseado na classi cac~ao das extremidades do segmento de reta, determinando, em primeiro lugar, se o segmento pode ser trivialmente aceito
ou rejeitado. Caso n~ao possa, ele e recortado em uma das arestas do ret^angulo, sendo dividido em dois segmentos, sendo, pelo menos um, trivialmente rejeitado. Assim, o segmento
e recortado iterativamente sempre testando-se a sua trivial aceitac~ao ou rejeic~ao, havendo
uma subdivis~ao caso o teste falhe, ate que esteja completamente dentro do ret^angulo de
recorte ou seja rejeitado. O algoritmo e particularmente e ciente no caso de um ret^angulo

119

9.1. RECORTE DE SEGMENTOS DE RETA

muito grande que contem quase todos os segmentos, ou no caso de um ret^angulo muito
pequeno, onde ocorre a situac~ao inversa (quase todos os segmentos s~ao rejeitados).
O grande merito do algoritmo esta na forma de testar se um segmento pode ser trivialmente aceito ou rejeitado. Para isto, no caso bi-dimensional, as arestas do ret^angulo s~ao
prolongadas, dividindo o plano em nove regi~oes, conforme explicitado na gura 9.2. Cada
uma dessas regi~oes possui um codigo de 4 bits, determinado pelo lado em que a regi~ao esta
em relac~ao aos semi-planos criados pelas arestas do ret^angulo (1 signi ca que a regi~ao n~ao
esta no mesmo semi-plano do ret^angulo de recorte).
p1
1001

1000

1010

p2

cod1=cod2=0

0010

0000

0001

0110

0100

0101

a esquerda da janela

a direita da janela

cod and 2 = 2

cod and 1 = 1

Figura 9.2: Regi~oes no Recorte.


Supondo-se a ordem aresta superior, inferior, esquerda e direita, a extremidade (x; y) do
segmento pode ser classi cada testando se:
y>y

max

; y<y

min

; x<x

min

; x>x

max

Um codigo 0001 signi ca que o ponto esta abaixo da aresta superior, acima da aresta
inferior, a direita da aresta esquerda e a direita da aresta direita. Se o codigo de ambas as
extremidades for 0000 signi ca que o segmento pode ser trivialmente aceito. Se a operaca~o
logica AND entre os bits correspondentes de cada codigo n~ao resultar em 0000, o segmento
pode ser trivialmente rejeitado:
(c1 & c2 ) ! = 0 ! rejeito,
(c1 == 0 && c2 == 0) ! aceito.
A intersec~ao de um segmento com a reta y = Y pode ser facilmente calculada parametricamente:
Y P1 :y
y = (1 t)P1 + tP2 ou y = P1 :y + t(P2 :y P1 :y) ) t = 
(P2 :y P1 :y) :
Assim, y = Y e x = P1 :x + t (P2 :x P1:x): Os codigos de operaca~o tambem s~ao facilmente
determinados:
cod = (P1 :y > Y ) ? 8 : ((P1 :y < Y ) ? 4 : 0);
Y

120

CAPITULO 9. RECORTE

cod ^ = (P1 :x > X ) ? 1

: ((P1 :x < X ) ? 2 : 0):


O algoritmo de Cohen-Sutherland pode ser aplicado ao caso tri-dimensional. Neste caso,
tem-se uma superfcie de recorte que e um paraleleppedo ou um tronco de pir^amide. Cada
face e prolongada dando origem a 27 regi~oes. O codigo passa a ter 6 bits. No maximo seis
intersec~oes s~ao calculadas, uma para cada lado do volume de vis~ao.
E possvel adotar-se um unico algoritmo de recorte tanto para a projec~ao paralela, como
para a perspectiva, desde que, no caso da projec~ao perspectiva, o recorte seja feito apos a
transformac~ao perspectiva, em coordenadas homog^eneas. Alem da vantagem obvia de poder
ser utilizado um unico algoritmo (otimizado) de recorte, certas transformaco~es projetivas
(pouco usadas) e splines racionais podem produzir um valor negativo para a coordenada
homog^enea w. Neste caso, apenas o recorte em coordenadas homog^eneas ira produzir o
resultado correto. O volume de vis~ao can^onico da projec~ao paralela e dado por:
1  x  1; 1  y  1; 0  z  1:
As inequac~oes correspondentes em coordenadas homog^eneas s~ao:
1  wx  1; 1  wy  1; 0  wz  1;
que podem ser reescritas como:
w  x  w; w  y  w; 0  z  w : w > 0;
w  x  w; w  y  w; 0  z  w : w < 0:
No caso do recorte de segmentos de reta, somente o caso w > 0 (normalmente w = 1)
interessa, uma vez que antes da transformac~ao perspectiva todos os pontos possuem w > 0.
o

9.2 Recorte de Polgonos


O algoritmo de recorte de polgonos tri-dimensionais, de Sutherland-Hodgman, foi um marco no desenvolvimento da Computac~ao Gra ca. Ate ent~ao, os algoritmos de recorte de
polgonos eram estruturados de maneira semelhante aos algoritmos de recorte de segmentos
de reta. Cada aresta era analisada em relac~ao a regi~ao de recorte como um todo. Isto
acarretava na perda da conectividade do polgono recortado. A soluc~ao deste problema
topologico foi inverter a ordem das operac~oes, considerando a interseca~o de cada plano de
recorte em relac~ao ao polgono como um todo. O problema deste algoritmo e que ele so
funciona se a regi~ao de recorte for convexa e as partes desconexas do polgono resultante
s~ao ligadas por um segmento de reta.
Um algoritmo generico de recorte de polgonos contra polgonos foi desenvolvido por
Weiler e utiliza uma estrutura de dados baseada em topologia. O proposito deste algoritmo
e permitir a sua utilizaca~o na implementac~ao de operac~oes CSG.
9.3 Exerccios
9.1 Qual o proposito do recorte na visualizac~ao?

9.3. EXERCICIOS

121

9.2 Discuta os principais conceitos envolvidos no recorte.


9.3 Enumere os tipos basicos de algoritmos de recorte.
9.4 Explique o esquema de classi cac~ao de pontos do algoritmo de Sutherland-Cohen.
9.5 Compare as estrategias do algoritmo de recorte de linhas de Sutherland-Cohen contra
o algoritmo de recorte de polgonos de Sutherland-Hodgman.
9.6 No contexto de um sistema de visualizac~ao tri-dimensional, discuta as vantagens do
uso de um algoritmo de recorte 3D para os objetos contra um recorte 2D aplicado as projec~oes
dos objetos.
9.7 Crie um algoritmo de recorte (e implemente-o) que ao inves de aceitar as partes dos
segmentos de reta contidas na janela faz o oposto; aceita as partes dos segmentos fora da
janela. D^e uma aplicac~ao deste novo algoritmo.
9.8 Crie um algoritmo de recorte especializado em:
a) Ret^angulos alinhados com os eixos coordenados.
b) Ret^angulos genericos.
c) Circunfer^encias.
d) Tri^angulos.

9.9 Implemente o algoritmo de recorte, em coordenadas homog^eneas, para segmentos de


reta.

122

CAPITULO 9. RECORTE

Cap
tulo 10

Rasterizac~ao
A descrica~o dos objetos em cena e dada, geometricamente, em uma forma vetorial (pontos,
polgonos, curvas e superfcies parametricas ou implcitas, etc.). Esses objetos de nem
superfcies e curvas que comp~oem a partic~ao da tela virtual em regi~oes visveis, nas quais a
func~ao de iluminaca~o sera calculada.
O problema que se coloca e a convers~ao de dados no formato vetorial para o formato
matricial | que e o formato aceito por grande parte dos dispositivos gra cos | o que,
matematicamente, corresponde a discretizacao da func~ao de iluminac~ao a partir da partic~ao
uniforme da tela virtual em um certo numero nito de elementos chamados pixels, com o
entuito de obter-se uma representac~ao nita. A rasterizac~ao enumera ent~ao os pontos de
uma regi~ao digital da tela virtual, associada as regi~oes visveis da cena, que correspondem
aos pontos nos quais a func~ao de iluminaca~o deve ser amostrada.
Conversao
Vetorial - Matricial

Discretizacao

Amostragem

Rasterizacao

Figura 10.1: Modelo Conceitual.


O processo de rasterizac~ao consiste, basicamente, em uma enumerac~ao da regi~ao digital
correspondente a essas regi~oes visveis ( g. 10.2).
A forma de rasterizac~ao de ne a estrutura computacional do processo de enumerac~ao
dos elementos da imagem (pixels). Ela pode ser incremental, por subdivis~ao ou analtica:
 A rasterizac~ao incremental possui uma etapa de inicializac~ao | onde s~ao feitos os
calculos dos valores iniciais e dos incrementos das funco~es associadas a geometria do
objeto | e uma fase de iterac~ao, que consiste no calculo incremental dessas funco~es,
fornecendo os valores relativos a cada pixel enumerado por esse processo.
 A rasterizac~ao por subdivis~ao consiste, essencialmente, na divis~ao recursiva da su123

124

~
CAPITULO 10. RASTERIZAC
 AO

Figura 10.2: Processo de Enumerac~ao.


perfcie, o que, normalmente, e feito em quatro etapas: determinac~ao da projec~ao da
superfcie no plano da imagem; teste de parada da subdivis~ao; divis~ao da superfcie;
e enumerac~ao dos pixels. Como exemplo, cita-se o algoritmo para a determinac~ao da
visibilidade de superfcies, de Warnock.
 A rasterizac~ao analtica tem uma estrutura algoritmica bastante simples: para todo
pixel potencialmente contido na projec~ao da superfcie na tela virtual, calcula-se a
intersec~ao da superfcie com um raio que parte do centro de projec~ao e passa pelo pixel
em quest~ao. Se a intersec~ao n~ao for vazia esse elemento sera ocupado. O calculo da
intersec~ao se reduz ao uso de algum metodo numerico que determine o ponto onde uma
semi-reta intercepta a superfcie do objeto1 .
A rasterizac~ao estabelece uma relac~ao entre os objetos da cena e as regi~oes da imagem
digital. Esse processo e, essencialmente, geometrico. Entretanto, para garantir resultados
corretos, precisa-se levar em conta o metodo que sera utilizado para se obter a amostragem
da func~ao de intensidade de cor.

10.1 Rasterizac~ao de Elementos Lineares


A rasterizac~ao de elementos lineares (segmentos de reta, polgonos, etc.) e bastante utilizada
em Computac~ao Gra ca, pois grande parte dos modelos utilizam uma representac~ao Brep poligonal. O algoritmo pioneiro dessa famlia foi introduzido por Bresenham, para a
rasterizaca~o de um segmento de reta.
Os algoritmos de rasterizaca~o de elementos lineares empregam, principalmente, formas
incrementais de rasterizaca~o.
10.1.1 Rasterizac~ao de Segmentos de Reta

Os algoritmos para rasterizac~ao de segmentos computam as coordenadas dos pixels que


est~ao sobre, ou proximos a, uma linha ideal, in nitamente na, restringida a um reticulado
2D na resoluca~o do dispositivo.
1 No caso de superfcies algebricas, o problema se reduz, apos a substituic~ao, a determinaca~o dos zeros de um

polin^omio de uma variavel.

125

~ DE ELEMENTOS LINEARES
10.1. RASTERIZAC
 AO

A abordagem mais simples consiste em calcular a inclinac~ao m = dy=dx para | incrementando x de uma unidade, a partir do ponto inicial | calcular, para cada x , o valor de
y = mx + B e acender o pixel na posica~o (x , round(y )). Este metodo escolhe, em cada
passo, o pixel mais proximo a linha, ou seja, aquele cuja dist^ancia a linha e menor. O seu
incoveniente e que a cada iterac~ao s~ao necessarias operac~oes de ponto utuante: multiplicac~ao, adica~o e chamada a func~ao round. A multiplicaca~o pode ser eliminada, notando-se
que ( g. 10.3):
y +1 = mx +1 + B = m(x + x) + B = y + mx;
e se x = 1, ent~ao y +1 y = m. Isto signi ca que um incremento em x de uma unidade
muda y de m, que e a inclinac~ao da linha. Para todos os pontos (x ; y ) sobre a linha, tem-se
que se x +1 = x + 1, ent~ao y +1 = y + m2 .
A inicializaca~o corresponde a atribuir os valores inteiros da extremidade esquerda a
(x0 ; y0). Se jmj > 1, um passo unitario em x cria um passo > 1 em y. Neste caso, os papeis
de x e y devem ser invertidos, ou seja, y e incrementado de uma unidade e x por x = 1=m.
Na implementaca~o deste algoritmo, as variaveis m e y devem ser reais, porque a inclinac~ao
e uma frac~ao. Alem do mais, a avaliac~ao da func~ao round toma tempo.
i

(xi+ x,yi+ y)
y
(xi,yi)

)m
x

Figura 10.3: Coe ciente Angular de um Segmento.


O algoritmo do ponto medio visa eliminar estes problemas. Ele parte do princpio de
que, uma vez selecionado o pixel P = (x ; y ), a escolha do proximo pixel se restringe entre
o pixel uma coluna para a direita, na mesma linha, chamado E , e o pixel uma coluna para
a direita e uma linha para cima, chamado NE . Sendo Q o ponto de intersec~ao do segmento
com a linha do reticulado em x = x + 1, o algoritmo veri ca de que lado o ponto medio
M = (x + 1; y + 1=2) esta. Se estiver acima do segmento, escolhe-se E . Se estiver abaixo,
escolhe-se NE , conforme explicitado na gura 10.4.
p

Representando-se a linha de forma implcita, tem-se:


F (x; y) = ax + by + c = 0:
Na forma explcita, com inclinac~ao 0  dy=dx  1, escreve-se:
dy
y = x + B;
dy = y1 y0 > 0;
dx = x1
dx
2 Os valores de x e y est~ao de nidos em termos dos seus valores anteriores.

x0 > 0;

126

~
CAPITULO 10. RASTERIZAC
 AO

(xp+1,yp+1)

M NE = (xp+2,yp+3/2)

(xp+2,yp+1)
NE

E
M E = (xp+2,yp+1/2)
(xp+2,yp)

M=(xp+1,yp+1/2)

(xp,yp)

(xp+1,yp)

Figura 10.4: Algoritmo do Ponto Medio.


ou xdy ydx + Bdx = 0. Igualando-se os termos, obtem-se: a = dy; b = dx e c = Bdx:
Um ponto y, acima do segmento, comparado com o ponto y0 = (dy=dx)x + B , sobre o
segmento, fornece:
dy
y > y0 = x + B
ou ydx > xdy + Bdx ) 0 > xdy ydx + Bdx;
dx
ou seja: F (x; y) = xdy ydx + Bdx < 0 para pontos acima do segmento: Para pontos sobre
o segmento, F (x; y) = 0 e para pontos abaixo do segmento, F (x; y) > 0. A gura 10.5
da uma interpretac~ao geometrica, considerando o gra co da funca~o F (x; y) no <3 e a reta
de nida implicitamente como a curva de nvel F (x; y) = 0.
Para aplicar o criterio do ponto medio, e necessario calcular
F (M ) = F (x + 1; y + 1=2)
e testar o sinal. De nindo-se uma variavel
d = F (x + 1; y + 1=2) = a(x + 1) + b(y + 1=2) + c;
escolhe-se o pixel NE , se d > 0 e o pixel E , se d < 0. Se for escolhido NE , a variavel d
deve ser avaliada, na proxima iterac~ao, no ponto (x + 2; y + 3=2):
3
3
d = F x + 2; y + = a(x + 2) + b y + + c:
2
2
Subtraindo o valor anterior de d de d , obtem-se:
d = d + a + b = d + dy dx:
Se for escolhido o pixel E , a variavel d deve ser avaliada no ponto (x + 2; y + 1=2):
1
1
d = F x + 2; y + = a (x + 2) + b y + + c:
2
2
p

NE

NE

NE

old

old

127

~ DE ELEMENTOS LINEARES
10.1. RASTERIZAC
 AO

z=F(x,y)
n=(-a,-b,1)=(-dy,dx,1)

-B/m
m

B
y
F(x,y)<0

F(x,y)>0
x
F(x,y)=0

Figura 10.5: Gra co da func~ao F (x; y).


Subtraindo o valor anterior de d de d , obtem-se:
d = d + a = d + dy:
Em ambos os casos, o valor de d, no proximo passo, pode ser obtido incrementalmente, a
partir do seu valor no passo corrente. O valor inicial de d e calculado a partir do ponto
inicial (x0; y0 )3 :
1
1
d0 = F x0 + 1; y0 + = a (x0 + 1) + b y0 + + c
2
2
E

old

old

= ax0 + by0 + c + a + 2b = F (x0 ; y0) + a + 2b = a + 2b = dy dx2 :


Para evitar a divis~ao por 2, rede ne-se a func~ao F original:
F (x; y) = 2(ax + by + c):
Isto multiplica as constantes e a variavel d por 2, mas n~ao altera o sinal de d.
 d0 = 2dy dx,
 d = 2dy, se d  0;
 d = 2dy 2dx, se d > 0.
Tudo o que foi feito, ate agora, supunha que 0  dy=dx  1. Se dy=dx > 1, os papeis de
x e y s~ao invertidos. Dado que foi escolhido o pixel P = (x ; y ), a escolha do proximo pixel
se restringe entre o pixel uma linha para cima, na mesma coluna, chamado N , e o pixel uma
linha para cima e uma coluna para direita, chamado NE . Sendo Q o ponto de intersec~ao
E

NE

3 O ponto (x0 ; y0 ) esta sobre a linha, logo F (x0 ; y0 ) = 0.

128

~
CAPITULO 10. RASTERIZAC
 AO

do segmento com a coluna do reticulado em y = y + 1, o algoritmo veri ca de que lado o


ponto medio M = (x + 1=2; y + 1) esta. Se estiver a direita do segmento, escolhe-se N .
Se estiver a esquerda, escolhe-se NE . Um ponto x, a direita do segmento, comparado com
o ponto x0 = (dx=dy)y B , sobre o segmento, fornece:
p

x > x0 =

dx
y B
dy

ou

xdy > ydx Bdx ) 0 < xdy ydx + Bdx;

ou seja: F (x; y) = xdy ydx + Bdx > 0 para pontos a direita do segmento. Para pontos
sobre o segmento, F (x; y) = 0 e para pontos a esquerda do segmento, F (x; y) < 0.
Se for escolhido NE , a variavel d deve ser avaliada, na proxima iterac~ao, no ponto
(x + 3=2; y + 2):
3
3
d = F x + ; y + 2 = a x + + b(y + 2) + c:
2
2
Subtraindo o valor anterior de d de d , obtem-se:
d = d + a + b = d + dy dx:
Se for escolhido o pixel N , a variavel d deve ser avaliada no ponto (x + 1=2; y + 2):
1
1
d = F x + ; y + 2 = a x + + b(y + 2) + c:
2
2
Subtraindo o valor anterior de d de d , obtem-se: d = d + b = d dx. do seu valor
no passo corrente. O valor inicial de d e calculado a partir do ponto inicial (x0 ; y0):
1
1
d0 = F x0 + ; y0 + 1 = a x0 + + b(y0 + 1) + c
2
2
p

NE

NE

NE

old

old

old

old

= ax0 + by0 + c + a2 + b = F (x0 ; y0) + a2 + b = a2 + b = dy2 dx:


F (x; y) = 2(ax + by + c). Isto multiplica as constantes e a variavel d por 2, Multiplicando-se
por 2 a func~ao F , obtem-se:
 d0 = dy 2dx,
 d = 2dx, se d  0;
 d = 2dy 2dx, se d < 0.
Para as outras inclinac~oes, 1  dy=dx < 0 ou dy=dx < 1, basta notar que a variavel
d deve ser calculada em (x + 1; y 1=2) ou (x 1=2; y + 1), respectivamente, e que
o criterio para a escolha entre E; N ou SE; NW ca invertido, assim como a escolha da
variavel incrementada ( g. 10.6).
 d0 = 2dy + dx;
 d = 2dy, se d  0,
N

NE

129

~ DE ELEMENTOS LINEARES
10.1. RASTERIZAC
 AO

 d = 2dy + 2dx, se d < 0.


SE

 d0 = dy 2dx;
 d = 2dx, se d  0,
N

d

NW

= 2dy 2dx, se d > 0.

dy > 0
y

dN,dNW
Inc y

dN,dNE
Inc y
1

x-1
y+1

Inc x

dx > 0

x+1
y+1

Inc x

x+1
y-1

x+1
y+1

dE,dNE

x+1
y+1

x+1
y-1

Inc x
x+1
y+1

x-1
y+1

dx > 0

Inc x

dE,dSE
-1

Inc y

Inc y
dy > 0

Figura 10.6: In u^encia das Inclinac~oes na Rasterizaca~o.


Para garantir que as linhas P0 P1 e P1 P0 tenham a mesma apar^encia, costuma-se tracar
a linha sempre da esquerda para a direita (do ponto com a menor coordenda x para o ponto
com a maior) ou de baixo para cima, de acordo com a inclinaca~o.
A intensidade de uma linha varia com a inclinac~ao, pois a diagonal de um quadrado
e maxima, valendo I , para
e p2 vezes mais extensa que os lados. Assim, a intensidade
p
linhas horizontais ou verticais, decaindo ate o valor I= 2 para uma linha com inclinaca~o
1, assumindo que o mesmo numero de pixels e usado para tracar ambas as linhas. Para dispositivos com mais de duas intensidades para os pixels, esta discrep^ancia pode ser
compensada, variando-se a intensidade em func~ao da inclinac~ao.
Podem-se rasterizar PolyLines da mesma forma, um segmento por vez, mas os vertices
comuns devem ser acendidos uma unica vez, pois no modo xor estes pontos teriam a cor
do fundo e, no caso de um lme, estes pontos teriam uma intensidade dobrada. Da mesma
forma, segmentos muito proximos, ou que se cruzam, apresentam o mesmo tipo de problema.

130

~
CAPITULO 10. RASTERIZAC
 AO


10.1.2 Preenchimento de Areas

A tarefa de preencher areas consiste em enumerar os pixels que se encontram no interior


da area, para que sejam atribudas as cores aproriadas. O processo de enumeraca~o e feito
analisando segmentos horizontais | chamados linhas de varredura (scans) | e preenchendo,
da esquerda para a direita, grupos de pixels adjacentes | chamados segmentos de varredura
(spans) | contidos na interseca~o da linha de varredura com a area ( g. 10.7).
x
b
y

linha de varredura
1

spans

Figura 10.7: Preenchimento de Polgonos.


O exemplo mais simples corresponde a uma area retangular preenchida com uma cor
unica. Neste caso, existe uma forte coer^encia espacial, que determina que dentro do mesmo
segmento de varredura a cor n~ao muda e que linhas de varredura que interceptam o ret^angulo
determinam segmentos de varredura id^enticos. Para evitar que a aresta comum a dois
ret^angulos seja desenhada duas vezes, costuma-se considerar que um pixel em uma aresta
n~ao faz parte do ret^angulo se o semi-plano, de nido pela aresta e contendo o ret^angulo,
estiver abaixo ou a esquerda da aresta ( g. 10.8). Assim, as arestas direita e superior do
ret^angulo n~ao s~ao desenhadas4.
O caso geral de preenchimento de polgonos (c^oncavos, convexos, com furos e n~ao necessariamente simples) pode ser tratado de maneira similar: calculando segmentos de varredura
entre as arestas direita e esquerda do polgono. Os extremos dos segmentos de varredura
s~ao calculados incrementalmente, a partir da intersec~ao da linha de varredura anterior com
as arestas:
 Encontre a intersec~ao da linha de varredura com todas as arestas.
 Ordene as intersec~oes em ordem crescente de coordenada x.
4 O vertice no canto inferior esquerdo continua sendo desenhado duas vezes.

131

~ DE ELEMENTOS LINEARES
10.1. RASTERIZAC
 AO

Figura 10.8: Preenchimento de Ret^angulos.


 Preencha todos os pixels entre pares consecutivos de intersec~oes (1 - 2, 3 - 4, ...)5 .

As intersec~oes podem ser calculadas, incrementalmente, adaptando-se o algoritmo de


rasterizac~ao de linhas. Para garantir que apenas pontos interiores ao polgono s~ao desenhados, quando um valor fracionario e calculado, arredonda-se para cima, no caso de arestas de
entrada, ou para baixo, no caso de arestas de sada do polgono. Se a extremidade esquerda
de um segmento de varredura e inteira, ela e de nida como interior ao polgono. No caso
da extremidade direita, ela e de nida como externa.
O ponto de maior coordenada y de uma aresta n~ao e considerado (sera desenhado apenas
se for o ponto de menor coordenada y da proxima aresta), garantindo que os vertices n~ao
s~ao desenhados duas vezes. Com este criterio, arestas horizontais podem ser descartadas.
Por quest~ao de e ci^encia, na determinac~ao das intersec~oes, a implementaca~o do algoritmo
utiliza uma tabela de arestas (ET), que contem todas as arestas ordenadas em ordem
crescente de coordenada y mnima (y ). Normalmente, existem tantas entradas quanto
linhas de varredura. Em cada posic~ao da tabela existe uma lista de arestas, ordenadas em
ordem crescente de coordenada x (correspondente a y ), com as arestas com o mesmo
valor y . Em cada registro desta lista est~ao armazenadas a coordenada y da aresta, a
coordenada x e o incremento em x, 1=m (o inverso da inclinaca~o).
Existe uma outra estrutura de dados, chamada AET, que contem as arestas ativas (aquelas interceptadas pela linha de varredura corrente). Ao inves de x , existe o campo x, que
contem a coordenada x da intersec~ao da aresta com a linha de varredura corrente. Nesta
lista, as arestas est~ao ordenadas em ordem crescente de coordenada x. O algoritmo segue
a seguinte sequ^encia:
 Atribua a y a menor coordenada y armazenada na ET.
 Inicialise a AET (vazia).
 Repita ate que a AET e a ET estejam vazias:
Remova da AET as arestas com y = y.
Mova para a AET as arestas da ET cujo y = y, fazendo x = x .
Ordene a AET em ordem crescente de x.
Preencha os pixels entre pares consecutivos de coordenadas x da AET.
min

min

min

min

max

min

min

min

max

min

5 Intersec~oes mpares s~ao pontos de entrada e as pares s~ao pontos de sada do polgono.

min

132

~
CAPITULO 10. RASTERIZAC
 AO

Incremente y de uma unidade.


Para cada aresta da AET, atualize x de acordo com o novo y.
A gura 10.9 mostra o preenchimento das duas tabelas para o polgono da gura 10.7.
No caso da AET, considere-se a linha de varredura mostrada naquela gura.
ET

ymax xmin 1/m

ba

bc

ea

dc
Y-1

ymin
AET
ba

ea

dc

bc

Figura 10.9: Tabela de Arestas e Tabela de Arestas Ativas.


Note-se que como o algoritmo n~ao considera o ponto de maior coordenada y em cada
aresta, n~ao e necessario nenhum cuidado especial quando a linha de varredura intercepta um
vertice do polgono. Normalmente, a determinac~ao de ponto em polgono e feita disparandose um tiro horizontal, com origem no ponto a ser testado, e contando-se o numero de
intersec~oes com a fronteira do polgono. Se o numero for impar o ponto esta dentro e se for
par esta fora. No caso do tiro passar exatamente por um vertice, conta-se uma interseca~o
apenas se o vertice corresponder ao mnimo (ou maximo, faca uma escolha) da aresta.
Arestas horizontais s~ao simplesmente ignoradas ( g. 10.10).

10.2 Rasterizac~ao de Elementos n~ao Lineares


Podem-se utilizar, na descrica~o geometrica das superfcies do modelo, elementos n~ao lineares, tais como superfcies parametrizadas, superfcies implcitas, etc. E possvel obter-se
uma aproximaca~o B-rep poligonal desses elementos, de modo a efetuar o processo de visualizac~ao dos modelos. No entanto, e util, muitas vezes, executar o processo de rasterizaca~o
diretamente da equac~ao, em geral n~ao linear, que de ne a superfcie do modelo. Essas
tecnicas de rasterizaca~o empregam, em geral, os metodos por subdivis~ao ou analticos.

133

~ DE ELEMENTOS NAO
~ LINEARES
10.2. RASTERIZAC
 AO

ambas minimas
2

minima

1=3

1=1

pontos dentro
maxima

1 = 1 dentro
horizontal --> ignore

ambas maximas

minima
1

num intersecoes:

dentro

impar --> dentro


par --> fora
maxima

Figura 10.10: Ponto em Polgono.


Aqui, vai-se apresentar um algoritmo incremental para rasterizaca~o de crculos e elipses
no plano, com eixos alinhados aos eixos coordenados.
10.2.1 Rasterizac~ao de Crculos

Considere-se o crculo padr~ao, centrado na origem (0,0):


F (x; y) = x2 + y2 R2 ;
onde R e o raio do crculo. O algoritmo utiliza o fato de que ha uma simetria entre os arcos
situados nos oito octantes ( g. 10.11). Vai-se considerar, ent~ao, apenas o segundo octante.
y
(x,y)

(-x,y)

3
(-y,x)

(-y,-x)

8
6

(-x,-y)

(y,x)
x
(y,-x)

7
(x,-y)

Figura 10.11: Simetria em um Crculo.

134

~
CAPITULO 10. RASTERIZAC
 AO

Como acontece em todo algoritmo baseado no ponto medio, existe uma func~ao implcita
| de decis~ao ou de densidade | que e avaliada no ponto medio entre dois pixels e que e
usada para determinar se o ponto medio esta dentro ou fora do crculo. No segundo octante,
se o pixel corrente esta em (x ; y ), a funca~o d e avaliada no ponto (x + 1; y 1=2) | o
ponto medio entre E e SE ( g. 10.12). Se o proximo pixel for o pixel E , o proximo ponto
medio estara em (x + 2; y 1=2). Assim:
1 = (x + 1)2 + y 1 2 R2 ;
d = F x + 1; y
2
2
1 = (x + 2)2 + y 1 2 R2 ; se d < 0:
d = F x + 2; y
2
2
Veri ca-se que d = d + (2x + 3). Se o proximo pixel for o pixel SE , tem-se:
3 = (x + 2)2 + y 3 2 R2; se d  0:
d = F x + 2; y
2
2
Assim, d = d + (2x 2y + 5). A condica~o inicial e calculada assumindo-se R inteiro
e que o crculo inicia em (0; R). O primeiro ponto medio e calculado em (1; R 1=2):
1 = 1 + R 1 2 R2 = 5 R:
d0 = F 1; R
2
2
4
p

old

old

old

SE

SE

(xp+1,yp)

(xp+2,yp-1)

(xp,yp)
E

M=(xp+1,yp-1/2)

SE

=(xp+2,yp-1/2)

(xp+1,yp-1)
M

=(xp+2,yp-3/2)
SE
(xp+2,yp-2)

Figura 10.12: Algoritmo do Ponto Medio para Crculos.


A func~ao de decis~ao d assume valores negativos em pontos interiores ao crculo; valores
positivos em pontos exteriores; e vale zero em pontos sobre o crculo. Isto pode ser visto, a
partir da gura 10.13, interpretando o gra co da funca~o F no <3, que e um paraboloide. O
crculo corresponde a curva de nvel F (x; y) = 0. Conclui-se, ent~ao, que se d < 0 escolhe-se
o pixel E e se d > 0 escolhe-se o pixel SE . Se d = 0 a escolha e arbitraria, por exemplo,
escolha-se o pixel E .

135

~ DE ELEMENTOS NAO
~ LINEARES
10.2. RASTERIZAC
 AO

z=F(x,y)

F(x,y)=0
F(x,y)<0
y

F(x,y)>0
x

Figura 10.13: Gra co da Func~ao F (x; y).


Pode-se fazer uma mudanca de variavel h = d 1=4 ou d = h + 1=4. Desta forma,
h0 = 1 R e o teste d < 0 e substitudo por h < 1=4. Como h inicia com um valor
inteiro e e sempre incrementado por valores inteiros, pode-se utilizar o teste h < 0 sem
problema. Os incrementos n~ao s~ao alterados pela adic~ao da constante 1=4. Assim, obtemse um algoritmo que pode ser implementado, inteiramente, com aritmetica inteira.
10.2.2 Rasterizac~ao de Elipses

Considere-se a elipse padr~ao, centrada na origem (0,0):


F (x; y) = b2 x2 + a2 y2 a2 b2 ;
onde 2a e o comprimento do eixo maior, sobre o eixo x e 2b o comprimento do eixo menor,
sobre o eixo y. O algoritmo utiliza o fato de que ha uma simetria entre os arcos situados
nos quatro quadrantes. Considerando, ent~ao, apenas o primeiro quadrante, este e dividido
em duas regi~oes. A fronteira destas regi~oes e a linha que parte da origem e passa pelo ponto
da elipse cuja tangente tem inclinac~ao -1. Neste ponto o vetor gradiente tem inclinac~ao
+1, ou seja, sua componente x iguala a componente y. Na regi~ao 1, adjacente ao eixo y, a
componente y e maior do que a x e na regi~ao 2 a componente x e maior do que a y.
Como acontece em todo algoritmo baseado no ponto medio, existe uma func~ao implcita
| de decis~ao ou de densidade | que e avaliada no ponto medio entre dois pixels e que e
usada para determinar se o ponto medio esta dentro ou fora da elipse. Na regi~ao 1, se o
pixel corrente esta em (x ; y ), a func~ao d1 e avaliada no ponto (x +1; y 1=2) | o ponto
medio entre E e SE . Se o proximo pixel for o pixel E , o proximo ponto medio estara em
(x + 2; y 1=2). Assim:
1 = b2(x + 1)2 + a2 y 1 2 a2b2 ;
d = F x + 1; y
2
2
p

old

136

~
CAPITULO 10. RASTERIZAC
 AO

1 = b2(x + 2)2 + a2 y 1 2 a2b2 ; se d1 < 0:


d = F x + 2; y
2
2
2
Veri ca-se que d = d + b (2x + 3). Se o proximo pixel for o pixel SE , tem-se:
3 = b2 (x + 2)2 + a2 y 3 2 a2 b2; se d1  0:
d = F x + 2; y
2
2
Assim, d = d + b2 (2x + 3) + a2 ( 2y + 2). Na regi~ao 2, se o pixel corrente esta em
(x ; y ), a funca~o d2 e avaliada no ponto (x + 1=2; y 1):
1 2 + a2(y 1)2 a2b2 ;
1
d = F x + ; y 1 = b2 x +
2
2
1
1 2 + a2(y 2)2 a2 b2; se d2  0;
d = F x + ; y 2 = b2 x +
2
2
3
3 2 + a2(y 2)2 a2 b2; se d2 < 0:
d = F x + ; y 2 = b2 x +
2
2
2
Assim, d = d + a ( 2y +3) e d = d + b2(2x +2)+ a2 ( 2y +3). A condic~ao inicial
e calculada assumindo-se valores inteiros a e b e que a elipse inicia em (0; b). O primeiro
ponto medio e calculado em (1; b 1=2):
1 = b2 + a2 b 1 2 a2 b2 = b2 + a2 b + 1 :
d10 = F 1; b
2
2
4
A cada iteraca~o na regi~ao 1, deve-se testar se e necessario trocar de regi~ao. Isto e feito,
avaliando-se o gradiente no ponto medio entre E e SE . Quando o ponto medio passa para a
regi~ao 26 , a func~ao de decis~ao passa a ser d2 , que e inicializada, a partir do ultimo pixel na
regi~ao 1, no ponto (x + 1=2; y 1). Quando o valor y do pixel for 0, o algoritmo termina.
1 2 + a2 (y 1)2 a2b2 :
1
d20 = F x + ; y 1 = b2 x +
2
2


SE

old

SE

old

old

SE

old

old

SE

10.3 Amostragem
Quando foi discutido o paradigma dos quatro universos, frisou-se que, na passagem do
universo matematico para o universo de representaca~o, era-se obrigado a fazer uma discretizac~ao do modelo para obter-se uma representac~ao nita. Para discretizar uma funca~o7 ,
deve-se colher um numero nito de amostras, que servir~ao para caracteriza-la, conforme
pode ser visto na gura 10.14.
Para obter-se novamente a func~ao original deve-se fazer algum tipo de interpolac~ao dos
dados amostrados. Esse processo de interpolac~ao e conhecido como a reconstruc~ao da func~ao
ou do sinal. A reconstruca~o pode ser entendida como um processo de descrever uma func~ao
6 a2 (yp 1=2)  b2 (xp + 1).
7 Designignada, em engenharia, como um sinal.

137

~ EXATA
10.4. RECONSTRUC
 AO

Figura 10.14: Amostragem de um Sinal.


em relac~ao a uma base. Por exemplo, os multiplicadores de Lagrange constituem um metodo
de interpolac~ao que utiliza uma base polinomial. Uma interpolac~ao linear utliza a func~ao
chapeu ( g. 10.15) que e uma func~ao linear por partes dada por:
L(x) = 1 x

se 0  x  1;

x+1

se

1  x < 0;

0 se

x<

1 ou

x > 1:

Assim, p(x) = =0 y L(x j ); y = f (j ); conforme ilustrado na gura 10.15. Um monitor


de vdeo reconstroi uma imagem digital utilizando uma base Gaussiana.
Pn
j

10.4 Reconstruc~ao Exata


A pergunta apropriada neste momento e: sera que sempre e possvel reconstruir a func~ao
original de forma exata? Esta pergunta e respondida pelo teorema de amostragem de
Shannon. Se o sinal for de banda limitada ele pode ser reconstrudo de forma exata a partir
de um conjunto de amostras uniformes tomadas pelo menos a uma taxa duas vezes maior
do que a maior frequ^encia presente no sinal. Este e o chamado limite de amostragem de
Nyquist. O processo de reconstruc~ao envolve a teoria de transformada de Fourier e n~ao sera
abordado nexte texto.
y

Figura 10.15: Interpolac~ao Linear.

138

~
CAPITULO 10. RASTERIZAC
 AO

10.5 Aliasing
Quando o sinal n~ao e de banda limitada, ou a amostragem e feita abaixo do limite de
Nyquist, pode acontecer que uma componente de alta frequ^encia presente no sinal seja
reconstruda como uma componente de baixa frequ^encia, dita um alias da componente
original. Este fen^omeno e designado por aliasing ( g. 10.16). As tecnicas de anti-aliasing,
que visam minimizar o problema, ou aumentam a taxa de amostragem ou ltram as altas
frequ^encias presentes no sinal.

Figura 10.16: Aliasing de um Sinal.


Em audio limitam-se as frequ^encias presentes em uma musica de acordo com a acuidade
do ouvido humano, que detecta sons com frequ^encias que variam de 16Hz a 22KHz. Isto e
o que torna uma gravac~ao em CD aceitavel8 .
Quando o sinal de interesse representa uma imagem contnua (um sinal bi-dimensional),
S : <2 !  (<3 );
ele pode conter frequ^encias in nitas, que s~ao percebidas visualmente (por exemplo, um
tabuleiro de xadrez visto em perspectiva). Uma soluc~ao e ltrar as altas frequ^encias, o que
substitui o aliasing por rudo.

10.6 Tipos de Amostragem


Existem dois tipos basicos de amostragem: pontual e por area. Na amostragem pontual e
colhida uma unica amostra por pixel. Como os pixels possuem area, surge o problema de
escolher o ponto dentro do pixel que de ne a amostra, pois, em func~ao disto, podem ser
amostrados objetos diferentes (sinais diferentes). Na amostragem por area ou analtica, os
objetos s~ao recortados contra a area de um pixel e e feita uma estimativa da area de cada
parte de cada objeto contido no pixel ( g. 10.17). A cor do pixel e dada pela media das
cores das partes, ponderada pela area de cada parte:
C
= A1cA1 1++AA2 c22++::::::++AA c :
Este processo equivale a aplicar um ltro de passa baixa na imagem seguido de uma amostragem pontual.
n

pixel

8 Embora alguns puristas digam que a qualidade sonora ca comprometida, por causa da eliminac~ao dos harm^onicos.

139

10.6. TIPOS DE AMOSTRAGEM

Pixel
A3
A4
A2
A1

Figura 10.17: Amostragem por A rea.


A tecnica de superamostragem subdivide os pixels em sub-pixels. Em cada subpixel e
feita uma amostragem pontual e a cor do pixel e dada pela media das cores dos sub-pixels:
C
= I (i; j ) ;
m;n

pixel

i;j

=1

mn

onde I (i; j ) de ne a cor do sub-pixel (i; j ). No limite, quando o numero de sub-pixels vai
para in nito (m; n ! 1), a superamostragem e equivalente a amostragem por area9 .
Quando existe o canal alpha, que de ne a opacidade do pixel, e possvel usa-lo para
compor imagens com anti-aliasing embutido.

9 Esta e a ideia por tras do metodo de Monte Carlo.

140

~
CAPITULO 10. RASTERIZAC
 AO

10.7 Exerccios
10.1 Quais s~ao os principais metodos de rasterizaca~o? Descreva as suas estrategias.
10.2 Discuta as relac~oes entre rasterizac~ao e amostragem.
10.3 Qual e o algoritmo de rasterizaca~o mais adequado para:
a) Modelos Implcitos
b) Modelos Poligonais
c) Retalhos Bi-cubicos
Justi que a sua resposta.

10.4 Implemente o algoritmo do ponto medio para rasterizaca~o de linhas, inclusive suportando estilos de linha (tracejado, pontilhado, traco ponto, etc.) e espessura de linha. Em
seguida:
a) Explique o funcionamento do algoritmo.
b) Em que caso a rasterizac~ao depende da direca~o do segmento? Como contornar esse
problema?
c) Discuta maneiras de "casar", adequadamente, linhas com estilo e com espessura.
Sugest~ao: utilize dois bytes (16 bits) para especi car o padr~ao (estilo) da linha. Assim,
especi ca um traco com quatro pontos e um espaco de quatro pontos,
criando uma linha tracejada.

1111000011110000

10.5 Implemente o algoritmo do ponto medio para rasterizaca~o de crculos. Assuma que
o centro e o raio do crculo s~ao arbitrarios, porem inteiros.
10.6 Demonstre que o algoritmo do ponto medio para rasterizac~ao de linhas forca uma
escolha apropriada de sinal, que produz um movimento correto, mesmo em casos degenerados, nos quais o pixel selecionado (x; y) e a interseca~o real para a proxima abcissa (x + 1)
n~ao acontece entre os valores de ordenada y e y + 1, por exemplo ( g. 10.18):

1, como no ponto (2; 1) na linha de (0; 0) a (7; 2)


Entre y + 1 e y + 2, como no ponto (2; 1) na linha de (0; 0) a (7; 5).

a) Entre y e y
b)

10.7 O algoritmo do ponto medio assume que as extremidades dos segmentos possuem
coordenadas inteiras. Crie um algoritmo que elimine esta restrica~o.
10.8 Descreva um procedimento para rasterizac~ao recursiva de um crculo unitario:
S 1 = f(x; y) 2 <2 ; x2 + y2 = 1g:

141

10.7. EXERCICIOS

(2,2)

(3,2)

(3,3)
(7,5)

(7,2)

(0,0)
(2,1)

(3,1)

Figura 10.18: Casos Degenerados no Algoritmo do Ponto Medio para Retas.


10.9 Desenvolva um procedimento incremental para a rasterizaca~o de tri^angulos.
10.10 Analise a rasterizac~ao incremental de tri^angulos, polgonos convexos, e polgonos
arbitrarios.
10.11 Desenvolva um procedimento por teste exaustivo para a rasterizac~ao de esferas descritas de forma implcita.
10.12 Discuta um metodo de anti-aliasing por super amostragem adaptativa em ray tracing.
Sugest~ao: divida inicialmente o pixel em quatro sub-pixels.
10.13 Analise o princpio de construc~ao da Summed Area Table baseado nas propriedades
das integrais.

142

~
CAPITULO 10. RASTERIZAC
 AO

Cap
tulo 11

Visibilidade
A quest~ao da visibilidade foi um dos aspectos centrais da Computac~ao Gra ca durante
uma parte do seu desenvolvimento: foi o primeiro passo na direc~ao do fotorealismo e a
sua soluc~ao tinha relac~oes profundas com as outras operac~oes do processo de visualizac~ao.
Este papel privilegiado se justi ca na medida em que os algoritmos de visibilidade precisam
estruturar as operac~oes de visualizac~ao para a obtenc~ao da imagem ( g. 11.1):
 As transformac~oes de visualizac~ao devem ser realizadas numa determinada ordem, de
modo a levar os objetos para um sistema de coordenadas que permita uma ordenac~ao
e ciente, levando em conta a transformaca~o perspectiva.
 A determinaca~o da regi~ao digital da tela virtual associada as regi~oes visveis (rasterizac~ao) pode ser combinada de diversas formas com as etapas de um algoritmo de
visibilidade.
 Uma vez determinadas as superfcies visveis, o calculo da func~ao de iluminac~ao indicara
a cor dos elementos correspondentes da imagem (pixels).

Visibilidade

Sistemas de
Coordenadas

Ordenacao

Particao da
Tela Virtual

Figura 11.1: Modelo Conceitual.


A visibilidade se coloca de maneira bastante diferenciada em func~ao da natureza da
imagem a ser visualizada. Se a imagem e composta apenas por linhas, empregam-se os
chamados algoritmos de linhas escondidas; se a visualizac~ao de superfcies e importante,
empregam-se os algoritmos de superfcies escondidas.
Atualmente, com o avanco da industria de equipamentos gra cos, varias tecnicas de
visibilidade s~ao incorporadas, diretamente, no hardware e os algoritmos de linhas escondidas
costumam ser usados apenas em certos tipos de desenhos tecnicos de engenharia.
143

144

CAPITULO 11. VISIBILIDADE

11.1 Classi cac~ao dos Algoritmos


O problema da visibilidade consiste, essencialmente, na determinaca~o das superfcies mais
proximas ao observador, que, consequentemente, estar~ao visveis. Este problema envolve,
basicamente, uma ordenac~ao parcial: ate a primeira superfcie opaca em cada vizinhanca
da imagem.
Os algoritmos de visibilidade podem ser divididos entre os que operam na precis~ao do
espaco da cena e aqueles que operam na precis~ao do espaco da imagem:
 Os que operam com precis~ao da cena utilizam, normalmente, numeros reais com ponto
utuante. Pode-se dizer que eles calculam a soluc~ao exatamente e o resultado e uma
lista ordenada das faces a serem projetadas no plano da tela virtual.
 Os que operam com precis~ao de imagem est~ao interessados na soluc~ao correta do problema para um determinado nvel de resoluc~ao. Neste caso, o algoritmo procura resolver o
problema no a^mbito de cada elemento da imagem (pixel), analisando as profundidades
relativas em cada raio de vis~ao, sendo a visibilidade adiada ate o ultimo momento.
Os algoritmos de visibilidade podem ser classi cados de acordo com o metodo de ordenac~ao utilizado para determinar as superfcies visveis do ponto de vista da c^amara virtual.
A ordenac~ao empregada nos algoritmos esta intimamente ligada com a operac~ao de rasterizaca~o, que determina a regi~ao digital da tela virtual correspondente aos objetos em cena
(objetos que ocupam ares disjuntas da imagem s~ao independentes em termos de visibilidade). Alem disso, a rasterizaca~o pode ser vista como um processo de ordenac~ao pelo qual
faz-se uma enumerac~ao espacial dos pixels ocupados por cada objeto. Essencialmente, a
rasterizaca~o resulta na ordenac~ao em X e Y , enquanto a visibilidade na ordenac~ao em Z
(profundidade), no sistema de coordenadas normalizadas.
As estruturas computacionais dos algoritmos de visibilidade fazem uso das seguintes
sequ^encias de ordenaca~o: Z (XY ); (XY )Z ; Y XZ (os par^enteses indicam operac~ao de ordenac~ao combinada). Essas tr^es estruturas de ordenac~ao correspondem a tr^es tipos de
algoritmos que resolvem:
 a visibilidade antes da rasterizac~ao (z-Sort, Partic~ao do Espaco, Recorte Recursivo);
Calculam a visibilidade exatamente, processando a ordenac~ao em Z globalmente, a
nvel de objetos ou faces dos objetos.
 a rasterizac~ao antes da visibilidade (z-Bu er, Subdivis~ao Recursiva, Tracado de Raios);
Calculam a visibilidade na precis~ao da imagem, reduzindo o problema da ordenac~ao
para uma vizinhanca dos pixels.
 a rasterizaca~o integrada com a visibilidade (Scanline);
Utilizam uma soluc~ao intermediaria, operando em segmentos unidimensionais associados as linhas da imagem (spans).
11.2 Transformac~ao Perspectiva
A despeito do tipo de projeca~o utilizada, a determinaca~o da visibilidade de dois pontos se
resume em descobrir se um ponto obscurece o outro, ou seja, se p1 e p2 est~ao sobre o mesmo

145

11.3. BACK-FACE CULLING

projetor. A determinaca~o da visibilidade deve ser feita no espaco tri-dimensional, antes


que a projeca~o (que leva os pontos para o espaco bi-dimensional) destrua a informac~ao de
profundidade necessaria as comparac~oes.
As comparaco~es de profundidade s~ao realizadas, normalmente, apos a transformaca~o de
normalizaca~o1 , de forma que os projetores s~ao paralelos ao eixo z, na projec~ao paralela, ou
emanam da origem, no caso da perspectiva. Para a projec~ao paralela, os raios est~ao sobre o
mesmo projetor quando x1 = x2; y1 = y2. Para a perspectiva, devem ser realizadas quatro
divis~oes:
x1 x2
y1 y2
=
;
= :
z1 z2
z1 z2
Estas divis~oes podem ser evitadas se for utilizada a transformac~ao perspectiva, que transforma a pir^amide de vis~ao normalizada no prisma retangular unitario, levando o centro de
projec~ao para o in nito na direc~ao z. A transformac~ao perspectiva n~ao altera as relac~oes
de profundidade, ou seja:
z1 < z2 ! P (z1 ) < P (z2 ), como pode ser visto abaixo2 .
1 0 0
0
0
0
P = 00 10 1=a
z =a ; z > 0; a = (1 z ) > 0; 0 < z1 < z2 ;
0 0 1
0
0

B
B
@

C
C
A

min

1z
b=
z1 a


min

1z
>c=
z2 a


min

min

) P (z1 ) =

min

1
b+

< P (z2 ) =

1
c+

Com a transformaca~o perspectiva, o observador passa a estar no in nito na direca~o z.


Assim, uma sequ^encia crescente de coordenadas z positivas, ou uma sequ^encia crescente de
coordenadas z negativas, se afasta do observador.

11.3 Back-Face Culling


Se a superfcie de um objeto e aproximada por uma superfcie poligonal sem bordo, ent~ao
as faces s~ao polgonos e englobam completamente o volume do objeto. Assumindo-se que as
normais de todas as faces apontam para fora do volume, tem-se que as faces, cujas normais
apontam na direca~o contraria ao observador, est~ao numa parte do poliedro cuja visibilidade
e bloqueada por outras faces mais proximas ao observador. Deve-se assumir, tambem, que
o poliedro e convexo e n~ao sofreu recorte contra o plano frontal de recorte.
Em coordenadas da cena, uma face obstruda pode ser identi cada pela n~ao negatividade
do produto escalar da sua normal com o vetor de nido pelo centro de projec~ao e qualquer
ponto do polgono ( g. 11.2).
Se a transformaca~o perspectiva foi aplicada, sendo utilizada uma projec~ao ortogra ca no
plano xy, ent~ao a direc~ao de projec~ao e (0; 0; +1). Neste caso, o teste de obstruc~ao com o
produto escalar se reduz em veri car se a normal a face possui uma coordenada z positiva .
1 Os metodos baseados no tracado de raios n~ao utilizam transformaca~o de normalizaca~o.
2 A transformac~ao P assume que a pir^amide de vis~ao normalizada esta no semi-espaco z positivo .

146

CAPITULO 11. VISIBILIDADE

ang < 90

ang > 90

N
visivel

obstruido
>0

<0

Figura 11.2: Back-Face Culling.


Se a cena e composta apenas por um unico poliedro, ent~ao, back-face culling e o unico
metodo de visibilidade que precisa ser aplicado. Um projetor que atravessa um poliedro
intercepta o mesmo numero de faces visveis e obstrudas. Por isso, um ponto qualquer
na projec~ao do poliedro esta na projec~ao do mesmo numero de faces visveis e obstrudas
e o metodo de back-face culling reduz a metade o numero de polgonos que precisam ser
considerados pelos metodos de visibilidade com precis~ao de imagem.

11.4 z-Bu er
O algoritmo z-Bu er, criado por Catmull, e, talvez, o algoritmo de visibilidade mais simples
de ser implementado tanto em software como em hardware. Este algoritmo requer que, alem
de um frame bu er que armazena os valores de cor para cada pixel, exista um z-Bu er, com
o mesmo numero de entradas, no qual o valor da coordenada z de cada pixel e armazenado.
O z-Bu er e inicializado com um, que representa o valor de z do plano de recorte traseiro
e o frame bu er com a cor de fundo. O menor valor z que pode ser colocado no z-Bu er
corresponde ao valor do plano de recorte frontal. Os polgonos s~ao rasterizados em qualquer ordem. Durante o processo de rasterizac~ao, se o ponto corrente do polgono sendo
rasterizado possuir um valor z menor do que o valor correspondente ja armazenado no zBu er (signi cando que n~ao esta mais afastado do observador do que o ponto previamente
armazenado), os seus valores de cor e de z substituem os valores dos bu ers.
Para calcular o valor z de um pixel, deve-se resolver a equac~ao do plano para a variavel
z , obtendo-se
D + Ax + By
z=
:
C
No entanto, para todos os pixels na mesma linha (y e constante), dado o valor z1 do primeiro

147

11.5. SCAN-LINE

pixel, ent~ao, o pixel em (x + x) (normalmente, x = 1) tem valor


Ax
z = z1
:
C

Um calculo incremental similar pode ser executado para descobrir o primeiro valor de z na
proxima linha (x e constante):
B y
;
y = 1:
z z1 =
C

O algoritmo do z-Bu er pode ser empregado com qualquer tipo de objeto, desde que um
valor de cor e de z possa ser determinado para cada ponto na sua projeca~o.

11.5 Scan-Line
Os algoritmos scan-line criam uma imagem por varredura3, linha por linha. Eles operam na
precisam da imagem determinando, incrementalmente, a intersec~ao de cada objeto da cena
com planos de nidos pelo ponto de vista e pelas linhas da imagem (em geral, planos da forma
y = cte) e se baseiam no tradicional algoritmo de rasterizac~ao de polgonos, que exploram
a coer^encia de arestas e linhas. A visibilidade e resolvida para intervalos correspondentes a
segmentos unidimensionais.
A diferenca em relaca~o ao processo de rasterizac~ao de um polgono e que, agora, existe
mais de um polgono a ser considerado. A tabela de arestas (ET ) contem todas as arestas
de todas as projeco~es dos polgonos (arestas horizontais s~ao ignoradas) e uma identi cac~ao,
para cada aresta, do polgono que a possui. Existe, tambem, uma tabela de polgonos
(P T ) que contem os coe cientes da equac~ao do plano do polgono, informac~ao de cor e um
ag, inicializado com falso, a ser usado durante a rasterizaca~o, para indicar se a linha de
varredura corrente (LC ) esta dentro ou fora do polgono.

A
C

scan

Figura 11.3: Tr^es Polgonos Disjuntos.


A tabela de arestas ativas (AET ) contem todas as arestas cortadas pela LC , ordenadas
de acordo com a coordenada x da intersec~ao com a LC .

3 Os processos de varredura buscam determinar a cor dos pixels, enumerando-os, um a um, a partir da primeira

linha ate a utima, e da esquerda para a direita, dentro da mesma linha.

148

CAPITULO 11. VISIBILIDADE

Quando a primeira aresta da AET e considerada, o ag do seu polgono e negado,


tornando-se verdadeiro. Polgonos com ag verdadeiro s~ao ditos ativos. A AET e percorrida
sequencialmente e os ags dos polgonos correspondentes v~ao sendo negados, signi cando
que, se a LC estava dentro do polgono, saiu e vice versa.
Quando a LC esta dentro de um polgono e, ao cruzar uma aresta ca dentro de um
outro polgono, o valor das coordenadas z, no ponto, indicam qual o polgono esta mais
proximo ao observador, passando a ser o polgono corrente (P C ), e a sua cor e atribuda
aos pixels da LC , deste ponto em diante.
Se, ao cruzar uma aresta, o ag do seu polgono torna-se falso, signi ca que a LC saiu
do polgono. Se for uma aresta do P C , ent~ao deve-se procurar qual o polgono, dentre os
ativos, esta mais proximo ao observador, passando a ser o novo P C . Se n~ao for uma aresta
do P C , e considerando-se que os polgonos n~ao se penetram, n~ao e necessario calculo de
coordenada z, uma vez que o P C continua estando mais proximo ao observador.
Ao se passar a proxima linha, as arestas n~ao mais cortadas s~ao retiradas da AET , novas
arestas, que passam a ser cortadas, s~ao includas, a ordenac~ao e refeita e o processo descrito
acima e repetido.

11.6 z-Sort
O algoritmo de z-Sort se baseia em uma lista de prioridades, assumindo que uma imagem
correta ira resultar se os objetos forem exibidos de acordo com as suas prioridades. Por
exemplo, se os objetos n~ao interferem na direc~ao z, tudo o que e necessario e ordena-los
em ordem decrescente de coordenada z, e depois exib-los nesta ordem. Os objetos mais
distantes ao observador (valores z maiores ) s~ao obstrudos pelos objetos mais proximos, a
medida que os pixels destes se sobrep~oem aos daqueles. Mesmo que haja interfer^encia na
direc~ao z, ainda assim e possvel determinar a ordem apropriada. Neste caso, se os objetos
se sobrep~oem ciclicamente ou se penetram, uma etapa de recorte e necessaria.
 Ordene todos os polgonos de acordo com o valor da coordenada z mnima de cada um.
 Resolva quaisquer ambiguidades causadas por uma sobreposic~ao na direc~ao z, recortando os polgonos.
 Rasterize os polgonos em ordem decrescente de coordenada z mnima.
Alguns sistemas gra cos (GKS, PHIGS) permitem a atribuic~ao explcita de prioridades,
que tomam o lugar do valor z mnimo. Assim, nunca ha ambiguidade, uma vez que cada
prioridade funciona como se os objetos estivessem em planos z = cte diferentes. Esta vers~ao
simpli cada do algoritmo e conhecida como algoritmo do pintor, fazendo uma analogia ao
modo de como um pintor desenha os objetos mais proximos sobre aqueles mais distantes. O
algoritmo do pintor pode ser aplicado ordenando-se os polgonos de acordo com a coordenada
z mnima de cada um, ou ordenando-se as coordenadas dos seus centroides. No entanto,
isto nem sempre funciona, conforme pode ser visto na gura 11.4.
Seja P o polgono (com maior z) no incio da lista ordenada. Antes que este polgono
seja rasterizado, deve-se testa-lo contra cada polgono Q, que inter ra com ele na direc~ao

149

11.6. Z-SORT

x,y
P

Observador

ordem correta:
P --> Q
Q

z
em ordem decrescente de zmin:
Q --> P

Figura 11.4: Problema Quando se Olha Apenas para um Ponto.


z4,

para provar que P n~ao obstrui Q, podendo, neste caso, ser rasterizado antes de Q.
Abaixo est~ao colocados cinco testes, em ordem crescente de complexidade, de forma a que,
assim que um deles seja satisfeito, tenha-se certeza de que P n~ao obscurece Q e o proximo
polgono Q, interferindo com P , e testado. Se todos os polgonos passarem, ent~ao P pode
ser rasterizado.
Os testes 1) e 2) s~ao executados normalmente baseados apenas nas bounding box 3D dos
polgonos. Ja o teste 5) e bastante trabalhoso de ser implementado e costuma ser ignorado.
1) Os polgonos n~ao interferem em x?
2) Os polgonos n~ao interferem em y?
3) P esta completamente no semi-espaco, gerado pelo plano de Q, oposto ao do observador? ( g. 11.5a)
4) Q esta completamente no mesmo semi-espaco, gerado pelo plano de P , do observador?
( g. 11.5b)
5) As projec~oes de P e Q no plano xy n~ao se sobrep~oem?
Se todos os testes falharem, e Q n~ao estiver marcado, assume-se, pelo momento, que P
obscurece Q e testa-se se Q pode ser rasterizado antes de P . Os testes 1,2 e 5 n~ao precisam
ser refeitos e os testes 3 e 4 s~ao executados trocando-se P por Q e vice-versa. Caso um
destes dois novos testes funcione, Q e marcado5 e movido para o incio da lista, tornando-se
o novo P . Caso contrario (Q marcado ou os dois testes falharam), P ou Q deve ser recortado
contra o plano do outro. O polgono original e descartado e os pedacos s~ao inseridos na
lista na posica~o apropriada.
4 zQ min < zP max  zQ max ou zP min < zQ max  zP max :
5 A marcac~ao e necessaria para evitar um ciclo in nito, com P e Q se revezando no incio da la.

150

CAPITULO 11. VISIBILIDADE

a)

b)
z
P
P
Q
Q

Observador

Observador

Figura 11.5: Teste 3 e 4.


y

R
Q
P
Q

Figura 11.6: Casos em que um Ciclo In nito Ocorre se n~ao Houver Marcac~ao.

11.7 Partic~ao do Espaco - BSP


Este tipo de algoritmo e extremamente e ciente para calcular a visibilidade de um conjunto
de polgonos 3D, a partir de um ponto de vista arbitrario. Inicialmente, uma etapa de
pre-processamento, que gasta tempo e espaco, e executada e, a partir da, sempre que a
c^amara virtual e reposicionada, os polgonos s~ao exibidos em tempo linear.
O princpio basico por detras do metodo e particionar o espaco usando um plano em
relac~ao ao qual, um conjunto de polgonos se situa em um lado, e o outro conjunto do lado
oposto. Desta forma, o conjunto que estiver no mesmo semi-espaco do observador pode
obstruir (mas n~ao ser obstrudo pelo) o outro conjunto. Cada um destes conjuntos pode
ser particionado, recursivamente, por novos planos de separac~ao. O objetivo e determinar
a ordem correta para a rasterizac~ao dos polgonos.
A partic~ao do espaco pode ser representada por uma arvore binaria (BSP), cuja raz

151

~ DO ESPAC
11.7. PARTIC
 AO
 O - BSP

corresponde a um polgono qualquer ( g. 11.7). O plano do polgono na raz (P R) e usado


para particionar o espaco em dois semi-espacos. O primeiro semi-espaco contem todos os
polgonos na frente de P R, em relac~ao a sua normal. O segundo contem os polgonos atras
de P R. Se um polgono se situar em ambos os semi-espacos ele e recortado contra o plano
de P R e suas partes s~ao associadas aos semi-espacos apropriados. Em cada um dos semiespacos, um polgono qualquer e escolhido para ser o seu lho da frente e outro o de tras e
cada um deles e usado para classi car, recursivamente, os polgonos em cada semi-espaco.
O algoritmo termina quando cada no contem apenas um polgono.

mesmo lado
da normal

lado oposto
a normal

1
2

2
5

Observador
3, 4, 1, 2, 5

Figura 11.7: Binary Space Partition Tree.


Uma vez especi cada a posic~ao do observador, a arvore deve ser percorrida, a partir
da raz, de forma a que o conjunto de polgonos no semi-espaco oposto ao do observador
seja exibido primeiro (o conjunto que pode ser obscurecido por P R), em seguida deve ser
exibido P R e, por m, os polgonos no mesmo semi-espaco do observador (aqueles que
podem obscurecer P R). Cada um dos lhos de P R deve ser processado, recursivamente,
da mesma forma.
Do mesmo modo que o algoritmo z-Sort, este algoritmo executa as etapas de ordenac~ao
e recorte de polgonos na precis~ao do objeto e utiliza, em precis~ao da imagem, a capacidade
de sobre-escrita de um dispositivo raster.

152

CAPITULO 11. VISIBILIDADE


11.8 Subdivis~ao de Area
Algoritmos de subdivis~ao de area seguem uma estrategia de dividir para conquistar, particionando, recursivamente, o quadrado, que corresponde a janela, no plano de projec~ao.
O algoritmo de Warnock, inicialmente, divide este quadrado em 4 partes iguais. Em cada
etapa do processo recursivo de subdivis~ao, a projec~ao de cada polgono se enquadra em uma
dentre quatro possveis relaco~es com a area de interesse, conforme a gura 11.8:
 O polgono circunda, completamente, a area.
 O polgono intercepta a area.
 O polgono esta completamente contido na area, dito contido.
 O polgono esta completamente fora da area, dito disjunto.

Figura 11.8: Quatro Relaco~es de Polgonos com um Elemento de A rea.


Polgonos disjuntos n~ao t^em in u^encia alguma sobre a area de interesse. A diferenca do
polgono com a area (a parte do polgono interceptado que n~ao esta contida na area) tambem
e irrelevante. A intersec~ao do polgono com a area (a parte do polgono interceptado que
esta contida na area) e tratada da mesma forma que um polgono contido. Em quatro casos,
uma decis~ao a respeito da area pode ser tomada, parando o processo de divis~ao da area:
 A intersec~ao de todos os polgonos com a area e vazia. A area e preenchida com a cor
do fundo.
 Existe apenas um polgono que intercepta a area ou apenas um polgono contido. Todos
os outros s~ao disjuntos. A area e preenchida, inicialmente, com a cor do fundo e depois
a parte pertinente do polgono e rasterizada.
 Existe apenas um polgono que circunda a area. Todos os outros s~ao disjuntos. A area
e preenchida com a cor do polgono.

153

11.9. RECORTE RECURSIVO

 Mais de um polgono intercepta, esta contido ou circunda a area. Existe porem um

polgono que circunda a area e esta mais proximo ao observador. A area e preenchida
com a cor deste polgono. A determinac~ao da proximidade com o observador e realizada computando os valores das coordenadas z, dos planos dos polgonos em quest~ao,
nos quatro cantos da area. Se houver um polgono circundante cujos quatro valores
calculados sejam menores que todos os outros, ent~ao este satisfaz o teste.

As areas que n~ao se enquadram nesses casos s~ao divididas em mais quatro areas iguais.
Apos esta subdivis~ao, os polgonos disjuntos ou circundantes a area original continuam a
ser disjuntos ou circundantes, respectivamente.
Agora, qual o criterio para parar o processo de subdivis~ao? Uma possibilidade e interromp^e-lo quando a resoluc~ao do dispositivo for alcancada. Se, ao ser atingido o numero
maximo de subdivis~oes, nenhum dos quatro casos tiver ocorrido, ent~ao a profundidade dos
polgonos pertinentes e calculada no centro do pixel. Aquele com menor coordenada z de ne
a colorizac~ao (o shading) da area.

11.9 Recorte Recursivo


Este algoritmo, criado por Weiler e Atherton, ao inves de recortar os polgonos contra areas
retangulares, como faz o algoritmo de subdivis~ao de area, utiliza um recorte geral: contra
polgonos quaisquer (c^oncavos ou convexos e, possivelmente, com furos).
O primeiro passo do algoritmo ordena, por quest~ao de e ci^encia, todos os polgonos em
func~ao de um criterio baseado nas coordenadas z, por exemplo, maximo z mnimo. Todos os
polgonos s~ao recortados contra o polgono R mais proximo ao observador6. Nesse processo,
s~ao produzidas duas listas: l1, com as partes, de cada polgono p , contidas em R (p \ R)
e l2, com as partes n~ao contidas em R (p R). Todos os polgonos em l1 que est~ao atras
de R s~ao eliminados, pois n~ao s~ao visveis. Se um polgono em l1 estiver mais proximo
ao observador do que R (estiver no mesmo semi-espaco que o observador, em relac~ao ao
plano de R), signi ca que a ordenac~ao inicial n~ao forneceu uma prioridade correta e ele e
processado, recursivamente, para recortar os membros de l1, novamente, contra ele. Quando
este recorte recursivo termina, os polgonos em l1 s~ao exibidos. O algoritmo segue, ent~ao,
processando os polgonos em l2 .
O recorte e sempre efetuado contra uma copia do polgono original, e n~ao contra um
fragmento, uma vez que se sup~oe que e mais e ciente fazer o recorte desta forma, do que
contra uma ou mais partes fragmentadas. Assim, sempre que um polgono e recortado, suas
partes apontam para o polgono original.
O algoritmo utiliza, tambem, uma pilha, para poder tratar os casos de sobreposic~ao
cclica, no qual um polgono esta tanto na frente como atras de outro. A pilha contem uma
lista de polgonos que est~ao sendo utilizados como polgonos de recorte, mas cujo uso foi
interrompido devido a um recorte recursivo. Se um polgono esta na frente do polgono de
recorte corrente mas esta tambem na pilha, o processo de recurs~ao para, porque todas as
suas partes, dentro e atras deste polgono, ja foram removidas.
i

6 O recorte e feito considerando as projec~oes dos polgonos no plano de projec~ao (z = 0).

154

CAPITULO 11. VISIBILIDADE

11.10 Tracado de raios


Os algoritmos de tracado de raios determinam a visibilidade de superfcies, tracando raios
imaginarios, a partir do ponto de vista, ate um ponto de um objeto da cena ( g. 11.9). Um
centro de projeca~o7 e uma janela, sobre um plano de projec~ao arbitrario, s~ao selecionados.
A janela pode ser imaginada como estando particionada, formando um reticulado, cujos
elementos correspondem aos pixels na resoluca~o desejada. Para cada pixel, um raio e
disparado do centro de projec~ao para o centro do pixel na cena. A cor do pixel corresponde
a cor do objeto cuja intersec~ao com o raio esta mais proxima ao observador.

observador

Figura 11.9: Tracado de Raios.


Algoritmos de tracado de raios podem ser adaptados para determinar a colorizac~ao (shading), sombras, transpar^encias, avaliar operaco~es booleanas, tratar re ex~ao e refrac~ao da luz.

Para estender um algoritmo de tracado de raios para que seja capaz de tratar um novo tipo de superfcie, basta escrever uma rotina que calcule a intersec~ao de uma reta com a
superfcie.

11.11 Linhas Escondidas


Os algoritmos de linhas escondidas requerem que as linhas sejam arestas de polgonos e n~ao,
necessariamente, de poliedros. Estes algoritmos consideram apenas as linhas na fronteira
de polgonos voltados para o observador8 (V O).
O algoritmo de Appel de ne a invisibilidade quantitativa de um ponto, de uma linha,
7 Tambem chamado ponto de vista ou observador.
8 Cuja a componente z da normal do polgono n~ao e positiva .

11.12. EXERCICIOS

155

como sendo igual ao numero de polgonos, voltados para o observador, que o obstruem.
Quando a linha passa por tras de um polgono V O, sua invisibilidade quantitativa e incrementada de uma unidade e quando ela sai de tras deste polgono, sua invisibidade quantitativa e decrementada de uma unidade. A linha esta visvel quando sua invisibilidade vale
zero. Se n~ao forem permitidos polgonos inter-penetrantes, a invisibilidade muda somente
quando a linha passa por tras de uma linha de contorno9 .
Uma linha de contorno passa pela frente da aresta em considerac~ao quando ela atravessa
o tri^angulo formado pelo ponto de vista e os dois vertices da aresta. O ponto sobre a
aresta onde ocorre o cruzamento e obtido projetando-se a linha de contorno sobre a aresta,
o que pode ser obtido, recortando-se a aresta contra o plano de nido pelo ponto de vista
e a linha de contorno. O algoritmo requer que os polgonos sejam percorridos num sentido
consistente, de forma a que o sinal da mudanca de visibilidade possa ser determinado pelo
sinal do produto vetorial entre a direca~o da aresta e a direc~ao da linha de contorno.
Em primeiro lugar, o algoritmo computa a invisibilidade de um vertice, que funciona
como a semente para o algoritmo. Isto e feito, calculando-se o numero de intersec~oes, entre
o projetor que passa pela semente e os polgonos V O, mais proximos ao observador do que
a semente. Em seguida, propaga-se este valor para as arestas que emanam da semente,
incrementando ou decrementando este valor sempre que a aresta passar por tras ou pela
frente de um polgono V O, respectivamente. Somente os segmentos com invisibilidade
zero s~ao desenhados. Quando um outro vertice e atingido, a invisibilidade neste ponto e
propagada a todas as arestas que emanam deste vertice.
Vertices compartilhados por linhas de contorno necessitam de uma correc~ao antes que
se propague a sua invisibilidade. Isto porque, a invisibilidade pode mudar subtamente,
uma vez que uma ou mais arestas emanando deste vertice podem ser obstrudas por um ou
mais polgonos V O compartilhando este vertice. Esta mudanca pode ser levada em conta,
testando-se a aresta contra os polgonos V O que compartilham o vertice.

11.12 Exerccios
11.1 Que tipos de algoritmo de visibilidade s~ao mais indicados a uma representaca~o por
bordo? E a uma representac~ao implcita? Por que?
11.2 No algoritmo de scan-line e realmente necessario reordenar as arestas da AET a
cada nova linha de varredura ou basta apenas inser-las ordenadamente? Em func~ao da sua
resposta, discuta a complexidade do algoritmo.
11.3 D^e um exemplo em que, no algoritmo de z-sort, surge um ciclo in nito, onde os
mesmos polgonos cam se revezando no incio da la de prioridades. Qual a soluca~o para
este problema?
11.4 Analise o problema da visibilidade ao longo de um raio para o caso de modelos representados em CSG.
9 Uma linha de contorno, ou de silhueta, e uma aresta compartilhada por um polgono voltado para o observador

e outro de costas para o observador. Pode ser, tambem, uma aresta de um unico polgono, que esta voltado para o
observador.

156

CAPITULO 11. VISIBILIDADE

11.5 Discuta o calculo das superfcies visveis pelo metodo de A-bu er. Mostre quais s~ao
as aproximac~oes utilizadas.

Cap
tulo 12

Iluminac~ao
O modelo de c^amara virtual utilizado ate agora serve para projetar a geometria da cena
sobre a tela virtual e emprega as transformac~oes de visualizac~ao para levar os objetos para
sistemas de coordenadas apropriados as diversas etapas da visualizac~ao:
 recorte que e uma operac~ao vetorial e serve para eliminar os objetos fora do campo de
vis~ao da c^amara;
 visibilidade que e a responsavel pela partic~ao da tela virtual;
 e a rasterizaca~o (1D ou 2D, curvas ou superfcies) que descreve os objetos a partir dos
pixels.

Plano de
Recorte

P=(x,y,z)
N
Ponto
Nodal
Filme

Fonte
de Luz

Figura 12.1: Modelo de C^amara Virtual.


Para completar o modelo da c^amara virtual falta incorporar a iluminac~ao da cena. Notese que se trata de um modelo de c^amara bastante geral que permite alterar ate o plano
de projeca~o1 (o plano do lme de uma maquina fotogra ca), o que numa c^amara real e
impossvel.
1 Numa c^amara real, o lme esta atras do ponto nodal e por isso a imagem aparece invertida.

157

158

~
CAPITULO 12. ILUMINAC
 AO

A criaca~o de imagens realistas envolve, obrigatoriamente, a perfeita compreens~ao da


interac~ao da luz com a materia e a utilizac~ao de modelos que, de alguma forma, simulem
esta interaca~o2 . Determinados fen^omenos de micro geometria que de nem a textura de um
objeto | e percebidos visualmente, por exemplo, como a rugosidade de uma superfcie |
s~ao realizados a nvel de visualizac~ao e n~ao de modelagem.
A nvel conceitual, pode-se imaginar uma func~ao que a cada ponto do espaco associa a
intensidade luminosa no ponto. Na pratica, quando se utiliza um fot^ometro para medir a
iluminac~ao de um ambiente, esta-se calculando o valor desta func~ao em um conjunto nito
de pontos. Na geraca~o de uma imagem, esta funca~o deve ser projetada sobre a tela virtual
para que se possa determinar a intensidade luminosa de cada pixel. Existe, ent~ao, uma
func~ao de colorizac~ao que associa a cada ponto da imagem a sua intensidade luminosa3.
A funca~o de iluminac~ao depende do ponto em quest~ao e de uma direc~ao que de ne o
observador. Assim, trata-se de uma equaca~o a derivadas parciais com seis variaveis. Como
a soluc~ao da equac~ao de iluminac~ao exata e complicada, utiliza-se uma equac~ao (algebrica)
aproximada que produz uma soluc~ao tambem aproximada. O modelo conceitual utilizado
esta explicitado na gura 12.2.

Luz e Materia

Modelos de
Iluminacao

Solucao
Aproximada

Calculo

Figura 12.2: Modelo Conceitual.


Durante a rasterizaca~o, os pixels contidos no interior de um objeto s~ao enumerados.
Como os pixels possuem area, eles podem conter pedacos de varios objetos. Como retornar
um valor de cor para a funca~o de colorizac~ao sobre uma area? Este problema esta relacionado
com a necessidade de amostragem. O que deve ser determinado, ent~ao, e qual o metodo de
amostragem a ser empregado. Este problema foi discutido na seca~o 10.3.

12.1 Modelos de Iluminac~ao


Durante a interac~ao da luz com um objeto, parte da energia e absorvida, parte e transmitida
e parte e re etida na superfcie do objeto. A componente re etida da energia luminosa
incidente e que e a responsavel pela sensac~ao de cor produzida no cerebro de um ser humano.
Quando a componente re etida perdeu energia de forma aproximadamente igual em todas as
frequ^encias do espectro visvel tem-se a cor cinza. Quando quase toda a energia e absorvida,
tem-se a cor preta e quando quase toda a energia e re etida tem-se o branco.
A quantidade de luz re etida depende da:
 composic~ao, direca~o e geometria da fonte de luz;
2 A apar^encia metalica de um objeto, por exemplo, e obtida a partir desta interaca~o.
3 Na realidade, a func~ao de colorizaca~o e a projeca~o da funca~o de iluminac~ao sobre a tela virtual.

159

~
12.1. MODELOS DE ILUMINAC
 AO

 orientaca~o da superfcie do objeto em relaca~o a fonte de luz;


 propriedades da superfcie do objeto.
12.1.1 Modelo de Bouknight

A forma de re ex~ao da luz pode ser caracterizada como especular ou difusa. Um objeto
que re ete luz preferencialmente em uma direc~ao e chamado de objeto re etivo, enquanto
aquele que re ete a luz iqualmente em todas as direc~oes e dito difuso ( g 12.3).
L

N
O

I=<L.N>

Figura 12.3: Re ex~ao Difusa e Especular.


A lei de Lambert estabelece que dada uma fonte pontual de luz e um difusor perfeito, a
intensidade da luz re etida e proporcional ao cosseno do ^angulo entre a normal a superfcie
e a direc~ao de incid^encia da luz ( g. 12.4):
I = I k cos();
0    =2; 0  k  1:
l

N
L

Figura 12.4: Lei de Lambert.


A variac~ao da intensidade com o cosseno do a^ngulo entre a normal e a fonte de luz vem do
fato de que a energia incidente por unidade de tempo e area em uma area in nitesimal A e
calculada baseado no uxo de energia atraves de uma superfcie de area A0 , perpendicular
a direc~ao de incid^encia, em 1s ( g. 12.5). Assim A0 = Acos().

160

~
CAPITULO 12. ILUMINAC
 AO

1s
A
O

Figura 12.5: Variac~ao com o Cosseno.


Na equaca~o, I e a intensidade da luz incidente e k e um coe ciente de atenuac~ao que
depende do material.
A hipotese de uma fonte de luz pontual implica em que pontos que n~ao recebem luz
diretamente da fonte aparecem pretos. Em cenas reais, os objetos recebem luz de forma
indireta, a partir de re ex~oes no ambiente. Para modelar de forma bastante simpli cada esta
contribuica~o indireta, pode-se adicionar um termo difuso constante a equac~ao de iluminac~ao:
I = I k + I k cos();
0  k  1:
O termo I representa a intensidade da luz ambiente e e o responsavel pela iluminac~ao
de objetos visveis ao observador mas invisveis a partir da fonte de luz. Este modelo de
iluminaca~o foi criado por Bouknight e e aplicado individualmente a cada componente de cor
(r; g; b). Tem-se ent~ao tr^es constantes (k = (k ; k ; k )), que de nem a cor do objeto. E
comum, no entanto, escrever-se k (O ; O ; O ), permitindo que k escale a componente
difusa re etida sem alterar a cor do objeto.
O problema do modelo de Bouknight e que ele despreza completamente a componente
re etida de forma especular. A intensidade da luz re etida especularmente depende do
^angulo de incid^encia, do comprimento de onda, do tipo de material e obedece a equac~ao de
Fresnel, que estabelece que para superfcies polidas perfeitas, o ^angulo de incid^encia e igual
ao ^angulo de re ex~ao.
l

dr

dr

dg

dg

db

db

12.1.2 Modelo de Phong

Phong estendeu, de forma inteiramente emprica, o modelo de Bouknight para simular a


re ex~ao especular. A componente especular e modulada por uma func~ao que possui um
maximo unitario e que decai rapidamente. O termo introduzido foi ( g. 12.6):
I = I k cos ( );
0  k  1;
onde e o ^angulo entre o raio re etido e a direc~ao de observaca~o. A escolha da funca~o
cosseno deve-se ao fato dela aproximar, adequadamente, a distribuic~ao espacial do realce
percebido na iluminaca~o de superfcies metalicas. Quanto maior for o n menor a area do
realce. Para superfcies altamente metalicas um valor tpico seria 70.
e

161


~
12.2. CALCULO
DO VETOR DE REFLEXAO

O
R

N
O

Figura 12.6: Modelo de Phong.


Quando existem m fontes de luz na cena a equac~ao resultante e:
I=I k
a

m
X

Ik
a

m
X

=1

=1

I (k cos(
l

) + k cos ( )) =
e

I (k < N; L > +k < R ; O > ):


l

Este modelo de iluminaca~o e chamado de modelo local porque n~ao leva em conta a
troca de energia entre os diversos objetos em cena (a intensidade luminosa em um ponto
depende apenas das fontes diretas de luz). Isto signi ca que as regi~oes da cena que est~ao
na sombra n~ao podem ser determinadas a partir do modelo de iluminaca~o, obrigando que
sejam executados algoritmos para determinac~ao explcita das regi~oes sombrias.

12.2 Calculo do Vetor de Re ex~ao


Para implementar um modelo de iluminac~ao e necessario o calculo do vetor de re ex~ao.
Este calculo e bastante simples e a partir da gura 12.7, v^e-se que o vetor de re ex~ao e
dado por:
R = 2 < L; N > N L;
onde N e o vetor normal a superfcie no ponto e L e o vetor que indica a direc~ao da fonte
de luz.
12.3 Exerccios
12.1 Que tipo de fen^omeno e modelado pela equac~ao de Fresnell?
12.2 Descreva o modelo de iluminaca~o de Phong. Explique cada termo da equac~ao de
iluminac~ao associada.

162

~
CAPITULO 12. ILUMINAC
 AO

D
=
=

L
a

R
=

jLj = jRj = jN j = 1

D = 2 < L; N >
cos(a) =< L; N >=< R; N >

Figura 12.7: Calculo do Vetor de Re ex~ao.


12.3 Discuta como estender o modelo de Phong para incluir translucidez e refrac~ao (levar
em conta o raio transmitido e o re etido).
12.4 E muito comum na literatura o uso do vetor H = j ++ j , ao inves do vetor R, no
calculo da re ex~ao especular no modelo de iluminac~ao de Phong, conforme pode ser visto
na gura 12.8. Desta forma, o termo especular e controlado por cos( ) = < N; H > .
L

a) discuta geometricamente o problema.


b) enumere uma vantagem de se usar H ao inves de R.
c) qual o efeito que essa mudanca traz para a re ex~ao especular?
d) prove que se O (observador) esta no mesmo plano de L; N e R, ent~ao = 2 .

12.5 Analise os seguintes metodos de aproximac~ao da integral de iluminaca~o:


a) Metodo Direto
b) Tracado de Raios
c) Radiosidade

12.6 Considere um observador localizado no ponto A = (10; 12p; 3) do espaco. Seja P =


(1; 12; 3) um ponto de uma esfera de centro C = (0; 10; 0) e raio 14. Determine a direca~o

de uma fonte de luz de modo que o realce especular por ela produzido seja maximo e esteja
localizado no ponto P .

163

12.3. EXERCICIOS

N
L

H
R

B
O

Figura 12.8: Uso do Vetor H.


12.7 Para criar o efeito de luz direcional, tipo luz de estudio fotogra co onde um facho
de luz e apontado para um certo objeto, Warn fez uma pequena alteraca~o no modelo de
iluminac~ao de Phong. A ideia dele foi imaginar que a luz provem de uma fonte pontual
e e re etida em um anteparo (que re ete apenas luz especular e tem k = 1), antes de se
propagar pelo ambiente, conforme pode ser visto na gura 12.9. Com isto a intensidade da
fonte de luz imaginaria sobre o anteparo varia com a direca~o, sendo maxima quando = 0
e diminuindo a medida que cresce.
e

a) Escreva a nova equac~ao de iluminac~ao usando um raciocnio similar ao usado por


Phong na criac~ao do termo especular do seu modelo de iluminac~ao.
b) Adicione um teste para con nar a luz a um cone com vertice na fonte imaginaria e
formando um ^angulo com L0 .
c) Sugira um metodo para \retirar"o excesso de luz de uma certa area de uma superfcie,
usando um facho de luz \escura"(ou anti-luz). Para que isto serve?

164

~
CAPITULO 12. ILUMINAC
 AO

Anteparo Refletor

Fonte de Luz Imaginaria

B
L

L
N

Fonte Pontual
P

Figura 12.9: Facho de Luz direcional.

Cap
tulo 13

Colorizac~ao
No captulo 12 foram estudados os modelos computacionais utilizados no calculo da func~ao
de iluminaca~o I no espaco da cena. Chama-se de func~ao de colorizac~ao, ou funca~o de
intensidade de cor I , a func~ao de nida no espaco da tela virtual e dada por
I (x; y) = I (x0 ; y0 ; z 0 );
onde (x0 ; y0; z0 ) e o unico ponto visvel do ambiente correspondente ao ponto (x; y) da tela
virtual1.
O calculo da funca~o de colorizac~ao e que permite a gerac~ao efetiva dos valores de intensidade dos pixels da imagem. O domnio da func~ao I e a tela virtual, que consiste em um
ret^angulo no qual s~ao projetados os objetos geometricos do espaco da cena.
Como o objetivo e gerar uma imagem matricial, de ne-se na tela virtual um reticulado uniforme de pontos. Cada ret^angulo neste reticulado e chamado de pixel virtual ou,
simplesmente, pixel. Cada pixel virtual corresponde a um pixel na imagem digital, sendo
a unidade basica da tela virtual. Um subconjunto da tela virtual (um conjunto nito de
pixels) sera chamado de regi~ao digital. Deve-se calcular a func~ao I em cada pixel virtual
de acordo com o modelo de iluminac~ao utilizado. O calculo da func~ao de colorizac~ao e feito
em quatro etapas:
 visibilidade;
 rasterizaca~o;
 amostragem;
 e o calculo propriamente dito.
A visibilidade determina a regi~ao da tela virtual onde a func~ao de colorizaca~o deve ser
calculada. Essa regi~ao e formada pela projec~ao na tela virtual de todas as superfcies visveis
dos objetos em cena.
A descric~ao dos objetos em cena e dada geometricamente em uma forma vetorial (pontos,
polgonos, equaco~es parametricas, etc.). Esses objetos de nem superfcies que comp~oem a
partic~ao da tela virtual em regi~oes visveis, nas quais a func~ao de colorizac~ao deve ser
c

1 Se a projec~ao da cena sobre a tela virtual for ortogra ca, tem-se:

165

= x0 ; y = y 0 .

166

~
CAPITULO 13. COLORIZAC
 AO

calculada. O processo de rasterizac~ao consiste em determinar a regi~ao digital correspondente


a essas regi~oes. Esse processo depende diretamente do esquema de representac~ao utilizado
para descrever os objetos em cena.
A regi~ao digital da tela virtual determinada no processo de rasterizac~ao e o domnio
da func~ao colorizaca~o. Desse modo, deve-se calcular o valor da func~ao I em cada pixel
dessa regi~ao. Esse processo de amostragem, alem de ser importante, e uma das etapas mais
delicadas no calculo da func~ao I , pois n~ao deve haver perda de informac~ao no processo.
Esse fen^omeno de perda de informac~ao e bastante comum em todo o processo onde ha uma
amostragem de um sinal contnuo. Existem diversos metodos para fazer uma amostragem
efetiva e e ciente da func~ao de colorizac~ao.
Apos a escolha de um metodo de amostragem, e feito o calculo da cor de cada pixel na
tela virtual, atraves do calculo da intensidade luminosa na regi~ao correspondente do espaco.
Note-se que, em alguns modelos computacionais, o calculo da func~ao de colorizac~ao e feito
juntamente com o calculo da func~ao de iluminac~ao, por exemplo, no metodo de tracado
de raios. De um ponto de vista conceitual, no entanto, e sempre util pensar no processo
em duas etapas: calculo da func~ao de iluminac~ao e, em seguida, o calculo da func~ao de
colorizac~ao na regi~ao digital da tela virtual.
Dependendo da representaca~o dos objetos em cena, podem-se empregar tecnicas de interpolac~ao, de modo a evitar o calculo da funca~o de iluminac~ao para todos os pixels. Se os
objetos s~ao representados por uma B-rep poligonal, ent~ao, a regi~ao visvel, na tela virtual,
e formada por um conjunto de polgonos. Existem tr^es metodos classicos para o calculo
da func~ao de colorizac~ao em regi~oes poligonais: at ou constante, Gouraud e Phong. Esses
metodos foram introduzidos associados a um modelo local de iluminac~ao.
c

Colorizacao

Funcao
de Color.

Amostragem

Tecnologia
de Exibicao

Figura 13.1: Modelo Conceitual.

13.1 Colorizac~ao Constante


A func~ao de colorizac~ao determina a cor dos pixels na tela virtual. Considerando-se que
os objetos em cena utilizam uma representac~ao B-rep poligonal, signi ca que a normal
em cada face e dada por um unico vetor, de nido pelo plano da face. Se for considerado
tambem que a fonte de luz esta no in nito, signi ca que cada face possui uma cor constante.
Estas condic~oes foram assumidas por Bouknight na de nic~ao de um metodo de colorizac~ao
conhecido como at shading. Embora simples, este metodo produz imagens facetadas onde
n~ao se tem, adequadamente, a sensaca~o de curvatura nos objetos, pois nota-se, nitidamente,
a aproximaca~o poligonal utilizada.

167

~ DE GOURAUD
13.2. COLORIZAC
 AO

13.2 Colorizac~ao de Gouraud


Levando em conta que o modelo B-rep poligonal e apenas uma aproximac~ao do objeto em
cena, Gouraud utilizou o conceito de interpolac~ao poligonal para calcular o valor da func~ao
de colorizaca~o I nos pontos interiores de cada polgono. Neste metodo, calcula-se uma
normal em cada vertice da B-rep poligonal. Esta normal aproxima a normal a superfcie
original e depende da curvatura da superfcie no ponto. Se a superfcie estiver de nida implicitamente, a normal e dada pelo gradiente calculado no vertice. Caso contrario, o calculo
da normal e efetuado a partir da media das normais de todas as faces que compartilham o
vertice em quest~ao, conforme pode ser visto na gura 13.2.
c

v8

v7
P3
v4
P4
N
v1

v3
P0

P2
v2

v1
P1

v5

v6

Figura 13.2: Calculo da Normal em um Vertice.


= (a0 + a1 + a4 )i + (b0 + b1 + b4 )j + (c0 + c1 + c4 )k ou ent~ao
N 1 = (v1 v2  v1 v4 + v1 v5  v1 v2 + v1 v4  v1 v5 );
de maneira que a normal aponte para o exterior do objeto.
Com estas normais, calculam-se as intesidades nos vertices das faces que passam a fazer
parte do banco de dados que armazena a B-rep. Durante a rasterizac~ao dos polgonos
correspondentes as projec~oes das faces sobre a tela virtual, as intensidades s~ao interpoladas
ao longo de cada aresta e ao longo dos segmentos de varredura.
A tecnica de interpolaca~o poligonal e feita da seguinte forma:
Sejam P um polgono plano, fechado, com vertices v1; v2 ; :::; v 2 < ; F : < ! < uma
func~ao; p um ponto de P ; e r uma reta contendo p, contida no plano de P . Se a reta r
intercepta P nas arestas v 1v e v 1v , ent~ao, de ne-se:
F (p) = lerp [ lerp (v 1 ; v ); lerp (v 1 ; v )];
onde lerp (a; b) indica a interpolac~ao linear no segmento ab ( g. 13.3).
N

168

~
CAPITULO 13. COLORIZAC
 AO

I0
I2

Ir

Il
Ip

I1
I3

Figura 13.3: Interpolaca~o Poligonal.

y
y1
y
y3
x
x

=
=
=

y0
(I I ) + I0;
y0 1 0
y2
(I I ) + I2;
y2 3 2
x
(I I ) + I :
x
l

(13.1)

Se P e um tri^angulo e 1; 2 ; 3 s~ao as coordenadas baric^entricas do ponto p, ou seja,


p=

3
X
i

=1

v;
i

 > 0;

3
X

=1

= 1;

ent~ao: F (p) = 3=1  F (v ). Segue-se do resultado acima que a interpolac~ao poligonal no


tri^angulo n~ao depende da reta r. Se, no entanto, P n~ao e um tri^angulo, ent~ao, o valor F (p)
calculado pelo metodo da interpolac~ao poligonal n~ao e unico, dependendo, pois, da escolha
da reta r.
Este metodo de interpolac~ao de intensidades produz, na maioria dos casos, resultados
bastante superiores aos obtidos com a colorizac~ao constante. Porem a silhueta2 dos objetos
ainda e percebida como estando linearizada. Isto se deve ao chamado Match Banding, um
efeito resultante da maior sensibilidade do sistema visual humano a taxa de variaca~o (a
derivada) da intensidade. O metodo de Gouraud tem varias de ci^encias, dentre elas, a mais
importante e desprezar a variac~ao da normal no interior do polgono. Por essa raz~ao, pontos
de re ex~ao especular intensa (highlights), que ocorrem em pontos interiores de uma face,
desaparecem.
P

2 De nida pelo conjunto de arestas que so pertencem a um unico polgono.

169

~ DE PHONG
13.3. COLORIZAC
 AO

13.3 Colorizac~ao de Phong


Para atenuar o problema da colorizac~ao de Gouraud, Phong prop^os um metodo de interpolac~ao que, ao inves de interpolar as intensidades, interpola diretamente as normais (ao longo
das arestas e ao longo dos segmentos de varredura). Os resultados obtidos s~ao excelentes,
porem paga-se um alto preco computacional. A func~ao de iluminac~ao deve ser avaliada
no ponto da cena tri-dimensional que corresponde a um certo pixel. Pior ainda, como as
transformac~oes de visualizac~ao n~ao preservam ^angulos, esta avaliac~ao deve ser levada a cabo no espaco da cena, ou em qualquer espaco isometrico a ele, por exemplo o espaco da
c^amara. Isto acarreta a necessidade de inverter-se a transformaca~o de visualizaca~o de forma
a mapear o ponto de volta ao espaco da cena.
Os metodos baseados em interpolaca~o s~ao aplicados no sistema de coordenadas normalizadas, apos a transformac~ao perspectiva, que comprime o eixo z de forma n~ao linear. Desta
forma, a interpolac~ao linear (ou poligonal) produz um incremento constante entre uma linha
de varredura e outra, mas, devido ao encurtamento da transformac~ao perspectiva, este incremento, ao longo do eixo z, aumenta, a medida em que se aproxima do centro de projec~ao,
como se ve na gura 13.4. Assim, se
y

= y1 +2 y2 ;

ent~ao I = I1 +2 I2 ;
s

mas z 6= z1 +2 z2 :
s

Ponto de
Fuga

Transf. Perspectiva

Centro de
Projecao

Figura 13.4: Encurtamento da Transf. Perspectiva.


Alem disso, tanto o metodo de Gouraud como o de Phong utilizam uma interpolac~ao
poligonal. Se o polgono n~ao for um tri^angulo, o valor obtido depende da posic~ao do polgono
no espaco da cena, ou seja, da orientac~ao do polgono em relac~ao a linha da tela. Esse fato
pode criar efeitos indesejaveis em uma animac~ao.

170

~
CAPITULO 13. COLORIZAC
 AO

13.4 Colorizac~ao por Tracado de Raios


Um metodo que faz o calculo da func~ao de iluminac~ao de forma conjugada com o calculo da
func~ao de colorizac~ao e o metodo de tracado de raios (ray tracing). Esta classe de algoritmo
surgiu em 1970, a partir do trabalho de Roth, no contexto da determinac~ao da visibilidade
(consulte-se o cap. 11). Nesta epoca, devido as limitac~oes do hardware disponvel, o metodo
n~ao foi muito utilizado ate 1980, quando Whitted prop^os a sua utilizac~ao para fazer a
integrac~ao da equaca~o de iluminac~ao. Em linhas gerais, o metodo traca raios a partir do
observador ate cada pixel3. Estes raios, ao se chocarem com as superfcies dos objetos, s~ao
desviados de acordo com a lei da re ex~ao e da refraca~o.
Tipicamente, a implementaca~o emprega recurs~ao. A partir do segundo nvel, as contribuic~oes das intensidades luminosas, provenientes dos raios secundarios, no ponto original
(da primeira colis~ao) s~ao atenuadas. O modelo de iluminac~ao utilizado continua sendo um
modelo local, como o modelo de Phong, porem passa a existir uma interac~ao global, uma
vez que s~ao considerados (alguns) raios de luz que chegam ao objeto de forma indireta, a
partir de multi-re ex~oes, conforme pode ser visto na gura 13.5.
A grande de ci^encia do metodo de tracado de raios e ignorar completamente a interac~ao luminosa difusa. Isto cria imagens altamente re etivas que evidenciam, claramente,
o metodo que as gerou.

L2

L1

raio refletido
O
O 2
R1
2 N2
O1
R2
O
N1 1

raio refratado

Figura 13.5: Tracado de Raios.

13.5 Integrac~ao da Equac~ao de Iluminac~ao


Uma outra forma de integrar a equac~ao de iluminac~ao e atraves do metodo de radiosidade
criado por Goral em 1982. Este e um metodo de relaxac~ao e e bastante e caz para calcular
a interac~ao difusa entre os objetos em cena, a partir da discretizac~ao do ambiente em
elementos onde a intensidade luminosa pode ser considerada constante. E calculado, ent~ao,
3 Isto porque so interessam os raios que chegam ao olho. Da o tracado no sentido inverso.

13.6. EXERCICIOS

171

um valor de intensidade para cada elemento, considerando-se a troca de energia entre todos
os elementos e assumindo-se um ambiente fechado.
A combinaca~o do metodo de tracado de raios com o metodo de radiosidade produz as
melhores imagens ja geradas ate hoje. Note-se que isto apenas melhora o calculo da func~ao
de iluminac~ao.
Uma outra abordagem possvel para melhorar a qualidade das imagens e melhorar a
propria equac~ao de iluminac~ao. Uma equac~ao de iluminac~ao exata, chamada "The Rendering Equation" foi proposta por Jim Kajya. Trata-se de uma equac~ao integral (a func~ao
de iluminac~ao esta dentro do integrando). As tecnicas para a resoluca~o de equac~oes integrais s~ao estudadas em calculo numerico e, basicamente, existem duas abordagens possveis:
Monte Carlo e Elementos Finitos. A primeira tecnica e empregada no metodo de tracado
de raios distribudo e a segunda no metodo de radiosidade.

13.6 Exerccios
13.1 Prove que o resultado da interpolac~ao de dados associados aos vertices de um polgono,
ao longo das suas arestas e das linhas da imagem, frente ao metodo de rasterizaca~o incremental, independe de orientac~ao no caso de tri^angulos. Mostre que isso n~ao e verdade no
caso de polgonos com mais de tr^es lados. Qual a consequ^encia deste fato numa animac~ao?
13.2 Apresente um caso no qual o uso de at shading produz um resultado melhor do que
o metodo de Phong ou Gouraud.
13.3 Qual o efeito da compress~ao n~ao linear, ao longo do eixo z , apos a transformaca~o
perspectiva, na interpolac~ao de quantidades que n~ao sejam dist^ancias, por exemplo, intensidade luminosa? Como atenuar este problema?
13.4 E possvel levar em conta, de alguma forma, o realce no interior de polgonos usando
a interpolac~ao de Gouraud?
13.5 Discuta a relac~ao entre a resoluca~o de aproximac~oes poligonais de uma superfcie e
o fen^omeno de Match banding causado pelo calculo da iluminaca~o com a interpolac~ao de
Gouraud.
13.6 Considere um esquema para o calculo de iluminaca~o usando um mapa de cor de 24
bits associado a uma imagem de 12 bits por pixel, de tal modo que mudancas na iluminac~ao
impliquem apenas em mudanca no mapa de cor.
a) Descreva o metodo.
b) Qual a natureza da informac~ao armazenada na imagem?
c) Descreva o calculo da iluminac~ao.
d) Quais as limitac~oes do metodo?

172

~
CAPITULO 13. COLORIZAC
 AO

13.7 Veri que que o calculo de normais em um vertice, utilizando a equaca~o dos planos
dos polgonos que compartilham o vertice, ou o produto vetorial das arestas que incidem
no vertice, d~ao resultados diferentes, tanto em direc~ao como em magnitude. Explique o
motivo.
Sugest~ao: utilize um tronco de pir^amide.

Cap
tulo 14

Mapeamentos
A interac~ao da luz com a superfcie de um objeto de ne o que se costuma chamar da textura
do objeto. Se, por algum processo, esta interac~ao for manipulada, a percepc~ao da textura
e modi cada. Isto permite a criaca~o de efeitos interessantes. Os objetivos do mapeamento
s~ao:
 alterar informac~oes estruturais;
 modelar a micro geometria do objeto;
 alterar a func~ao de iluminac~ao.
Os par^ametros da func~ao de iluminac~ao (normal, coe ciente de re ex~ao difusa, coe ciente
de re ex~ao especular, etc.) podem ser modulados por uma func~ao de textura. Os problemas
que se colocam de forma natural s~ao:
 Quais os par^ametros a serem modulados?
 Qual a funca~o de mapeamento?
 Como resolver os problemas de amostragem e reconstruc~ao?
 Como gerar a textura?
De acordo com o par^ametro modulado t^em-se tipos de mapeamentos diferentes a saber:
 modulac~ao do coe ciente de re ex~ao difusa (modulac~ao da "cor" do objeto) ! mapeamento de textura;
 modulac~ao do coe ciente de re ex~ao especular ! mapeamento de ambiente (environment mapping);
 modulac~ao da normal ! mapeamento de rugosidade (Bump Mapping);
 modulac~ao do coe ciente de transpar^encia ! mapeamento de transpar^encia;
 modulac~ao do coe ciente de refraca~o ! mapeamento de refraca~o.
173

174

CAPITULO 14. MAPEAMENTOS

14.1 Mapeamento de Textura


O mapeamento de textura corresponde a colagem de um decalque sobre a superfcie de um
objeto. E claro que o decalque deve ser esticado de forma a se adaptar ao objeto.
O espaco da textura (o decalque) e um subconjunto do < e o mapeamento (responsavel
pelo esticamento do decalque) e uma func~ao que associa um ponto do < a um ponto sobre
a superfcie de um objeto. Este ponto e mapeado em um pixel pela transformac~ao de
visualizac~ao ( g. 14.1). O conjunto A da gura 14.1 e dado por: A = fp=T (p) = P g: Uma
forma de atribuir-se a cor apropriada a um pixel,
e ltrando-se a imagem inversa do pixel
(que pode ser determinada a partir de T 1 :T 1).
n

vis

T
vis
P
T

Espaco da Textura

-1
-1
T . T
vis

Eq. ilum
* (modulacao)
T

Figura 14.1: Mapeamento.


Pela di culdade de encontrar-se uma func~ao de mapeamento adequada, Jim Blinn sugeriu um mapeamento em duas etapas: em primeiro lugar mapeia-se a textura sobre uma
superfcie intermediaria simples (cilindro, cubo ou esfera) que envolve o objeto. Posteriormente mapeia-se esta superfcie sobre a superfcie do objeto, conforme indicado na gura 14.2.
Em um mapeamento tri-dimensional costuma ser difcil gerar a textura. No entanto, a
func~ao de mapeamento e a indentidade. O resultado obtido em uma animac~ao e muito bom
(imagine-se o corte de uma madeira. O que aconteceria com os seus veios se o mapeamento
n~ao fosse 3D?).

14.2 Mapeamento de Rugosidade


A rugosidade de uma superfcie e func~ao do padr~ao da luz re etida. O mapeamento de
rugosidade, criado por Jim Blinn, perturba a normal a superfcie no ponto onde se esta

175

14.3. MAPEAMENTO DE AMBIENTE

Textura
Objeto

Figura 14.2: Superfcie Intermediaria para Mapeamento.


calculando a intensidade luminosa. Isto e equivalente a ter-se uma superfcie ondulada
( g. 14.3).

Figura 14.3: Mapeamento de Rugosidade.

14.3 Mapeamento de Ambiente


O mapeamento de ambiente pode ser empregado para simular o metodo de ray tracing. A
ideia e modular o coe ciente de re ex~ao especular e difusa a partir da imagem do ambiente.
A di culdade deste tipo de mapeamento e gerar o mapa. A func~ao de mapeamento pode
empregar, por exemplo, uma superfcie intermediaria. Costuma-se empregar um cubo ou
uma esfera.
Caso utilize-se uma esfera como superfcie intermediaria, um centro de projec~ao e escolhido, a partir do qual o ambiente a ser re etido e mapeado sobre a superfcie de uma esfera
que circunda os objetos da cena. O ambiente mapeado pode ser tratado como como uma
textura bi-dimensional. Em cada ponto do objeto, o mapa de textura pode ser enderecado
pelas coordenadas polares do vetor obtido re etindo O em torno de N ( g. 14.4).
Vai-se considerar um sistema de coordenadas com origem no centro da esfera, e a notac~ao
corrente de cartogra a, onde o eixo z aponta para o polo norte; a longitude, que corresponde
aos meridianos, e um ^angulo  2 [ 180 ; 180 ) medido no sentido anti-horario a partir do

176

CAPITULO 14. MAPEAMENTOS

O=R

L=p

Objeto

Figura 14.4: Mapeamento de Ambiente.

eixo x; a latidude, que corresponde aos paralelos, e um ^angulo  2 [ 90 ; 90 ] medido a


partir do eixo z, com 0 correspondendo a linha do equador. A gerac~ao do mapa de textura
pode ser feito atraves de um tipo qualquer de projeca~o empregado em cartogra a. O mais
simples e uma projec~ao cilndrica retangular onde x =  e y = .
A forma alternativa utiliza seis projec~oes sobre os lados de um cubo alinhado com o
sistema de coordenadas. Assim, a maior coordenada do vetor de re ex~ao normalizado
permite enderecar o lado apropriado do cubo.

Refer^encias Bibliogra cas


[1] J. D. Foley, A. Van Dam, S. K. Feiner, and J. F. Hughes. Computer Graphics Principles and Practice. Addison Wesley, 1989.
[2] Newman. Principles of Interactive Computer Graphics. McGraw-Hill, 1979.
[3] Alan Watt. Fundamentals of Three-dimensional Computer Graphics. Addison Wesley,
London, 1988.
[4] Gerald Farin. Curves and Surfaces for Computer Aided Geometric Design. Academic
Press, 1990.
[5] Martti Mantyla. Introduction to Solid Modeling. Computer Science Press, 1988.
[6] Christoph M. Ho man. Geometric & Solid Modeling. Morgan Kaufmann Publishers,
Inc., San Mateo, California, 1989.
[7] Richard H. Bartels, John C. Beatty, and Brian A. Barsky. An Introduction to Splines
for Use in Computer Graphics and Geometric Modeling. Morgan Kaufmann Publishers,
Inc., San Mateo, California, 1987.
[8] Andrew Glassner, editor. An Introduction to Ray Tracing. Academic Press, San Diego,
California, 1989.
[9] R. A. Hall. Illumination and Color in Computer Generated Imagery. Springer-Verlag,
New York, 1989.
[10] Rafael C. Gonzalez and Paul Wintz. Digital Image Processing. Addison Wesley, 1987.
[11] George Wolberg. Digital Image Warping. IEEE Computer Society Press, 1990.
[12] S. Harrington. Computer Graphics, A Programming Approach. McGraw-Hill, 1983.
[13] Andrew Glassner, editor. Graphics Gems I. Academic Press, San Diego, California,
1990.
[14] James Arvo, editor. Graphics Gems II. Academic Press, San Diego, California, 1991.
[15] David Kirk, editor. Graphics Gems III. Academic Press, San Diego, California, 1992.
[16] Paul Heckbert, editor. Graphics Gems IV. Academic Press, Boston, 1994.
177

178
[17]
[18]
[19]
[20]

^

REFERENCIAS
BIBLIOGRAFICAS

Alan Paeth, editor. Graphics Gems V. Academic Press, Boston, 1995.


Hanan Samet. Applications of Spatial Data Structure. Addison Wesley, 1990.
Theo Pavlidis. Graphics and Image Processing. Computer Science Press, 1982.
David F. Rogers. Procedural Elements for Computer Graphics. McGraw-Hill, 1985.