Você está na página 1de 25

Introduo Computao Grfica

Isabel Harb Manssour 1


Marcelo Cohen 1

Resumo: Computao Grfica a rea da Cincia da Computao que estuda a


gerao, manipulao e anlise de imagens, atravs do computador. Atualmente,
uma das reas de maior expanso e importncia que propicia o desenvolvimento de
trabalhos multidisciplinares. A elaborao de aplicaes grficas se popularizou com
o surgimento de placas grficas para computadores pessoais e de bibliotecas grficas,
como OpenGL, que no exigiam conhecimentos extensivos de programao ou de
hardware. Este tutorial procura abranger os principais conceitos e definies da Com-
putao Grfica, abordando tcnicas de realismo, animao e visualizao. Exemplos
de aplicaes grficas so apresentados como motivao para o estudo e pesquisa
nesta rea. Todos os passos do processo de visualizao so descritos de forma ob-
jetiva atravs da apresentao de imagens. Questes em aberto e tendncias para o
desenvolvimento de aplicaes grficas tambm so abordadas.

Abstract: Computer Graphics is the Computer Science area which studies the
creation, manipulation and analysis of images through the computer. Currently it is
an important and ever growing area, as it allows the development of multidisciplinary
work. The development of graphics applications has become widely popular, partly
due to the availability of graphics hardware for personal computers and partly to the
creation of graphics libraries, such as OpenGL, which does not require extensive pro-
gramming or hardware knowledge. This tutorial aims to present a comprehensive view
of the Computer Graphics field, reviewing the main techniques for visualization, ani-
mation and rendering of realistic imagery. Examples of graphical applications are pre-
sented as motivation for the study and research in this area. The visualization pipeline
steps are described through the presentation of images. Open issues and trends for the
the development of graphics applications are also discussed.

1 Introduo
A Computao Grfica (CG) uma rea da Cincia da Computao que se dedica
ao estudo e desenvolvimento de tcnicas e algoritmos para a gerao (sntese) de imagens
atravs do computador. Atualmente, a CG est presente em quase todas as reas do conheci-
mento humano, desde o projeto de um novo modelo de automvel at o desenvolvimento de
ferramentas de entretenimento, entre as quais os jogos eletrnicos.
1 Faculdade de Informtica, PUCRS, Av. Ipiranga 6681, Prdio 30

{manssour,flash@inf.pucrs.br}
Introduo Computao Grfica

Atualmente, com as facilidades disponveis nas bibliotecas grficas existentes, a pro-


gramao das aplicaes est mais simples. Por exemplo, OpenGL (Open Graphics Li-
brary), tambm definida como uma interface para hardware grfico, uma biblioteca de
rotinas grficas e de modelagem, bidimensional (2D) e tridimensional (3D), portvel e rp-
ida [26, 21, 3]. Ela permite desenvolver aplicaes interativas e gerar imagens de cenas 3D
(ou conjunto de objetos), com um alto grau de realismo. Entretanto, a sua maior vantagem
a velocidade, uma vez que incorpora vrios algoritmos otimizados, incluindo o desenho de
primitivas grficas, o mapeamento de textura e outros efeitos especiais.

Este artigo procura abranger os principais conceitos e definies da CG, utilizando


imagens para auxiliar no seu entendimento. Um breve histrico da rea apresentado na
Seo 1.1. Alguns exemplos de aplicaes e de hardware grfico so apresentados, respec-
tivamente, na Seo 1.2 e Seo 1.3. J a Seo 1.4 descreve duas reas relacionadas CG.
Uma introduo modelagem geomtrica feita na Seo 2 e o processo de visualizao
3D descrito na Seo 3. Finalmente, tcnicas de realismo, animao e visualizao so
abordadas na Seo 4, e alguns comentrios finais so feitos na Seo 7.

1.1 Breve Histrico

Antes de apresentar o histrico da CG, deve-se considerar que o desenvolvimento de


aplicaes grficas depende do hardware. A criao e evoluo dos dispositivos grficos
possibilitaram os avanos na rea de CG. Neste sentido, um marco importante foi o desen-
volvimento do primeiro computador a possuir recursos grficos de visualizao de dados
numricos, o Whirlwind, pelo MIT (Massachusetts Institute of Technology) na dcada de 50.
O primeiro sistema, o SAGE (Semi-Automatic Ground Environment), surgiu em 1955 para
converter informaes do radar em imagens para monitoramento e controle de vos. O con-
ceito de CG interativa da forma que conhecemos atualmente, foi desenvolvido pelo Dr. Ivan
Sutherland na sua tese de doutorado no incio da dcada de 60. Ele introduziu conceitos de
estruturao de dados e CG interativa, despertando o interesse das indstrias automobilsticas
e aeroespaciais, levando a GM a desenvolver o precursor dos sistemas CAD em 1965 [8].

Na dcada de 70 foram desenvolvidas novas tcnicas e algoritmos que so utiliza-


dos at hoje, tal como o algoritmo de z-buffer. Alm disso, o surgimento da tecnologia
de circuitos integrados permitiu a popularizao dos computadores pessoais, disseminando
os aplicativos prontos e integrados, como os editores grficos. Tambm foi nesta dcada o
lanamento do primeiro computador com interface visual, predecessor do Macintosh. Poste-
riormente, houve o surgimento e a popularizao dos dispositivos para interao 3D usados
em RV. A popularizao das placas aceleradoras grficas contribuiu para o crescimento da
capacidade dos PCs, permitindo a gerao de imagens com grande realismo em tempo real.

2 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

1.2 Aplicaes

Atualmente a CG est presente em quase todas as reas do conhecimento humano,


da engenharia que utiliza as tradicionais ferramentas CAD (Computer-Aided Design), at a
medicina que trabalha com modernas tcnicas de visualizao para auxiliar o diagnstico por
imagens. Nesta rea, tambm tm sido desenvolvidos sistemas de simulao para auxiliar no
treinamento de cirurgias endoscpicas. Outros tipos de simuladores so usados para treina-
mento de pilotos e para auxiliar na tomada de decises na rea do direito (por exemplo, para
reconstituir a cena de um crime).
Uma rea de aplicao da CG que tem crescido muito nos ltimos anos a visu-
alizao. Inicialmente, surgiu a visualizao cientfica, que visava o desenvolvimento de
representaes grficas para grandes volumes de dados gerados, por exemplo, por satlites e
equipamentos de sensoriamento remoto. Hoje, existe tambm a visualizao volumtrica e a
visualizao de informaes. A primeira trata apenas de como gerar representaes para da-
dos volumtricos, tais como dados meteorolgicos, oceanogrficos e mdicos. J a segunda,
uma rea que visa auxiliar na anlise de dados financeiros, minerao de dados, estudos do
mercado ou de gerenciamento de redes de computadores.
Animao outro exemplo de aplicao que tem sido bastante desenvolvida. Atravs
da exibio de imagens em seqncia possvel representar o comportamento de objetos reais
ou simulados. Alm de desenho animados por computador, a simulao de humanos virtuais
e de comportamento de multides so temas de pesquisas atuais. Tcnicas de CG tambm
so usadas em RV, que introduziu um novo paradigma de interface com o usurio. Atravs
de dispositivos especiais que captam movimentos do corpo do usurio possvel interagir em
diferentes ambientes projetados por computador. Simuladores para treinamento de pessoal,
tratamento de fobias e jogos so alguns exemplos de aplicaes de RV. Outros exemplos de
aplicaes podem ser encontrados na literatura [10, 1].

1.3 Hardware Grfico

Antigamente os computadores e impressoras s eram capazes de emitir resultados sob


a forma de listagens alfanumricas, de maneira que as imagens eram obtidas pela composio
de smbolos. Durante os anos 50 e 60 foram projetadas as primeiras configuraes de sistemas
grficos que possuam um novo conceito em visualizao: em vez de caracteres, passou a ser
necessrio administrar os pontos individuais da tela ou pixels (picture elements). Assim, os
programas passaram a contar com a possibilidade de apresentar sadas na forma grfica.
Os dispositivos grficos podem ser classificados quanto finalidade em dispositivos
de entrada, de sada ou de entrada e sada, e quanto ao formato dos dados em dispositivos
matriciais ou vetoriais [12]. Dispositivos matriciais so aqueles cujos dados so capturados
e/ou exibidos na forma de matrizes, ou seja, um conjunto de pixels. O digitalizador de vdeo

RITA Volume XIII Nmero 2 2006 3


Introduo Computao Grfica

e o scanner so exemplos de dispositivos matriciais de entrada. Pode-se dizer que a grande


maioria dos dispositivos de sada so matriciais, tais como impressoras, stereo glasses, caves
e monitores de vdeo.
J dispositivos vetoriais incluem os equipamentos atravs dos quais se pode coletar
e/ou exibir dados de forma isolada, associados a uma posio do plano/espao. Entre os
dispositivos vetoriais de entrada destacam-se o mouse (2D ou 3D), o digitalizador espacial,
a luva eletrnica e os dispositivos para rastreamento. O exemplo mais comum de dispositivo
vetorial de sada o plotador grfico (plotter), mas os primeiros monitores de vdeos tambm
eram vetoriais, pois eram capazes apenas de exibir seqncias de linhas programadas.
Finalmente, dispositivos de entrada e sada so aqueles onde h captura de infor-
maes e exibio/resposta ao usurio. Por exemplo, dispositivos de resposta ttil (force
feedback), ou seja, que permitem a captura de movimentos e geram sensaes de tato e fora,
so considerados de entrada e sada. Outro exemplo o monitor com tela sensvel ao toque.

1.4 reas Relacionadas

H duas reas que tm uma relao bastante prxima com a CG: Processamento de
Imagens (PI) e Viso Computacional. A rea PI abrange o estudo e a pesquisa de tcnicas
para realizar a manipulao de imagens, tais como ajustes de cor, brilho, contraste ou apli-
cao de filtros, entre outras. Sistemas de PI so encontrados atualmente, por exemplo, em
consultrios de cirurgies plsticos e sales de beleza. Neste caso, uma pessoa pode ver como
ser o resultado de uma plstica ou corte de cabelo atravs de simulaes no computador. A
Viso Computacional trabalha com a anlise de imagens, buscando obter a especificao dos
seus componentes para identificao dos modelos geomtricos que a compem. Uma apli-
cao de tcnicas de Viso Computacional o reconhecimento automtico de impresses
digitais.

2 Modelagem Geomtrica

Em CG, modelos so usados para representar entidades e fenmenos do mundo fsico


real no computador. Existem vrias categorias ou mtodos de construo de modelos tridi-
mensionais. Cada um tem suas vantagens e desvantagens, adaptando-se melhor para uma ou
outra aplicao. Modelagem consiste em todo o processo de descrever um modelo, objeto
ou cena, de forma que se possa desenh-lo. Na verdade, a modelagem engloba dois tpicos
de estudo: formas de representao dos objetos (Seo 2.1), que se preocupa com a forma
(ou estruturas de dados) como os modelos so armazenados; e tcnicas de modelagem dos
objetos, que trata das tcnicas interativas (e tambm das interfaces) que podem ser usadas
para criar um modelo de objeto.

4 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

2.1 Representao

Vrias tcnicas de representao de objetos 3D esto sendo desenvolvidas em Com-


putao Grfica, e em algumas delas a estrutura de dados determinada pela tcnica de mod-
elagem. Em geral, a forma de representao determina a estrutura de dados a ser utilizada,
o custo do processamento de um objeto atravs do pipeline de visualizao 3D, a aparncia
final de um objeto e a facilidade para alterar a sua forma.

Segundo Watt [24], possvel enumerar quatro formas de representao, de acordo


com a importncia e freqncia de utilizao: (1) malha de polgonos; (2) superfcies paramtri-
cas; (3) Geometria Slida Construtiva (CSG); (4) enumerao de ocupao espacial. As rep-
resentaes 1 e 4 consistem numa aproximao da forma do objeto que est sendo modelado.
A 2 e a 3, por sua vez, so representaes exatas. Por outro lado, a 1 e a 2 representam apenas
a superfcie do objeto, sendo o volume inteiro representado pela 3 e pela 4.

A forma mais comum de representar modelos 3D atravs de uma malha de pol-


gonos. Ou seja, define-se um conjunto de vrtices no espao (geometria) e como esses vr-
tices devem ser ligados para formarem polgonos fechados, chamados de face (topologia),
que podem ser tringulos ou quadrados. O armazenamento desse tipo de estrutura usual-
mente realizado atravs de vetores de estruturas, matrizes ou listas. Por exemplo, a Figura 1
apresenta a lista de vrtices e faces necessrias para desenhar uma casa simplificada.

Figura 1: Exemplo de um objeto representado por uma malha de polgonos.

aconselhvel que todos os modelos sejam sempre definidos de maneira que o seu
centro, ou o ponto ao redor do qual ele pode ser rotacionado, seja posicionado na origem
(0, 0, 0). Assim, quando for aplicada uma transformao geomtrica (Seo 3.5) sobre o
objeto, ele no trocar de quadrante. A este espao de coordenadas, adequado criao dos
modelos, d-se o nome de Sistema de Referncia do Objeto (SRO). Em outras palavras, o
SRO o sistema de coordenadas no qual se define o modelo geomtrico.

RITA Volume XIII Nmero 2 2006 5


Introduo Computao Grfica

2.2 Instanciamento de Primitivas


No instanciamento de primitivas, o sistema de modelagem define um conjunto de
objetos primitivos 3D que so relevantes para a rea de aplicao. Tais objetos podem ser
representados, por exemplo, por malhas de polgonos ou superfcies paramtricas. Depois,
estes objetos podem ser parametrizados, tanto em termos de transformaes geomtricas
(Seo 3.5), como em outras propriedades, e agrupados. A Figura 2 apresenta uma mesa
formada pelo instanciamento de trs cilindros, com diferentes alturas e raios.

Figura 2: Exemplo de uma mesa modelada por instanciamento de primitivas.

2.3 Varredura Rotacional e Translacional


A modelagem por varredura til para a construo de objetos 3D que possuam algum
tipo de simetria. De maneira simplificada, atravs da varredura, um objeto gerado pelo
arrastar de uma curva ou superfcie (chamada geradora ou geratriz), que determina a sua
forma, ao longo de uma trajetria (diretriz). Os dois tipos mais comuns so: Varredura
Rotacional (ou sweep), quando a trajetria um crculo ao redor de um dos eixos; e Varredura
Translacional (tambm chamada de extruso), quando a trajetria uma linha. Conforme a
geratriz vai sendo arrastada, os pontos que a formam so guardados e conectados, formando
uma malha de polgonos. A Figura 3 apresenta dois exemplos de objetos gerados por esta
tcnica de modelagem.

2.4 Superfcies Paramtricas


Superfcies paramtricas so usadas quando se necessita trabalhar com superfcies
suaves na modelagem de objetos de forma livre (Free Form Objects). Neste caso, uma rep-
resentao muito utilizada so os patches paramtricos bicbicos, que permitem calcular as
coordenadas de todos os pontos que formam uma superfcie curva atravs da definio de
16 pontos de controle e da utilizao de trs equaes, uma para x, uma para y e uma para
z. Cada equao possui duas variveis (ou parmetros) e termos para todo domnio dos
parmetros at o seu cubo (da as expresses bi e cbico).

6 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

Em outras palavras, o patch uma superfcie curva na qual cada um dos pontos que
a formam deve ser processado. Para isto, inicialmente devem ser definidos 16 pontos 3D,
chamados pontos de controle. Quatro destes pontos que determinam a forma do patch per-
tencem aos seus cantos. A partir da especificao dos pontos de controle, so usadas trs
funes para calcular os valores intermedirios que, simplificadamente, so resultantes de
uma interpolao. Atravs de parmetros passados para as funes, possvel determinar
a quantidade de valores intermedirios calculados. Alm disso, sempre que um ponto de
controle alterado, os pontos que formam a superfcie devem ser gerados novamente.

(a) (b)

Figura 3: Exemplo de uma taa gerada por varredura rotacional (a) e uma palavra cujas letras
foram geradas por varredura translacional (b).

Diferentes superfcies podem ser geradas alterando as funes utilizadas, tais como
Bezier, B-Spline e NURBS. A Figura 4 apresenta dois exemplos de superfcies Bezier, cujos
pontos de controle so representados atravs de pequenos cubos. possvel observar como
a quantidade de pontos intermedirios influencia na qualidade da superfcie. As superfcies
Bzier so interessantes nos projetos interativos, pois os pontos de controle podem ser facil-
mente manipulados para alterar a forma do patch da superfcie.

Figura 4: Exemplo de superfcie paramtrica Bezier com menos (esquerda) e mais (direita)
pontos intermedirios.

RITA Volume XIII Nmero 2 2006 7


Introduo Computao Grfica

3 Processo de Visualizao 3D

Existe um conjunto de tcnicas em CG que permite transformar as informaes a


respeito de um modelo contidas em uma estrutura de dados, em uma imagem que pode ser
exibida em um monitor. Portanto, considera-se que uma imagem consiste em uma matriz de
pontos e um modelo uma representao computacional de um objeto, conforme descrito
na Seo 2.1. As sees a seguir apresentam como funcionam e como so abordadas em
OpenGL algumas das etapas do processo de visualizao 3D para a gerao de uma imagem
a partir de um modelo ou conjunto de modelos. Para finalizar, todas as etapas do pipeline de
visualizao so apresentadas na Seo 3.8.

3.1 Introduo

Para entender como funciona o processo de visualizao importante conhecer o con-


ceito de Universo, que pode ser definido como a regio do espao utilizada em uma aplicao.
Como a descrio geomtrica de um modelo normalmente envolve coordenadas geomtricas,
preciso adotar um sistema de referncia que ir definir uma origem em relao qual to-
dos os posicionamentos do universo so descritos. Em geral, este Sistema de Referncia
do Universo (SRU) consiste em trs eixos ortogonais entre si (x, y, z) e uma origem (0,
0, 0). Uma coordenada, ento, formada pelos valores de x, y e z, que correspondem s
posies ao longo dos respectivos eixos (denominados cartesianos) e todos os procedimentos
so definidos em relao a este sistema de referncia.
Para facilmente identificar como o eixo z posicionado em relao x e y, normal-
mente se utiliza a regra da mo direita ou a regra da mo esquerda. Por exemplo, na regra
da mo direita, deve-se posicionar a mo direita de maneira que o indicador aponte para
direo positiva de y (para cima), o polegar aponte para a direo positiva de x (para o lado)
e o dedo do meio aponte para a direo positiva de z (para frente, como se estivesse saindo
da tela do computador), como ilustra a Figura 5.

3.2 Cmera Sinttica

A primeira etapa do processo de visualizao 3D a definio da cena 3D. Nesta


etapa cada um dos objetos que faro parte do mundo 3D includo e posicionado no SRU.
Este posicionamento feito atravs de operaes de escala, rotao e translao (Seo 3.5).
O prximo passo consiste na especificao do observador virtual, que define de que local
se deseja que a cena 3D seja exibida, por exemplo, de cima, do lado direito ou do lado
esquerdo. Portanto, a especificao do observador inclui a sua posio e orientao, ou seja,
onde ele est e para onde est olhando dentro do universo. A necessidade da existncia desse
observador deve-se ao fato de que um mesmo conjunto de objetos no universo 3D, visto de

8 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

Figura 5: Regra da mo direita para a orientao dos eixos 3D.

diferentes lugares tem, para quem os observa, diferentes coordenadas para cada posio.
Como a imagem gerada a partir da posio e orientao do observador esttica, se
faz analogia com uma foto. Pode-se dizer que se obtm uma fotografia quando a cmera est
numa determinada posio direcionada para o objeto. A posio da cmera dada por um
ponto (x, y, z) em relao ao mesmo universo no qual os objetos esto posicionados (SRU) e
sua orientao dada por um ponto alvo (x, y, z) e um vetor, aqui chamado de up. A Figura 6
ilustra estes conceitos: a cmera posicionada de duas maneiras diferentes, ocasionando a
gerao de duas imagens distintas: na Figura 6a, os objetos aparecero da mesma maneira
que esto posicionados; na Figura 6b os objetos aparecero inclinados 90o para a direita.

(a) Cmera na orientao normal (b) Cmera inclinada

Figura 6: Modelo de cmera sinttica.

RITA Volume XIII Nmero 2 2006 9


Introduo Computao Grfica

A partir da posio e orientao da cmera criado um novo sistema de referncia,


o chamado Sistema de Referncia da Cmara (SRC). O SRC criado para que seja possvel
definir a posio de cada objeto em relao ao observador, ou seja, em relao origem do
SRC, pois s assim se pode saber qual o objeto que est mais prximo ou mais afastado do
observador, bem como se um objeto est encobrindo outro.

3.3 Projees

Quando se est trabalhando com a representao de objetos no espao tridimensional


existe uma etapa obrigatria: mapear suas representaes 3D para imagens 2D que sero
exibidas em um dispositivo como um monitor. Esta operao de obter representaes bidi-
mensionais de objetos tridimensionais chamada de projeo.
Como a maioria dos objetos representada por uma coleo de vrtices, sua projeo
definida por raios de projeo (segmentos de retas) chamados de projetantes, que passam
atravs de cada vrtice do objeto e interseccionam um plano de projeo. Esta classe de pro-
jees chamada de projees geomtricas planares. As projees usualmente so divididas
em dois tipos principais: Projeo Paralela Ortogrfica, na qual as projetantes so paralelas
entre si, passam pelos vrtices dos objetos e interseccionam o plano com um ngulo de 90o
(Figura 7a); Projeo Perspectiva, quando as projetantes emanam de um nico ponto que
est a uma distncia finita do plano de projeo e passam pelos vrtices (Figura 7b).

(a) (b)

Figura 7: Projeo de paraleleppedos usando a projeo paralela ortogrfica (a) e a projeo


perspectiva (b).

Na projeo paralela ortogrfica (Figura 7a) no h alterao nas medidas do objeto.


Sua construo bastante simples, pois, basicamente, consiste em omitir uma das compo-
nentes de cada vrtice. Entretanto, a projeo perspectiva mais utilizada, uma vez que
representa melhor o que acontece na realidade. Por exemplo, se dois objetos possuem o

10 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

mesmo tamanho e esto posicionados a diferentes distncias do plano de projeo, o objeto


que est mais longe vai parecer menor do que o objeto que est prximo, conforme ilustra a
Figura 7b.
Na visualizao 3D tambm preciso definir um volume de visualizao, ou seja, a
regio exata do universo 3D que se deseja visualizar. O tamanho e a forma do volume de
visualizao dependem do tipo de projeo. Para a projeo paralela ortogrfica, os quatro
lados do volume de visualizao e os planos frontal e traseiro na direo do eixo z, formam
um paraleleppedo. Para a projeo perspectiva o volume de visualizao um tronco de
pirmide, limitado pelos planos frontal e traseiro, cujo topo o centro de projeo, como
demonstra a Figura 7b. Os planos frontal e traseiro do volume de visualizao so paralelos ao
plano de projeo, formando um volume de visualizao limitado por seis planos e permitindo
excluir partes da cena de acordo com a profundidade.
Portanto, os objetos que ficam, total ou parcialmente, fora do volume de visualizao
definido no devem ser exibidos. Ao processo de retirada dos objetos que no esto dentro
deste volume d-se o nome de recorte. Por isso, o procedimento de recorte tambm includo
no pipeline de visualizao (Seo 3.8). Os algoritmos para realizar o recorte, tal como o de
Cohen-Sutherland, podem ser encontrados na literatura [8, 1, 10].

3.4 Mapeamento para a Tela

Mesmo aps a etapa de projeo, as imagens j 2D no plano de projeo ainda no


esto em coordenadas do Sistema de Referncia da Tela (SRT) adotado no monitor do com-
putador. Por exemplo, no SRT a origem fica no canto superior esquerdo do monitor e a res-
oluo pode variar, enquanto que o Sistema de Referncia de Projeo (SRP), que consiste no
plano de projeo, geralmente definido como [1, 1]. Portanto, torna-se necessrio realizar
o mapeamento entre estes sistemas de referncia, que consiste, basicamente, em uma regra
de proporo. Alm disso, necessrio definir em qual parte da tela se deseja exibir o que
foi selecionado e projetado. A esta regio d-se o nome de janela de exibio ou viewport.
Uma viewport delimitada pelas coordenadas de seus cantos, os quais sempre so dados em
valores que dizem respeito ao SRT. A Figura 8 ilustra o funcionamento do mapeamento.

Figura 8: Mapeamento do SRP para diferentes viewports.

RITA Volume XIII Nmero 2 2006 11


Introduo Computao Grfica

3.5 Transformaes Geomtricas

Uma das funcionalidades mais importantes das aplicaes grficas, a possibilidade


de manipular e alterar interativamente as caractersticas dos objetos que compem uma cena.
J foi visto na Seo 2 que a maioria dos objetos em OpenGL consiste de uma combinao
de um conjunto de primitivas grficas definidas atravs de vrtices. As transformaes ge-
omtricas, simplificadamente, consistem em operaes matemticas realizadas sobre estes
vrtices, permitindo alterar uniformemente o aspecto de um modelo j armazenado no com-
putador. Tais alteraes no afetam a estrutura do desenho, mas sim o aspecto que ele vai
assumir. Os trs tipos fundamentais de transformaes geomtricas, ilustradas na Figura 9,
so translao, rotao e escala.

Figura 9: Exemplo da aplicao das transformaes geomtricas em um cubo.

Em CG este processamento feito atravs de matrizes utilizando coordenadas ho-


mogneas. Neste tipo de representao, um ponto (x, y, z) representado como (w.x, w.y,
w.z, w) para qualquer fator de escala w 6= 0. Sendo assim, utiliza-se 1 para o valor de w
para representao de pontos em coordenadas homogneas. O objetivo de utilizar coorde-
nadas homogneas possibilitar a combinao das transformaes geomtricas, de maneira
a reduzir a quantidade de clculos.

A transformao geomtrica de translao usada para definir a posio de um ob-


jeto ou cena. Matematicamente, esta operao consiste em adicionar constantes de desloca-
mento a todos os vrtices, ou seja, trocando o objeto ou cena de lugar. Na forma matricial
a translao consiste na operao apresentada na Equao 1. As variveis tx, ty e tz corre-
spondem, respectivamente, aos valores de translao que devem ser aplicados nos eixos x, y
e z.

12 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica


1 0 0 0

0 1 0 0
[x y z 1] = [xyz1]
0 0
(1)
1 0
tx ty tz 1

A transformao geomtrica de escala serve para definir a escala a ser usada para
exibir o objeto ou cena. Matematicamente, esta operao consiste em multiplicar um valor
de escala por todos os vrtices do objeto (ou conjunto de objetos) que ter seu tamanho au-
mentado ou diminudo. Como se trata de uma multiplicao, para aumentar o tamanho deve
ser aplicado um fator de escala maior que 1.0, em um ou nos trs eixos. Para diminuir o
tamanho basta aplicar um valor de escala entre 0.0 e 1.0. No caso de se aplicar um fator de
escala negativo, o objeto ter os sinais de suas coordenadas invertidos, gerando como resul-
tado o seu espelhamento no eixo que teve o fator de escala negativo. Na forma matricial
a escala consiste na operao apresentada na Equao 2. As variveis ex, ey e ez indicam,
respectivamente, os valores de escala que devem ser aplicados nos eixos x, y e z.

ex 0 0 0
0 ey 0 0
[x y z 1] = [xyz1]
0
(2)
0 ez 0
0 0 0 1

A transformao geomtrica de rotao usada para rotacionar um objeto ou cena


em torno de um eixo. Matematicamente, esta operao consiste em aplicar uma composio
de clculos utilizando o seno e cosseno do ngulo de rotao a todas as coordenadas dos
vrtices que compem o objeto ou cena. Quando se trabalha em 3D, tambm se deve definir
em torno de qual eixo se proceder a rotao. Portanto, conforme apresentado na Equao 3,
trs matrizes diferentes so definidas, uma para cada eixo. O smbolo indica o ngulo de
rotao. Seguindo a conveno da regra de mo direita, quando o valor do ngulo de rotao
positivo, a rotao feita no sentido anti-horrio. Isso porque se considera que o eixo z
(ou x, ou y) envolvido pela mo direita, alinhando o polegar com o sentido positivo do
primeiro, e fechando os demais dedos no sentido positivo da rotao, ou seja, anti-horrio.

 cos sen 0 0
  1 0 0 0
  cos 0 sen 0

sen cos 0 0 0 cos sen 0 0 1 0 0
rz = rx = ry = (3)
0 0 1 0 0 sen cos 0 sen 0 cos 0
0 0 0 1 0 0 0 1 0 0 0 1

Uma rotao tambm pode ser feita ao redor de qualquer eixo, isto , em torno de um
eixo que no coincide com x, y ou z. Neste caso feita uma combinao de translaes e
rotaes ao redor dos eixos x, y ou z. O primeiro passo consiste em se alinhar o eixo de

RITA Volume XIII Nmero 2 2006 13


Introduo Computao Grfica

rotao especificado com um dos eixos cartesianos, para depois aplicar a rotao de acordo
com o ngulo selecionado. No final, o eixo de rotao deve ser colocado na sua posio
original. A Figura 10 exemplifica estes passos: a partir de um objeto e o eixo ao redor do
qual ser feita a rotao (a), feita uma translao para que o eixo de rotao passe pela
origem (b). Depois, realizada uma rotao para alinhar o eixo de rotao com o eixo z (c).
Dessa forma, agora basta aplicar uma rotao com o ngulo especificado em torno do eixo z
(d). Finalmente, aplica-se a rotao inversa ao passo (c) para retornar o eixo de rotao para a
sua orientao original, e por ltimo, realiza-se a translao inversa ao passo (b) para retornar
o eixo de rotao para a sua posio original (e).

Figura 10: Exemplo de rotao em torno de um eixo arbitrrio: (a) posio inicial; (b)
translao para a origem; (c) rotao para alinhar o eixo com o eixo z; (d) rotao do ob-
jeto ao redor do eixo z; (e) rotao inversa para a orientao original; (f) translao inversa
para a posio original (adaptada de [10]).

Atravs das matrizes com coordenadas homogneas apresentadas nesta seo pos-
svel combinar as transformaes geomtricas, de maneira a reduzir a quantidade de oper-
aes matemticas a serem aplicadas em cada vrtice do modelo. Assim, para fazer uma
combinao das transformaes geomtricas, todas as matrizes de transformao que sero
aplicadas so multiplicadas entre si, e cada vrtice multiplicado somente pela matriz resul-
tante, chamada de matriz de transformao corrente.

muito importante observar que a ordem na qual as funes so chamadas altera


o resultado final. Isto ocorre porque na verdade, a translao feita atravs da soma de
constantes de deslocamento, enquanto a rotao e a escala consistem em operaes de multi-
plicao. Portanto, dependendo do resultado esperado, deve-se cuidar para que a translao
seja feita antes ou depois das demais transformaes.

14 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

3.6 Rasterizao

Aps a etapa de mapeamento para a tela, preciso definir exatamente quais so os pix-
els que iro compor uma linha e como preencher os diferentes polgonos com uma determi-
nada cor. Estes procedimentos so conhecidos como rasterizao. Atualmente os algoritmos
para desenhos de linhas, tal como o de Bresenham [10], e para preenchimento de polgonos,
como o flood-fill [10], so implementados pelas bibliotecas grficas, bastando apenas chamar
as funes definidas para desenhar linhas e polgonos.

3.7 Remoo de Superfcies Escondidas

A idia de remoo de superfcies escondidas parte do princpio que os objetos sero


exibidos como slidos opacos. Portanto, necessrio descobrir quais so as faces de cada
objeto que realmente devem aparecer ou no na cena. Dependendo da posio do observador,
podem ocorrer duas situaes: em um mesmo objeto pode haver faces que no so visveis
por estarem posicionadas atrs de outras faces - so as chamadas faces traseiras; pode haver
objetos que ficam oclusos por outros objetos. Por exemplo, na Figura 6a, a cmera est na
frente da taa e do cilindro, que cobrem uma parte do cubo. Este, por sua vez, tem suas faces
frontais e laterais cobrindo a face traseira.
Existem vrios algoritmos para remoo de superfcies escondidas, sendo o mais sim-
ples e eficiente denominado de z-buffer. A idia deste algoritmo, cuja descrio completa
pode ser encontrada em [8] bastante simples: dois buffers do tamanho da janela de exibio
so utilizados, um para guardar valores de profundidade (z-buffer) e outro para guardar val-
ores de cor (color buffer). O z-buffer inicializado com o maior valor de profundidade
possvel e o color buffer inicializado com a cor de fundo da imagem. Depois, cada face
projetada percorrida, pixel por pixel, e o valor de profundidade de cada pixel comparado
com o valor j armazenado no z-buffer: se este pixel estiver mais prximo do observador,
coloca-se seu valor de profundidade no z-buffer e seu valor de cor no color buffer. Assim, no
final do processamento o color buffer ir conter a imagem final.

3.8 Pipeline de Visualizao

Em CG, comum agrupar um conjunto de objetos descritos geometricamente para


formar o que chamamos de cena 3D. Como uma imagem na tela do computador consiste em
uma matriz de pixels, necessrio executar todas etapas descritas nesta seo e sumarizadas
na Figura 11, para fazer a Sntese de Imagens. Inicialmente, feita a modelagem e o instan-
ciamento dos objetos para formar a cena 3D. Depois, a cmera posicionada e direcionada, e
os objetos da cena 3D so mapeados para o SRC. Uma vez definido o volume de visualizao,
realizado o recorte 3D e a projeo. Os ltimos passos consistem em fazer o mapeamento

RITA Volume XIII Nmero 2 2006 15


Introduo Computao Grfica

para o SRT e a rasterizao.

Figura 11: Pipeline de visualizao 3D.

4 Realismo

As tcnicas explicadas na Seo 3 permitem a gerao de imagens simples, cuja


aparncia artificial. Para que essas imagens tenham mais realismo, preciso considerar
outros aspectos. Dois desses aspectos sero abordados nesta seo, a idia de iluminao e a
tcnica de mapeamento de texturas.

4.1 Iluminao

Se considerarmos o funcionamento da viso humana, o requisito essencial para se


enxergar objetos a existncia de luz. A luz, presente de vrias formas, necessria para
que os objetos possam refletir e absorver seus raios, e ento, serem percebidos pelo olho
humano. Dessa forma, quando se fala de realismo em imagens geradas por CG, necessrio
inicialmente compreender a natureza das fontes de luz e suas interaes com os objetos.
Denomina-se fonte de luz puntual (Figura 12a) aquela cujos raios de luz emanam
uniformemente em todas as direes a partir de um nico ponto no espao. Esse tipo de fonte
de luz comparvel a uma lmpada, e a iluminao na superfcie de um objeto evidentemente
ir variar de acordo com a distncia e direo da fonte de luz.
J uma fonte de luz direcional (Figura 12b) aquela cujos raios de luz vm sempre
da mesma direo. Dessa forma, a orientao de cada superfcie e a direo da fonte de luz
determinam o seu efeito. Por exemplo, uma face plenamente iluminada se estiver perpen-
dicular aos raios de luz incidentes. Quanto mais oblqua uma face estiver em relao aos
raios de luz, menor ser a sua iluminao. A luz solar o exemplo clssico de fonte de luz
direcional: apesar do Sol estar em um ponto no espao (o que a princpio poderia sugerir que
uma fonte de luz puntual), como a sua distncia at a Terra muito grande, considera-se
que os raios de luz chegam praticamente paralelos nossa superfcie.

16 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

O terceiro tipo mais comum de fonte de luz a do tipo spot (Figura 12c). Esse tipo
na verdade uma combinao de uma luz puntual com um componente direcional: os raios de
luz so emitidos na forma de um cone, apontado para uma determinada direo. O exemplo
mais comum desse tipo de fonte de luz um abajur ou uma lanterna. Na luz do tipo spot,
a intensidade diminui conforme o raio de luz desviado da direo para a qual a fonte de
luz est apontada. Freqentemente, modela-se fontes de luz desse tipo atravs de parmetros
adicionais, que definem o ngulo de abrangncia e a funo de atenuao da intensidade de
luz.

Figura 12: Fontes de luz mais comuns em Computao Grfica.

As interaes entre as fontes de luz e as superfcies so descritas atravs de mode-


los de reflexo. Em um modelo desse tipo, considera-se as propriedades da superfcie e a
natureza da(s) fonte(s) de luz. A idia de cor fundamental para se entender como se d
a interao entre luz e superfcie: a percepo de cor nada mais do que o resultado dessa
interao, combinado com a interpretao desse fenmeno pelo sistema visual humano. Em
um computador, cores so representadas atravs de sistemas de cores, como por exemplo, o
sistema RGB (vermelho, verde e azul). importante lembrar que a fonte de luz tambm pode
possuir cor, e no apenas ser branca.
O modelo de reflexo mais simples denominado reflexo ambiente (ou luz ambi-
ente) - Figura 13a. Seu objetivo modelar a luz que est presente no ambiente, mas cuja
origem no pode ser precisamente determinada - por exemplo, a luz que vem por baixo de
uma porta, ou por uma fresta em uma janela. O modelo de luz ambiente tambm representa
as diversas inter-reflexes que ocorrem no ambiente, e que no podem ser facilmente medi-
das. Ou seja, a luz indireta que os objetos recebem. Portanto, esse tipo de reflexo permite a
visibilidade de superfcies que no estejam recebendo diretamente raios de luz. Por definio,
depende apenas da cor do objeto e gera uma iluminao constante em toda a sua superfcie.
A reflexo difusa (ou reflexo Lambertiana) ocorre na superfcie da maioria dos ob-
jetos que no emitem luz. Todo objeto absorve a luz do Sol ou a luz emitida de uma fonte
artificial, e reflete parte desta luz. Dessa forma, a reflexo difusa deve-se ao fato de haver uma
interao molecular entre a luz incidente e o material da superfcie. Por exemplo, supondo

RITA Volume XIII Nmero 2 2006 17


Introduo Computao Grfica

um objeto azul que est sendo iluminado por uma fonte de luz branca: o objeto absorve os
raios de luz brancos e reflete apenas o componente azul da cor. Portanto, uma superfcie
perfeitamente difusa reflete os raios de luz igualmente em todas as direes, como mostra a
figura Figura 13b. Esse tipo de reflexo depende da cor do objeto e da posio da fonte de
luz: a quantidade de luz refletida percebida pelo observador no depende da sua posio. A
reflexo difusa normalmente produz uma variao da cor ao longo das superfcies dos objetos.

Figura 13: Modelos de reflexo da luz.

Entretanto, na realidade a maioria das superfcies no um refletor difuso perfeito,


ou seja, parte da reflexo se comporta de forma diferente. Por exemplo, superfcies polidas
exibem normalmente pontos de brilho, onde pode ser vista uma reflexo da prpria fonte de
luz. Esta reflexo denominada reflexo especular e a cor do brilho usualmente a mesma
da fonte de luz. A posio do observador importante, uma vez que a luz refletida de uma
superfcie polida deixa a superfcie com o mesmo ngulo que o raio de luz incidente forma
com um vetor perpendicular superfcie (denominado vetor normal). Se o observador estiver
exatamente na frente desse raio refletido (Figura 13c), ele enxergar o brilho na superfcie do
objeto com a maior intensidade. Naturalmente, medida em que a posio do observador
muda em relao ao raio refletido, a intensidade do brilho diminui.
Finalmente, para se aplicar um modelo de iluminao e de reflexo costuma-se empre-
gar um modelo de tonalizao. Por exemplo, denomina-se tonalizao flat (tambm chamado
constante ou facetado) o modelo no qual o clculo de iluminao realizado uma nica vez
por superfcie, geralmente tomando-se um ponto no centro desta. Esse tipo de tonalizao
produz imagens com rapidez, mas sem muito realismo j que no h variao de cor ao longo
das superfcies (Figura 14a). Usualmente, so empregados modelos mais sofisticados, como
o de Gouraud, onde a iluminao calculada nos vrtices e as cores geradas podem ento
ser rapidamente interpoladas no interior das superfcies (Figura 14b). O modelo de Gouraud
tambm permite a suavizao de objetos facetados, pois utiliza a mdia entre os vetores nor-
mais, empregados no clculo de iluminao. Porm, uma desvantagem desse mtodo que

18 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

os pontos de brilho especular so atenuados, devido interpolao de cores. Para resolver


esse problema, o modelo de Phong interpola os vetores normais dos vrtices que compem
uma superfcie, e realiza o clculo de iluminao por pixel, durante a rasterizao. Isso obvia-
mente produz um resultado visual muito superior (Figura 14c), porm o custo computacional
tambm consideravelmente maior. Por fim, cabe observar que hoje em dia j possvel
implementar tonalizao de Phong atravs de programao direta do hardware grfico, o que
muito mais eficiente.

(a) Flat (b) Gouraud (c) Phong

Figura 14: Modelos de tonalizao comumente empregados em Computao Grfica.

4.2 Textura

Mesmo atravs do recurso de iluminao, freqentemente os objetos no tero uma


aparncia realstica. Isso acontece porque os materiais na realidade no tem simplesmente
cores diferentes, mas sim uma srie de caractersticas fsicas, como rugosidade e textura, que
determinam como exatamente refletem os raios de luz. Em CG, costuma-se modelar essas
caractersticas atravs de um conjunto de diversas tcnicas, que podem ser combinadas. Aqui
ser abordada a tcnica mais comum, denominada genericamente mapeamento de textura,
ou textura mapeada. A idia utilizar uma imagem que contenha a aparncia da superfcie
desejada. Por exemplo, madeira ou metal. Essa imagem ento, durante o processo de raster-
izao, mapeada sobre a superfcie atravs de coordenadas de textura. Estas coordenadas
(usualmente chamadas de s e t) determinam como o mapeamento realizado, conforme a
Figura 15a apresenta. A textura funciona ento, como um decalque ou um papel de parede,
sendo colada superfcie. importante observar que o mapeamento de textura pode (e
geralmente ) combinado com o processo de iluminao, gerando um resultado ainda melhor
(Figura 15b).

RITA Volume XIII Nmero 2 2006 19


Introduo Computao Grfica

(a) Coordenadas de textura (b) Efeito com iluminao

Figura 15: Mapeamento de textura.

5 Animao

A idia de animao est intimamente ligada de movimento, mas animao tambm


pode ser mudana de cor ou forma. De uma forma geral, animao se d quando exibe-se
uma seqncia de imagens rapidamente, onde cada imagem um pouco diferente da ante-
rior. Se essas imagens (quadros ou frames) forem exibidas com uma velocidade suficiente
(denominada taxa de exibio ou frame rate), ser produzida a iluso de movimento. Porm,
em geral se caracteriza a animao computadorizada de duas formas distintas [23, 16]: an-
imao assistida por computador e animao modelada por computador. No primeiro tipo
(assistida), o computador utilizado como uma ferramenta de desenho, pintura ou at mesmo
para comandar a cmera de filmagem. J no segundo tipo, popularizado recentemente pelo
surgimento de vrios filmes animados, o computador empregado durante todo o processo,
desde a modelagem e criao de cenrios e personagens, at a gerao da imagem de cada
quadro individual, aplicando tcnicas de realismo como iluminao, texturas e muitas outras.

Uma das tcnicas mais comuns de animao a denominada animao paramtrica,


onde as propriedades de cada objeto so parametrizadas (como por exemplo, posio, rotao,
escala ou cor) e so animadas, ou seja, alteradas ao longo do tempo, produzindo o efeito de
animao. Geralmente utiliza-se a idia de quadro-chave (key frame), isto , determinados
instantes de tempo onde algumas ou todas as propriedades so especificadas pelo usurio
(Figura 16). O sistema de animao ento calcula as propriedades nos demais instantes de
tempo atravs de algum tipo de interpolao. Outro tipo usual de animao aquela baseada
em simulao, onde as propriedades dos objetos so alteradas de acordo com o resultado da
simulao. Por exemplo, o lanamento de um projtil pode ser modelado atravs de simu-
lao da Lei da Gravidade.

20 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

Figura 16: Animao paramtrica: trs instantes de tempo onde a posio e escala do objeto
so especificadas - no final, a escala reduzida no eixo y, para simular o achatamento da
bola.

6 Visualizao

Uma rea de grande importncia dentro da CG a Visualizao, que consiste, de


maneira simplificada, na representao grfica adequada de um conjunto de dados alfanumri-
cos. A Visualizao Cientfica [14] (VisC) aplica tcnicas sofisticadas de CG e PI para pro-
duzir imagens de fenmenos/dados fsicos complexos e permitir a sua explorao grfica com
o objetivo de facilitar o seu entendimento. Como, muitas vezes, a quantidade de dados to
grande, entend-los sem visualiz-los quase impossvel. Por isso, a VisC surgiu como uma
forte ferramenta, permitindo que cientistas e pesquisadores simulem os problemas em es-
tudo, interpretem seus dados e progridam na compreenso da soluo. Entre as grandes reas
de aplicao da Visualizao Cientfica encontram-se a Medicina, Meteorologia, Qumica,
Fsica, Geologia, Sistemas de Informaes Geogrficas, entre outras.
Visualizao Volumtrica (Figura 17a) designa o conjunto de tcnicas utilizadas para
produzir imagens que representam dados associados a posies (ou regies) do espao 3D,
que constituem o que costuma-se referenciar por grade [13]. O seu principal objetivo se-
gundo [11] exibir as estruturas existentes no interior do volume de dados, permitindo a
identificao de caractersticas significativas e a compreenso dos dados e fenmenos repre-
sentados.
J a Visualizao Colaborativa outra categoria de sistemas de visualizao que surgiu
com o crescimento explosivo da Internet [25]. A idia desenvolver ferramentas que permi-
tam a colaborao entre diversos usurios, possibilitando, por exemplo, a insero de ano-
taes e a manipulao e debate, em tempo real, sobre a visualizao de um determinado
conjunto de dados.
Visualizao de Informaes [9, 22] uma rea de aplicao de tcnicas de com-
putao grfica, geralmente interativas que combina aspectos de CG, Interao Humano-

RITA Volume XIII Nmero 2 2006 21


Introduo Computao Grfica

Computador(IHC) e minerao de dados. Com a crescente importncia da rea de IHC, ex-


iste uma preocupao com o projeto, avaliao e implementao de sistemas computacionais
interativos para uso humano e aos fenmenos que os cercam [18]. Alm disso, atualmente,
a interao pode ser feita atravs de diversos dispositivos, tais como mouse, teclado, data
glove, entre outros. Ferramentas para a visualizao do crescimento de uma rede, visualiza-
o de hierarquias e estruturas de rvore (Figura 17b), visualizao e manipulao de grafos
abstratos, auxiliando a anlise e visualizao de sistemas complexos, e para fazer uma busca
e anlise visual em grandes bases de dados para descobrir conhecimentos interessantes, so
alguns exemplos de aplicaes desta rea.

(a) (b)

Figura 17: Tipos de visualizao: (a) cientfica, reconstruo volumtrica de um aneurisma


cerebral a partir de imagens de tomografia computadorizada [4]; (b) de informaes, exibio
de um extenso sistema de arquivos atravs de uma tcnica de projeo hiperblica [15].

7 Comentrios Finais

Como a evoluo da Computao Grfica depende da evoluo do hardware, recen-


temente, as novas geraes de placas grficas possibilitaram o desenvolvimento de vrias
aplicaes e um grande avano em muitas reas da CG. Por exemplo, os jogos eletrnicos
hoje apresentam imagens com alto grau de realismo, alm de permitir a conexo de jogadores
atravs da Internet [5, 2, 6]. Muitas imagens podem ser geradas em tempo real devido pos-
sibilidade de programar o hardware grfico [7, 17, 19]. Isso tambm tem beneficiado a rea
de visualizao, que, em geral, trabalha com uma grande quantidade de dados que pode ser
armazenada na memria das placas grficas. Por isso, a programao de hardware grfico
tem sido uma rea em grande evoluo.
Outra facilidade hoje em dia a grande disponibilidade de bibliotecas e toolkits que
auxiliam a programao. Por exemplo, para o desenvolvimento de aplicaes simples em

22 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

OpenGL costuma-se empregar a GLUT (GL Utility Toolkit), que oferece recursos bsicos
para gerenciamento de janelas e interao com o usurio. J para a implementao de
interfaces grficas mais complexas, pode-se citar o FLTK (Fast Light Toolkit), disponvel
em http://www.fltk.org, e o wxWidgets (http://www.wxwidgets.org). Um
toolkit mais completo para programao grfica interativa o OpenInventor (http://oss.
sgi.com/projects/inventor/), que fornece para incluso alm de primitivas 3D,
tais como cubos e polgonos, cmeras, luzes, visualizadores, entre outros elementos. Para a
implementao de aplicaes de visualizao e processamento de imagens, pode-se utilizar
o VTK (Visualization Toolkit) e o ITK (Insight Registration and Visualization Toolkit), este
ltimo com nfase na manipulao de imagens mdicas), ambos portveis, disponibilizados
gratuitamente e com cdigo-fonte aberto. Os endereos para obter mais informaes sobre
estes toolkits so http://www.vtk.org e http://www.itk.org.
Recentemente, tambm houve um avano muito grande nas interfaces grficas. No-
vas verses de ambientes operacionais possuem interfaces 3D que permitem trabalhar com
janelas transparentes que podem rotacionadas ao redor de qualquer eixo. O reconhecimento
de gestos, e at mesmo expresses faciais, tambm pode ser utilizado como mais uma forma
de interao. Animao de humanos virtuais, simulao de comportamento de multides,
aplicaes de Realidade Virtual [20] e Realidade Aumentada so outros exemplos de reas
que tm sido muito pesquisadas.

Referncias
[1] E. Angel Interactive Computer Graphics: a top-down approach with OpenGL.
Reading, MA: Addison-Wesley, 2000. 611 p.

[2] D. Astle, K. Hawkins Beginning OpenGL Game Programming. Muska &


Lipman/Premier-Trade, 1st edition, 2004, 336 p.

[3] M. Cohen, I.H. Manssour. OpenGL - Uma Abordagem Prtica e Objetiva. So


Paulo: Novatec, 2006. 486 p.

[4] M. Cohen. Focus and Context for Volume Visualization, PhD thesis. School of
Computing, University of Leeds, 2006. 206 p.

[5] M. Collins, M. Donlin, S. Baker, B. Campbell. Linux Game Programming (Prima


Techs Game Development). Muska & Lipman/Premier-Trade, 1st edition, 2002,
368 p.

[6] M. Dickheiser. Game Programming Gems 6 (Game Development Series). Charles


River Media, 1st edition. 2006. 736 p.

RITA Volume XIII Nmero 2 2006 23


Introduo Computao Grfica

[7] R. Fernando, M.J. Kilgard. The Cg Tutorial: The Definitive Guide to Pro-
grammable Real-Time Graphics. Addison-Wesley, 2003. 384 p.
[8] J.D. Foley, et al. Computer Graphics: Principles and Practice. New York, Addi-
son Wesley, 1990, 2th ed.
[9] C.M.D.S. Freitas, O.M. Chubachi, P.R.G. Luzzardi, R.A. Cava. Introduo
Visualizao de Informaes. Revista de Informatica Terica e Aplicada, Porto
Alegre, RS, v. 8, n. 2, p. 143-158, 2001.
[10] D. Hearn, M. Baker. Computer Graphics with OpenGL. 3rd edition. Upper Sad-
dle River, NJ: Pearson Prentice-Hall, 2004. 855p.
[11] A.E. Kaufman, D. Cohen, R. Yagel. Volume Graphics. Computer, v. 26, n. 7,
1993. p. 51-64.
[12] O. Lathrop. The Way Computer Graphics Works. New York, NY: John Wiley
Sons, 1997. 202 p.
[13] B. Lichtenbelt, R. Crane, S. Naqvi. Introduction to Volume Rendering. Upper
Saddle River, NJ: Prentice Hall, 1998.
[14] B. H. McCormick, T. A. DeFanti, M. D. Brown. Visualization in Scientific Com-
puting, Computer Graphics, v. 21, n. 6, p. 1521, 1987.
[15] T. Munzner, P. Burchard. Visualizing the structure of the World Wide Web in 3D
hyperbolic space. VRML 95: Proceedings of the first symposium on Virtual
reality modeling language, ACM Press, p. 3338, 1995.
[16] R. Parent. Computer animation: algorithms and techniques. San Francisco: Mor-
gan Kaufmann, 2002. p. 51-64. 527 p.
[17] M. Pharr, R. Fernando. GPU Gems 2: Programming Techniques for High-
Performance Graphics and General-Purpose Computation. Addison-Wesley
Professional, 2005, 880 p.
[18] H.V. da Rocha, M.C.C. Baranauskas. Design e Avaliao de Interfaces Humano-
Computador. NIED/UNICAMP. 2003. 244 p.
[19] R.J. Rost. OpenGL(R) Shading Language. 2nd edition. Addison-Wesley Profes-
sional. 2006. 800 p.
[20] W.R. Sherman, A. Craig. Understanding Virtual Reality: Interface, Applica-
tion, and Design (The Morgan Kaufmann Series in Computer Graphics). Morgan
Kaufmann, 1st edition, 2003, 582 p.

24 RITA Volume XIII Nmero 2 2006


Introduo Computao Grfica

[21] D. Shreiner, M. Woo, J. Neider, T. Davis. OpenGL Programming Guide: the offi-
cial guide to learning OpenGL, version 1.4. 4rd Edition. Reading, Massachusetts:
Addison Wesley, 2004. 759 p.

[22] R. Spence. Information visualization. Harlow: Addison-Wesley, 2003. 206 p.

[23] J. Vince. 3-D Computer Animation. Addison-Wesley, New York, 1992. 363 p.

[24] A. Watt. 3D Computer Graphics. 3rd Edition. Harlow: Addison-Wesley, 2000.


570 p.

[25] J. Wood, H. Wright, K. Brodie, Collaborative visualization. IEEE Visualization


1997 (VIS97), 1997. p. 253

[26] R.S. Wright, B. Lipchak. OpenGL SuperBible. Sams, 3rd Edition, 2004, 1200 p.

RITA Volume XIII Nmero 2 2006 25

Você também pode gostar