Você está na página 1de 150

FUNDAO EDUCACIONAL DE BARRETOS ENGENHARIA DA COMPUTAO

Computao grfica
(Notas de aulas)

ngela Abreu R. de S Fernanda Maria C. Santos

Disciplina: Computao Grfica


CALENDRIO 1 SEMESTRE/ 2005
FEVEREIRO/2005 Dom Seg Ter Qua Qui 1 2 3 6 7 8 9 10 13 14 15 16 17 20 21 22 23 24 27 28 MARO/2005 Dom Seg Ter Qua Qui 1 2 3 6 7 8 9 10 13 14 15 16 17 20 21 22 23 24 27 28 29 30 31 ABRIL/2005 Ter Qua Qui 5 12 19 26 6 13 20 27 7 14 21 28

Sex 4 11 18 25

Sab 5 12 19 26

Sex 4 11 18 25

Sab 5 12 19 26

Dom 3 10 17 24

Seg 4 11 18 25

Sex 1 8 15 22 29

Sab 2 9 16 23 30

Dom 1 8 15 22 29

Seg 2 9 16 23 30

MAIO/2005 Ter Qua Qui 3 4 5 10 11 12 17 18 19 24 25 26 31

Sex 6 13 20 27

Sab 7 14 21 28

Dom 5 12 19 26

Seg 6 13 20 27

JUNHO/2005 Ter Qua Qui 1 2 7 8 9 14 15 16 21 22 23 28 29 30

Sex 3 10 17 24

Sab 4 11 18 25

Dom 3 10 17 24 31

Seg 4 11 18 25

JULHO/2005 Ter Qua Qui 5 12 19 26 6 13 20 27 7 14 21 28

Sex 1 8 15 22 29

Sab 2 9 16 23 30

Legenda Incio e Trmino do Semestre Feriado Recesso Aula

Disciplina: Computao grfica (primeiro semestre/2005) Carga horria: 76h/a Professora: Fernanda Maria da Cunha Santos 1 Ementa
1. Introduo Computao Grfica Conceito de Computao Grfica Histrico Aplicaes 2. Equipamentos para Computao Grfica e Realidade Virtual Critrios de Classificao Equipamentos de entrada Equipamentos de sada 3. Sistemas de Coordenadas Sistema de coordenadas do mundo (WC) Sistema de coordenadas normalizadas (NDC) Transformao WC-NDC 4. Gerao de Primitivas Grficas Gerao de linhas Gerao de circunferncias 5. Preenchimento de reas Preenchimento de polgonos 6. Transformaes Geomtricas (2D e 3D) Escala, translao e rotao Matriz de transformao geomtrica Espelhamento e cisalhamento 7. Algoritmos de Recorte Algoritmo de recorte de linhas (Cohen-Sutherland) Algoritmo de recorte de polgonos (Sutherland-Hodgeman) 8. Projees Geomtricas Paralelas e perspectivas 9. Tratamento de Linhas e Superfcies Escondidas Algoritmo Z-Buffer Algoritmo Scan-Line Algoritmo Ray-Casting

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

10. Iluminao e sombreamento Luz Ambiente e reflexes difusa e especular Sombreamento de Polgonos Sombras 11. Modelagem e textura 12. Fundamentos de animao computadorizada 13. Introduo a Realidade Virtual

2 Sistema de Avaliao
2 provas escritas: -- 1 prova: 5 pontos -- 2 prova: 4 pontos 3 trabalhos prticos: -- 1 trabalho: 5 pontos -- 2 trabalho: 3 pontos -- 3 trabalho: 3 pontos

Composio das notas: NP1 = (1 Prova) + (1 Trabalho) NP2 = (2 Prova) + (2 Trabaho) + (3 Trabalho)

MF =

(NP1 5) + (NP 2 5)
10
MF Mdia Final; NP1 Primeira Nota Parcial; NP2 Segunda Nota Parcial.

Onde:

3 Bibliografia
AZEVEDO,E; CONCI, A. Computao Grfica Teoria e prtica. So Paulo, Campus, 2003. FOLEY; VAN DAM; FEINER; HUGHES. Computer Graphics Principles and Practice. Addison Wesley 1997. HEARN, D.; BAKER, M.P.; Computer Graphics C Version; 2nd Ed., Prentice Hall, 997.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

Aula 02
2 Introduo Computao Grfica
A Computao Grfica uma subrea da Cincia da Computao que consiste em mtodos e tcnicas usadas para criar, armazenar e manipular modelos de objetos e suas imagens via computador.

Cincia da Computao

Banco de Dados

Computao Grfica

Redes

Animao Modelagem Realidade de Imagens de Slidos Virtual

A Computao Grfica est ligada a modelagem e sntese de imagens e visa a criao de objetos e a visualizao dos mesmos a partir de uma interao com o usurio e do acesso as informaes que descrevem estes objetos a nvel geomtrico ou por equaes, sejam eles bidimensionais ou tridimensionais. Ela envolve os processos que permitem a partir de uma interface com os dispositivos de entrada e sada grfica que seja gerada uma imagem. Ao contrrio do Processamento Grfico, a Computao Grfica no possui como fim apenas a manipulao ou anlise das imagens, mas sim a sua gerao e sua posterior visualizao.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

J o Processamento de Imagens est ligado ao tratamento e anlise de imagens. Ele visa a manipulao e exibio de imagens prontas, envolvendo diversos processos de tratamento da imagem bem como os processos que permitam a interface entre dispositivos de entrada e sada grfica e o arquivo de imagem. Ao contrrio da Computao Grfica, o Processamento de Imagens no possui como fim a gerao de uma imagem a partir de dados, mas sim a manipulao de uma imagem previamente gerada e at possivelmente a extrao de informaes a partir desta imagem.

Histrico
Desde o incio dos tempos as pessoas comunicaram idias, pensamentos e fantasias atravs de meios visuais usando pintura, fotografia, filme e agora a computao grfica. Porm, a evoluo da computao grfica em si est diretamente relacionada evoluo dos computadores tendo em vista que as tcnicas utilizadas se aperfeioaram basicamente sustentadas pelo avano do hardware e conseqente aumento de capacidade computacional. O passo inicial para o desenvolvimento da computao grfica se deu em 1926 com a construo do primeiro prottipo de televiso por J. L. Baird em seguida o primeiro computador para uso geral chamado ENIAC foi encomendado pela marinha nos anos 40 o qual foi desenvolvido para controle de vo e clculos de problemas tericos. A Computao Grfica cresceu para incluir a criao, armazenamento e manipulao de modelos de imagens e objetos. Esses modelos vm de um conjunto diverso e cada vez maior de campos, e incluem estruturas fsicas, matemticas, de engenharia e arquitetura, conceituais (abstratas), fenmenos naturais e assim por diante. A Computao Grfica de hoje altamente interativa: o usurio controla o contedo, estrutura e aparncia dos objetos e suas imagens atravs de dispositivos de entrada, tais como teclado, mouse ou tela sensvel ao toque. Por causa do relacionamento prximo entre os dispositivos de entrada e a tela, a manipulao de tais dispositivos est includa no estudo da Computao Grfica.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

At o incio dos anos 80, a Computao Grfica era um campo pequeno e especializado, principalmente porque o hardware era caro e os programas baseados em grficos fceis de usar e eficientes em termos de custo eram poucos. Ento, os computadores pessoais com monitores grficos de varredura rastreada (raster graphics display) - tais como o Star, da Xerox, e mais tarde os famosos Apple Macintosh e o IBM PC e seus clones popularizaram o uso de grficos de bitmap para interao usurio-computador. Um bitmap uma representao de zeros e uns de uma matriz de pontos (pixels, de picture elements) na tela. Assim que os bitmaps tornaram-se mais confortveis, uma exploso de aplicativos baseados em grficos fceis de usar e baratos surgiu. As Interfaces Grficas com o Usurio (Graphic-based User Interface - GUI) permitiram a milhes de novos usurios controlar aplicativos simples e baratos, tais como planilhas, processadores de texto e programas de desenho. O conceito de desktop (escrivaninha) tornou-se uma metfora popular para a organizao do espao na tela. Atravs de um window manager (gerenciador de janelas), o usurio podia criar, posicionar e mudar o tamanho de reas retangulares de tela, chamadas windows (janelas), que agiam como terminais grficos virtuais, cada uma rodando um aplicativo. Isso permitiu aos usurios mudar entre vrias atividades apenas apontando a janela desejada, tipicamente com o mouse. Como pedaos de papel sobre uma mesa desarrumada, as janelas podiam se sobrepor arbitrariamente. Tambm como parte dessa metfora de desktop eram mostrados cones que representavam no apenas arquivos de dados e aplicativos, mas tambm objetos comuns de escritrio, tais como estantes, caixas de correio, impressoras e latas de lixo, que executavam as funes computacionais equivalentes s de seus colegas da vida real. A manipulao direta de objetos via "apontar e clicar" substituiu muito da arcaica digitao de comandos usada em sistemas operacionais e aplicativos anteriores. Assim, os usurios podiam selecionar cones para ativar os programas ou objetos correspondentes, ou selecionar botes ou itens de menus na tela para fazer escolhas. Hoje, quase todos os aplicativos interativos, mesmo os que manipulam texto (como processadores de texto) ou dados numricos (como planilhas), usam intensamente grficos nas suas interfaces e para visualizar ou manipular objetos especficos do aplicativo. A interao grfica via monitores de varredura rastreada (monitores que usam bitmaps) tem substitudo a maioria da interao textual dos monitores alfanumricos. Mesmo pessoas que no usam computadores em seu trabalho dirio encontram Computao Grfica em comerciais de televiso e efeitos especiais de cinema. A Computao Grfica no mais uma raridade. Ela uma parte integrante de todas as interfaces com o usurio, e indispensvel para visualizao de objetos de duas, trs ou mais dimenses: reas to diversas quanto educao, cincia, engenharia, medicina, comrcio, foras armadas, publicidade e entretenimento utilizam intensamente Computao Grfica. Aprender como programar e usar computadores hoje em dia inclui aprender tambm a usar grficos 2D simples como questo de rotina. ANOS 60 Na dcada de 60 a Computao Grfica avanou consideravelmente a partir de um programa de desenho, o Sketchpad ("Sketchpad - A Man-Machine Graphical Communication System") criado por um estudante do MIT, Ivan Sutherland. O Sketchpad propunha uma forma de inteno muito semelhante ao que hoje chamamos de interfaces WIMP WindowIcon-Menu-Pointer. Usando uma caneta tica, o Sketchpad permitiu que se extrasse formas simples na tela do computador, podendo salvar e at reus-las depois.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 7

Sutherland pareceu encontrar a soluo perfeita para muitos dos problemas grficos que enfrentou. Ainda hoje, muitos padres de interface da Computao Grfica iniciaram a partir do Sketchpad. Tambm nessa poca comearam aparecer projetos de pesquisas e produtos comerciais para desenho automtico auxiliado por computador, conhecidos por CAD Computer Aided Design, e auxlio na fabricao de produtos da indstria automobilstica, aeroespacial e de computao utilizando o CAM Computer Aided Manufacturing Em 1961, outro estudante do MIT, Steve Russell, criou o primeiro vdeo game, Spacewar. Escrito para o DEC PDP-1, o Spacewar foi um sucesso imediato e as cpias comearam a se difundir a outros proprietrios de PDP-1 e eventualmente aos do DEC. A fora das vendas o tornou o primeiro vdeo game do mundo. No demorou muito para que as principais corporaes comeassem a demonstrar interesse na Computao Grfica, como a TRW, Lockheed-Georgia, General Electric e Sperry Rand, na metade de 1960. A IBM foi rpida ao responder este interesse lanando terminais grficos IBM 2250, o primeiro computador comercialmente disponvel da Computao Grfica. Ralph Baer, um engenheiro de superviso da Sanders Associates, surgiu com um vdeo game domstico em 1966 licenciado mais tarde a Magnavox e foi chamado de Odyssey. Muito simples, e requerendo as peas eletrnicas razoavelmente baratas, permitiu que o jogador movesse pontos de luz ao redor de toda a tela. Era o primeiro produto comercial da Computao Grfica. Tambm em 1966, Sutherland no MIT inventou o primeiro computador controlado, head-mounted display (HMD). Chamado de a Espada de Damocles por causa da ferragem requerida para a sustentao, ele mostrou duas imagens wireframe separadas, uma para cada olho. Isto permitiu que pudesse ser vista uma cena do computador em 3D. O laboratrio de Computao Grfica da Universidade de Utah atraa pessoas de todos os lugares, dentre eles, John Warnock que foi um dos pioneiros e mais tarde fundou a Adobe Systems e revolucionou a publicao mundial com sua linguagem de descrio de pgina postScript. Tom Stockham conduziu o grupo de processamento de imagem na UU que trabalhou prxima ao laboratrio de Computao Grfica. Jim Clark tambm trabalhava l e mais tarde fundou a Silicon Graphics Inc. O primeiro grande avano da Computao Grfica 3D foi criado na UU por estes pioneiros, o algoritmo da hidden-surface. Com a inteno de desenhar uma representao de um objeto 3D na tela, o computador deve determinar que superfcies que esto "atrs" da perspectiva do observador, e assim deve "ser escondido" quando o computador cria (ou renderiza) a imagem. ANOS 70 No inicio dos anos 70 comeam a aparecer as primeiras bibliotecas grficas, sendo o CORE aprovado como norma americana ANSI em 1977. Alan Kay inventa o conceito de manipulao direta, que consiste em manipular as representaes dos objetos que aparecem na tela de modo semelhante ao modo como se manipula esses objetos no mundo real. Para apagar um arquivo basta arrast-lo para a rea da tela onde est desenhada a lixeira. Em 1970 aparecem pela primeira vez muitos dos dispositivos disponveis no mercado hoje, as mesas digitalizadoras, telas sensveis ao toque (touch-screens) e o mouse. apresentado tambm o primeiro rob controlado por inteligncia artificial, o rob Shakey, que era equipado com sensores (cmera de vdeo, laser range finder, e bump sensors) e um algoritmo de resoluo de problemas.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 8

Foi nesse ano que se deu a criao do Xerox Parc, Palo Alto Research Center, pela Xerox Corporation. Em 1972 fundada a Atari, empresa voltada para a produo de jogos, sendo produzido no mesmo ano o jogo Pong. Em 1974 a estao de trabalho ALTOS se torna operacional, a primeira a usar um mouse embutido e ligada a uma rede local. A sua interface grfica (GUI - Graphic user interface), j usava janelas, menus e cones. Ele no foi comercializado, algumas mquinas foram oferecidas a universidades americanas contribuindo para a transferncia de tecnologia. Em 1973 criada a tecnologia Ethernet, e feita a exibio comercial do filme Westworld, que usava grficos 2D produzidos por computador, sua continuao, Futureworld, foi exibida um ano depois, j contendo imagens 3D geradas por computador. No mesmo ano, 1974, foi criado o programa Super Paint. Em 1975 escrito o primeiro interpretador da linguagem Basic, por Bill Gates e Paul Allen, que fundaram a Microsoft no mesmo ano. Em 1976 produzido o Cray I, o primeiro sucesso comercial na rea dos super computadores. No mesmo ano projetado o Apple I, com um processador 6502, de uma empresa concorrente da Intel. Por insistncia do amigo Steve Jobs, Wozniack comea a comercializao, e em 1 de abril de 1976 nasce a Apple Computer, tendo produzido o Apple II em 1977 e o Apple III em 1980. Em 1979 fundada a Associao Europia de Computao Grfica, Eurographics, por um grupo de investigadores e utilizadores europeus e alguns americanos. Lanado o primeiro rcade Vdeo Game, o Space Invaders. No campo cientfico diversos fatos merecem relevncia, em 1970 Bzier desenvolve novas formas de representao de superfcies 3D generalizadas, e Gouraud desenvolve um novo mtodo de colorao de faces 3D. desenvolvido, na Xerox Parc, a primeira matriz de pixels com 8 bits por pixel, e um novo algoritmo de clculo de visibilidade de superfcies 3D usando tcnicas de ordenao por Newell, Newell e Sancha. Em 1973 realizada a primeira conferncia SIGGRAPH, e em 1974 desenvolvido, por Catmull, um novo mtodo de visibilidade e colorao de faces (z-buffer). Phong inventa, em 1975, um mtodo de colorao de faces 3D capaz de reproduzir efeitos direcionais de iluminao (reflexes simples). No mesmo ano, Mandelbrot desenvolve a teoria dos fractais. Em 1976, Blinn desenvolve novos mtodos de mapeamento de textura, e em 1977 surge a primeira biblioteca grfica de programao (GKS, Graphical Kernel System). ANOS 80 A dcada de 80 conhecida por ser a dcada do computador pessoal, desaparecendo a caneta luminosa e as telas vetoriais, dando lugar aos mouses e s matrizes de pixels. O tema de discusso na comunidade da Computao Grfica atualmente a criao de imagens com alto grau de realismo, que possa ser facilmente confundida com uma foto. A tecnologia Ethernet se torna bastante difundida. Em 1980, Carpenter apresenta na Conferncia da SIGGRAPH, uma animao 3D gerada por mtodos fractais sobre uma paisagem artificial muito realista. No mesmo ano, a Disney produz o filme Tron, com diversas tcnicas de Computao Grfica. Whitted introduz o mtodo de traagem de raios, que consiste no envio de raios luminosos a partir do ponto de observao e determina o ponto visvel mais prximo, colorindo-o em funo da visibilidade das fontes de luz e objetos de cena.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 9

Em 1982 James Clark cria a SGI (Silicon Graphic Incorporated), empresa especializada em equipamentos para computao grfica, empresa que liderou a criao da biblioteca OpenGL e a especificao da linguagem de descrio de cenas de realidade virtual para a Internet (VRML). criada no mesmo ano a SUN, introduzindo o conceito de estao grfica em rede. Nesta mesma dcada foi criada a AutoDesk, empresa fabricante do AutoCAD, usado at hoje nos mais variados lugares e foi proposta uma arquitetura para realizar operaes grficas (pipeline), e desenvolvido por Brigham o mtodo de transformao de geometrias 2D entre duas imagens. realizada a introduo de um novo mtodo, baseado numa matriz auxiliar de pixels, para tratamento de transparncias via hardware (alpha-buffer). Em 1984 desenvolvido um mtodo de sntese de imagem baseado em teorias de transporte de calor, o qual foi chamado de radiosidade, mtodo que resolvido de forma progressiva atravs de tcnicas iterativas de resoluo de sistemas de equaes lineares, apresentando como ponto forte a caracterstica que o ponto fraco do mtodo de traagem de raios. Entre 1983 e 1984, com a criao do Macintosh, acontece a introduo da GUI (Graphic User Interface), assim temos o incio de tudo que conhecemos hoje em dia em termos de interface com o usurio. No mesmo ano, Porter e Duff inventaram um algoritmo genrico e verstil para composio criativa de imagens 2D, e em 1986, Kajiya publicou um artigo cientifico que descrevia a equao matemtica que governa os fenmenos de transporte da luz (rendering equation). Nessa dcada, houve uma imensa evoluo nos hardwares grficos (algoritmos em hardware), e uma guerra religiosa entre os adeptos do mtodo de traagem de raios e adeptos da radiosidade, muitos pesquisadores tentaram fazer uma sntese dos dois mtodos, mas os desenvolvimentos que se seguiram aps a equao de Kajiya levaram a pesquisa de mtodos de sntese realista de imagens para outros domnios. ANOS 90 Em maio de 1990, a Microsoft lanou o Windows 3.0. Ele seguiu uma GUI grfica similar ao da Apple Macintosh, e apostou no incio do futuro em multimdia. Enquanto em 1990 apenas dois dos dez maiores pases usavam o Windows, isso aumentou para nove de dez em 1991. Depois disso, em outubro, assinou um contrato de 2,3 milhes de dlares com a ILM. O negcio feito para fornecer 3D, sistemas de computao grfica avanados onde a ILM produziria futuros vdeos. Por sua vez a ILM testaria estes sistemas novos e forneceria o gabarito. NewTek, companhia fundada em 1985, NewTek, lanou o Toaster Video em outubro de 1990. Toaster Video uma placa de vdeo produzida para os computadores pessoais. A Placa vem com animao 3D, e software de pintura com 24 bits e oferece as potencialidades de vdeo tais como um frame buffer de 24 bits, um switching, uns efeitos de vdeo digitais, e uma gerao de caracteres. O uso prtico para edio de vdeo feito pela Video Toaster a fez muito popular, e hoje usada em programas de televiso tais como Sea Quest e Babylon 5 para grficos 3D. Tambm em 1990, AutoDesk lanou seu primeiro produto de animao 3D, 3D Studio. Criado pela AutoDesk por Gary Yost (o grupo Yost). O 3D Studio alcanou a posio de melhor software de animao 3D para computador.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

10

Em 1991, Disney e Pixar anunciaram um acordo para criar o primeiro filme longa metragem feito por animao de computador, chamado "Toy Story. Dentro de dois a trs anos.

"Terminator 2" (T2) foi lanado em 1991 e colocou um novo padro de efeitos especiais em CG. O rob T-1000 em T2 foi alternado entre o ator Robert Patrick e a verso 3D animada de Patrick. No foram somente os grficos fotorealsticos, mas o mais impressionante foi que os efeitos foram produzidos no tempo e sob o oramento. No mesmo ano outro grande filme foi lanado sobre grande uso de CG, "Beauty and the Beast". Com um sucesso aps o outro em Computao Grfica, a Disney saltou os obstculos e comeou a usar computao grfica durante todo o filme. Em termos de beleza, cor e design a Disney fez coisas que no teria possibilidade de fazer sem computadores. Muitas cenas continham objetos em animao 3D, contudo foram achatados com cores brilhantes para misturar-se com o desenho a mo dos personagens. Em 1993, Wavefront adquiriu imagem digital de Thomson (TDI) que aumentou a parcela de mercado do Wavefront no topo do mercado de computao grfica. O Wavefront comea imediatamente a integrar produtos de TDI em sua prpria linha de software de computao grfica. Logo em 1993, as foras da IBM, James Cameron (escritor/diretor/produtor), Stan Winston (perito em efeitos especiais) e de Scott Ross (efeitos visuais da ILM) foram unidas para criar novos efeitos visuais e estdios de produo digital chamado Domnio Digital. TDI abriu seu Digital Opticals Group em Hollywood para criar efeitos especiais com imagem animada tal como Terminator 2: Judgment Day, Batman Returns, e The Babe. Agora a TDI se tornou uma das lderes nesse tipo de trabalho. A Nintendo anunciou em unio com Silicon Graphics, Inc. (o lder em tecnologia de computao grfica) que ia produzir uma plataforma 3D Nintendo de 64 bits para uso domstico. O Console foi liberado em 1996 com o nome de Nintendo 64 a um preo de $250. Nos anos 90 Steven Spielberg estava trabalhando numa verso em filme de um dos ltimos best sellers de Micheal Crichton, Jurassic Park. O filme era basicamente sobre dinossauros que caavam (e comiam) pessoas, os efeitos especiais representaram um bom desafio. No filme Phil Tippett usou go-motion photography e stop-motion para fazer o movimento dos dinossauros, onde o go-motion adiciona borres de movimento na imagem tornando o movimento mais real. Os resultados foram to bons que geraram o Oscar de efeitos especiais em maro de 1994. Em fevereiro de 1994, a Microsoft comprou a Softimage por 130 milhes de dlares. Ela usa internamente a tecnologia TDI. A Microsoft vendeu Softimage para a Avid em Junio de 1998. O vero de 1994 caracterizou os blockbusters full da computao grfica. Alguns efeitos foram to realistas que a presena do uso de computador era quase indetectvel. Por exemplo,
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 11

no filme Forrest Gump, onde os artistas da ILM usaram posio digital, unindo diferentes seqncias de vdeo dando a iluso de que o ator Tom Hanks estava na mesma cena de Jonh F. Kennedy. Em 1995 foi lanado o ta esperado longa metragem Toy Story. No trazia nenhum efeito revolucionrio, mais o fato de ser um filme longa metragem usando computao grfica causou grande impacto. A produo brasileira Cassiopeia comeou a ser produzido antes de Toy Story mas no conseguiu ser lanado antes dele por problemas tcnicos e financeiros. Tambm em 1995, foi lanado pela Sony o Playstation, um Vdeo Game revolucionrio que trazia um chip de acelerao 30 capaz de processar 360000 polgonos por segundo. Em maio de 1996 foi lanado o jogo Quake com grficos em 3D e o hardware acelerador 3D que era praticamente intil j que o jogo no necessitava da acelerao para funcionar. 1997 foi outro ano importante para o CG nos filmes com o lanamento da seqncia de Jurassic Park, The Lost World onde as animaes eram bem melhores que o predecessor. Outros filmes com CG avanado foram Starship Troopers, 5th element, Men in Black e o clssico Titanic. A indstria dos jogos novamente experimenta uma revoluo, desta vez foi o 3DFX Voodoo acelerador 3D. Esse chip possua um timo desempenho e muita utilidade. Depois da Voodoo, foi a vez de lanarem o Quake 2. Agora com todos os benefcios de um bom acelerador 3D. Em 1998 o filme Godzilla foi lanado. Esse continha muitas cenas difceis onde Godzilla interagia com o ambiente em real-life. Foi uma alta produo, mais a audincia no foi boa, pois no mesmo ano lanaram muitos filmes similares, Armageddon e Deep Impact os dois com CG interessante. E Tambm lanaram Antz and A Bugs Life, dois longa metragem em animao grfica de alta qualidade mais sem nenhuma inovao. A indstria dos jogos para PC continuou a evoluir e em 1998 foi outro ano bom com o lanamento da Voodoo 2 accelerator e a primeira rival, a nVidia TNT. E tambm foi lanado Half Life. Em 1999 foi lanado Matrix e em dezembro Toy Story 2. Na indstria dos games a NVidia finalmente lana uma placa de alta performance com o seu processador TNT2. A Voodoo no alcanou o TNT2 e a nVidia no parou. Em outubro foi lanada a primeira GPU (Graphics Procesing Unit), a GeForce 256. Com o lanamento de Quake III em dezembro que precisava de no mnimo 30 frames por segundo em 1600x1200x32 bits pra rodar tornou-se necessrio o uso de acelerador 3D. SCULO XXI O ano de 2000 realmente foi o ano da nVidia. Em dezembro, a nVidia produziu um poderoso 3DFX. 2001 a continuao da dominao da nVidia em computao grfica. A Nintendo lana o Gamecube em setembro de 2001 no Japo. O Gameboy Advance tambm foi lanado e provavelmente um grande evento foi o lanamento do vdeo game Xbox pela Microsoft. Com desenvolvimento grfico da nVidia, HardDrive, processador Intel. Um grande competidor para o Xbox ser o Playstation 2.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

12

As cenas de filme melhoram muito, com Final Fantasy: The Spirits Within, talvez a primeira criao de computador com realismo humano e tambm com Monsters Inc da Pixar com gerao completa por computador. O filme do ano foi Lord of the Rings com efeitos fantsticos. Lanado em janeiro de 2002. Em 2002, nVidia lana uma nova gerao de chips. O nv25 (GeForce 4 Ti). Este chip que fez os usurios do Xbox entenderem quo rpida a tecnologia grfica est avanando. Nos filmes as cenas de Star Wars: Episode 2 feitas com incrveis cargas de CG. Eles no fizeram coisas que nunca tinha feito antes, mas foram mais perfeitos que em Episode 1. No inicio de 2003 foi lanado Lord of the Rings II com artes ainda no utilizadas.

PERSONAGENS James Blinn - pioneiro em mapeamento de textura e reflexo de luz em superfcies curvas; planetrio fly-bys, animaes educacionais em JPL (1977-88). Jack Bresenham - algoritmos eficientes desenvolvidos para converso de varredura de linhas e curvas. Loren Carpenter - ajudou a desenvolver o uso dos fractais nos grficos, contribuinte principal na Pixar. Ed Catmull - inventou z-buffer e tcnicas para visualizao de superfcies curvas (1978), inventou o mapeamento de textura. Desenvolveu o programa de animao TWEEN. Primeiro presidente da Pixar (depois de sair da Lucasfilm em 1986), colaborao de longa data com Alvy Ray Smith. Robert Cook - desenvolveu uma amostra estocstica, para o uso na atialiasing e motion blur e inventou a shade trees. Frank Crow - inovaes em anti-aliasing e os algoritmos de sombreamento (1977). Charles Csuri - fez o trabalho em transformaes anlogas de imagens, criou o Computer Research Group e o Centro de Computao Avanada para Arte e Design na Universidade de Ohio State, co-fundador da firma de animao Cranston-Csuri (1982-87). William Fetter - responsvel pelo termo Computao Grfica (1960); primeiro a desenvolver um modelo computacional da forma humana (1964). Pat Hanrahan - desenvolveu o RenderMan Bill Reeves. Um grande contribuidor para o campo dos grficos, ganhador do prmio SIGGRAPH Computer Graphics Achievement em 1995. Ken Knowlton - criou a primeira linguagem animao de computador (1965). John Lasseter - escritor e diretor para Disney, Lucasfilm e Pixar. VP do desenvolvimento criativo na Pixar. Nelson Max - pioneiro na visualizao cientfica e matemtica no Laboratrio Lawrence Livermore (1977 -...). A. Michael Noll - inovaes na stereography e visualizao multidimensional. Ajudou a coordenar a primeira mostra de arte gerada por computador (1965). Heinz Otto-Peitgen - contribuidor significativo para visualizao matemtica, incluindo o trabalho nos fractais.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

13

Alvy Ray Smith - maior contribuidor na NYIT e Lucasfilm/Pixar, dirigiu As Aventuras e Andre e Wally B., colaborao a longo prazo com Ed Catmull, VP na Pixar, e atualmente na Microsoft. Ivan Sutherland - desenvolveu o Sketchpad em 1963, primeiro disply head-mounted em 1966, co-fundador da Evans and Sutherland. Edward Zajak - primeira pelcula criada de animao de computador em 1961. COMPANHIAS Robert Abel and Associates - inovadores nas primeiras animaes comerciais, incluindo o rob sexy em Brilliance e encabeando as Amazing Stories (1971-86). Digital Effects - pioneirizando a produo de animao de computador, formado por Judson Rosebush e outros em 1978. Digital Productions - firma de animao fundada por John Whitney Jr. e Gary Demos, explorou o uso da supercomputao para a animao. Evans and Sutherland - uma das primeiras companhias de computao grfica, fundada em 1968. Information Internacional, Inc. (Triple I) - produziu muito da animao publicamente vista nos anos 70. Os talentos incluram Gary Demos, John Whitney Jr, Frank Crow, e James Blinn. Pixar - o grupo anterior da computao grfica da Lucasfilm. Comprada por Steve Jobs em 1986, encabeada por Ed Catmull e Alvy Ray Smith, e mais tarde incorporando por Loren Carpenter, William Reeves e John Lasseter, responsveis pelo efeito do genesis em Star Trek II, pelas aventuras Andre e Wally B., de John Luxo Jr., Red's Dream e Tin Toy (ganhador do Oscar em 1988), e Toy Story. E criou tambm Renderman, que ganhou um Oscar em 1993. MAGI - um dos primeiros no campo da animao em computador, formado em 1966 por Phillip Mittelman. Conhecido por usar slidos e raios que seguem melhor que modelos poligonais. Pacific Data Images - fundada por Carl Rosendahl em 1980, PDI um dos estdios mais bem sucedidos em produo de animao em computador. O Locomotion um de seus projetos mais impressionante. Ray Tracing Corporation - primeira companhia a usar o Ray Tracing para a produo da televiso e de pelcula (1982). Tornou-se uma companhia multimilionria. Comprada eventualmente no fim dos anos 80, para uso militar do Ray Tracing (radar, sonar). Silicon Graphics, Inc. - fundada em 1982 por James Clark, SGI tem sido por muito tempo o lder na produo de Workstations e supercomputadores direcionados a Computao Grfica.

Aplicaes
Indiscutivelmente a Computao Grfica hoje encontra aplicaes em praticamente todas as reas do conhecimento humano. Em qualquer dessas aplicaes explora-se uma das trs caractersticas que enumeramos em seguida:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

14

A Computao Grfica permite visualizar objetos que ainda se encontram em fase de projeto; A Computao Grfica permite visualizar objetos que esto fora do alcance de nossa percepo visual; A Computao Grfica permite visualizar objetos que fogem de nossa realidade tridimensional. No primeiro caso, o modelo do projeto concebido e construdo no computador. Esse modelo, chamado maquete eletrnica, pode ser utilizado para analisar e fazer simulaes de forma a obter informaes fundamentais sobre o modelo real ainda na faze de projeto. No segundo caso, podemos citar aplicaes da Comutao Grfica na rea de modelagem molecular, onde estruturas atmicas podem ser simuladas, visualizadas e analisadas, e a sntese de novas substncias pode ser obtida nesse processo de simulao. Para compreender a terceira caracterstica, observamos que nossa realidade cotidiana consiste de um universo tridimensional regulado pelas leis da mecnica clssica e da geometria euclidiana. No computador podemos visualizar dados multidimensionais, e estudar o comportamento de objetos independente do tipo de geometria ou das leis do sistema fsico do universo onde eles residem. Esse fato bastante explorado nas aplicaes de Computao Grfica nas reas de matemtica, estatstica e fsica. As aplicaes da Computao Grfica se dividem em trs grandes reas: Projeto e Produo auxiliados por computador; Visualizao de Dados e Visualizao de Movimento; Interao Homem-Mquina

A utilizao de Computao grfica na rea cientfica sofreu um impulso tal nos anos recentes que deu origem a uma nova rea chamada visualizao cientfica, a qual est se tornando uma ferramenta indispensvel para a pesquisa em diversas reas da cincia pura e aplicada.

Efeitos Especiais
possvel gerar efeitos especiais que iro gerar um enorme impacto em suas cenas, como por exemplo, exploses, fogo, cenrios nebulosos, derretimento, efeitos de reflexo, brilho, luzes volumtricas, simulao de gua, nuvens, composio de animaes com cenas reais e muito mais, do que voc possa imaginar .

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

15

Jogos
Os video-games combinam os melhores aspectos do desenho animado e da computao para a criao de um mundo mgico de entretenimento. O resultado da mistura desses dois fatores requer o talento de muitas pessoas ligadas a criao de um video-game.

Visualizaes Mdicas
O objetivo do imageamento mdico a avaliao mdica de tecidos e funes orgnicas do corpo humano, normais e anormais - causadas por doenas ou acidentes, - por meio de imagens. O objetivo passar da imagem qualitativa clssica para a quantizao das imagens, em formato tridimensional, para obter a mxima informao destas imagens, e diagnosticar doenas o mais cedo possvel, com maior preciso, e com a menor exposio radiao ionizante. Embora mais de 75% de todas as imagens mdicas ainda sejam de placas de raio X (radiografia), com o advento da Tomografia Computadorizada em 1972, o uso de computadores na medicina tem se desenvolvido bastante, mas precisa ainda progredir muito. Os computadores so utilizados principalmente na aquisio das imagens, mas o passo atual e do futuro o uso da computao grfica para auxiliar na quantizao da imagem e tratamento para a melhor extrao da informao possvel. O objetivo oferecer os princpios fsicos e matemticos deste processo, bem como das ferramentas computacionais para a reconstruo da imagem.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

16

Sistemas de Informaes Geogrficas


Com o desenvolvimento e a popularizao de softwares para computao grfica, a informtica vem tambm ampliando o universo de usurios e produtores de informaes cartogrficas em meio digital, destinadas principalmente para compor as bases de dados grficos dos Sistemas de Informaes Geogrficas. A tecnologia de geoprocessamento tem hoje na computao eletrnica um instrumento imprescindvel, amplamente empregado nas diversas etapas da construo das bases de dados, ou seja, da aquisio do dado primrio atravs dos levantamentos at a disponibilizao da informao final, a informtica est presente no processo.

Simulaes
Atravs da Computao Grfica podemos pilotar espaonaves, voar/caminhar em ambientes construdos com recursos de visualizao tridimensional.

CAD
Na rea de projeto e produo auxiliado por computador, conhecida em ingls por CAD/CAM de Computer Aided Design/ Computer Aides Manafacturing, a Computao Grfica permite a criao, representao e anlise de modelos em fase de projeto, possibilitanto visualizer e experimentar solues ainda no realizdas fisicamente. Alm disso, na fase de fabricao a produo pode ser automatizada com auxlio da Computao Grfica incluindo em alguns casos at mesmo a gerao do produto
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 17

final. Isso ocorre, por exemplo, na produo do fotolito de uma pgina na rea de editorao eletrnica, ou na construo de peas mecnicas usando uma mquina ferramenta de controle numrico.

Artes Grficas & Design


A computao grfica, que revolucionou a rea de artes grficas, consolidou um novo patamar no setor de publicidade/criao.

Arquitetura
Com a computao grfica podemos tambm gerar impressionantes situaes, como por exemplo, gerar uma animao ou perspectiva de um prdio pronto em seu local original, sem que ele ainda tenha acabado de sair da criao de seu engenheiro. E ainda mais, gerar animao em toda sua rea externa partindo para sua rea interna toda decorada.

Grficos
Outro importantssimo campo dentro da Computao Grfica a visualizao de dados atravs de grficos. Ela consiste basicamente na gerao de imagens a partir de um conjunto de dados. Estes dados podem ser gerados por de forma interativa ou por modelos
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 18

que simule um fenmeno real como, por exemplo, o comportamento de partculas durante uma reao qumica.

100 80 60 40 20 0 1 2 3 4 Trim. Trim. Trim. Trim.

Norte Leste

Leste Oeste Norte

Propaganda
A computao grfica, esta fazendo parte cada vez mais de nossa vida e com recursos mais impressionantes. Hoje nos acostumamos a ver fascinantes comerciais de TV com recursos de animaes 3D e os fantsticos efeitos usados no cinema.

Realidade Virtual
A realidade virtual envolve tecnologias revolucionrias para o desenvolvimento de aplicaes, em funo de novas possibilidades que oferece para interfaceamento com o uso de dispositivos multi-sensoriais, navegao em espaos tridimensionais, imerso no contexto da aplicao e interao em tempo real.

Animaes Computadorizadas

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

19

A Animao corresponde rea da Computao Grfica na qual so realizadas as simulaes dos fenmenos fsicos associados ao movimento e a deformao de corpos. Alm disto ainda a responsvel por movimentar a cmera no cenrio virtual gerando uma seqncia de imagens, correspondentes a assim denominada animao computadorizada. Uma vez realizada a modelagem geomtrica dos objetos constituintes da cena, pode-se gerar imagens dos mesmos, a partir de processos de simulao os mais variados, mas que tem por princpio gerar imagens da cena observada.

Educao

Os avanos tecnolgicos tm causado modificaes significativas no ensino com a utilizao cada vez maior de computadores, de softwares educativos e Internet, estes constituem pontos centrais em todo debate sobre o emprego de novas tecnologias na educao. Isoladamente no do conta da complexa tarefa de ensino e aprendizagem. Porm, podem ser vistos como ferramentas de apoio didtico ou mesmo, meios estratgicos, empregados em diversos momentos do ensino-aprendizagem em salas de aula presencial ou virtual.

Exerccio:
1) Qual a diferena bsica entre Computao Grfica e Processamento de Imagens? D dois exemplos de aplicao de cada uma destas reas.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

20

Aula 03
3- Equipamentos para Computao Grfica e Realidade Virtual.
Como o objetivo da Computao Grfica gerar e manipular imagens essencial que os dispositivos perifricos ligados ao computador sejam capazes de lidar (ler/escrever) com dados em forma grfica. Muito dos avanos e tcnicas desenvolvidos em Computao Grfica, at hoje, tem uma estreita relao o aprimoramento destes dispositivos. Isto se deve ao fato de que o objetivo sempre produzir a melhor imagem dentro das possibilidades do equipamento disponvel. Os sistemas para computao grfica precisam de alguns dispositivos grficos de entrada e sada ligados a um computador. Assim, dispositivos grficos so elementos crticos de um sistema de computao grfica. Atravs dele, interagimos com o sistema na busca de uma extenso dos limites de nosso corpo e uma melhor comunicao com a mquina. Ao contrrio do software, que encontra nas novas arquiteturas de CPUs e memrias, um ambiente adequado para sua evoluo contnua, o hardware enfrenta diversos obstculos para sua evoluo. Um dos principais obstculos est no preo ocasionado pelo elevado custo de desenvolvimento que, apesar das freqentes quedas, ainda est muito aqum da realidade do mercado consumidor. Outro grande obstculo est no peso e tamanho desses componentes que devem ser reduzidos para que possam ser facilmente utilizados. Os dados grficos, de acordo com a forma como so realizadas sua entrada, armazenamento e sada, podem possuir natureza vetorial (stroke) ou matricial (raster). Dados vetoriais so definidos atravs de segmentos de reta entre cada dois pontos de uma malha de contornos que determina a superfcie do objeto grfico que essa malha representa.Dados matriciais se definem como uma matriz bidimensional de pontos que determinam o espao da imagem onde o objeto est sendo representado e tal que cada um desses pontos possui uma localizao nica nesse espao, alm de uma intensidade de cor associada. Vetoriais: Dados representados por pontos coordenados e linhas, capazes de ligar tais pontos: -- Coordenadas relativas: mouses (pticos e mecnicos), joysticks, bolota e diais -- Coordenadas absolutas: teclados, mesas digitalizadoras,- caneta ptica - light pen, tela ptica - touch screen Matriciais: Consiste de uma matriz de pontos no espao e a cada ponto associado um atributo de Intensidade: -- Digitalizadores de vdeo: a partir de um sinal de televiso gera uma matriz de pontos em um monitor de vdeo; - FRAME GRABBER -- Varredores digitais (SCANNER): so baseados na absoro da luz; verso do FRAME GRABBER para papel, FILM SCANNER: o equivalente para filme.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

21

Classificao dos Dispositivos Perifricos Grficos


Os dispositivos grficos podem ser classificados, entre outras, segundo 2 vises:

Quanto finalidade:dispositivo de entrada ou de sada Quanto ao formato dos dados:dispositivos matriciais ou vetoriais.

Para dispositivos de entrada o termo matricial define uma classe de dispositivos em que os dados (pontos) so colhidos em conjunto e armazenados em forma de matrizes. Por outro lado dispositivos vetoriais de entrada denotam equipamentos atravs dos quais se pode colher dados (pontos) de forma isolada. Para dispositivos de sada, por sua vez, o termo matricial designa dispositivos cuja gerao de imagens d-se pelo "acendimento" ou "apagamento" de pontos sobre uma matriz. Por outro lado, dispositivos vetoriais de sada so aqueles em que as imagens so criadas atravs de comandos especficos para a gerao de entidades como, por exemplo, retas e crculos.

1- Dispositivos Grficos de Entrada


Dentre os diversos usos que podem ser dados aos dispositivos grficos de entrada podemos destacar como mais comuns:

Controlar um cursor que se move sobre a superfcie de um monitor de vdeo (uma grande variedade de dispositivos perifricos grficos de entrada deve ser utilizado em conjunto com um monitor de vdeo). Facilitar a digitalizao de informaes grficas externas ao computador e Selecionar comandos e funes.

Teclado O teclado um agrupamento de letras e nmeros dispostos como num teclado de mquina de escrever, e usualmente est acoplado aos consoles e aos terminais de vdeo. A cada toque, envia-se ao computador um cdigo que corresponde ao caracter selecionado. A combinao de teclas especiais pode enviar cdigo de controle. Mouse um dispositivo que consiste de uma pequena caixa, com rodas ou esferas em sua parte inferior. A medida que o usurio desloca o "mouse" sobre uma mesa este movimento produz rotaes em suas rodas (ou esferas). Estas rotaes so ento convertidas e enviadas para o computador sob forma de nmeros que definem o deslocamento do "mouse" em relao a sua posio anterior. Um "mouse" , normalmente, utilizado para mover um cursor sobre a tela e permitir a criao de
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 22

desenhos ou a escolha de opes em menus, entre outras funes. Para a escolha de opes ou marcao de pontos o "mouse" possui, em sua parte superior, um ou mais botes que ao serem pressionados tambm geram sinais para o computador. Os "mouse" de rodas ou esferas so mecnicos e por vezes podem falhar em detectar movimentos na diagonal ("mouse" de rodas) ou em superfcies muito lisas ("mouse" de esfera ou de rodas). Para contornar esse tipo de problema surgiram mais recentemente os "mouse" ticos. O "mouse" tico desliza sobre uma superfcie refletora especial que permite que seu sistema tico perceba seu deslocamento; Joysticks So alavancas de comando que determinam a direo e velocidade do cursor na tela. So usados geralmente nos jogos de vdeo games, estaes de realidade virtual e estaes industriais de controle de robs.

Tablet So extenses dos monitores sensveis ao toque. Fruto de anos de pesquisas sobre como os profissionais realmente trabalham, os novos tablets so calibrados com perfeio para ler com absoluta preciso os movimentos da caneta, que opera com 1024 nveis de sensibilidade presso. Estes so traduzidos em curvas suaves, transies graduais e controles precisos do trao. Um software incluso nos pacotes dos hardwares de tablet possibilita o reconhecimento da escrita.

Mesa Digitalizadora Dispositivo vetorial que consiste de uma mesa e de um apontador. A cada vez que o usurio toca a mesa com o apontador informado ao computador a coordenada deste ponto da mesa.

Telas Sensveis ao toque uma mistura de digitalizadores e canetas ticas pois funcionam com o contato do dedo do operador com a tela do monitor. usada com mais freqncia em sistemas comerciais.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

23

Scanner um equipamento capaz de detectar as mudanas de colorao de uma superfcie (desenhos e letras), transferindo ao computador uma matriz de pontos. Existem, basicamente, dois tipos de "scanners": "scanners de mesa" que se assemelham a uma mquina de xerox e "scanners de mo" que se assemelham a um mouse onde no lugar das rodas ou esferas temos um sensor de colorao. Em geral as imagens produzidas por um "scanner" de mo so de qualidade inferior devido ao fato que elas esto sujeitas percia do operador. Em geral os "scanners" so monocromticos e produzem imagens em tons de cinza utilizando-se de tcnicas de "Halftone". "Scanners" coloridos utilizam-se de filtros para compor imagens a cores.

Dispositivos de Entrada 3D
Com a popularizao dos sistemas 3D e o barateamento dos componentes eletrnicos, surgiu uma diversidade de dispositivos de entrada 3D. Em qualquer casa de jogos eletrnicos podemos ver simuladores de esqui, skate entre outros. Basicamente, esses dispositivos permitem a movimentao e interao dentro de um espao 3D qualquer. Digitalizador tridimensional Trata-se de um dispositivo vetorial e consiste em uma espcie de brao mecnico com um sensor de toque na ponta. A cada vez que o sensor atinge um ponto na superfcie de um objeto, a coordenada deste ponto em relao a um ponto referencial (origem) transmitida ao computador.

Scanners tridimensionais Existem diversas tecnologias de scanners disponveis no mercado. As mais baratas utilizam cmeras digitais acopladas a uma mesa especial que fornece as coordenadas para os sistemas. Esta tecnologia quase sempre requer a interveno de modeladores para o acabamento das peas. A tecnologia de scanners a laser sem dvida a tecnologia de dispositivos de entrada que vem atraindo mais ateno
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 24

no mundo.

Luvas So dispositivos que, atravs de sensores, detectam e medem as flexes e abdues dos dedos. Os sensores podem ser mecnicos, pticos ou hbridos.

Capacetes Existem diversos tipos de capacetes para interao em Realidade Virtual disponveis no mercado. A principal caracterstica desses equipamentos que podem ser: estereoscpicos ou monoscpicos (isto , usados com uma ou duas cenas); Binoculares ou monoculares (um ou os dois olhos so estimulados); opacos ou translcidos (substituem ou complementam a realidade).

3D Controllers So dispositivos para interatividade com ambientes 3D capazes de tornar o ambiente participativo, seguindo os movimentos executados pelo usurio. Trabalham tanto em cima de uma mesa como no ar, pois possuem um giroscpio que tem comunicao por rdio com o computador. So capazes de medir a velocidade e a fora que esto sendo aplicadas pelo usurio.

Roupa de RV A roupa para Realidade virtual (ou data suits) permite a interao com o mundo virtual. A comunicao pode ser realizada de vrias maneiras, sendo que o acompanhamento ptico de marcadores vem sendo o mais utilizado. Essas roupas so
Prof: Fernanda Maria da C. Santos 25

Disciplina: Computao Grfica

usadas para gerar informaes do movimento humano, a partir da surge uma infinidade de aplicaes para animaes, esporte, etc.

2 -Dispositivos Grficos de Sada


Impressoras Jato de tinta

Possuem no cabeote minsculos tubos que jogam tinta sobre o papel. Utilizando-se tintas de vrias cores obtm-se imagens semelhantes a fotografias, sendo esta sua grande vantagem;

Impressoras Laser

So as que possuem melhor qualidade de imagem em preto e branco. Funcionam de maneira semelhante as mquinas de xerox. A imagem magnetizada por laser em um tambor sobre o qual espalhado "tonner" que se concentra nos pontos magnetizados. Em seguida o tambor pressionado sobre o papel que absorve a tinta. O grande problema das impressoras a LASER que para poder gravar a imagem sobre o tambor necessrio que a mesma seja mapeada em memria. Como a resoluo muito alta esta memria tende a ser bastante grande (da ordem de 2 Mega bytes). Por esta razo o tempo de transferncia dos dados do computador para a impressora cresce;

Impressoras trmicas So equipamentos silenciosos, com boa resoluo, podem trabalhar com ampla gama de cores. As impressoras trmicas precisam utilizar um papel termo-sensvel especial.

Plotters So dispositivos que utilizam uma caneta para riscar o papel. Existem dois modelos bsicos. Um onde o papel permanece fixo e a caneta produz desenhos sobre o mesmo pela combinao de movimentos horizontais e verticais e outro onde o desenho produzido pela combinao dos movimentos do
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 26

papel e da caneta (um ortogonal ao outro). Independente do modelo os traadores so, em geral, dispositivos que recebem comandos de alto nvel que especificam o traado de pontos, retas, crculos, arcos, regies hachuradas, etc;

Monitores A maioria dos modelos atuais se baseia na tecnologia de tubos de raios catticos (CRT Catode Ray Tube), j madura e capaz de oferecer uma boa relao custo/benefcio, para produzir imagens de qualidade em computadores pessoais. Em vrias partes do mundo j difcil encontrar um modelo CRT nas lojas. A queda drstica nos preos dos monitores LCD (Liquid Cristal Displays), seu pouco peso e espessura so as principais causas dessa derrocada. Porm, os CRTs tm ainda uma vantagem em relao aos LCDs no que diz respeito ao brilho e versatilidade da resoluo.

Monitores CRT At h pouco tempo era praticamente o nico tipo de vdeo utilizado. Os monitores CRT so compostos por um canho que gera um feixe de eltrons. Um ctodo aquecido emite um feixe eletrnico que convenientemente focalizado por um conjunto de lentes e acelerado. Ao incidir na superfcie de tubo, que recoberta de fsforo: pontos bombardeados pelos eltrons emite luz e a associao de pontos acesos forma a imagem. O feixe eletrnico desviado pela ao de campos magnticos produzidos por bobinas qual aplicada uma d.d.p. proporcional ao desvio desejado.

Monitores CRT coloridos A cor da luz emitida vai depender do fsforo usado. Os monitores monocromticos, mais simples, produzem imagens na cor verde, branco ou mbar e, durante muito tempo, foram os nicos a oferecer custo acessvel para o usurio de computadores de mesa. Esses modelos usam o padro RGB (Red, Green e Blue), um sistema de todas as cores com base no vermelho, verde e azul. Para geral qualquer
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 27

cor do espectro, os monitores coloridos precisam de trs sinais separados, que vo sensibilizar os pontos de fsforo das trs cores primrias, suficientemente pequenos para parecer ao olho humano com um nico ponto de luz.

Monitores LCD Os monitores de cristal lquido (LCD Liquid Crystal Display) no possuem um canho de eltrons, o que lhes confere uma srie de vantagens e algumas desvantagens. Em substituio ao tubo de raios catdicos, existe um sistema de clulas contendo cristal lquido e filtros coloridos polarizados.

Head Mouted Displays

Tambm conhecidos como culos de realidade virtual ou capacetes de realidade virtual, ou HMDs (Head Mouted Displays) operam exibindo em duas pequenas telas (uma para cada olho) imagens de cena virtual. Os HMDs so construdos, normalmente, usando dois tipos de monitores: CRT ou LCD. Acoplados aos HMDs, em geral existem sistemas de rastreamento da posio da cabea, a fim de permitir que se atualize as imagens do mundo virtual de acordo com a direo para onde o usurio est olhando.

Stereo Glasses

So teis em aplicaes onde vrias pessoas precisam observar a mesma imagem estreo, como visualizao cientfica, cirurgias e passeios virtuais em parques de diverso. A idia colocar nos usurios pares de culos com lentes de cristal lquido capazes de bloquear a viso de um dos olhos quando necessrio.

Cave
Prof: Fernanda Maria da C. Santos 28

Disciplina: Computao Grfica

Os primeiros registros de simulaes realizados pelo homem so da poca das cavernas. Na prhistria, os guerreiros desenhavam nas cavernas cenas de batalhas e caa de animais. Usando uma tocha, iluminavam a seqncia e passos para demonstrar s crianas e aos jovens como seria na prtica. Da vem o nome Cave (caverna). Esses dispositivos usam a idia de colocar o usurio em uma sala com paredes que so na verdade telas para projees de imagens.

Placas Aceleradoras de Vdeo

Os monitores interpretam sinais analgicos para apresentar imagens na tela. Para isso, o processador existente na placa de vdeo precisa transformar os sinais digitais em analgicos antes de envialos ao monitor. Nem todo o processamento de imagens realizado pelo processador de vdeo. Parte desse trabalho realizada pelo processador principal, mas quanto mais poderoso o processador de vdeo, menos sobrecarregado fica o processador principal, ficando disponvel para efetuar outras tarefas. Processar imagens , basicamente fazer clculos. Quanto mais complexa uma imagem, maior o nmero de pontos que devem ser criados. AGP A porta AGP (Accelerated Graphics Port) segue como padro mnimo para boas placas grficas. usada para conectar placas grficas diretamente para a CPU e para a memria principal. O modo AGP permite que as placas grficas de comuniquem com a CPU e com a memria principal. O modo AGP permite que as placas grficas se comuniquem com a CPU e com a memria principal a taxas de dados de cinco a oito vezes mais rpido do que o barramento PCI.

Tecnologia de Monitores de Vdeo


Dentre os dispositivos utilizados para a visualizao de dados grficos, certamente os monitores de vdeo assume papel de destaque devido a sua flexibilidade. Por esta razo, sero apresentados alguns tipos de tecnologias utilizadas na construo dos mesmos. Estas informaes sero teis para o entendimento de diversos algoritmos em CG.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

29

Monitores Coloridos

Toda imagem pode ser formada a partir da composio de vrios pontos. Imagine uma fotografia ampliada vrias vezes, veremos que a mesma composta por uma sucesso de pontos. Conclumos ento que imprimindo-se vrios pontos em uma rea especfica podemos obter qualquer imagem que desejarmos. Em um monitor de vdeo a imagem formada do mesmo modo, ou seja, pela impresso de vrios pontos na tela (tubo de imagem). A impresso feita pela incidncia de um feixe de eltrons que percorre toda a tela imprimindo vrios pontos luminosos caracterizando, portanto uma imagem na tela. A tela do tubo de imagem revestida de uma substncia fosforescente (emite luz sob incidncia de um feixe de eltrons), portanto um feixe de eltrons percorrendo toda tela, resultar em vrios pontos luminosos impressos formando, portanto uma imagem.

Varredura horizontal Uma sucesso de pontos em uma tela de um monitor so representados por uma linha horizontal. Uma imagem , portanto obtida a partir da composio de vrias linhas horizontais. O total de linhas representa um campo de imagem. A freqncia das linhas de varredura em um monitor de aproximadamente 31kHz (dependendo do modo de resoluo da cpu) isso significa que teremos aproximadamente 31.000 linhas por segundo varrendo a tela. Varredura vertical

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

30

Aps o traado da ltima linha horizontal teremos um campo de imagem. A freqncia de campo em um monitor de aproximadamente 70Hz (dependendo do modo de resoluo da cpu). Isso significa que teremos aproximadamente 70 campos de imagem por segundo. O tubo composto de 3 camadas de fsforo diferentes e sensveis s cores vermelho, verde e azul. O tubo possui 3 diferentes canhes de luz. Estes canhes podem ser montados numa configurao triangular ou linear. Os fsforos na tela so formados como trades. A convergncia feita por uma placa metlica chamada shadow-mask. Funciona como CRT convencional. H, no entanto, no seu interior, um monitor auxiliar (o canho de inundao) - Flood Gun.

Funcionamento: O canho primrio usado para desenhar a definio da imagem sobre a grade de armazenamento, formada de material no-condutor. Eltrons de alta velocidade do canho primrio colidem a grade de armazenamento fazendo sair alguns eltrons que so atrados para a grade coletora, de carga positiva. Como a grade de armazenamento no-condutora, a rea onde os eltrons foram removidos manter-se-a positiva. Esta rea positiva armazenada a definio da figura. O canho de inundao produz um contnuo jato de eltrons de baixa velocidade que passam atravs da grade coletora
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 31

e so atrados para as reas positivas da tela de armazenamento. Estes eltrons atingem a tela de fsforo atravs da grade de armazenamento sem afetar sua carga.

Displays de Cristal-lquido

So os mesmos displays utilizados em mostradores de relgios e calculadoras. Estes monitores possuem uma camada de cristal lquido comprimida entre duas placas de vidro). Internamente essas placas de vidro possuem condutores de espessura bastante fina, praticamente transparentes ao observador. Esses fios esto dispostos em malha. Inicialmente as molculas do cristal esto desorganizadas e permitem a passagem da luz. Ao aplicar-se uma tenso nos fios elas se organizam prximas aos ns da malha e bloqueiam a passagem da luz. Adicionando-se cor aos cristais possvel criar "displays" coloridos. Fundamentos: Uma camada de gs neon, misturada com outros gases comprimida entre duas placas de vdeo. Essas placas possuem no seu interior fileiras de condutores milimtricos. O gs ionizado pela passagem de corrente eltrica nestes condutores. Ao passar por uma interseo a corrente provoca emulso de luz pelo gs. No caso do display de cristal lquido, as molculas de cristal lquido encontram-se, inicialmente, sem direcionamento. Aplicando-se um potencial eltrico aos condutores, tais molculas se arranjam, impedindo a passagem de luz atravs das superfcies de polarizao, com isto, certas clulas tornam-se escuras, mostrando a figura nos cruzamentos. O grande problema desse tipo de tecnologia o tempo que as molculas do cristal levam para reagir.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 32

Display de Varredura rastreada

o tipo de "display" mais utilizado hoje em dia devido a seu baixo custo e boa qualidade de imagem..Esse tipo de "display" baseado em um tubo de raios catdicos (CRT display). Seu funcionamento bastante simples: uma cpsula de vidro de formato especial constitui seu corpo e suporte para todos os seus componentes internos. A parte frontal do tubo revestida com uma camada de fsforo, produto qumico capaz de emitir luz quando bombardeado por eltrons. O canho de eltrons situa-se na extremidade oposta do tubo e capaz de direcionar seu feixe para uma determinada posio da tela gerando assim um pixel. A habilidade de se fazer desenhos sobre a tela resultante do controle que temos sobre o feixe de eltrons. medida que deslocamos o feixe, o rastro de brilho que fica sobe a tela ir compor a imagem. Em geral o controle do canho feito atravs de comandos que so passados a uma placa controladora do vdeo. Dificilmente controlamos diretamente o canho. Para que possamos localizar pontos sobre a superfcie do fsforo, geralmente os controladores usam mapear sobre a mesma um plano cartesiano.

Tubo de Raios Catdicos


Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 33

Ocorre que um eltron que atinge a superfcie do vdeo produz um brilho que decai com o tempo. Esse tempo que um fsforo capaz de conservar-se aceso chamado de Tempo de Persistncia do Fsforo. No importando qual a persistncia do fsforo certo que de tempos em tempos ser necessrio fazer um "refresh" da imagem, ou seja, ser necessrio que o canho redesenhe a mesma imagem antes que o fsforo se apague. Desta maneira tem-se a iluso de que a imagem permanece "acesa". Obviamente o tempo de "refresh" ter de ser menor que o tempo de decaimento do fsforo. Em geral a imagem tem de ser refeita de 30 a 60 vezes por segundo.

Memria de vdeo

Conforme j foi mencionado os vdeos de varredura fixa possuem a imagem mapeada em memria. Cada posio da memria imagem corresponde a um "pixel" da tela. No caso dos vdeos monocromticos, a quantidade de memria necessria para indicar o estado de um PIXEL um BIT (0 = apagado, 1 = aceso). Para podermos trabalhar com mais cores teremos de aumentar o nmero de bits por pixel. De fato, no caso de monitores coloridos, o que se precisa registrar, na memria de vdeo, a intensidade de cada uma das trs componentes(R, G e B) para cada ponto. Como nmero de cores que os vdeos podem produzir muito grande, a limitao do nmero de cores (resoluo de cor) imposta pelo tamanho da memria do controlador. Dizse, ento, que a resoluo de cor de um controlador determinada pelo tamanho de sua memria ou pela relao bit/pixel. Quanto maior o nmero de intensidades disponvel para cada canho(R,G,B) maior ser a quantidade de memria necessria para armazenar a cor de um ponto e, conseqentemente, maior ter que ser o tamanho da memria de vdeo. Por exemplo, se for necessrio ter-se 256 intensidades diferentes de cor para cada canho sero gastos 8 bits por canho (26=64) sero consumidos, por pixel, 3 bytes. Em uma tela de 1024x1024o tamanho da memria de vdeo ser de 3Mb (1024x1024*3=3Mb). J em uma tela de 640x480 a memria de vdeo dever ter 900 Kb. A este tipo de controlador, que armazena para cada ponto o valor de cada componente RGB, foi dado o nome de True-color Systems.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

34

O problema deste tipo de tcnica, para a organizao da memria de vdeo, seu custo. Isto porque, a memria de vdeo formada, na realidade, por um conjunto de registradores de cor (que tm um preo mais elevado que as memrias comuns). Sistemas de Palette

Em funo do alto custo apresentado pelo mtodo de armazenamento acima descrito, os tcnicos de "hardware" introduziram o conceito de PALETTE ou tabela de cores. Com esta nova tcnica, para cada ponto no se armazena mais os valores das componentes R, G e B e sim apenas um nmero que indica um ndice em uma Tabela de Registradores de Cores. Nesta tabela representa-se, ento, as quantidades de R, G, B para cada certa cor. A primeira vantagem desta tcnica que a memria de vdeo passa a ser formada no mais por registradores e sim por elementos de memria de custo mais reduzido. Alm disso ocorre uma reduo no tamanho da memria de vdeo. Tome-se o caso descrito anteriormente de uma tela de 1024x1024 e de um controlador com uma tabela de 256 registradores de cor, cada um deles com 8 bits para cada componente RGB. Para enderear cada uma das entradas do "palette" necessita-se de 8 bits por "pixel"(28=256). Com esta configurao tem-se um consumo de 1Mb(1024x1024x1=1Mb) para a memria de vdeo e de apenas 768 (256x3=768) registradores de cor para o "palette".

A desvantagem dos sistemas de "palette" em relao ao sistemas "true-color" reside no fato de que a tabela de registradores de cor tem um nmero de entradas finito e, por conseqncia, o nmero de cores diferentes possveis de se exibir em um mesmo momento fica restrito a seu tamanho.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

35

Aula 04
4 Sistemas de coordenadas
Resoluo
Todos dispositivos grficos usam uma grade retangular de localizaes endereveis. Este retngulo chamado de Display Rectangle ou Graphics I/O Rectangle. Dispositivos grficos so fixados de acordo com sua resoluo grfica (aspect-ratio), ou seja, o nmero de horizontais versus posies verticais. Parmetros importantes: ndh : N de localizaes grficas endereveis horizontalmente; ndv : N de localizaes grficas endereveis verticalmente; width : a largura fsica do retngulo em milmetros; height : a altura fsica do retngulo em milmetros. Por exemplo, o monitor PC: width - 245,0 heigth - 186,0

ndh - 640 ndv - 200

Baseado nestes conceitos define-se: 1. Resoluo horizontal Res-horiz = ndh/width 2. Tamanho de pontos na horizontal (horizontal dot size) Hor-dot-size = width/ndh 3. Resoluo vertical res-vert = ndv/height 4. Tamanho de pontos na vertical (vertical dot size) vert-dot-size = height/ndv 5. Total de pontos endereveis total-nr-dot = ndv*ndh 6. Graphics aspect ratio aspect-ratio = vert-dot-size/horiz-dot-size 7. Physical aspect ratio Phys-aspect-ratio = height/width

Definies
Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D ou 3D. O sistema de coordenadas serve para nos dar uma referncia em termos de medidas do tamanho e posio dos objetos dentro de nossa rea de trabalho. Um determinado sistema de coordenadas denominado de Sistema de Referncia se for um sistema de coordenadas cartesianas para alguma finalidade especfica. Ao definirmos um sistema de coordenadas de referncia, devemos especificar dois aspectos principais: a unidade de referncia bsica e os limites extremos dos valores aceitos para descrever os objetos.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 36

Alguns sistemas, como os mostrados no esquema a seguir, recebem uma denominao especial, so os Sistemas de Coordenadas do Mundo (WC), Sistemas de Coordenadas Normalizadas (NDC) e Sistema de Coordenadas do Dispositivo (DC).

Sistema de Coordenadas do Mundo (WC)


chamado de coordenadas do mundo o sistema de referncia utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usurio em determinada aplicao. Sendo assim, cada tipo de aplicao especifica o seu universo de trabalho prprio, por exemplo, para sistemas de CAD de arquitetura, o universo poder ser em metros ou em centmetros; e para um CAD de mecnica de preciso, o universo provavelmente estar em milmetros ou nanmetros. O tipo de sistema mais utilizado o sistema cartesiano; e uma outra opo o sistema polar que as coordenadas so descritas por um raio e um ngulo. Tambm, encontraremos o WC sendo denominado por sistema de coordenadas do usurio. Os objetos (grficos) so especificados no sistema de coordenadas do usurio e devem ser convertidos em coordenadas apropriadas do dispositivo fsico. A poro do desenho que deve aparecer na tela e chamada de JANELA. Uma janela geralmente definida por seus limites mais altos e menores. Formato geral da definio de uma janela: WINDOW(min-x,max-x,min-y,max-y) A janela pode apresentar poro do objeto, o objeto inteiro ou o objeto mais uma rea vazia. Ou seja: Wraparound: envolve a vizinhana Clipping: efeito pelo qual h uma poro visvel do objeto na janela e pores invisveis de objeto fora da janela.

A Janela possibilita viso de todo (No Clipping).

De maneira anloga, a janela possibilita viso do todo e de grande rea em branco:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

37

Janela com Clipping. A figura anterior (Janela com Clipping) demonstra a aplicao de escalas arbitrrias para mapeamento de um objeto dentro de uma janela. O uso de escalas diferentes por programadores diferentes pode gerar problemas de um desenho aparecer recortado, ao se mudar o dispositivo de sada. A falta de uso de escalas normalizadas pode gerar tal problema. Observe a figura abaixo.

Para resolver o problema da dependncia de dispositivo, criou-se um mundo intermedirio: o sistema de coordenadas normalizadas (NDC).

Sistemas de Coordenadas Normalizadas (NDC)


Considerando a grande diversidade de equipamentos existentes com diferentes resolues grficas e com um sistema de coordenadas para cada tipo de dispositivo, prope-se o sistema de coordenadas normalizadas - NDC - (Normalized Device Coordinates). Esse sistema trabalha com as coordenadas normalizadas, isso com valores entre 0 e 1 onde 0 x 1 e 0 y 1, sendo x e y as coordenadas horizontais e verticais possveis. O NDC serve como um sistema de referncia intermedirio entre o WC e o sistema de coordenadas do dispositivo (DC). Sua principal aplicao tornar a gerao das imagens independente do dispositivo, pois as coordenadas do WC so convertidas para um sistema de coordenadas padro normalizado. A poro retangular da tela sobre a qual a janela e todo seu contedo so mapeados, chamada de VIEWPORT.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

38

Definio de uma viewport: VIEWPORT(min-x,max-x,min-y,max-y) Exemplos de diferentes viewports: VIEWPORT-1 (0.0 , 0.5 , 0.0 , 0.5) VIEWPORT-2 (0.5 , 1.0 , 0.0 , 0.5) VIEWPORT-3 (0.0 , 0.5 , 0.5 , 1.0) VIEWPORT-4 (0.5 , 1.0 , 0.5 , 1.0)

Obs.: Pode ser que o mapeamento para uma viewport gere solues com desfigurao de imagem caso os aspect ratios da janela e viewport no correspondam. Ou seja, as dimenses dos lados da janela no correspondem s dimenses de lados da viewport. O mapeamento dos lados das WC para as NDC produz a imagem com escalas diferentes.

Janela e viewport com diferentes aspectos aspect-ratio.


Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 39

Sistemas de Coordenadas do Dispositivo (DC)


Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de sada especfico. Por exemplo, em um vdeo esses valores podem ser o nmero mximo de pixels que podem ser acesos (640x480, 800x600 etc) ou podem indicar a resoluo especificada em determinada configurao do sistema operacional, por exemplo 800x600xTrueColor (32bits) para vdeos. Assim, nos hardwares, o sistema de coordenadas depende geralmente da resoluo possvel e da configurao definida pelo usurio entre um conjunto de configuraes possveis.

Transformao WC-NDC

WC

Device Coordinates (DC)

Transformao de normalizao NDC

Transformao de estao

O mapeamento das coordenadas do mundo para as NDC, descrito atravs de frmulas que surgem da proporcionalidade, ou seja, de um posicionamento relativo de um ponto na janela(WC) que deve refletir num ponto correspondente na viewport (NDC). Por interpolao, obtm-se:
ywmax yvmax

ywmin

yvmin

xwmin

xwmax

xvmin Dispositivo

xvmax

Window

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

40

1 passo)

XW - XWmin = XN - XNmin XWmax - XWmin XNmax - XNmin XN = ( XW - XWmin ) * ( XNmx - XNmin) + XNmin XWmx - XWmin XN = (XNmx - XNmin ) * (XW - XWmin) + XNmin XWmx - XWmin

2 passo)

3 passo) e finalmente;

XN = XNmin + fat-vis-x * (XW - XWmin ) ou XN = Sx.(XW - XWmin) + XNmin Sx = fator de escala window/viewport Analogamente: YN = YNmin + fat-vis-y . (YW - YWmin ) sendo o fator de visualizao do tipo: fat-vis-y = YNmx - YNmin YWmax - YWmin Graficamente: fat-vis-x = XNmx - XNmin XWmax - XWmin

(XWmax, YWmax)
(XW, YW) (XN, YN)

(1,1) (XNmax, YNmax)

(XWmin, YWmin)

(XNmin, YNmin)

(0,0)

(WC)

(NDC)

Para realizar a Transformao de Estao, que do sistema de coordenadas NDC para o DC. Em outras palavras:
map-ndc-dc(Xn,Yn,Xd,Yd):Xd1 is Xn*NPX, Yd1 is Yn*NPV, round(Xd1,0,XD2), round(Yd1,0,YD2), Xd is integer(XD2),
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 41

Yd is NPV - integer(YD2).

onde: round( X, N, Xz) => arredonda X com N casas decimais, devolvendo o resultado e Xz. importante destacar que: NPX = ndh - 1; NPV = ndv - 1 CGA - ndh - 640 ; ndv = 200 (baixa resoluo)

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

42

Aula 05 5- Gerao de Primitivas Grficas


Uma imagem pode ser descrita de vrias maneiras. Uma delas atravs de um dispositivo raster que a imagem formada pela colorao das posies do conjunto de pixel dos dispositivos. Em outro extremo, a imagem pode ser formada por um conjunto de objetos complexos, como por exemplo a rvore em uma floresta ou uma moblia em uma sala, os quais so posicionados em coordenadas especficas dentro da cena. As formas e cores dos objetos podem ser definidas internamente por arrays de pixel ou por um conjunto de estruturas geomtricas bsicas, tais como segmentos de reta e reas poligonais coloridas. A cena apresentada, ento, tanto pela formao de arrays de pixel em uma estrutura de buffer quanto pela conveno em estruturas geomtricas bsicas descritas em um molde (padro) de pixel. Tipicamente, pacotes de programao grfica oferecem funes para descrever uma cena em termos dessas estruturas geomtricas bsicas, referenciadas como primitivas de sada, e agrupam o conjunto de primitivas de sada em estruturas mais complexas. Cada primitiva de sada especificada por coordenadas de entrada e por outros dados informando maneira que os objetos devero ser mostrados. Pontos e segmentos de reta so as estruturas geomtricas mais simples de uma imagem. Primitivas de sada adicionais, que tambm so usadas para construir uma imagem, incluem crculos e outras sesses cnicas, superfcies quadrticas, curvas e superfcies irregulares, reas poligonais coloridas e palavras formadas por caracteres. Nas prximas sees, sero vistos procedimentos de gerao de primitivas grficas, descrevendo algoritmos ao nvel dos dispositivos para exibir as primitivas de sada, com nfase nos mtodos de converso scan para sistemas grficos raster.

Rasterizao
Rasterizao o processo de converso da representao vetorial para a matricial. Ela permite realizar a converso de um desenho tridimensional qualquer em uma representao inteira, possvel de ser armazenada na memria (de vdeo ou impresso) de um dispositivo raster. A figura abaixo ilustra a rasterizao de uma reta.

Figura 4.1 Converso da representao de uma reta na forma vetorial para a matricial.

Grande parte dos dispositivos de entrada e sada, tal como filmadoras digitais, scanners, vdeos e impressoras, usam uma tecnologia matricial, tambm denominada tecnologia raster.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 43

Esses dispositivos possuem uma memria na qual composta a imagem a ser posteriormente exibida no dispositivo. Um vdeo raster composto de uma memria em que esto armazenadas as informaes que descrevem a imagem. Essa memria de vdeo uma rea de armazenamento onde cada posio indica quando um determinado pixel na tela deve estar apagado ou aceso e em qual cor.

Gerao de Linhas
Ao tentar desenhar uma reta no vdeo, devemos nos lembrar de que essa reta no poder ser desenhada da mesma forma que a desenharmos em uma folha de papel, ou seja, nem sempre ser uma reta perfeita. Ela ser desenhada pelos pixels que puderem ser acessados no dispositivo de visualizao utilizado, atravs de uma aproximao a ser obtida com a utilizao do quadriculado formado pelos pixels (Figura 4.1). Dependendo da inclinao traada, podemos obter uma linha com uma aparncia serrilhada. Isso denominado aliasing e devido s quebras de continuidade impostas pela malha de pontos. Essa quebra das linhas tende a ser muito mais aparente medida que os pontos apresentados na tela forem de tamanho maior (dot pitch) ou que o dispositivo possuir menor resoluo (nmeros possveis de pixels nas duas direes). Esses serrilhados podem ser melhorados atravs da aplicao de algoritmos de anti-serilhamento conhecidos como algoritmos de anti-aliasing. Os algoritmos de anti-aliasing buscam tentar enganar o olho humano. Eles geralmente conseguem isso fazendo as bordas de um desenho ficarem um pouco borradas, ou melhor, menos ntidas. Geralmente usam uma cor intermediria entre a cor da linha e a cor do fundo, obtendo assim suavizao do contraste entre as duas cores. Dessa maneira, tem-se uma linha que ter uma aparncia mais perfeita para uma pessoa que a observe a uma certa distncia. Sendo a tela grfica uma matriz de pontos, impossvel traar uma linha direta de um ponto a outro, principalmente as linhas inclinadas (ou seja, com angulao diferente de 45). Sendo assim, alguns pontos da tela devero ser selecionados para representar a reta que se deseja desenhar. Esta seleo feita pelos algoritmos de rasterizao.

Mtodo Analtico O mtodo analtico o mtodo mais simples que utiliza a equao da reta para obter todos os pontos de uma linha reta. A partir dos pontos extremos da linha, P1(x1,y1) e P2(x2,y2), obtm o valor do coeficiente de inclinao da reta (m) e o valor da varivel b, caso esta linha intercepte o eixo Y. Veja os clculos abaixo: y = m . x + b (Equao da reta) m = y x b = y1 m. x1 m = y2 y1 x2 x1

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

44

Iniciando a varivel x com valor da coordenada mais esquerda da linha, obteremos os valores da varivel y a medida que incrementamos a varivel x por 1. Os pontos da reta podero ser ligados por meio da seguinte estrutura repetitiva:

set_pixel(x1,y1); for(int x = x1; x <= x2; x++) { Em C } Porm, este mtodo possui desvantagens: operaes com ponto flutuante, no entanto, os pixels so inteiros; so realizados muitos clculos no processo, o que gera ineficincia, pois a capacidade de processamento dos computadores da poca (dec. 60) era fraca; escolha do pixel no um fator considerado na elaborao da soluo, o que pode ser qualquer um das redondezas do nmero obtido nas contas efetuadas. Isto altera a continuidade dos pontos da reta (favorece o aparecimento de buracos). y = m . x + b; set_pixel(x,y);

Analisador Diferencial Digital (DDA) A tcnica utilizada no algoritmo DDA est baseada no clculo do y e do x. y = m . x x = y m Se x > y, ento incrementamos o intervalo x em uma unidade e calculamos os sucesivos valores para a coordenada y, pela seguinte equao: y = m . x yk yk-1 = m yk = m + yk-1

Se x < y, ento incrementamos o intervalo y em uma unidade e calculamos os sucesivos valores para a coordenada x, pela seguinte equao: x = y m xk xk-1 = 1 m xk = 1 + xk-1 m

A seguir, descrevemos o mtodo DDA atravs da linguagem de programao em C e por meio de um diagrama para auxiliar no entendimento deste algoritmo.
void lineaDDA(int xa, int ya, int xb, int yb) { int dx = xb xa, dy = yb-ya, steps, k;
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 45

float xIncrement, yIncrement, x = xa, y = ya; if (abs(dx) > abs(dy)) steps = abs(dx); else steps = abs(dy); xIncrement = dx / (float) steps; yIncrement = dy / (float) steps; setPixel(ROUND(x), ROUND(y)); for(k=0; k<steps; k++) { x += xIncrement; y += yIncrement; setpixel(ROUND(x), ROUND(y)); } }

|x 2 - x 1 | > |y 2 - y 1 | Sim incremento = y 2 - y 1 / x 2 - x 1 y = y1 p/ x de x 1 at x 2 faa dot (x,y,cor) y = y + incremento(*)


(*)

No incremento = x 2 - x 1 / y 2 - y 1 x = x1 p/ y de y 1 at y 2 faa dot (x,y,cor) x = x + incremento(*)

determina a densidade da linha (x2, y2) (x1, y1)

O algoritmo DDA um mtodo mais rpido para os clculos de posio de pixels do que o algoritmo do mtodo analtico. No entanto, este algoritmos ainda possui vrios problemas, como: os vrios arredondamentos das variveis do tipo ponto-flutuante, levavam ao erro ao calcular a posio dos pixels; a utilizao da aritmtica de ponto-flutuante e a multiplicao, ainda exigiam muito tempo do processamento; Algoritmo de Bresenham

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

46

O algoritmo de BRESENHAM prope um trabalho somente com inteiros, ou seja, no h uso de variveis reais. Para simplificar o algoritmo, supomos o incremento como sendo uma unidade e a inclinao da linha entre 0 e 1. O algoritmo aproveita a coerncia espacial, escolhendo entre dois valores de pixel vizinho. Isto , em vez de computar o valor do prximo y em ponto flutuante, decidir se o prximo pixel ir ter as coordenadas (x+1,y) ou (x+1, y+1). Para isso, requer que se avalie se a linha passa acima ou abaixo do ponto mdio (x+1,y+ 1/2).

Figura 4.2 Representao do algoritmo de Bresenham para gerao de uma reta.

Se s < t ento o pixel E(ou Si = (xk+1, y) ) est mais perto da linha desejada e ser o escolhido; seno ser o pixel NE(ou Ti(xk+1, y k+1) ) que estar mais perto da linha e ser o escolhido. Diante da escolha entre dois valores de pixel vizinhos, o algoritmo Bresenham usa uma varivel de deciso di que proporcional diferena entre os parmetros s e t, como mostra a figura 4.3 e os clculos descritos a seguir.
Reta desejada Obs: Os pontos negros so os pixels selecionados pelo algoritmo de Bresenham.

Ti t s Si Pi-1 = (r, q) = (x i-1 , y i-1)

Figura 4.3 Representao dos parmetros s e t utilizados no algoritmo de Bresenham.

A linha ser desenhada de (x 1 , y 1 ) at (x 2 , y 2 ). Atravs da translao, a linha se transforma de (0, 0) at (dx, dy), onde dx= x2 - x1 e dy= y2 - y1 . Logo, a equao da reta se dy torna: y = .x . dx
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 47

Nota-se que: dy dy .( r + 1) s = .( r + 1) q dx dx dy dy t= (q + 1) - yt ; mas y t = .( r + 1) t = (q + 1) - ( r + 1) dx dx ys - q = s; mas y s = Logo: (s - t) = 2. dy ( r + 1) 2q 1 , da dx.(s - t) = 2.(r.dy - q.dx) + 2dy dx ; dx

chamando dx(s - t) = di di = 2.(rdy - qdx) + 2dy - dx; mas

{r = x i-1 {q = yi 1

d i = 2.(x i-1 )dy - 2.(yi-1 ).dx + 2dy - dx (Equao1).


Pode-se, ento descrever que:

d i+1 = 2.x i .dy - 2y i .dx + 2dy - dx.


Ento, fazendo di+1 di, tem-se:
d i +1 - d i = 2dy(x i - x i-1 ) - 2dx(y i - y i-1 ), mas x i - x i-1 = 1 d (i + 1) = d i + 2dy - 2dx.(y i y i 1 ) Lembrando que : i) Se d i 0 tomamos Ti (y i = y i 1 + 1) d i +1 = d i + 2.(dy - dx) ii) Se d i < 0 tomamos Si (y i = y i 1 ) d i +1 = d i + 2.dy

Para calcular o valor da varivel de deciso di quando i = 1, aplicamos as coordenadas (x0,y0) = (0,0) na Equao 1 e obtemos a seguinte equao: d1 = 2dy dx. A seguir, descrevemos o algoritmo de Bresenham para gerao de linha, utilizando a linguagem de programao em C.
void lineBres(int xa, int ya, int xb, int yb) { int dx = abs(xa xb), dy = abs(ya-yb); int di = 2 * dy dx; int twoDy = 2 * dy, twoDyDx = 2 * (dy dx); int x , y, xEnd; /* Determina qual ponto ser utilizando como coordenada inicial e final. */ if (xa > xb) {
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 48

x = xb; y = yb; xEnd = xa; } else { x = xa; y = ya; xEnd = xb; } setPixel(x, y); while(x < xEnd) { x ++; if (di < 0) di += twoDy; else { y++; di += twoDyDx; } setPixel(x,y); } }

Obs.: O algoritmo acima funciona bem para linhas do primeiro octante. Como podemos generalizar que uma linha em outros octantes pode ser obtida partir do primeiro necessrio apenas desenvolver transformaes do primeiro para os demais octantes.

Gerao de Circunferncia
Os algoritmos para gerao de circunferncia (cnicas, de forma geral) enfrentam problemas similares ao da gerao de retas, adicionando-se a dificuldade de clculo de funes trigonomtricas. A seguir, descrevem-se algumas propostas para gerao desta figura geomtrica.
Equao paramtrica

Um crculo definido por um conjunto de pontos, e todos so constitudos pela distncia entre o raio r e uma posio do centro (xc,yc). Para se obter os pontos que definem os limites de um crculo, usamos as coordenadas polares r e . Ou seja, atravs das equaes paramtricas de um crculo, desenhamos um crculo com pontos igualmente espaados ao longo da circunferncia. As equaes paramtricas so obtidas pelo clculo de pontos num perodo, usando as funes seno e coseno:
0 t 2
y = r sen( t ) x = r cos( t )

Diagrama:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 49

x = raio; y=0 Para t de 1 at 360 faa pixel (x , y , cor)


t x = r cos( 180 ) t y = r sen( 180 )

Desvantagens deste mtodo: uso de pontos flutuante; uso de funes trigonomtricas, o que reduz muito a eficincia do algoritmo; densidade dos pontos varia com o raio, isto , quanto maior o raio maior o nmero de espaos (buracos) entre os pontos. A figura 4.4 mostra um possvel resultado ao se criar uma circunferncia pelas equaes paramtricas.

Figura 4.4 Criao de uma circunferncia utilizando as equaes paramtricas.

Algoritmo Incremental Com Simetria

Para tentar resolver o problema dos buracos, implementaremos o algoritmo incremental com simetria. Este algoritmo representa o deslocamento angular pelo incremento de uma unidade de pixel, como mostra a figura:

Deslocamento em radianos = 1/r (r = raio)

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

50

Figura 4.5 Representao do algoritmo Incremental com Simetria.

O gasto computacional tambm pode ser reduzido por este algoritmo, considerando a simetria da circunferncia. Uma parte do crculo possui um similar nos outros quadrantes. Em outras palavras, pode-se gerar o 2 quadrante da circunferncia no plano XY, pela simetria com o 1 quadrante em relao ao eixo y. Os 3 e 4 quadrantes tambm podem ser obtidos por simetria, pois so simtricos aos 1 e 2 quadrantes em relao ao eixo x. A seo do crculo em octantes adjacentes simtrica em relao linha do ngulo de 45. Ento, basta apenas que um octante seja avaliado para obter os demais. Para cada pixel computado em um octante, oitos so pintados.

Figura 4.6 Propriedade importante da circunferncia: simetria.

O uso de funes trigonomtricas tambm solucionado neste mtodo. Pelas equaes:

x n+1 = x n cos + y n sen y n+1 = y n cos x n sen

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

51

o algoritmo incremental constri uma circunferncia com deslocamento angular constante e pequeno e com a rotao a partir de um ponto inicial. Nessas equaes os valores do seno e do cosseno so fixos. Descrio resumida do algoritmo Incremental com simetria:
y = 0; % Gera pontos sobre o eixo: pixel (x , y , cor); pixel (-x , y , cor); pixel (x , -y , cor); pixel (-x , -y , cor); % Demais pontos: x = r cos t; y = r sen t; pixel (x , y , cor); pixel (x , -y , cor); pixel (-x , y , cor); pixel (-x , -y , cor); pixel (y , x , cor); pixel (y , -x , cor); pixel (-y , -x , cor);

x r;

Desvantagens deste mtodo: uso de xn e yn nas prximas iteraes causam erros cumulativos; uso de nmeros reais com necessidade de arredondamento, no clculo de cada pixel.

Algoritmo de Bresenham

A soluo dada por BRESENHAM tambm utiliza a noo de simetria, gerando o primeiro quadrante e os demais por simetria. Evita a utilizao de razes, potncias e funes trigonomtricas para no exigir esforo computacional e nem reduzir a eficincia do algoritmo. Para aplicar o algoritmo de Bresenham, utilizaremos a funo de circunferncia: fcircle(x,y) = x2 + y2 - r2 Qualquer ponto (x,y) no limite do crculo com raio r satisfaz a equao do crculo, ou seja, fcircle (x,y) = 0. Se o ponto est no interior da circunferncia: fcircle (x,y) < 0. E se o ponto est fora da circunferncia: fcircle (x,y) > 0. Baseando-se nesta funo, ser definido o parmetro de deciso i que auxiliar na escolha do pixel que est mais prximo da curva ideal. A escolha deste pixel recai sobre trs possveis pixels (A, B ou C, como mostra a figura 4.7). O critrio de seleo entre tais pontos leva em conta a distncia relativa entre os mesmos e a circunferncia ideal. Utiliza-se ainda um crculo centrado na origem. Inicia o algoritmo no ponto (0,R) e vai aumentando x exaustivamente, ou comea no ponto (R,0) e vai aumentando y gradativamente.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

52

Figura 4.7 Representao do algoritmo de Bresenham para gerao de uma circunferncia.

Se escolhermos como ponto inicial (0,R), a circunferncia ser gerada no sentido horrio, e o algoritmo pode escolher entre 3 pontos diferentes. O critrio de seleo entre os pontos ser dado pela distncia relativa entre eles, sendo representados pelas seguintes variveis: horizontalmente para direita (mh); diagonalmente para baixo direita (md); verticalmente para baixo (mv);

mh = ( x i + 1 ) 2 + ( y i ) 2 R 2 2 2 2 md = (x i + 1 ) + ( y i 1 ) R 2 2 2 mv = (x i ) + ( y i 1 ) R
O algoritmo escolhe o pixel que minimize o quadrado da distncia entre um destes pixel e o crculo verdadeiro (mv, md, mh). Ento, definindo o valor de i pela equao que calcula a diferena entre o quadrado da distncia do pixel ao centro e o raio da circunferncia, temos: i = (xi+1)2 +(yi-1)2 + R2 (pixel diagonal) Dependendo do valor de i, temos os seguintes casos:
1 caso) Se (i = 0) o ponto B deve ser escolhido. 2 caso) Se (i < 0) O ponto B est no interior do crculo, ento deve-se escolher o melhor ponto pelo valor da varivel , que calculado da seguinte forma:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 53

= mh md
a) se 0 o ponto escolhido o A; b) se > 0 o ponto escolhido o B;
3 caso) Se (i > 0) O ponto B est fora da circunferncia ento deve-se escolher o melhor ponto pelo valor da varivel ', que calculado da seguinte forma: ' = md mv

a) se ' 0 o ponto escolhido o B; b) se ' > 0 o ponto escolhido o C; Por fim, o algoritmo de Bresenham classificado como o melhor mtodo para gerar uma circunferncia, devido a sua eficincia, por isso o mais utilizado nos pacotes de softwares grficos.

Exerccios:
1- Quais so as principais dificuldades para na elaborao de algoritmos para a converso raster de figuras, isto , quais so os cuidados que devem ser tomados na elaborao e implementao destes algoritmos? 2 - Qual a vantagem do algoritmo de Bresenham sobre o algoritmo DDA para a converso raster da reta?

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

54

Aula 06
6 Preenchimento de reas
Na maioria dos pacotes grficos, uma primitiva um slido colorido ou uma rea padro de um polgono. Algumas vezes, outros tipos de reas so analisados, mas as reas poligonais so as mais fceis de serem projetadas e processadas, desde que tenham limites. Os algoritmos responsveis pelo preenchimento de polgonos procuram as bordas de uma dada rea, de forma a definir quando o pixel deve mudar de cor e quando deve parar o algoritmo. Existem dois mtodos bsicos para preenchimento de uma rea em sistemas raster. O mtodo de Anlise Geomtrica determina os intervalos nos quais uma linha de varredura (linha scan line) atravessa a rea do polgono. O outro mtodo inicia com um ponto do interior do polgono e comea a pintar ao redor deste ponto at encontrar as bordas do polgono. Nas prximas sees descreveremos os algoritmos: de Varredura, de Anlise Geomtrica e Boundary-Fill.

Algoritmo de Varredura
No algoritmo de varredura o contorno do polgono j est desenhado na tela com uma determinada cor, diferente daquela escolhida para o fundo. Inicialmente, escolhe um ponto interno deste polgono. A partir deste ponto, vai mudando a cor do pixel de acordo com a linha varredura, at encontrar um pixel da cor diferente da cor do fundo. Ou seja, at encontrar uma aresta do polgono.

start

Uma lista ligada armazena pontos que servem para continuar o algoritmo; tais pontos fazem o papel de ponto inicial, na iterao seguinte. Este algoritmo se presta preenchimento de qualquer rea fechada.

Algoritmo de Anlise Geomtrica


O algoritmo de Anlise Geomtrica baseia-se na descrio geomtrica (como, por exemplo, uma lista de vrtices que formam o polgono). Ele utiliza as linhas de varredura para identificar os pontos internos do polgono e as intersees com as arestas do mesmo. Os pontos de interseo que so identificados so ordenados da esquerda para a direita. Os pixels entre cada par de intersees so "setados" com uma cor especificada.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 55

Podemos descrever este algoritmo seguindo os seguintes passos:

Figura 5.1 Exemplo de um polgono com uma linha de varredura em y = 20.

1 passo) Montar a tabela de lados: neste passo ser descritos todos os lados do polgono

LADO 1 2 3 4 5 6 7 8

Ymin 0 10 30 50 30 0 0 10

Ymx 10 30 50 70 70 30 30 30

X para Ymin 80 0 40 20 110 130 130 80

1/m -8,0 +2,0 -1,0 +2,0 -1,25 -0,67 -1,0 +0,67

1 x = importante lembrar que: m y


2 passo) Interseo com a linha de varredura: identifica as diversas intersees que a linha de varredura possui com os lados do polgono. Para eliminar os lados do polgono, os quais a linha de varredura no intercepta, so definidas as seguintes condies:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 56

Yvarredura > Ymax Yvarredura < Ymin Se uma das condies acima for verdadeira para qualquer um dos lados do polgono, esse lado ser descartado. A interseo foi obtida pela equao da reta, como mostra a seguir:

Y - Y0 = m (X - X 0 ) Yvarredura - Ymin = m (X - X min ) X - X min = X= 1 ( Yvarredura - Ymin ) m

1 ( Yvarredura - Ymin ) + X min m

3 passo) Ordenam-se os pontos de interseo em ordem crescente e traam-se as linhas, tomando os pontos de dois em dois. Os valores de x sero inseridos em uma lista.

y = 20
(x = 20) (x = 86,7) (x = 110) (x = 116,6)

O algoritmo de anlise geomtrica tem um tratamento especial quando h interseo com os vrtices do polgono. A linha de varredura que passa pelo vrtice atravessa duas arestas do polgono na mesma posio, o que faz com que dois pontos sejam adicionados lista de intersees da scan-line.

Boundary-Fill
O processamento do algoritmo Boundary-Fill comea a partir da escolha de um ponto do interior do polgono, que ento preenchido (ou pintado). Os pixels arredor do ponto escolhido, vo sendo pintados at que a borda do polgono seja encontrada. Parmetros de entrada: Um ponto (x,y) do interior do polgono Cor da sua borda Posies vizinhas do ponto (x,y) so testadas: Se no for a cor da borda o ponto pintado com a cor de preenchimento, at que todos os pixels do polgono tenham sido testados.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

57

Borda Ponto inicial escolhido Pixels vizinhos

Aula 07
7 - Transformaes Tridimensionais Geomtricas Bidimensionais e

So (alteraes) operaes matemticas que permitem alterar uniformemente o aspecto de um desenho j armazenado no computador. Tais transformaes permitem alteraes uniformes de uma imagem definida sobre um sistema de coordenadas. No h comprometimento da estrutura do desenho mas do aspecto que o mesmo assumir. (mudana de orientao / escala). Observao: interessante notar que as operaes de transformao de visualizao (WC/NDC) So combinaes de transformaes de escala (altera valores das coordenadas de modo proporcional ) e de translao. 3 tipos fundamentais de transformao : ESCALA TRANSLAO ROTAO (ao redor da origem)

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

58

Escala
Multiplicao de todas as coordenadas que definem o desenho por fatores de escala no nulos.

Fator de escala horizontal - X BIDIMENSIONAL Fator de escala vertical - Y


x = Ex x y = Ey y

ou

x Ex 0 x y = 0 Ey y

E > 1 Ampliacao da imagem obs: 0 < E < 1 reducao da imagem E < 0 Espelhamento

Obs: fatores Ex e Ey iguais semelhana com o original II. Translao: movimentao da figura para outra posio no sistema de coordenadas. Todos os pontos da imagem so deslocados de uma mesma distncia em relao a posio anterior.

x = x + Tx y = y + Ty
P (x, y) ; P(x, y)

x Tx x y = Ty + y
{ P= T+P }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

59

obs.: suponha uma linha constituda por um nmero muito grande de pontos, este processo pode consumir muito tempo. A frente, definiremos translao com somente pontos iniciais e finais de linha.

Rotao Em Torno Da Origem:

Movimentao de uma figura para uma outra posio, de forma que todos os pontos da imagem mantenham a mesma distncia da origem que possuam antes da transformao. Rotao em torno de um ponto qualquer: transformaes de translao e de rotao em torno da origem. DEFINIES MATEMTICAS

x = x cos - y sen (I) : ngulo tomado no sentido anti-horrio y = y cos + x sen (II)
em outro sentido : Demonstrao:

cos() = cos sen() = sen

Modificar equao I e II

L = x2 + y2

, cos =

x ; L

sen =

y ; L

mas L a distncia de (x, y) origem tambm, temos:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

60

L = x2 + y2

e cos ( + =

x ; L

sen ( + ) =

y L

como

cos(a + b) = cos a cos b sena senb , temos: sen(a + b) = sena cos b + senb cos a

x L = cos cos sen sen x = L cos cos L sen sen y y = L sen cos + L sen cos = sen cos + sen cos L
Coordenadas Homogneas e Matriz De Transformao

Podemos facilitar o cmputo de valores e transformar com uso de matrizes para rotao, escala e translao.

P = T + P Translacao P = S P Escala P = R P Rotacao


Se os pontos so tratados com coordenadas homogneas, todos as transformaes podem ser tratadas com multiplicaes. Em coordenadas homogneas, um ponto tratado com um vetor de 3 valores (tripla) (x, y, w). O ponto transformado representado por (x, y, w). W colocado para dar consistncia nos clculos. A. Matriz de Escala

Ex 0 0 E = 0 Ey 0 0 0 1

[x

2 0 0 y w] = [3 2 1] 0 2 0 0 0 1

[x

y w] = [ 6 4 w]

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

61

Translao: no caso P= TP
1 0 0 y 1] = 0 1 0 [ x Tx Ty 1

inverter

x 1 0 Tx x y = 0 1 Ty y 1 0 0 1 1
Exemplo:

ou

[x

y 1]

[x

1 0 0 y w] = [3 4 1] 0 1 0 2 0 1

[x

y w] = [1 4 1] ignorado

y v P P

x
Translao pura de um objeto.

Rotao
x = x cos y sen y = y cos + x sen cos matriz de rotacao = sen 0 0 cos 0 = R 0 1 sen

[x

y w] = [ x

y w] R ou no caso: P= R() . P
cos -sen 0 R = sen cos 0 0 0 1

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

62

P x Rotao de um objeto.
Combinao Das Transformaes

Combinao de vrias transformaes espelhamento Facilidade: uso de matrizes de transformao Supondo:


1 2 ( x, y ) ( x1 , y1 ) ( x 2 , y 2 ) transf. com uso de M transf. com uso de M

existe M3 que chega direto (x2, y2) Existe a matriz que faz diretamente a converso e tal matriz dada por m1.m2. demonstrao:

[ x1 [x2

y1 1] = [ x y2

1] = [ x 2

y1 1 ]. m2

1 ]. m1

(1) ( 2)

(2) em (1) :

[x2

[x

y 2 1 ] = ( [ x y 1 ] , m1 ) . m2 , pela propriedade associativa :


y 2 1 = [ x y 1] . m 3

Obs. : O produto de matrizes no comutativo: m1.m2 m2.m1 Assim , a ordem na qual as transformaes so aplicadas influi no resultado final. A vantagem do uso de uma nica matriz um ganho de eficincia. Considerando, por exemplo, a rotao de um objeto sobre um ponto qualquer P1. Transformamos este processo em 3 outros: - transladamos de P1 para a origem; - rotacionamos; - transladamos da origem para P1.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 63

A transformao seria dada por x1

y1 1] = [ x y 1]. TT

0 0 cos sen 0 1 0 0 1 0 1 0 . sen cos 0 . 0 1 0 = TT x1 y1 1 0 0 1 x1 y1 1


cos TT = sen x1 (1 cos ) + y1 .sen sen cos y1 (1 cos ) x1 sen 0 0 1

Obs. : A composio das transformaes pela matriz de multiplicao ilustra a facilidade proporcionada pelo uso de coordenadas homogneas. Caso 2: Multiplicao por escala, seguida de translao

0 0 Ex 0 0 1 1 0 1 0 . 0 Ey 0 . 0 1 x1 x1 y1 1 0 0 Ex 0 0 0 TTz = 0 Ey x1 (1 Ex) y1 (1 Ey) 1

0 1 y1

0 0 = TTz 1

Seqncia: - translada-se o ponto de referncia para a origem; - promove-se a rotao em torno da origem; - translada-se da origem para o ponto de referncia.
Espelhamento:

Produo de imagens simtricas com uso de transformaes de escala com fatores negativos Espelhamento c/ relao a x => Ex = 1 ; Ey = -1 c/ relao a y => Ex = -1 ; Ey = 1 c/ relao a x e y => Ex = -1 ; Ey = -1

Espelhamento em relao a uma reta qualquer:

a) Traslada-se a figura de modo que um dos pontos da reta de simetria v para a origem;
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 64

b) Rotaciona-se a figura at que a reta de simetria se torne paralela um dos eixos do sistema de coordenadas; c) Espelha-se a figura em relao ao eixo que, neste instante, coincide com a reta de simetria. Caso, seja o eixo Y, usa-se Ex = -1; Ey - 1; d) Rotaciona-se a figura em um ngulo oposto ao aplicado em b -de forma a retornar a reta de simetria sua posio original- ; e) Transladar a figura com constantes de deslocamento opostas s aplicadas em a , de modo a voltar a reta de simetria sua posio .

Matriz de transformao
Consideraes sobre eficincia:

Uma combinao de matrizes de rotao (R), escala (S) e transformao (T) pode produzir uma matriz de forma:

r11 r12 0 r21 r22 0 sendo, a obteno de (x1 y1 ) da por: t x t y 1

[ x1

y1

a b 0 z] = [ x y 1]. d e 0 c f 1 x1 = ax + by + c , ( 9 multiplicaes e 6 adies ) y1 = dx + ey + f

chegando a

Podemos exigir menos operaes aritmticas com uso de

[x

a d y, = [ x y 1]. b e => (menos operaes) c f ( 3 X 2 )

TRANSFORMAES EM 3 DIMENSES:

A idia bsica consiste em trabalhar com algoritmos e estrutura de dados que representem tridimensionalmente a imagem com converso de coordenadas tridimensionais para projeo bidimensionais, no memento da representao de imagem. Ponto => representado por 3 coordenadas (x,y,z) e por 4 coordenadas no caso de coordenadas homogneas: Matrizes 4x4
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 65

Representao matricial : (Wx , Wy , Wz , W) ; W 0 . Se W 1 => W dividido nas 3 primeiras coordenadas homogneas para obter a coordenada cartesiana do ponto (x,y,z) . Escala: multiplicao de cada uma das coordenadas pelo fator de escala correspondente. Efeito: aproximao ou afastamento do ponto em relao origem do sistema, proporcionalmente, em cada eixo, aos fatores de escala;

Ex 0 Matriz: 0 0

0 Ey 0 0 e, portanto: 0 Ez 0 0 0 1 0 0 0 Ey 0 0 0 Ez 0 0 0 1 0 0

[x

y,

Ex 0 1 = [ x y z 1]. 0 0

Translao: A seguir a matriz homognea representa a translao em 3 dimenses:

1 0 T3 = 0 Tx
Rotao:

0 1 0 Ty

deslocamento em cada eixo. x y z w = x


, , ,

0 0 0 0 onde Tx , Ty , Tz representam as constantes de 1 0 Tz 1

] [

y z w ]. T3

cos sen Rz = 0 0

Quando trabalha-se com 3 dimenses deve-se definir qual o plano sobre o qual a rotao deve ser realizada, ou seja, qual o eixo em torno de qual se proceder a rotao. Se: plano de rotao por eixo x e y, seja eixo de rotao z:

0 0 cos 0 0 0 1 0 0 0 1
z

sen

A rotao em torno de eixo x seria:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

66

1 0 Rx = 0 0

0 cos sen 0

0 sen cos 0

0 0 0 1
z

E, finalmente, em torno do eixo y seria:

cos 0 sen 0 0 1 0 1 Ry = sen 0 cos 0 0 0 1 0

Rotao em torno de um eixo arbitrrio: Sejam (a, b, c) e (a, b, c) os pontos que determinam os eixos: PASSOS: 1) Translao de forma a fazer o eixo de rotao passar pela origem (Tx = -a; Ty = -b; Tz = c); 2) Rotao em torno de eixo x, de forma que o eixo de rotao fique no plano xz; (angulo ); 3) Nova rotao agora em torno de eixo y (angulo ) at que o eixo de rotao coincida com o eixo z; 4) Rotao em torno de eixo z com o ngulo desejado ( ) ; 5) Rotao de - em torno do eixo y; 6) Rotao de - em torno do eixo x; 7) Translao com (Tx = a; Ty = b; Tz = c). inversa Resumo Novo_Ponto = Ponto_velho. T . R x . R y . R . R y . R x . T 1
1 1

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

67

Exerccios:
1) Apresente as transformaes simples aplicadas um tringulo qualquer definido nos eixos x, y, z. 2) Apresente um esquema no qual pelo menos 2 transformaes foram aplicadas uma figura qualquer.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

68

Aula 08
8 Algoritmos de Recorte
Todo recorte deve ser efetuado no sistema de coordenadas de usurio

VIEWPORT

JANELA Geralmente, qualquer procedimento que elimina aquelas partes da figura que esto tanto dentro quanto fora de uma regio especfica do espao, denominado como algoritmo de recorte. Os algoritmos de recorte so aplicados em procedimentos de visualizao 2D para identificar as partes de uma figura que esto dentro da janela de recorte. Tudo que est fora da janela de recorte , ento, eliminado da descrio da cena que ser transferida para o dispositivo de sada, como o monitor. Um algoritmo eficiente redefinir os objetos que aparecem parcialmente na Janela. Isto reduz os clculos, porque todas as matrizes de transformaes geomtricas podem ser concatenadas e aplicadas a descrio da cena antes do algoritmo de recorte ser carregado. Nas prximas sees, sero descritos os seguintes algoritmos 2D: Recorte de pontos Recorte de linhas o Algoritmo de Cohen-Sutherland Recorte de Polgnos o Algoritmo de Sutherland-Hodgman

Pontos
Este algoritmo um processo rpido e muito simples. O ponto P = (x,y) que deve ser apresentado na viewport aquele para o qual as inequaes abaixo so satisfeitas.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

69

x min x x max

y min y y max

Se qualquer uma das quatro inequaes no forem satisfeitas, o ponto P recortado da viewport.

Linhas

Este algoritmo exige mais clculos e testes do que o processo anterior, embora seja necessrio considerar apenas as partes finais da linha e no uma infinita quantidade de pontos. Um algoritmo de recorte de linhas processa cada linha em uma cena atravs de clculos de intersees para determinar se toda linha ou parte dela ser salva. A parte custosa deste algoritmo est no clculo da interseo da linha com os limites da janela. Contudo, a principal finalidade de qualquer algoritmo de recorte de linha minimizar os clculos de interseo. Para isto, realizado teste inicial na linha de forma a determinar se clculos de interseo so realmente necessrios. Inicialmente, o par de pontos finais pode ser checado para observar se ambos pertencem janela, fazendo a linha ser aceita trivialmente. Ao mesmo tempo, a linha pode ser trivialmente rejeitada, por testes simples tambm, como no caso da linha CD, que apresenta y>ymax(da janela). Podem ser, por exemplo, rejeitados pontos que esto abaixo de ymin e esquerda de xmin ou direita de xmax.
Algoritmo de Cohen-Sutherland

Este um algoritmo projetado para identificar eficientemente que linhas podem ser trivialmente aceitas ou rejeitadas, dispensando os clculos de intersees. Estes clculos sero necessrios apenas para linhas na qual os casos acima falharem. Inicialmente, os pontos das extremidades da linha sero associados a um valor binrio composto por 4 dgitos, chamado de cdigo da regio. Cada posio de bit usada para indicar se o ponto est dentro ou fora de uma borda da janela de recorte. A figura abaixo ilustra uma possvel ordenao para as posies dos bits, numerando de 1 4 da direita para a esquerda.
4 3 2 1

Acima Abaixo Direita Esquerda

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

70

Ento para esta ordem, os bits significam: Bit 1 - o ponto est esquerda da janela Bit 2 - o ponto est direita da janela Bit 3 - o ponto est abaixo da janela Bit 4 - o ponto est acima da janela

- P(4) - P(3) - P(2) - P(1)

1 passo: Associar cdigos aos pontos finais.

Qualquer posio do bit ter o valor 1 (ou verdade) quando estiver fora daquela borda da janela. Similarmente, o valor 0 (ou falso) em qualquer posio do bit indica que a extremidade no est fora do limite correspondente da janela.
2 passo: Verificar se totalmente visvel:

Se os dois cdigos associados as duas extremidades do segmento de reta forem zero, ento a linha totalmente visvel. soma1 = 0 ; soma2 = 0 ; for (i = 1; i++; i < 5) { soma1 : = soma1 + P1CODE (i) soma2 : = soma2 + P2CODE (i) } if (soma1 = = 0) && (soma2 = = 0) linha totalmente visvel
3 passo: verificar se a linha invisvel, ou seja, se a linha est totalmente direita, ou esquerda, ou acima ou abaixo.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

71

Inter = 0; for (i = 1; i++; i<5) { Inter : = Inter + integer ((P1. CODE(i) + P2. CODE(i)) / 2) If Inter != 0 linha invisvel else next i } Por exemplo:
I J H K G L

linha KL P1 (0 0 1 0) ; P2(0 1 1 0) OK - linha invisivel Ex: linha GH P1 (0 0 0 1) ; P2 (1 0 0 0) Falha linha IJ P1 (1 0 0 1) ; P2 (1 0 0 0) OK - linha invisivel 1

4 passo: Verificar se um dos pontos est dentro da janela.

Soma1 = 0 ou Soma2 = 0 Se estiver, basta tomar uma interseco Xc Xc , Xd Xe Xf , Xf


5 passo: A linha parcialmente visvel ou totalmente invisvel para o primeiro passo, devem ser calculadas as intersees.

Esquerda: XL, Y = M* (XL - X1) + Y1 ; M 0; Direita: XR, Y = M* (XR - X1) + Y1 ; M 0; Top: YT, X = X1 + 1/M . (YT - Y1); M 0; Botton: YB, X = X1 + 1/M . (YB - Y1); M 0; Exemplo:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

72

Esquerda: X= -1 Y = 2/3. [ -1 - (-3/2)] + 1/6 = {YB Y = YT } Direita: X= 1 Y = 2/3. [1 - (-3/2)] + 1/6 = 11/6 {FORA} Top: Y= 1 X = -3/2 + 3/2. [ 1 - 1/6] = -1/4 {XL -1/4 XR } Botton: Y= -1 X = -3/2 + 3/2. [ 1 - 1/6] = -13/4 {FORA} Exemplo: Prove a eficincia do algoritmo anterior para os casos A e B abaixo:

P1 (-3/2 , 1/6) P2 (1/2 , 3/2) P1 (-1 , 1/2) P3 (-1.5 , -0.75) P4 (1.5 , 2)

Polgonos
Em algumas aplicaes, h necessidade de promover o recorte de polgonos, cujos vrtices esto armazenados numa estrutura de dados qualquer. Para serem exibidos, os polgonos devem primeiro passar por uma operao de transformao de visualizao e depois por um processo de recorte at serem convertidos nas coordenadas do equipamento. O algoritmo que recorta polgonos deve prever diferentes casos, tais como:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 73

Polgono cncavo recortado em 2 polgonos separados e distintos.

Recorte de polgono (cncavo) que est quase integralmente na janela

Algoritmos de Sutherland-Hodgman Para corrigir os problemas apresentados acima, Sutherland e Hodgman prope processar toda a borda de um polgono em relao as arestas de uma janela. Neste algoritmo, todas as arestas so ordenadas no sentido horrio e classificadas em relao as bordas das janela conforme as figuras abaixo.

CASO 1: dois vrtices adicionado lista de sadas. CASO 2: o ponto i de interseo tratado como um vrtice de sada (a ser traado) CASO 3: os dois vrtices so descartados. CASO 4: os dois pontos i e p so colocados na lista de vrtices de sada.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

74

Exemplo: Recortar uma polgono atravs do recorte de suas laterais (reas que tocam os limites da janela). Sero feitos 4 recortes:

Figura: Recorte de polgono, lado a lado:

Com o polgono de lados definidos pelos vrtices: U1, U2, U3, ... Un para cada lado observa-se a relao entre vrtices sucessivos e as janelas (limites)

Algoritmo destinado a obter as intersees O primeiro ponto no colocado na lista de sadas (s, da figura anterior), j que o mesmo o vrtice inicial e j se encontra na mesma, pois o processo seqencial. para linhas do polgono totalmente invisvel, nenhum ponto adicionado lista de sadas (caso 3). para casos 2 e 4, necessrio calcular as intersees para um dado vrtice, se necessrio calcular se o mesmo est dentro ou fora de uma janela, temos uma funo que aplica um teste baseado em produto vetorial.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

75

Aula 09
9 Projees Geomtricas
A transformao do espao 3D para o plano 2D estudada desde o sculo XIX, quando Gaspard Monge conceituou a geometria descritiva. Hoje, essa transformao facilmente realizada por alguns softwares grficos. Parmetros como distncia e altura podem se determinados pelo usurio; o ngulo de viso (ou de tomada de cena) preestabelecido pelo software. Projeo a converso genrica de entidades de uma dada dimenso para outra de menor ordem. Ento, a finalidade do algoritmo de projeo na Computao Grfica converter os modelos tridimensionais em imagens bidimensionais (3D 2D). Sendo a projeo de um objeto sua representao grfica em um plano, e tendo o objeto trs dimenses, para sua representao em um plano bidirecional, devem ser considerados os elementos bsicos: plano de projeo: a superfcie onde ser projetado o objeto, ou seja, onde ele ser representado em 2D; raios de projeo (ou projetoras): so as retas que passam pelos pontos do objeto e pelo centro de projeo. Na figura 9.1 um raio de projeo representado pela reta que une o ponto P origem do sistema de eixos. centro de projeo: o ponto fixo de onde os raios de projeo partem.
y

Plano de Projeo z

Figura 9.1 Exemplo de projeo de um ponto em um plano.

Um ponto se projeta no plano de projeo quando o raio de projeo intercepta o plano de projeo, como mostra a figura 9.1. Todos os pontos visveis do objeto devem ser projetados no plano de projeo.

Classificao das Projees Geomtricas


As projees geomtricas so classificadas conforme o organograma da figura 9.2. As classificaes dependem das relaes entre o centro de projeo, o plano de projeo (onde o objeto aparece como 2D) e as direes das linhas ou raios de projeo.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

76

Figura 9.2 Classificao das projees geomtricas.

Nas projees Perspectivas ou Cnicas, o centro de projeo um ponto prprio, em coordenadas finitas no sistema tridimensional. Os feixes da projetora cortam o plano de projeo quando convergem seus feixes para o centro de projeo. Esta projeo deforma a figura, diminuindo os objetos mais distantes e distorcendo os ngulos.

Figura 9.3 Exemplo de projeo perspectiva.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

77

J as projees Paralelas ou Cilndricas, tm um ponto imprprio como centro de projeo, isto , as linhas visuais encontram-se no infinito, e todas as linhas de projeo so paralelas entre si. Mantm a proporcionalidade da figura.

Figura 9.4 Exemplo de projeo paralela.

A projeo de um objeto pode ser formulada como uma transformao geomtrica. Ela pode ser representada por uma matriz 4x4 que, aplicada um ponto do espao obtenham o ponto no plano equivalente. Para obter as matrizes de transformao, importante que: o objeto a ser projetado esteja descrito de tal forma que suas principais direes coincidam com os eixos do sistema; o plano de projeo, que um plano vertical, esteja colocado perpendicularmente ao eixo z do sistema de coordenadas do objeto; o objeto esteja modelado por um conjunto de pontos convenientemente. Havendo mais de um objeto em cena, necessria uma converso entre os sistemas de coordenadas do objeto e da cena. Os pontos de cada objeto devem ser convertidos para o sistema global por uma transformao de mudana de base, antes de se efetuar as transformaes de projeo.

Projees Perspectiva
A projeo perspectiva produz uma imagem realista, porm no pode reproduzir suas verdadeiras medidas e no preserva a mesma angulao. A projeo perspectiva uma transformao dentro do espao tridimensional e suas projees representam a cena vista de um ponto de observao a uma distncia finita, similar as cmeras de vdeo e ao olho humano. Nela, o centro de projeo est a uma certa distncia da cena, enquanto nas projees paralelas ele est no infinito.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

78

Para obter a projeo perspectiva: i) de um ponto: basta lig-lo ao centro de projeo e obter a interseo da reta com o plano de projeo.
Centro de Projeo

ii) de uma reta: idem ao anterior para dois pontos da reta.

P Q

Se for suposto que o centro de projeo coincida com a origem do sistema de eixo, e se desejar a projeo de um ponto qualquer do espao de coordenadas (x,y,z), no plano z = d, teremos as coordenadas do ponto projetado (x,y) como mostra a figura 9.5. Estes pontos so obtidos pelo clculo de semelhana de tringulos.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

79

y P(x,y,z)

(x,y) z x

CP
d

Figura 9.5 As coordenadas dos pontos projetados em perspectivas so obtidas pela interseo dos raios projetores com o plano de projeo.

Y' = Y X' = X

d Z d Z

Y' =

Y.d Z X.d X' = Z

Assim sendo, as coordenadas do ponto projetado dependem da sua prpria distncia z, ao plano de projeo. Repare que a relao(d/Z) anterior representa um fator de escala para as transformaes entre as coordenadas. Isso explica porque cada ponto do objeto em perspectiva parece reduzido por um fator de escala prprio. A partir destas relaes, podemos obter a matriz de transformao da perspectiva cnica (ainda considerando que o centro de projeo seja (0,0,0)):

1 0 0 0 0 1 0 0 Pcon = 0 0 1 1 d 0 0 0 0
Assim,

1 0 0 0 0 1 0 0 [X Y Z 1]. 1 = 0 0 1 d 0 0 0 0

[X' Y' Z' 1]

As matrizes de projeo em perspectiva so obtidas usando a coluna da matriz genrica 4x4 correspondente s coordenadas homogneas. Quando um dos elementos dessa submatriz
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 80

3x1 for diferente de zero, o objeto transformado sofre uma transformao perspectiva. Considerando que o centro de projeo est sobre o eixo z, apenas um desses elementos deve ter valor diferente de zero. Exatamente o correspondente coordenada z. Se o centro de projeo for localizado ao longo do eixo x, e o plano de projeo for o plano x = 0, a matriz de projeo de um ponto ser:
1 1 0 0 d [X Y Z 1]. 0 1 0 0 = 0 0 1 0 0 0 0 1

[X' Y' Z' 1]

Para obter as matrizes de perspectivas de dois ou trs pontos, podemos definir adequadamente os elementos da matriz 4x4 e depois multiplic-los adequadamente por uma matriz de projeo ortogrfica. Assim, matriz de projeo perspectiva em dois pontos localizado nos eixos x e z, e de trs pontos so definidas como:
1 0 0 1 r1 0 1 0 0 0 0 0 1 r2 0 0 0 0 1 0 0 1 r1 1 0 1 0 r2 0 0 1 1 r 3 0 0 0 0

x = r1 Pontos de projecao z = r2

x = r1 Pontos de projecao y = r2 z = r 3

Pontos de fuga

Os desenhos em perspectiva so caracterizados pela mudana do comprimento e pelos pontos de fuga. O primeiro uma iluso que nos mostra objetos cada vez menores medida que sua distncia do centro de projeo aumenta. Pontos de fuga tambm so uma iluso; neste caso de que conjuntos de linhas paralelas (no-paralelas ao plano de projeo) convergem para um ponto, denominado de fuga.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

81

O nmero de pontos de fuga principais determinado pelo nmero de eixos principais interceptados pelo plano de projeo. Assim, se o plano de projeo intercepta apenas o eixo z, somente o eixo z possui um ponto de fuga principal, pois linhas paralelas aos eixos x e y so tambm paralelas ao plano de projeo, e dessa forma no ocorre a iluso de convergncia.
Anomalias da perspectiva

A projeo em perspectiva gera anomalias que aumentam o realismo em termos de profundidade, mas alteram as medidas e formas reais dos objetos projetados. So elas: Encurtamento perspectivo: aumentando a distncia do objeto ao centro de projeo, o objeto parece ser menor; Pontos de fuga: as projees so categorizadas pelo nmero de pontos de fuga principais (n de eixos que o plano de projeo corta). Se a projeo com 1 ponto de fuga principal ento o plano de projeo corta o eixo z e linhas paralelas aos eixos x e y no convergem. Confuso visual: objetos situados atrs do centro de projeo so projetados no plano de projeo de cima para baixo e de trs para frente. Distoro topolgica: Fenmeno pela qual um segmento de reta que une um ponto situado frente do observador com um ponto situado sua retaguarda efetivamente projetado segundo uma linha quebrada de comprimento infinito. A causa o fato de que pontos do plano que contem o ponto central da projeo so projetados no infinito pela transformao perspectiva.

Projees Paralelas
Nas projees paralelas, o centro de projeo localizado no infinito, e todas as linhas de projeo so paralelas entre si. Existem 2 tipos de projees paralelas, baseadas na relao entre a direo da projetora e a normal ao plano de projeo: Proj. Ortogrfica: a direo da projetora a mesma direo da normal ao plano de projeo, ou seja, as linhas de projeo so perpendiculares ao plano de projeo. Proj. Oblqua: as linhas projetoras so inclinadas em relao ao plano de projeo, formando um ngulo com a normal do plano.
Projees Oblquas

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

82

As projees oblquas so caracterizadas por fornecer uma sensao espacial e permitir medidas nos objetos projetados. Alm disso, a direo de projeo no forma 90 com o plano de projeo, mas o plano de projeo paralelo a um dos 3 eixos.

Geralmente, na projeo oblqua faz-se uma face paralela ao plano de projeo, normalmente a que contm mais detalhes. Esta face projeta-se em sua verdadeira grandeza, de forma a evitar a deformao das formas circulares desta face. Seja um cubo unitrio da Figura 9.6, deseja-se projet-lo no plano XY.

A forma geral de definio de matrizes de projeo oblquas usa um vetor unitrio e sua projeo. As projees oblquas podem ser produzidas com ngulos de linhas de projees diferentes em relao ao plano de projeo. Note que o ponto (0, 0, 1) pode ser projetado em xy como:

(l.cos , l.sin ),
levando a outro ponto no espao dado por :
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 83

P, (l. cos , l.sin , )

Como a linha projetora deve passar por P e P, e sendo as demais linhas paralelas ela, temos que (considerando a equao simtrica da reta):
x xp l. cos y yp l. sin

z ; 1

destas relacoes, temos : x xp l. cos

= z

x p = x + z.l cos e y p = y + z.l sin

Por fim, chegamos matriz da projeo oblqua:

0 1 0 1 Pobl.= l.cos l.sin 0 0

0 0 0 0 0 0 0 1

Quando as linhas de projeo fazem um ngulo de 45 com o plano de projeo, os pontos projetados preservam sua medida original nas direes no-paralelas ao plano de projeo. Essa projeo oblqua chamada de cavaleira ou cavalier. O outro tipo de projeo oblqua a paralela cabinet, que faz um ngulo especfico com o plano de projeo, de modo a reproduzir objetos com uma dimenso de metade do tamanho original.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 84

Em outras palavras: se l = 1 e = 45 ( = 45, tambm) projeo cavaleira (cavalier) se l = 1/2 e

= 45 [( = arctg 2) (aprox: 63,4)] a projeo gabinete (cabinet)

Projees Ortogrficas

A caracterstica principal das classificaes nas projees ortogrficas a direo que o plano de projeo faz com as faces principais do objeto a ser projetado. Nas diversas vistas ortogrficas, o plano de projeo aparece paralelo aos planos principais (que representam as faces do objeto). Nesse caso, se o objeto tiver faces a 90 como no caso de cubos ou paraleleppedos, uma das faces simplesmente deixar de ser vista. Essas projees mostram assim o objeto visto de topo (planta baixa), de frente e de lado (elevao).

Se um objeto estiver posicionado no espao com seus eixos principais paralelos aos eixos do sistema de coordenadas, e quisermos suas projees ortogrficas em relao ao plano xy (ou z = 0), a matriz em coordenadas homogneas que produz o objeto projetado :

[X' Y' Z' 1]

1 0 0 0 0 1 0 0 = [X Y Z 1] . 0 0 0 0 0 0 0 1

Se em vez de projet-lo no plano z = 0, for escolhido outro plano qualquer z = Tz, paralelo a este, a matriz de projeo pode ser obtida compondo uma matriz de translao com a matriz anterior, de modo que obteremos o objeto projetado aps projetar cada um dos seus pontos, ou melhor multiplic-los por:

[X' Y' Z'1]

1 0 0 0 0 1 0 0 = [X Y Z 1]. 0 0 0 0 0 0 Tz 1

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

85

Nas projees axomtricas, os planos do objeto so inclinados com relao ao plano de projeo estabelecendo alguma relao entre as medidas dos diversos eixos na forma projetada do objeto. Dependendo de como as medidas do objeto aparecem no plano de projeo, recebem denominaes especiais: isomtrica, dimtrica ou trimtrica. Na isomtrica, o plano de projeo est posicionado em relao aos planos do objeto de maneira tal que os trs eixos do objeto parecero ter a mesma mudana nas mtricas, como o prprio nome indica (iso = mesmo, mtrica = medida). Assim, se o objeto for um cubo, seus trs lados parecero continuar tendo a mesma medida quando projetado. Nas projees dimtricas, em vez dos trs eixos sofrerem as mesmas mudanas de escala, apenas dois eixos tero a mesma reduo. Nesse caso, o posicionamento em relao ao plano de projeo no nico. E nas projees trimtricas, cada eixo sofrer uma transformao de escala prpria.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

86

Aula 10 Introduo ao Pov-Ray


Bom programa para concepo de imagens de Computao Grfica Excelente para: Projees Tratamento de linhas escondidas Sombreamento -- Ray tracing Site:http://www.povray.org Sistema de coordenadas

Necessrio incluir algumas bibliotecas: #include "shapes.inc" #include "colors.inc" #include "textures.inc" Fundo: // Cor de fundo. No objeto de cena: background { color Black } Camera: // Camera (Window) posicionada em x=0, y=2, z=-5 voltada para direo apontada pelo vetor x=0, y=1, z=2. camera { location <0, 2, -5> look_at <0, 1, 2> } }}

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

87

Fonte de Luz Branca posicionada em x=20, y=4 e z=-13 light_source { <0,10,-10> color rgb <1,1,1> } Plano para base da imagem: plane { <Normal>, Distance [OBJECT_MODIFIERS...] } Definindo um plano plane { <0, 1, 0>, -1 pigment {checker color Black, color White} }

Experimente: light_source { <0, 0, 0> color White area_light <2, 0, 0>, <0, 0, 2>, 6, 6 }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

88

Aula 11

Pov-Ray: Adicionando objetos

Colocando uma esfera vermelha de raio igual a 1.2: sphere { <0,0,6>, 1.2 pigment { color rgb <1,0,0>} }

Translao: Rotao: Escala:

translate <x,y,z> rotation <x,y,z> scale <x,y,z>

onde x, y e z especificam o valor do ngulo a ser aplicado na rotao e o eixo qual ser aplicada a mesma Adicionando outros objetos :
sphere { <0,0,6>, 1.2 translate <2,0,0> pigment { color rgb <1,0,0> } } cylinder { <0,0,7> <0,0,1> 0.40 pigment {Blue} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

89

Aula 12

Pov-Ray: Adicionando objetos

Torus

object { torus {1.75, .5} //raio pigment {color rgb <1,1,1>} translate <0,.5,0> //translao }

Box

object { box {<-1, -1, -1> // first corner position < 1, 1, 1>} // second corner position pigment {color rgb <1,1,1>} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

90

Cilindro

object { cylinder {<0,-1,0>, <0,1,0>, 1 //{<1st point>, <2nd point>, radius //open //uncomment to make it a tube } pigment {color rgb <1,1,1>} }

Cone
object{ cone {<0,-1,0>, 1.0, //{<1st point>, 1st radius <0,1,0>, 0.0 //{<2nd point>, 2nd radius //open //uncomment to make it open ended } pigment {color rgb <1,1,1>} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

91

Lathe
object{ lathe {linear_spline // type of spline 8, // # of points <0.00, -1.5> // list of points <0.90, -1.499> <0.90, -.6> <1.20, -.5> <0.90, -.4> <0.90, 0.4> <1.20, 1.5> <1.19, 1.51> } pigment {color rgb <1,1,1>} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

92

Prisma

object { prism { linear_sweep // or conic_sweep for tapering to a point linear_spline // linear_spline | quadratic_spline | cubic_spline 0.0, // height 1 1.0, // height 2 9, // number of points // the points <0.0, 0.0>, <1.0, 0.0>, <1.0, 3.0>, <2.5, 3.0>, <2.5, 0.0>, <4.0, 0.0>, <4.0, 4.0>, <2.0, 6.0>, <0.0, 4.0> // open // sturm } pigment {color rgb <1,1,1>} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

93

Aula 13
Pov-Ray: Operaes com objetos Diferena
difference{ sphere { <0,0,6>, 1.2 //translate <2,0,0> pigment { color rgb <1,0,0> }} cylinder { <0,0,7> <0,0,1> 0.40 pigment {Blue} } }

Unio
camera{ location <0.0 , 3.5 ,-4.0> look_at <0.0 , 0.0 , 0.0> } // Key Light light_source{ <20, 40, -10> color rgb <1, 1, 1> } // Fill Light light_source{<-20, 20, -20> color rgb <.5, .5, .5> shadowless} #declare greenBox = box{ <-2, 1, -2>, <2, -1, 2> pigment{color rgb <0,1,0>} }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

94

#declare redTorus = torus{ 1.25, // MAJOR radius (0,0,0 to mid-line of ring 0.5 // MINOR radius (radius of cross section of ring pigment{color rgb <1,0,0>} translate 1*y } object{greenBox} object{redTorus}

union{ object{greenBox} object{redTorus} rotate <20, -65, 0> }

Merge

#declare greenBox = box{ <-2, 1, -2>, <2, -1, 2> pigment{color rgbf <0, 1, 0, .5>} } #declare redTorus = torus{ 1.25, // MAJOR radius (0,0,0 to mid-line of ring 0.5 // MINOR radius (radius of cross section of ring pigment{color rgbf <1, 0, 0, .5>} translate 1*y } merge{ object{greenBox} object{redTorus} rotate <20, -65, 0> }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

95

Interseco
intersection{ object{greenBox} object{redTorus} rotate <20, -65, 0> }

Inverso
intersection{ object{greenBox} object{redTorus inverse} rotate <20, -65, 0> }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

96

Aula 14 14 Tratamento de Linhas e Superfcies Escondidas.


A soluo eficiente de problemas de visibilidade o principal passo do processo de criao de cenas realsticas. Esse problema lida freqentemente com a determinao da visibilidade de linhas e superfcies. Essa fase foi denominada de eliminao de polgonos ou faces escondidas (culling back-faces).

Figura 14.1 Representao aramada em A e suas possveis interpretaes em B e C.

A figura 14.1A exibe um cubo com todas as linhas e faces visveis. Embora exitam doze arestas no objeto, apenas nove deveriam ser exibidas para cirar a impresso de um objeto slido (Figura 14.1B e C). O problema tambm pode ser expresso em termos de superfcies ocultas, considerando as faces do cubo. Quando apresentamos um objeto em perspectiva nem todas as duas faces estaro visveis. Por exemplo, sabemos que um cubo tem seis faces, mas dependendo do ponto de vista do observador, ele poder ter uma, duas ou, no mximo, trs faces visveis. O uso apropriado de tcnicas de projeo e de eliminao de superfcies e linha novisveis auxilia no objetivo de criar resultados mais realistas. preciso considerar a posio relativa entre os objetos da cena e o observador, tridimensionalmente, para essa considerao de que partes sero invisveis por ele. Os algoritmos para remoo de linhas/superfcies escondidas so classificados de acordo com o tratamento utilizado: Object-space: diretamente com as definies do objeto, ou seja, a representao por um subconjunto de retas e curvas, extradas dos contornos do objeto, de maneira a represent-lo. A descrio matemtica dessas retas e curvas normalmente usada para gerar o objeto na memria do sistema sua exibio. Quando o objeto gerado por essa representao interna, a fase de realismo considerado o tratamento das linhas (sejam elas retas ou curvas) escondidas. Image-space: prope a representao do slido atravs de uma srie de faces ou superfcies conectadas apropriadamente. Uma aproximao interna simples pode ser utilizada para descrever cada face ou superfcie, e a exibio do objeto produzida como o agregado dessas faces ou superfcies. Quando o objeto gerado por essa representao interna, a fase de realismo considerada a eliminao das superfcies (sejam elas planares ou no) escondidas. importante uma forma de identificao de linhas, arestas ou superfcies visveis e novisveis, principalmente para que seja possvel decidir se a mesma dever ser traada ou no, visando principalmente conservar a fidelidade, resoluo e agilidade da representao. Em

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

97

computao grfica, esses conceitos so muito importantes, principalmente, porque para o computador no faz diferena se as arestas ou superfcies so visveis ou no. Os diferentes algoritmos devero realizar as seguintes tarefas: Ler as coordenadas tridimensionais do objeto, e armazen-las em forma de matriz. Localizar no espao 3D a posio do observador, atravs da qual so definidos os parmetros de visibilidade. Calcular o vetor normal 3D de cada face do objeto. Calcular o vetor da linha de visibilidade para cada face do objeto. Esse vetor definido pela ligao de algum ponto da face ao observador. Definir os vrtices das faces do objeto e armazen-los de forma matricial (raster). Verificar os vrtices visveis, com seus respectivos posicionamentos. Traar as arestas das faces visveis, que revelaro o objeto como enxergado de um determinado ponto de vista. Se desejado, possvel traar tambm as linhas novisveis naquele ponto de vista. Existem diversas maneiras de se resolver o problema de superfcies ocultas. Algumas so simples, mas requerem grande quantidade de memria. Outras usam menos memria ma demandam maior tempo de computao. Outros mtodos so rpidos, demandam pouca memria e so simples, porm sua utilidade limitada a alguns casos especiais. O avano tecnolgico e o barateamento das memrias possibilitaram o armazenamento de quantidades enormes de informao a baixo custo. Assim, as tcnicas de determinao de superfcies ocultas baseadas no uso intensivo de memria esto ganhando popularidade. Sem dvida, dessas a que mais chama a ateno a denominada Z-buffer, presente na grande maioria dos softwares de modelagem e real-time rendering. A escolha de um bom algoritmo pode representar o sucesso ou o fracasso de um sistema. A relevncia desse problema no reside apenas na sua complexidade, mas na necessidade de uma soluo eficiente que permita a apresentao do objeto em movimento quando uma animao for necessria.

Algoritmos do tipo Object-Space


Equao do Plano

Este algoritmo trabalha com as faces do objeto, e utiliza a equao do plano para implementar as faces do objeto ser exibido. Equao do plano: Ax + By + Cz + D = 0, onde: (x,y,z) qualquer ponto no plano; os coeficientes A, B, C e D so constantes que descrevem as propriedades espacial do plano. Os coeficientes do plano podem ser obtidos pelos clculos: A = y1(z2 z3) + y2(z3 z1) + y3(z1 z2); B = z1(x2 x3) + z2(x3 x1) + z3(x1 x2); C = x1(y2 y3) + x2(y3 y1) + x3(y1 y2); A orientao de uma superfcie plana no espao pode ser descrita pelo vetor normal do plano. Este vetor normal do plano possui as coordenadas cartesianas (A,B,C). Para verificar se
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 98

um plano visto pelo observador, aplicamos a equao do plano para coordenadas do observador. Da, temos: <0 >0 =0 o observador est fora, ento o plano deve ser exibido. o observador est dentro, ento o plano deve estar escondido. o observador est na fronteira.

Ax0 + By0 + Cz0

Produto Escalar

Descreve as arestas de cada face no sentido anti-horrio para quem est fora do objeto. No produto escalar, obtm o vetor resultante pelo clculo do produto vetorial das arestas.
cos = r r u.v r r u . v

r r Para u . v = 1 : r r u . v < 0 => sentidos opostos => exibe r r u . v > 0 => sentidos iguais => esconde

Algoritmos do tipo Image-Space


Algoritmo Z-Buffer

Trata-se de um algoritmo dos mais simples, sendo o mais simples da classe dos mtodos image-space. Este algoritmo algumas vezes chamado de depth-buffer. Para cada ponto da tela grfica, ns guardamos um registro da profundidade do objeto. Adicionalmente, armazenada a intensidade que dever ser usada para apresentar o objeto. O algoritmo requer 2 arrays, uma para intensidade e uma para profundidade, cada uma das quais indexada pelas coordenadas do pixel (x,y).
Pseudocdigo: Para cada polgono P da cena Para cada pixel (x,y) de um polgono P Computar z_depth na posio x,y Se z_depth < z_buffer(x,y) Ento defina_pixel (x,y,color) troque o valor z_buffer(x,y) = z_depth

Podemos descrever esse algoritmo pelos seguintes passos:


1 passo) Para todo pixel da tela, faa: depth [x,y]=1.0
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 99

intensidade [x,y] = valor de fundo da tela (background);


2 passo) Para cada polgono, encontre os pixel (x,y) que esto associados entre os limites do polgono quando projetados na tela. Para cada um destes pixel: Calcular o valor da profundidade z do polgono para posio (x,y); Se z < depth [x,y] Ento => coloque z (x,y) no z-buffer ou melhor, faa depth [x,y] = z ; => faa intensidade (x,y) igual intensidade do polgono;

Seno => se z > depth [x,y] => no tome nenhuma ao Depois de processados todos os polgonos, a array intensidade conter a soluo. Em outras palavras: Caso z < depth (x,y) o polgono est mais prximo para o observador que outros j gravados para este pixel. Se z > depth(x,y), o polgono j gravado para (x,y) est situado mais perto do observador que o novo polgono e nenhuma ao e requerida. A grande vantagem desse algoritmo que ele sempre funciona e fcil de implementar. Sua maior desvantagem a alterao freqente no valor dos pixels e, como conseqncia, a obrigatoriedade do clculo da cor. Outra grande desvantagem desse algoritmo que, como somente um valor de intensidade e profundidade armazenado para cada pixel, os problemas relativos ao serrilhamento so de difcil soluo. Outros problemas relacionados ao uso demasiado da memria vm sendo relevados pela queda do seu preo e aumento da velocidade de processamento. Quando utiliza-se o Z-Buffer, nenhum procedimento de pr-ordenao necessrio e todo o processo se resume a sucessivas operaes de clculo de projeo e clculos de profundidade. Utilizando trs pontos de uma face, temos que a forma geral da equao do plano: Ax + By + Cz + D = 0 pode ser definida a partir desses trs pontos atravs do clculo dos coeficiente A,B, C e D. Assumindo que se use uma projeo paralela no plano xy, temos que a componente z (profundidade) de um ponto qualquer no plano, pode ser obtida de: - D - Ax - By z= C Assim, se j avaliamos z em (x,y), o prximo valor de z1, para o mesmo y, neste plano, correspondente a (x1 = x + x, y) , ser: - D - Ax 1 - By z1 = C Assim: A z = z1 z = (x) C A aplicao prtica dessa proporo entre as profundidades acontece diretamente para o preenchimento dos polgonos, limitando o clculo completo da profundidade apenas ao primeiro (za) e ao ltimo (zb) ponto da linha de preenchimento. Observe tambm que a cor de
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 100

um pixel no precisa ser calculada se a condio de visibilidade no for satisfeita, poupando clculos desnecessrios.
Algoritmo Scan-Line

Tais algoritmos resolvem o problema de linhas escondidas por meio de uma linha de varredura por vez, processando linhas de varredura da parte superior para inferior da tela. O algoritmo examina uma srie de janelas na tela, cada janela uma linha de varredura alta e to larga quanto a (janela) tela. Novamente, sero requerida dois arrays: intensidade e profundidade. Podemos descrever o algoritmo da seguinte forma: Para cada linha de varredura, faa: 1 passo) Para todo pixel da linha de varredura, faa: depth[x,y]= 1,0 intensidade[x,y] = valor de fundo da tela (background); 2 passo) Para cada polgono na cena, encontre todos os pixels na atual linha de varredura y que corta o polgono: Calcule a profundidade z do polgono no (x,y) Se z <profundidade (x), faa: o depth[x] = z o intensidade [x] para a intensidade correspondente ao polgono. 3 passo) Aps todos polgonos terem sido considerados, os valores contidos na array intensidade representam a soluo.

Algoritmo Ray-Casting

Ray-casting uma ferramenta de deteco de visibilidade, que est baseada nos mtodos pticos geomtricos. Visto que existem um nmero infinito de raios em uma cena, estamos interessados apenas naqueles raios que passam atravs das posies do pixels das figuras presentes na cena. Ou seja, se considerarmos uma linha de mira em uma posio de um pixel no plano de viso, atravessando uma cena, podemos determinar quais objetos na cena interceptaram esta linha. Depois de calcular todas as intersees, identificamos as superfcies visveis pelo pixel mais prximo do ponto de interseo.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

101

Aula 15 15 Iluminao e Sombreamentos


Para ser possvel obter a imagem de uma cena esta ter que ser iluminada por uma ou mais fontes de luz e tm que ser definidas as propriedades de interao entre os objetos que existem na cena e a energia luminosa que incide em cada um deles. O clculo da imagem corresponde ao clculo da intensidade da energia luminosa, percebida pela cor, chega a cada ponto da superfcie de visualizao proveniente diretamente das fontes de luz ou indiretamente por fenmenos de reflexo e refrao. O processo de sombreamento consiste no clculo da cor de cada uma dos pixels que foram identificadas no processo de rasterizao dos elementos da cena. Em Computao Grfica existem duas abordagens ao clculo de uma imagem. Quando se consideram unicamente as contribuies da energia que emitida pelas fontes de luz e refletida por uma nica superfcie, designa-se por Modelos de Iluminao Local. Estes modelos empricos, apesar de requerem um esforo computacional baixo, conduzem a imagens com uma qualidade aceitvel para muitas aplicaes. Nos Modelos de Iluminao Global considerada tambm a iluminao que refletida ou refratada por outras superfcies. Estes modelos so fisicamente mais corretos e produzem imagens com maior grau de realismo, mas requerem um esforo computacional elevado. Os modelos de iluminao global so usados por vrios mtodos de clculo de imagens entre os quais se destacam os mtodos de Ray-Tracing e da Radiosidade, os quais sero tratados em posteriores captulos. Como os Modelos de Iluminao Local no contemplam a interao energtica entre as diferentes superfcies, fenmenos como o clculo de sombras, a reflexo da energia em outros objetos, a refrao e as interaes da energia luminosa com os meios em que transmitida (gua, ar, etc.) no so suportados. Neste captulo ser descrito o modelo de iluminao local de Phong e sero descritos vrios mtodos que permitem que, medida que realizado o processo de rasterizao, tambm seja realizado o processo de sombreamento. Os mtodos de sombreamento que sero apresentados neste captulo so o mtodo de sombreamento Constante, o mtodo de Gouraud e o mtodo de Phong.

Iluminao
Modelo de Iluminao Local de Phong

Os modelos de iluminao locais, tambm designados por modelos de reflexo local, permitem o clculo da intensidade da energia luminosa que refletida por cada elemento da superfcie de um objeto. No pipeline de visualizao assume-se que j foi efetuada a rasterizao da superfcie, sendo que os elementos referidos so os pixels que vo ser ocupadas pela imagem do objeto.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

102

Assume-se que cada objeto modelado atravs de um conjunto de superfcies. Se as superfcies forem planares, isto , se forem facetadas, existir uma normal para cada superfcie, como pode observar-se na figura 15.1.

Figura 15.1 Normais s superfcies de um objeto.

Se as superfcies no forem planares necessrio calcular a normal em cada ponto da superfcie. O Modelo de Iluminao de Phong, introduzido em 1975, permite calcular o valor da intensidade de um raio refletido por uma superfcie em funo da orientao da superfcie, da posio da cmara, da posio da fonte de luz e das propriedades da superfcie. A figura 15.2 mostra a relao entre a orientao de uma face facetada e a posio de uma fonte de luz pontual.

Figura 15.2 Orientao de uma superfcie (N) e posio de uma fonte de luz (L).

O modelo de iluminao de Phong considera que os materiais, quanto ao modo como refletem a energia luminosa, so uma combinao linear de um material que reflete toda a

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

103

energia numa nica direo reflexo especular e de um material que reflete toda a energia luminosa de igual modo em todas as direes reflexo difusa ou Lambertiana. O modelo considera ainda a existncia de uma componente de Luz Ambiente a qual simula a existncia de uma iluminao global, isto , a energia luminosa que refletida por todas as superfcies restantes presentes numa cena, e que ilumina a superfcie. Esta componente necessria uma vez que podem existir superfcies que so visveis, mas que no so diretamente iluminadas por uma fonte de luz, as quais, caso a componente de Luz Ambiente no existisse, no seriam desenhadas. Assim o Modelo Phong considera que a reflexo da energia luminosa por uma superfcie corresponde combinao linear de trs componentes: Luz Ambiente Reflexo Especular Reflexo Difusa O modelo de Phong um modelo emprico cuja simplicidade computacional e a qualidade dos resultados a que conduz, tem estado na origem da sua popularidade. Esta popularidade ocorre, em particular, nas aplicaes que impem tempos de clculo muito pequenos, como acontece com os jogos de computador.
Luz Ambiente

O modelo de Phong assume que as nicas superfcies que vo estar visveis so aquelas que so diretamente iluminadas por fontes de luz. Por esse fato, se uma superfcie, mesmo que visvel, no estiver diretamente iluminada por um raio de luz, no ser desenhada. Para resolver esse problema, o modelo assume que todas as superfcies da cena vo ser iluminadas por uma fonte de luz ambiente, com intensidade, Ia, de valor constante, a qual resulta de mltiplas reflexes da luz nas superfcies da cena. O modo como cada superfcie reflete a luz ambiente depende do valor do coeficiente de reflexo ambiente ka do material, o qual pode ter valores entre 0 e 1.

I = k a . Ia
Reflexo Difusa

(1.1)

Quando a superfcie do material apresenta uma estrutura muito irregular, o que acontece com os materiais plsticos, por exemplo, que a energia refletida em todas as direes de igual modo. Na reflexo difusa a energia luminosa refletida com igual intensidade em todas as direes, segundo uma semi-esfera, e o seu valor depende unicamente do ngulo entre o raio incidente e a normal que est na superfcie do objeto (ver figura 15.3).

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

104

Figura 15.3 Superfcie refletora difusa.

A componente difusa tem a seguinte expresso:

I d = k d . I i cos

(1.2)

em que Ii a intensidade do raio incidente, proveniente da fonte de luz e o ngulo entre o vetor unitrio normal superfcie, N, no ponto de incidncia, e o vetor unitrio da Fonte de Luz, L. O modo como cada superfcie reflete a luz difusa depende do valor do coeficiente de reflexo difusa kd do material, o qual pode ter valores entre 0 e 1. Utilizando a notao vetorial, teremos: (1.3) I = k . I ( N L)
d d i

Como pode concluir-se a intensidade da energia luminosa refletida no depende da posio do observador.
Fontes de Luz e Materiais Cromticos

At agora no foram tidas em conta as caractersticas da fonte de luz em funo do comprimento de onda. Ora em modelos de cor, como o modelo RGB, o modelo de cor mais comumente empregue em Computao Grfica, considera trs componentes cromticas. Assim seja OdR, OdG, OdB o modo como um material reflete a componente difusa, isto , a cor do material. Assim, obtemos as seguintes expresses em funo dos valores das componentes R, G e B da luz:

I R = k a . O dR . I aR + k d . O dR . I iR ( N L) I G = k a . O dG . I aG + k d . O dG . I iG ( N L) I B = k a . O dB . I aB + k d . O dB . I iB ( N L)
Note que utilizada um nico coeficiente difuso para as 3 componentes de cor do material. Assim assume-se que kdOdR caracteriza o modo como o material reflete, de modo difuso, a cor vermelha. (1.4)

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

105

Figura 15.4 Superfcie refletora difusa (kdOd = 0,8).

Figura 15.5 Superfcie refletora difusa (kdOd = 0,2).

Figura 15.6 Superfcie refletora difusa (kdOd = 0,2) com luz ambiente (kdOd = 0,5).

Reflexo Especular

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

106

Na natureza existem materiais cujas superfcies so lisas, como cristais e metais nobres, que apresentam um comportamento especular quase perfeito quando interagem com a energia luminosa. Na reflexo especular, o que observvel nesse tipo de materiais e ilustrada na figura 15.7, as propriedades do material so tais que toda a energia que incide num ponto, segundo uma dada direo e fazendo um ngulo com a normal superfcie, refletida o mesmo ngulo. Sendo o ngulo entre o vetor unitrio normal N superfcie, no ponto de incidncia, e o vetor unitrio L da Fonte de Luz.

Figura 15.7 Superfcie refletora especular perfeita.

No entanto, a existncia de superfcies especulares perfeitas uma aproximao muito limitativa da realidade. Se fosse unicamente usado este tipo de comportamento, s seria possvel visualizar a superfcie se o raio refletido coincidisse com a direo da viso (que une o ponto de incidncia com o ponto de vista). Para ultrapassar este problema considera-se a existncia de superfcies refletoras especulares imperfeitas, onde a reflexo se verifica dentro de um ngulo slido em torno do raio refletido. Deste modo, possvel obter o que se designa por brilho quando se observa o objeto segundo um ponto de vista prximo do raio refletido.

Figura 15.8 Superfcie refletora especular imperfeita.

A frmula que permite contabilizar a existncia de superfcies refletoras especulares imperfeitas, ser:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 107

I s = I i k s O s cos n
Em que, como pode observar-se na figura 10.8: o ngulo entre o vetor unitrio do observador, V, e o vetor unitrio de reflexo perfeita, R. n o ndice de brilho que simula a existncia de superfcies especulares imperfeitas. ksOs define o modo como o material reflete, de modo especular, a energia luminosa. O valor de n varia de 1, em que se obtm uma transio suave na rea de brilho, e algumas centenas. Quando n , teremos uma superfcie especular perfeita. Como os vetores V e R so unitrios teremos ento:

cos = R V

Usando novamente uma notao vetorial, teremos:

I s = I i k s O s (R V) n
Na figura seguinte, uma vez que o coeficiente de brilho baixo, a rea de brilho grande. A rea diminui medida que o valor do coeficiente aumenta.

Figura 15.9 Superfcie refletora especular (ksOs = 0,8) e brilho = 1,2.

Figura 15.10 Superfcie refletora especular (ksOs = 0,8) e brilho = 128.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

108

Assumindo que a esfera foi modelada atravs de uma malha de facetas, designam-se por facetas de brilho aquelas em que se observa a reflexo especular, como pode ser observado na figura anterior.
Expresso Global

Combinando todas as componentes descritas, obtm-se a expresso global do modelo de reflexo de Phong:

I = I a k a O d + I i [ k d O d ( N L) + k s O s (R V) n

Na figura 15.11 apresenta-se um exemplo do modo como uma superfcie plana reflete a energia luminosa que incide num ponto P.

Figura 15.11 Modelo de reflexo de Phong: reflexo difusa e reflexo especular imperfeita.

Figura 15.12 Superfcie refletora especular (ksOs=0.5, brilho=128) e difusa (ksOs=0.5).

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

109

Figura 15.13 Superfcie refletora especular (ksOs=0.4, brilho=128), difusa (ksOs=0.4) e ambiente (kaOa= 0.2).

Sombreamento
Depois de termos descrito o modelo de iluminao de Phong, que permite calcular a intensidade da energia luminosa refletida por um ponto da superfcie de um objeto, necessrio descrever agora como aplicar esse clculo ao desenho das superfcies, isto , efetuar o sombreamento dessas superfcies. Considere-se uma superfcie modelada aproximadamente por uma malha de facetas, isto de polgonos planares (veja-se a figura 15.14).

Figura 15.14 Aproximao de uma superfcie por uma malha de facetas.

Para aplicar um modelo de iluminao necessrio calcular a normal a cada faceta, tal como foi apresentado no captulo da Modelao.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

110

Figura 15.15 Normais a facetas e normais nos vrtices.

Como se vai utilizar o modelo de iluminao de Phong, a normal a nica entidade que representa a geometria da faceta, o que ter que ser calculada. Os mtodos de sombreamento mais usados e que so apresentados seguidamente diferem entre si no modo como aplicado o modelo de iluminao de Phong e no modo como se faz o clculo da cor de cada quadrcula da imagem de cada faceta.
Sombreamento Constante

No modelo de sombreamento constante utilizada a normal faceta para calcular uma cor a qual usada para sombrear todo a faceta. Este mtodo designa-se por sombreamento constante. Assim, sabendo a posio da fonte de luz, a normal faceta e as propriedades do material, possvel aplicar o modelo de reflexo de Phong e obter uma intensidade da energia luminosa refletida, a qual pode ser aplicada no sombreamento das quadrculas que vo ser ocupadas pela imagem da faceta. Os resultados que se obtm com este mtodo de sombreamento so de baixa qualidade, uma vez que ficam visveis as diferenas de cor nas fronteiras entre facetas. Dessa forma, produz imagens muito pouco realistas, tal como pode ser observado na figura 15.16.

Figura 15.16 Imagem produzida pelo mtodo de sombreamento constante.

Sombreamento de Gouraud
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 111

Os fracos resultados do mtodo de sombreamento anterior resultaram na aplicao de um modelo de iluminao local a cada faceta, no considerando que as facetas so partes de um nico objeto. No mtodo de sombreamento de Gouraud, a influncia de facetas adjacentes contemplada atravs do clculo de normais em cada vrtice da malha de facetas. Estas normais so obtidas por interpolao das normais de todas as facetas que partilham um mesmo vrtice. Para o caso apresentado na figura 10.15 em que o vrtice A partilhado por 4 vrtices, o clculo da normal nesse vrtice obtm-se do seguinte modo:

NA =

N1 + N 2 + N 3 + N 4 N1 + N 2 + N 3 + N 4

Uma vez calculada a normal NA, esta empregue na aplicao do modelo de iluminao de Phong para o clculo da cor do vrtice A. Efetuando o clculo das normais a todos os vrtices de uma faceta e aplicando o modelo de iluminao de Phong obtm-se a cor de todos os vrtices. Seguidamente, efetua-se a interpolao das cores para todos os pontos pertencentes a uma mesma aresta, recorrendo s cores dos seus vrtices. Assumindo que o preenchimento do polgono efetuado com o algoritmo de Linha de Varredura, sempre que se passa de uma linha de varredura para a seguinte, teremos um incremento em Y de 1. A interpolao ao longo de uma aresta ser:

I e ,n = I e ,n 1 + I e

I e =

1 (I 2 - I1 ) y 2 y1

Em que Ie a cor ao longo da aresta que une os vrtices v1 ao vrtice v2, e que tem cor I1 e o menor valor em y1. Em cada linha de varredura ser o valor de x que vai sendo incrementado de uma unidade. Assim, ser obtido as cores de cada uma das quadrculas de cada linha de varredura do modo como pode ser observado na figura 15.17.

O clculo da cor Figura 15.17 Sombreamento interpolado de une os pontos xb, com cor Ib e de uma mesma linha de varredura, s, que Gouraud. ao ponto xa com cor Ia ser:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 112

I s ,n = I s ,n 1 + I s I s = 1 (I b - I a ) xb x a

Na figura 15.18 possvel verificar o aumento de realismo que se obtm ao aplicar o mtodo de sombreamento de Gouraud em relao ao mtodo de sombreamento constante.

Figura 15.18 Mtodo de sombreamento de Gouraud.

Limitaes do Sombreamento de Gouraud

A maior limitao do mtodo de sombreamento de Gouraud resulta do modo de como efetuada a interpolao. Considere a existncia de duas facetas, uma pequena e uma grande, ambas iluminadas de igual modo e ambas tendo materiais que refletem unicamente de modo especular. Se os vrtices da faceta menor pertencerem rea de brilho n, tero uma cor ser interpolada por toda a sua superfcie. Considere agora que nenhum dos vrtices da faceta maior est dentro da rea de brilho. Nesse caso a cor que calculada ser preta, e por toda a faceta ser desenhado com preto o que no ser visvel. Devido ao problema descrito, normal que no mtodo de sombreamento de Gouraud, se aplique uma verso limitada do modelo de iluminao de Phong, o que no contempla a reflexo especular. Um segundo problema dos resultados obtidos com este mtodo de sombreamento tm a sua origem nas caractersticas do Ser Humano. O aparelho visual humano tem uma grande sensibilidade a pequenas diferenas na intensidade da energia luminosa. Nas arestas comuns visualizam-se as intensidades mais baixas como sendo ainda menores e a intensidade mais elevada como sendo maior. Este efeito visvel nas arestas designa-se por Mach Band. Na figura seguinte, esquerda representa-se o sombreamento de uma malha com quatro polgonos retangulares. direita apresenta-se o modo como o sombreamento percebido pelo aparelho visual humano.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 113

Figura 15.19 Efeito de Mach Band.

O primeiro problema descrito pode ser resolvido se for aplicado o modelo de iluminao de Phong no s aos vrtices das facetas, mas pelo menos a todos os pontos das arestas. O segundo problema poder ser minimizado se o modelo de iluminao de Phong for aplicado tambm aos pontos das linhas de varredura, de modo a suavizar os gradientes de cor. essa a soluo que adotada pelo mtodo de sombreamento de Phong que se descreve a seguir.
Sombreamento de Phong

No mtodo de sombreamento de Phong, a partir das normais aos vrtices, que so calculadas do mesmo modo que no sombreamento de Gouraud, calculada a normal a cada quadrcula atravs da interpolao das normais. A normal calculada para cada quadrcula ento usada no modelo de iluminao de Phong para calcular a intensidade da energia luminosa refletida. A figura 15.20 ilustra como se procede interpolao das normais no sombreamento de Phong. A interpolao das normais efetuada, em primeiro lugar ao longo da aresta, sempre que se passa de uma linha de varredura para a seguinte (y tem variao unitria). Tal como acontecia no mtodo de sombreamento de Gouraud, possvel, ao longo de uma linha de varredura, realizar clculos por interpolao das componentes das normais numa quadrcula (Nsx, Nsy e Nsz) a partir dos valores dessas componentes na quadrcula anterior.

N sx ,n = N sx ,n1 + N sx N sy ,n = N sy ,n1 + N sx N sz ,n = N sz ,n 1 + N sz

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

114

Figura 15.20 Sombreamento de Phong: interpolao de normais ao longo das arestas e da linha de varredura.

empregando incrementos das normais (Nsx, Nsy e Nsz) ao longo da linha de varredura tais que:

N sx = N sy = N sz =

x ( N bx + N ax ) xb x a

y ( N by + N ay ) yb y a z ( N bz + N az ) zb z a

Numa mesma linha de varredura teremos valores de y iguais e o valor de x a ser incrementado de modo unitrio. Considerando que os objetos so normalmente modelados atravs de superfcies aproximadas por malhas de facetas, podem verificar-se situaes em que as normais interpoladas so uma aproximao bastante boa, comparando s normais da superfcie original, tal como ilustrado pela figura 15.21.

Figura 15.21 Superfcie normal e sombreada.


Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 115

Na figura 15.22 pode ser observada a existncia de brilho no corpo da chaleira.

Figura 15.22 Mtodo de sombreamento de Phong

O mtodo de sombreamento de Phong computacionalmente mais pesado uma vez que necessrio calcular a cor, pela aplicao do modelo de sombreamento de Phong a todos as quadrculas da faceta.
Limitaes das Aproximaes Interpoladas

A figura 10.22 apresenta uma limitao dos mtodos de sombreamento de Gouraud e de Phong. Sendo a normal o nico elemento geomtrico utilizado no modelo de reflexo de Phong, a geometria da silhueta de qualquer objeto modelado atravs de malha de facetas aparecer pouco realista como pode observar-se na figura seguinte.

Figura 15.23 Silhueta do objeto.

Uma segunda limitao resulta do fato da interpolao de intensidades ser executada em coordenadas de ecr, embora partindo de vetores normais calculados em coordenadas do mundo. No tendo impacto negativo no clculo da imagem de uma cena, poder no entanto conduzir a perturbaes perceptveis em seqncias animadas (com rotaes, translaes e movimentos de cmara), como pode observar-se nas figuras seguintes em que os resultados so significativamente diferentes.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 116

Figura 15.24 Sombreamento da faceta seguido de rotao de 90.

Figura 15.25 Rotao de 90 seguido de sombreamento da faceta.

Um ltimo problema est relacionado com o aparecimento de falsos alisamentos entre facetas adjacentes. Na figura 15.26, esto desenhados os vetores normais a cada uma das quatro facetas. Aplicando o modelo de sombreamento de Gouraud, a interpolao dessas normais nos vrtices resulta num conjunto de normais paralelas entre si, pois a cor que ser obtida atravs da aplicao do modelo de iluminao de Phong, seja sempre igual para as quatro facetas. Estas facetas devem aparecer desenhadas todas com a mesma cor, o que est incorreto. Se aplicarmos o modelo de sombreamento de Phong o problema ser igual uma vez que todos os pontos das 4 facetas tero normais, tambm todas paralelas entre si para que a cor seja sempre igual.

Figura 15.26 Falso alisamento de polgonos com normais diferentes.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

117

Aula 16
Pov-Ray: iluminao, luz e sombra
#include "shapes.inc" #include "colors.inc" #include "textures.inc" camera { location <0, 2.25, -35> direction <0, 0, 10> up <0, 1, 0> right <1, 0, 0> look_at <0, 0, 90> } //Key Light light_source {<50, 100, -80> color White} //Back Light light_source {<100, 50, 80> color Blue} object { plane {y, 0} pigment {color rgb <1, 1, 1>} } object { sphere {<0, 1.5, 1> 1.5}
pigment {color rgb <1, 1, 1>} } object { sphere {<0, 1.5, 1> 1.5} texture {PinkAlabaster}

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

118

Ambiente

Difusa

object { sphere {<0, 1.5, 1> 1.5} pigment {color rgb <1, 1, 1>} finish { ambient .2 diffuse .5 } }

Especular

object { sphere {<0, 1.5, 1> 1.5} pigment {color rgb <1, 1, 1>} finish { ambient .2 diffuse .5 specular .25 } }
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 119

Reflexo

object { sphere {<0, 1.5, 1> 1.5} pigment {color rgb <1, 1, 1>} finish { ambient .2 diffuse .5 specular .25 reflection 1 } }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

120

Aula 17
17 Texturas
Rendering
Sintetizar uma imagem (uma cena ou um objeto) cria-la em termos da definio dos dados dos objetos que a compem. Isso se faz a partir da geometria da cena, das informaes sobre os materiais de que so feitos os objetos (suas cores e suas texturas), das condies de iluminao ambiente e da posio de observao da cena. Nessa processo de criao sinttica, denominado rendering a fase de introduo nas cenas, do realismo fotogrfico. A renderizao um processo que o computador utiliza para criar uma imagem de um arquivo de dados. A maioria dos programas grficos 3D no so capazes de desenhar uma cena inteira com cores, texturas, luzes e sombras enquanto este corre. Em vez disso animador trata do mesh do objecto. Quando o animador estiver satisfeito com o mesh (malha), ele renderiza a imagem.

O mesh

Imagem renderizada

Wire Frame

Isto no na realidade um mtodo de renderizao. A maioria dos programas 3D representam os objectos por malhas (mesh). Num wire frame toda seco do mesh colorida com uma cor mediana da textura, Isto torna-se til quando se querem aplicar efeitos especiais, ou ento executar uma espcie de ante estreia da imagem final. Para levar o wire frame um passo em frente, alguns programas executam um processo chamado de remoo de linhas escondidas (hidden line removel). tal e qual uma renderizao de um wire frame, exceptuando o facto de que as partes da malha que no nos so visveis no so renderizados caso a malha fosse slida. A renderizao normalmente leva muito tempo. O tempo que leva a renderizar uma imagem depende da qualidade da renderizao. Existem algumas qualidades diferentes de renderizao.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

121

Flat Shading

Este o mtodo de renderizao mais rpido de todos. Alguns programas so capazes de renderizar objectos "flat shaded" em tempo real. Quando estamos a renderizar utilizando o mtodo flat shading, o computador cria uma cor mdia e depois renderiza cada face com diferentes quantidades de preto e branco adicionados para simular o sombreado. Com este mtodo os objectos tm aparncia de serem planos e irreais. Nenhuma textura aplicada neste modo.

Gourad

A renderizao Gourad eleva a renderizao para mais um passo. O computador calcula os valores da cor nos vrtices de uma face e depois aplica o gradiente face para simular o sombreado. Este modo no muito mais lento que o flat shading e poder tambm ser renderizado em tempo real por um computador mais potente.

Phong

O phong leva a renderizao ainda mais um passo em frente. Ele sonda todos os pixels na rea visvel e tenta determinar uma cor correcta para cada pixel. O phong leva em conta todas as luzes e texturas. Muitas vezes este mtodo to bom quanto os programas de renderizao de baixo nvel. Os resultados so bastante satisfatrios, e o tempo necessrio para renderizar no muito longa.

Ray Tracing

Esta a melhor qualidade de renderizao! No entanto leva muito tempo, mas os resultados so espectaculares. Tudo renderizado, incluindo sombras, luminosidade, reflexos
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 122

e transparncias. Tambm faz outra coisa que outros renderizadores no fazem. D luz um atributo fsico. Por exemplo, a renderizao de um lpis num copo com gua ir dar o mesmo efeito de deflexo que a natureza nos d: o lpis ir parecer que est partido. Quando um raio simulado de computador traa uma imagem, ele simula um raio de luz real a sair de cada pixel do ecr. Reflecte e deflecte o raio de luz de uma forma semelhante da natureza.

Radiosity

Este mtodo relativamente recente. capaz de fazer algo que nenhum dos mtodos de renderizao anteriores so capazes: descobre a relao entre o cenrio e todos os objectos presentes. Por exemplo, na vida real, se pegarmos numa bola colorida e a colocarmos num quarto branco, as paredes do quarto iro reflectir um pouco da cor proveniente da bola, fazendo com que as paredes assumam um tom colorido. Esta propriedade no possvel com ray tracing, visto que este no ressalta a luz de objectos mate, tal como uma parede. O radiosity produz resultados extremamente bons, mas infelizmente existe um seno : o tempo de renderizao. Antes do computador comear a renderizar, tem de resolver uma espcie de "modelo radiosity", este modelo define a relao que o objecto tem com as restantes dentro do mesmo cenrio. S depois que pode comear a renderizar

Nem todos os mtodos de rendering foram aqui mencionados, tendo sido escolhidos os mais importantes. Os modelos de iluminao no so apropriados para descrever todas as propriedades da superfcie de um objeto, por exemplo, rugosidade e padronagem. Em princpio, possvel modelar esses detalhes com o acrscimo de detalhes na geometria da superfcie ou usando materiais de propriedades ticas distintas. Essa forma torna o processamento muito complexo, de moto que, na prtica esses efeitos so modelados com o uso de mapas de textura. A idia bsica reproduzir sobre a superfcie do objeto as propriedades de alguma funo ou mapeamento bidimensional.

Textura
Os modelos de iluminao no so apropriados para descrever todas as propriedades da superfcie de um objeto, por exemplo, rugosidade. Em princpio modelar esses detalhes
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 123

com o acrscimo de detalhes na geometria da superfcie ou usando materiais de propriedades ticas distintas. Essa forma torna o processamento muito complexo, de modo que na prtica esses efeitos so modelados com o uso de mapas de texturas. A idia bsica reproduzir sobre a superfcie do objeto as propriedades de alguma funo u mapeamento bidimensional.

Texture map
Texture map foi tradicionalmente usado para adicionar realismo nas imagens geradas por computador. Em sua forma bsica, o mapa de textura aplica uma a imagem, ou seja, uma textura sobre um objeto na cena. Por ser muito til e simples, passou a ser considerado como padro para as interfaces de softwares e hardwares grficos. Os mapas de texturas podem ser usados em cenas complexas com um baixo custo de processamento. Quando mapeamos uma textura em um objeto, a cor do objeto em dada pixel modificada pela cor correspondente na textura. Para aplicar a imagem nos objetos, devemos antes seguir alguns passos: A textura deve ser armazenada como um array; A textura deve ser mapeada para adaptar-se a superfcies e a uma viso da cena em perspectiva; A textura deve ser tratada para retirar-se imperfeies devidas ao aliasing;

Bump map
Este interessante e elegante mtodo de simular superfcies rugosas foi desenvolvido por Blinn. Ele partiu da observao de que o aspecto rugoso de uma superfcie dependia da variao da direo da normal em relao a esta. A idia simples: sabendo a forma da normal N de uma superfcie, utilizamos um vetor de perturbao D, que ir "sacudir" a direo da normal, dando-lhe o aspecto rugoso. Teremos ento uma normal N, que descrita por:
N =N+D

O vetor de perturbao D, conseguido atravs da utilizao de uma funo (Bump Map), que dar a caracterstica da deformao da superfcie. Uma viso mais ampla (e matemtica) do assunto pode ser encontrada em [Watt93]. possvel conseguir resultados fantsticos com Bump Mapping. Atualmente existem funes que simulam at plos na superfcie de objetos!

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

124

Bump Mapping

Light Map
Os light maps possibilitam um pr-clculo da luz para armazenamento em mapa de textura bidimensional e so usados para dar velocidade no render de objetos 3D com iluminao para light mpas tridimensionais mas, na prtica, exigir uma grande quantidade de memria. Uma das grandes vantagens a possibilidade de se usar o resultado de mtodos, como radiosidade ou outros de iluminao global que poderiam demorar muito tempo para serem calculados. importante perceber que, quando o observador muda sua posio, as coordenadas do mapeamento devem ser corrigidas.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

125

Com light map

Sem light map

Mip-Mappin

Mip-mapping um tipo de mapeamento que propes a soluo de dois problemas no mapeamento de objetos em cenas de animao ou real-time rendering. O primeiro problema ocorre com o afastamento do observador em relao aos objetos. Quando as texturas destes ficam menores do que a quantidade de pixels disponveis, o render ter de aplicar o antialising realizando uma media final dos pixels da imagem. O segundo problema ocorre com a aproximao do objeto alvo, revelando detalhes indesejados da textura, principalmente por causa da baixa resoluo. Para soulucionar, o mipmappin propores a utilizao de mais de uma imagem como textura, onde cada imagem possui um nvel de resoluo decrescente conforme o observador se afasta.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

126

Aula 18 Pov Ray: texturas


A colocao de diversas cores pode simular uma textura: sphere { <0,0,6>, 1.2 pigment { gradient <0, 1, 0> color_map { [0.0 color White] [0.25 color Blue] [0.9 color Green] } }}

Com a linha turbulence 0.5 aps a declarao de gradient:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

127

Com a linha finish { phong 0.8 }, temos uma melhoria significativa no resultado da iluminao do ex. anterior:

Se colocarmos a linha phong_size 4, temos uma mudana na forma da reflexo o default phong_size 40

Faz parte do finish, colocando reflexion 0.5, temos:

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

128

Plano com ondas

plane { y, -2 texture { pigment { color rgb <.1,.9,.9> } normal { ripples 0.5 } } }

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

129

Aula 19 19 Modelagem
Muitas aplicaes de Computao Grfica envolvem a visualizao de objetos e cenas 3D. Para exemplificar, os sistemas CAD permitem a manipulao de "automveis", modelos de componentes de mquinas e partes de um avio; sistemas de simulao apresentam uma imagem de um mundo tridimensional que se movimenta continuamente, por exemplo, para um piloto de avio. Estas aplicaes diferem das aplicaes bidimensionais no somente na adio de uma dimenso: elas tambm exigem um REALISMO na visualizao dos objetos. Na verdade, o maior problema para se fazer sntese de imagens tridimensionais vem do fato de que a maioria dos perifricos de E/S utilizados em Computao Grfica so prprios para manipular elementos bidimensionais. Esse tipo de limitao leva a utilizar uma srie de recursos e tcnicas para tentar compatibilizar o universo tridimensional com o qual se deseja trabalhar com as limitaes dos dispositivos perifricos. A produo de imagens com realismo de uma cena 3D em um dispositivo 2D, tambm apresenta muitos problemas: como a terceira dimenso ser exibida na tela; como as partes dos objetos que esto "escondidos" por outros objetos sero identificadas e removidas da imagem final; como a iluminao, a cor, a sombra e a textura podem contribuir ao rendering; entre outros.
Tcnicas de Modelagem 3D

Como j descrito anteriormente, a modelagem consiste em representar no computador o mundo fsico real. A representao de um objeto deve ser feita de forma que seja fcil de usar e analisar. Se um modelo bom, este ir responder aos testes da mesma maneira que o objeto real. Na definio de um modelo deve-se abstrair somente a informao essencial para o objetivo proposto, ignorando o resto. Objetos tridimensionais so, em geral, representados por meio de coordenadas (x, y, z) no espao e de informao topolgica que indica sua conexo atravs de retas, curvas, planos, etc. Porm, para muitas aplicaes, o modelo geomtrico de um objeto fsico pode requerer a descrio completa das propriedades de reflexo da superfcie, textura e cor. Em outros casos podem ser fundamentais informaes a respeito das propriedades elsticas do material que compe o objeto. Pode-se determinar o grau de detalhe necessrio de acordo com o tipo de aplicao que se deseja dar ao modelo. Se o modelo for suficientemente rico em detalhes, pode-se fazer testes sobre ele e obter os mesmos resultados que obtidos se o teste fosse feito sobre o objeto real.

Boundary-Representation (B-Rep)

O mtodo de modelagem de Boundary-Representation tambm chamado de Representao por Superfcies Limitantes. As primeiras aplicaes de Computao Grfica utilizavam apenas a representao wire-frame. Posteriormente, porm, surgiram os modelos de slido, incluindo superfcies curvas.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

130

Neste tipo de modelagem apenas a superfcie do objeto armazenada, aliada a uma funo que determina se um ponto est dentro ou fora do slido. Essa funo necessria para clculos que envolvam a regio interior do objeto. A superfcie limitante de um slido separa os pontos de dentro do slido dos pontos de fora. esta superfcie que determina a interface entre o slido e o ambiente a sua volta. Todas as caractersticas visuais do slido tais como reflexo, transparncia, textura e cor so caractersticas dessa superfcie. Entre as diversas maneiras de se representar a superfcie limitante de um slido uma das mais comuns atravs de faces.

Modelagem Prodedural

A modelagem procedural de uma rea de pesquisa mais recente em Computao Grfica que engloba uma srie de mtodos alternativos modelagem geomtrica tradicional. Uma das principais motivaes nessa rea tem sido o desafio de representar a complexidade dos objetos do mundo real tanto em termos da sua forma quanto do seu comportamento. Modelos procedurais podem descrever: -- Objetos que podem interagir com eventos externos para se modificarem. Como exemplos de objetos nessa classe pode-se citar: terreno, vegetao, gases, lquidos, fogo e os prprios animais. Essa classe de objetos se caracteriza por formas naturais que so muito familiares ao ser humano. Porm, em geral, so difceis de representar tanto do ponto de vista da forma como do movimento. -- A geometria em funo de uma srie de parmetros que variam com o tempo. Neste caso o modelo procedural passa a ser ativo em oposio ao modelo slido que representado por configuraes estticas e passivas. Por exemplo: o modelo procedural de uma ponte, que consiste em uma estrada "dividida ao meio", uma estrutura, pilares e parapeitos, especificado atravs das descries destes elementos de acordo com uma orientao para determinar a posio da ponte. Cada um dos seus componentes, por sua vez, especificado por um nmero de parmetros e o procedimento ento gera o modelo a partir destas descries. Torna-se importante salientar que o modelo gerado no precisa obrigatoriamente ser composto de uma coleo de slidos, e que a especificao de apenas alguns parmetros levam criao de um grande modelo. Resumindo: a modelagem procedural consiste no desenvolvimento de um procedimento que, baseando-se nos parmetros recebidos, ir construir um modelo. O "poder" deste tipo de modelagem est no fato de que pequenas mudanas nas especificaes (parmetros) resultam em drsticas mudanas na forma do modelo.

Fractais

Fractais tm chamado muito a atano nos ltimos tempos, pois as imagens resultantes deste tipo de modelagem so fantsticas. Vrias abordagens diferentes de gerao de fractais tm sido desenvolvidas. Os fractais surgiram de uma idia de revolucionar a tradicional geometria euclidiana. Atravs dos conceitos da geometria euclidiana pode-se modelar objetos artificiais e elementos do mundo real com caractersticas macroscpicas. Em Computao Grfica a modelagem de
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 131

objetos feita normalmente atravs de figuras geomtricas bem definidas, onde a geometria euclidiana utilizada. Nesta geometria os objetos so definidos como possuindo uma, duas ou trs dimenses, atravs de pontos, retas, planos ou slidos. Objetos naturais tais como nuvens, montanhas, arbustos e plantas possuem uma caracterstica de irregularidade que dificilmente descrita em termos euclidianos. Alm disto, no mundo real, um mesmo objeto pode ser visto em duas formas diferentes: viso macroscpica ou microscpica (diferentes pontos de vista conforme a proximidade). O matemtico Benoit Mandelbrot, atravs de sua obra The Fractal Geometry of the Nature criou a chamada geometria fractal. Esta geometria permite a representao de certos elementos naturais que possuem caractersitcas irregulares. Com a geometria fractal torna-se possvel a criao de modelos mais prximos da realidade, com aplicaes em diversas reas, destacando-se a Computao Grfica e a Modelagem/Simulao de elementos naturais. Generalizando, o termo fractal significa tudo que possui uma medida substancial de similaridade, como ilustra a prxima figura. Somente fractais gerados por processos "infinitamente" recursisvos so verdadeiros objetos fractais. Por outro lado, aqueles gerados por processos finitos podem no apresentar mudanas aps algum estgio, ento estes so aproximaes adequadas do ideal. Os fractais so utilizados para representar terreno, plantas nuvens, montanhas, raios e arbustos. Caractersticas dos fractais: a) o "comprometimento" depende do nvel de detalhe em que se est a observar o objeto (dimenso fractal); b) pores menores reproduzem pores maiores (auto-similares). A figura abaixo apresenta um tipo de fractal representado por uma figura geomtrica inicial (triangulo) e uma regra de subdiviso desta figura (recursivamente subdivide a linha (t1,f1),(t2,f2) gerando um deslocamento escalar do ponto mdio da linha numa direo normal linha).
PROCEDURE fractal(t1,f1,t2,f2,resolution,roughness: real); Var r, tmid, fmid: real; Begin If (sqr(t2 - t1) + sqr(f2 - f1)) < sqr(resolution) then Begin Move_to(round(t1),round(f1)); Line_to(round(t2),round(f2)); End Else Begin R:=rand(-1,+1); Tmid:=(t1 + t2)/2 - roughness*(f2 - f1)*r; Fmid:=(f1 + f2)/2 - roughness*(t2 - t1)*r; Fractal(t1, f1, tmid, fmid, resolution, roughness); Fractal(tmid, fmid, t2, f2, resolution, roughness); End End;

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

132

Sistemas de Partculas

Sistemas de partculas uma abordagem intrigante para modelagem de objetos no rgidos cujo o comportamento ao longo do tempo no pode facilmente ser descrito em termos de superfcie de objetos (por exemplo, objetos cuja topologia pode mudar). Um sistema de partculas definido por uma coleo de partculas que desenvolvem-se ao longo do tempo, isto , os objetos so compostos de inmeros elementos com "vida" prpria. Alm do formato propriamente dito, permitem a representao do comportamento do objeto ao longo do tempo (animao). A evoluo determinada atravs da aplicao de certas probabilsticas s partculas: estas podem gerar novas partculas, podem ganhar novos atributos dependendo da sua idade ou podem "morrer" (desaparecer do objeto). Estas tambm podem se mover de acordo com leis de movimentao determinsticas ou estocsticas. Sistemas de partculas tm sido utilizado para modelar fogo, nevoeiro, fumaa, exploses, fogos de artifcio, cardumes, rvores e grama. Um exemplo de um esquema funcional que produz uma descrio de objeto o sistema de modelagem de partculas de Reeves (Reeves, 1983). Aqui a modelagem do objeto e o processo de rendering fundem-se em uma aproximao funcional nica. Esta tcnica usada para modelar fenmenos que Reeves chama de "objetos fuzzy" e inclui, por exemplo, fogo, nuvem e gua. Um objeto representado por uma srie de partculas elementares, cada qual nasce, desenvolve-se e morre, ou extingue-se, em diferentes fatias de tempo. Partculas individuais movem-se no espao tridimensional e mudam seus atributos como cor, transparncia e tamanho em funo do tempo. Tanto o comportamento global de uma partcula quanto o comportamento detalhado de uma determinada partcula so derivados de vrias funes. Por exemplo, o nmero de partculas gerado em um determinado tempo t pode ser derivado de Nt = Mt + Random ( r ) Vt. Onde Mt o nmero de partculas de uma populao, Random (r ) uma varivel pseudorandmica e Vt a varincia da populao

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

133

Aula 20 20 - Fundamentos de Animao Computadorizada


Considerada a mais avanada das tcnicas, a computao grfica atualmente um recurso que permite que um filme seja concretizado com mais velocidade, disponibilizando uma multiplicidade de recursos que so at mesmo, capazes de reproduzir com perfeio a maioria das tcnicas de animao. Porm, contrariando o pensamento de muitos, para se realizar uma animao utilizando a computao grfica, no vale, apenas possuir somente o conhecimento e prtica em softwares. necessrio tambm conhecer os princpios da animao para que se consiga um bom resultado. Mesmo nos filmes de longa-metragem produzidos inteiramente em computao grfica, como o Toy Story I e II, a ajuda de procedimentos mais antigos na realizao do filme,como o desenvolvimento do storyboard e planejamento dos cenrios, a ficha de animao (registro grfico que controla e organiza todo o filme de animao, permitindo que ele seja refeito, quando houver necessidade) e a ficha de produo de fundamental importncia para que se consiga um belo resultado final. Alguns personagens principais como o cowboy Wood e o guerreiro espacial Buzz Light Year, foram modelados em escala proporcional com massa de modelar, para posteriormente serem scaneados e modelados no computador. Esse brilhante instrumento que o computador, no sabe animar, rpido em alguns momentos, e lento em outras etapas, porm, de um modo geral ele facilita a vida dos utilitrios, podendo tambm trazer frente ao monitor surpresas negativas, capazes de destruir um trabalho inteiro. Sabendo utiliz-lo uma excelente tcnica!! A Computao grfica o conjunto de algoritmos, tcnicas e metodologias para o tratamento e representao grfica de informao atravs da criao, armazenamento e manipulao de figuras, utilizando-se computadores e dispositivos perifricos grficos. Os videojogos representam um dos exemplos mais conhecidos de computao grfica, em que um micro-computador gera dinamicamente imagens que so exibidas numa tela (monitor). As imagens aparecem em movimento e o jogador pode assim interagir com as mesmas, atravs de botes. A Computao Grfica "nasceu" junto s primeiras mquinas electrnicas de computao. Em 1950, foi utilizado pela primeira vez um display (tubo de raios catdicos acoplado a um computador), controlado pelo computador Whirlwind I no MIT (Massachusett Institut of Tecnology), para a gerao de imagens grficas simples. Assim surgia um novo ramo que teria uma importncia sempre crescente no mundo: a Computao Grfica (Animao Computacional). Alguns anos depois, a introduo da caneta fotosensvel, permitiu identificar elementos no tubo de raios catdicos e assim ter um meio de interagir diretamente com a imagem. Ainda na mesma poca, surgiram os primeiros traadores controlados por computadores digitais. Os progressos deste novo ramo na cincia foram lentos durante algum tempo (dcada de 50), pela inadequao dos computadores existentes e pela no disponibilidade de dispositivos grficos. Tambm na dcada de 50, a Fora Area dos EUA implementou um sistema de comando de vo (SAGE) baseado em Computao Grfica. Na mesma poca, ainda houve o incio da utilizao de alguns Perifricos Grficos, tais como os Terminais Grficos (1951), Plotters (1953), e Laghtpens (1958). No incio dos anos 60, iniciou-se o uso de raios catdicos a cores. Em 1962, Ivan E. Sutherland, apresenta a sua tese de doutoramento no MIT: Sketehpad: A Man-Machine Graphical Communication
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 134

System, o que lhe valeu o titulo de "pai da Computao Grfica moderna". No seu trabalho, Sutherland descrevia um sistema grfico, com ferramentas de recursos de desenho 3D, e provava a viabilidade do uso dos computadores para trabalhos de Drafting e Design (desenho e projetos auxiliados por computadores). Este sistema j tinha muitas caractersticas dos sistemas de hoje. Por exemplo, o uso de dados estruturados para o desenvolvimento mais efetivo ocorreu quando o assunto se comeou a tornar tambm objeto de interesse na indstria, no principio da dcada de 60, quando foi iniciada a implementao de alguns sistemas para apoio a projetos de fabricao, no sector automobilsticos e aeroespacial. Ainda na dcada de 60, foram comercializados os primeiros monitores vetoriais, oferecendo condies para o surgimento dos primeiros pacotes CADCAM na rea de construo automobilstica. No final desta dcada, apareceram os monitores vetoriais com tubos de memria. Com o impulso dado por estes trabalhos, surgiram inmeros projetos de pesquisa e diferentes fabricantes de hardware para Computao Grfica. Na dcada de 70 surgiram no mercado sistemas integrados, denominados Turn-key, que geralmente se destinavam a auxiliar os projetos de engenharia. Com o progresso tecnolgico na fabricao de memrias, surgiram em meados dos anos 70 os primeiros monitores a varredura, trazendo novas possibilidades para criar e visualizar verdadeiras imagens. Tambm foi nos anos 70 que ocorreram os primeiros pacotes grficos e as primeiras conferencias do SIGGRAPH (Special Interest Group on Graphics). Foi proposta por um comit essencialmente Norte Americano do ACM SIGRAPH, em 1977, a primeira padronizao grfica como o "Core Graphics System", conhecido como CORE. O objetivo era propor, para as aplicaes em 2D e 3D, um padro contendo um conjunto de funes grficas que, na sua utilizao no dependessem dos equipamentos grficos envolvidos na aplicao. No ponto final da dcada de 70, foi formulado um outro padro de grficos, chamado GKS (Graphic Kernel System), que deveria adaptar-se melhor grande diversidade dos equipamentos grficos e das aplicaes potenciais, atravs da introduo da noo de estao de trabalho. O GKS foi adotado pela ISO (International Standards Organization) como norma internacional em 1985. A introduo da GKS como padro internacional representou um avano, porm, na sua verso atual ele no possibilitasse o aproveitamento de certos recursos disponveis em novos equipamentos grficos. A proposta em estudo pela ISO de um padro GKS para aplicaes grficas em 3D, deveria contribuir para expandir a sua aceitao. A nvel de padronizao grfica, uma proposta relativamente recente foi feita pela ANSI (American National Standard Institute) e est em estudo pela ISO. Trata-se do PHIGS (Programmer's Hierarchical Interctive), que cobre os aspectos de modelagem de objetos por hierarquias (pontos no abordados pelo GKS), assim como os aspectos grficos em 3D. A partir dos anos 80, com a chegada dos micro e dos seus aperfeioamentos constantes, as aplicaes da Computao Grfica, deixaram de ser reservadas aos especialistas.
Animao 2D

O impacto das tcnicas 2D podem ser espetaculares. Como exemplos de utilizao destas tcnicas temos o filme 'ET', a cena onde o extraterrestre sai disparado com uma bicicleta fazendo-se um close-up deste com a lua. Outro exemplo ser a remoo subtil dos arames que suspendiam o super homem. Estas tcnicas contriburam bastante para a animao computacional, atravs do fornecimento de ferramentas tais como blending (mistura), morphing, embutimento de imagens grficas em vdeo ou a criao de padres abstratos de equaes matemticas.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

135

O morphing refere-se ao de metamorfose de um objeto para outro. No 'Black or White' de Michael Jackson, os animadores criaram morphs de pessoas com aparncias faciais bem diferentes umas das outras, gerando-se um efeito final bastante agradvel. Infelizmente, o morphing muito trabalhoso porque os elementos chave de cada imagem tm de ser especificados manualmente. Se embutirmos objetos grficos numa imagem, podemos introduzir novos elementos numa cena que j existe. Como exemplos temos os fantasmas do filme Gasparzinho, e muitos dos dinossauros do Parque Jurssico foram gerados por computador e depois embebidos no filme. Os objetos podero ser tambm removidos de uma cena. Quando o autocarro no filme Speed sobrevoa uma fenda numa ponte que estava parcialmente construda. Essa fenda foi feita digitalmente retirando-se um pedao de estrada de uma ponte j construda. Tanto o embutir como o de remover so mais difceis de serem realizadas se a cmera se encontrar em movimento. As equaes matemticas so muitas vezes usadas para criar seqncias de movimento abstratas. Os Fractais so exemplos bastante conhecidos de padres gerados a partir de funes matemticas. O Morphing e a criao de imagens abstratas podero ser generalizados para utilizao em 3D. Todas estas tcnicas de 2D podero ser usadas sozinhas para a criao de uma animao, ou ento utilizadas como um processo ps-processamento para realar imagens geradas usando outras tcnicas de 2D ou 3D.
Animao computadorizada: "Processo de gerao de frames consecutivos que so exibidos numa freqncia suficiente para que o olho humano no consiga diferenci-los e tenha ento a sensao de movimento." Frame: Cada quadro da animao. Freqncia de exibio de frames ideal: A partir de 24 a 30 f/s j temos a sensao de animao. OBS: Monitores CRT trabalham com 60f/s de mnimo (geralmente) podendo atingir freqncias superiores a 100f/s.

Onde entra a animao computadorizada na CG? - Modelagem geomtrica - >>>> Animao computadorizada <<<< - Rendering (visualizao, renderizao, aplicao de texturas,...)

Animao Tradicional X Animao Auxiliada por Computador

Tradicional -Frames so desenhados por artistas -Geometria desenhada em folha de acetato


Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 136

-Rendering pintado a mo -Todos os frames so filmados num processo frame-a-frame. O processo de colorir os desenhos apresenta um maior custo em tempo e homens trabalhando, alm disso, esta tarefa que pode ser mais repetitiva e por isto com possibilidades de ser otimizada. Pensando nisso e com o advento da computao grfica o computador comea a ser utilizado na otimizao deste processo, assim surge a animao computadorizada. Nesta fase o computador um auxlio para os animadores onde surge a animao assistida por computador. Auxiliada por Computador -Parte de rendering feita no computador
Como a gerao de frames no computador? Os objetos (entidades) da animao so gerados por computador baseados em diretivas do designer/animador. -Modelagem geomtrica -Controle de movimento -Todos os frames so registrados num processo frame a frame. Tcnicas de animao:

Keyframe -keyframes so especificados pelo animador e o computador gera os quadros intermedirios. -os quadros intermedirios so gerados baseados numa lei de interpolao. -interpolao (translao, escala, rotao).

Os parmetros que variam no tempo so especificados em instantes iniciais e finais do movimento desejado. Estes parmetros determinam o estado esttico dos atores nos instantes de tempo determinados. A este conceito de tempo ou instante em que os parmetros so especificados pelo usurio denomina-se quadro-chave ao movimento (key-frame, em ingls). e cada quadro esttico gerado pelo sistema de animao um quadro (frame) da animao. A interpolao para a animao o conceito de gerar parmetros intermedirios, sendo dados o inicial e final. Podemos ter uma interpolao linear: onde o parmetro varia de forma constante, uniformemente variada: onde a variao alterada de forma constante e muitas outras formas de interpolao onde o movimento gerado uma linha reta, uma curva e etc. Vantagens: -fcil prever onde os objetos estaro em um determinado frame. Desvantagens:
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 137

-difcil controle do tempo no caso de tarefas especficas. Animao Hierrquica -definio da estrutura dos objetos hierrquica. Vantagens: -fcil animao de objetos baseados em estrutura de rvore. Desvantagens: -necessidade de criao de restries. Animao Baseada em Fsica -Envolve a utilizao de equaes da fsica. ex. animao de corpos sem massa (partculas), efeito de exploses, animao de corpos rgidos com massa, corpos articulados e corpos deformveis.

Vantagens: -Resultados realsticos, fcil especificao de tarefas. Desvantagens: -Difcil controle. Animao Baseada em Tarefas -Pressupe que exista um "motor" capaz de entender tarefas. -Pode-se definir regras simples para entrada de tarefas. ex. meio-dia, vou almoar. -A regra pode utilizar a informao de estados de objetos. -Pode-se definir regras mais complexas. -Um problema a ser resolvidos o conflito de eventos. Soluo: prioridade de eventos. Animao Comportamental -Define comportamentos de entidades sem especificao de tarefas baixo-nvel ou de regras simples. ex. agente1 falante, alegre e hoje est feliz. -Alguns modelos de animao comportamental: percepo/tratamento/ao desejos/crenas/intenes Animao Procedural Definir uma procedure com leis para determinado objeto. Scripting System

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

138

-visa oferecer uma linguagem script com comandos pr-definidos, para descrever a aniamo de objetos. Graphic Interface -scripting system + programming language. - o que mais se usa atualmente.
Animao de cena

Uma cena um evento ou interao nica entre personagens, acontecendo durante um perodo de tempo e em um lugar nico, que move a histria adiante na direo de um climas. Na elaborao de uma cena deve-se considerar: Fazer o inesperado; Usar obstculos para complicar e fazer reverses inesperadas; O que a cena realizar? As cenas podem ter um ponto principal e diversos pontos secundrios; Quem est na cena? Onde e quando ser realizada a cena? Quem o protagonista da cena? O que os personagens querem? Qual a atitude? Os personagens esto conhecendo o problema ou ele desconhecido? Onde est a tenso ou o conflito? O que acontece na cena? A cena tem um catalisador ou um incidente estimulador no princpio? A cena est criando um clmax? Como ser o climas (engraado ou dramtico)?

Uma cena geralmente possui um comeo, um meio e um fim. Retire qualquer exposio desnecessria.
Animao 3D Modelagem

Para poder criar movimento, o utilizador necessita tanto de uma descrio esttica como de uma descrio dinmica do objeto. Uma forma comum de especificar esta informao adicional a de usar um modelo articulado. Um modelo articulado consiste numa coleo de objetos conectados atravs de junes que se encontram localizados numa estrutura hierrquica em forma de arvore (figura ao lado). A localizao de um objeto determinado pela localizao dos objetos diretamente acima deste na cadeia hierrquica. Por exemplo, o movimento da juno do cotovelo num modelo humano no ir somente afetar a posio do antebrao mas tambm a posio da mo e dos dedos. O objeto no topo da hierarquia (ou a raiz da arvore) pode ser movido arbitrariamente, afetando a posio e orientao de todo modelo. Um segundo tipo de modelo utilizado na animao um sistema baseado em partculas ou numa coleo de pontos. O movimento das partculas pelo
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 139

espao determinado por um conjunto de regras. As leis da fsica muitas vezes fornecem uma base para o movimento obrigando assim que os objetos obedeam gravidade e que colidam com outros objetos se estes estiverem a partilhar o mesmo espao no mesmo ambiente ao mesmo tempo. Sistemas modelados por esta base incluem um esguicho de gua, o fumo, etc. Os objetos deformveis so o terceiro tipo de modelo, e incluem objetos que no possuem junes articuladas bem definidas, no entanto, so constitudos por uma estrutura demasiado densa para serem representados por um sistema de partculas. Devido vasta gama de objetos que podemos inserir neste modelo, existem algumas formas fundamentais para se representar objetos deformveis, incluindo modelos volumtricos, representaes superficiais. gua, ar, vesturio, e peixes esto entre os sistemas modelados atravs de objetos deformveis com sucesso. Qualquer um destes modelos pode ser utilizado para descrever uma grande variedade de objetos, no entanto, sistemas complexos requerem modelos hbridos que combinam dois ou mais dos modelos referidos anteriormente. Esta aproximao permite que cada parte do sistema seja modelado tcnica mais apropriada. A figura do lado esquerdo mostra-nos um mergulhador a entrar na piscina. O mergulhador um modelo articulado, a piscina um modelo deformvel, o jacto de gua um sistema particular.
Keyframing

O keyframing provm da forma tradicional de animao, o keyframing requer que um animador especifique um conjunto de posies chave para os objetos que esto a ser animados. O computador interpola para determinar as frames que se encontram entre as frames chave. O algoritmo de interpolao um factor importante na aparncia final da ao. A forma mais simples de interpolao, designa-se por interpolao linear. Por vezes, esta interpolao resulta dum movimento que tem um aspecto um pouco instvel, isto porque, as velocidades dos objetos em movimento so descontnuos. Para corrigir este problema, outras tcnicas de interpolao, tais como as splines, so usadas para produzir curvas interpoladas suaves. A especificao dos keyframes podem ser mais fceis com tcnicas tais como a cinemtica inversa, que ajudam a colocao dos modelos articulados permitindo ao animador especificar a posio de um objeto e ter assim as posies dos objetos, acima de si na hierrquica, calculadas automaticamente. Como exemplo, temos a mo e o torso de uma personagem animada que estaro em posies especificas, a cinemtica inversa (inverse kinematics) permite ao computador calcular o angulo do cotovelo e do ombro. Os produtos de animao comercial incluem a cinemtica inversa e rotinas de interpolao desenhadas especificamente para a animao humana. Estas ferramentas levam em considerao fatores de manuteno do balano, limitaes dos ngulos das junes e colises entre os membros e o corpo. Embora estas tcnicas facilitem a animao, o keyframing necessita sempre de um animador que conhea bem os comportamentos do objeto.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

140

Mtodos Procedimentais

Tecnologicamente, no somos ainda capazes de gerar aes automticas para objetos arbitrrios; no entanto, algoritmos para movimentos especficos podem ser programados. Estes algoritmos so designados de mtodos procedimentais, isto porque o computador segue de uma forma seqencial os passos que se encontram no algoritmo. Estes mtodos possuem duas vantagens principais sobre o keyframing: facilitam a gerao de aes similares, e podem ser utilizados em sistemas que seriam demasiadamente difceis de simular mo, tais como sistemas de partculas. A Simulao faz referncia a um mtodo procedimental que utiliza as leis da fsica, ou pelo menos uma aproximao a essas leis, para gerar movimento. O movimento simulado inerentemente realstico e para muitas aplicaes isso uma vantagem. Infelizmente, a construo de uma nova simulao por vezes um processo difcil necessitando de um conhecimento profundo das leis da fsica.
Motion Capture

Tradicionalmente, as aes para uma animao so criadas especificando a posio dos objetos a cada instante do tempo. A especificao manual possui uma desvantagem, a de ser muito trabalhosa, e tambm requerer um grande talento para criar um movimento convincente atravs de uma srie de poses individuais que quando juntas supostamente devero dar animao a um objeto. Embora os computadores possam reduzir o trabalho atravs da interpolao dos keyframes, a especificao manual do movimento requer talento e treino. A motion capture diferente do processo de criao de animao por observao. Distingue-se por ter uma variedade de utilidades para alm da animao, tais como anlises biomdicas, vigilncia, anlise de performances desportivas, ou at como um mecanismo de input para a interao entre computador e humano. Muitos dos mtodos utilizados no motion capture tm as suas razes em domnios mdicos ou biomecnicos. O que na realidade a captura? Num sentido, ao apontar uma cmera a algum consegue-se capturar os seus movimentos. Podemos rebobinar a cassete e rever o seu movimento. A distino entre esta captura e o motion capture (captura de movimento) que a segunda cria uma representao que destila o movimento da aparncia; codifica o movimento de forma adequada s necessidades de processamento ou anlise que necessitamos. Esta definio de motion capture dependente do objetivo para o qual vai ser utilizado. O online motion capture nico na sua rea. Para produo offline de aes, este mtodo apenas uma de vrias formas de criao de movimento para fins de animao. Em termos de taxinomia de criao de movimento, esta normalmente divide-se em trs categorias: Especificao manual, procedimental ou simulao, motion capture.
Captao do Movimento

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

141

Motion capture utiliza sensores especiais designados por trackers. Estes trackers registam o movimento de um ser humano. Os dados gravados so depois usados para gerar a animao. Os passos necessrios para a criao de uma animao atravs da observao so: 1. Planear a captao do movimento e a sua posterior produo. 2. Capturar o movimento 3. "Limpar" os dados 4. Editar os movimentos 5. Mapear os movimentos em torno das personagens animadas. A ordem dos passos 4 e 5 por vezes variam, dependendo nas ferramentas. Por vezes, estes passos so iterados.
Aparelhos utilizados no Motion Capture

Uma variedade de mtodos so usados para "capturar" com sucesso uma aco. O equipamento mais antigo de motion capture era constituindo por armaes mecnicas utilizados para medir os ngulos das junes. Os primeiros exemplares usavam correias goniomtricas desenhadas inicialmente para anlises mdicas. Mais recentemente, a utilizao da tecnologia mecnica tem sido primariamente utilizada na criao de marionetes, esses sistemas foram desenhados para seguir a locomoo do ser humano requerendo que um esqueleto mecnico fosse colocado no voluntrio. Existem implementaes modernas desta tcnica utilizando alternativas menos incomodas. Os aparelhos magnticos usam transmissores para criar campos magnticos que geram um espao, so empregues sensores que determinam as posies das junes e a orientao do voluntrio no interior do espao criado. As verses mais antigas possuam vrios problemas: Os sensores requeriam cabos que afligiam os voluntrios, e existia um erro significativo nas leituras dos sensores, os campos magnticos eram limitados e havia interferncia nestes quando da introduo de objetos metlicos. O equipamento moderno consegue livrar-se de alguns dos inconvenientes anteriores: verses wireless substituem os cabos e sensores atualizados promovem um melhor desempenho e robustez. Sistemas de seguimento pticos usam marcadores visuais especiais no voluntrio e um nmero de cmeras para determinar a localizao a 3D dos marcadores. Tradicionalmente os marcadores so objetos passivos, tais como esferas refletoras, e as cmeras so dispositivos monocromticos de alta velocidade sintonizadas para captar uma cor especfica. Os sistemas pticos requerem vrias cmeras para detectar um marcador para depois poder triangular a sua posio. Poder haver a possibilidade de perda de um dos marcadores de vista se houver ocluso do marcador por parte de um objeto estranho. Os sistemas pticos topo de gama por vezes utilizam muitas cmeras (at 24) no esforo de tentar minimizar o risco dos marcadores no serem vistos por cmeras suficientes. Um desafio de um sistema ptico o fato de embora estes poderem ver os marcadores, no possurem nenhum mtodo para saber qual qual. Ao contrrio do sistema magntico, onde
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 142

cada marcador possui o seu prprio canal de dados, um sistema ptico tem de determinar a correspondncia dos marcadores entre frames. Tipicamente isto feito com software cujo processamento se baseia na continuidade de posies.
Edio de movimento e captura de movimento

As tcnicas de motion capture (idealmente) deveriam fornecer movimentos naturais porqu a necessidade de os mudar? Se est tudo a funcionar corretamente, os dados do motion capture deveriam ser uma reflexo excta da realidade. No entanto, a discusso de como deveremos modificar uma ao assim que a temos parece ter sempre um grande papel na utilizao do motion capture. Um erro comum a de pensar que a importncia da edio de movimento provm do fato de que o motion capture imperfeito, e que so necessrias ferramentas para efetuar uma limpeza aos dados gravados. Mesmo representando um movimento na perfeio os dados do motion capture por vezes necessitam de alteraes ao nvel do movimento, razes que podero incluir: Reutilizao: os dados do motion capture gravam exatamente a ao de um evento. Se quisermos reutilizar os dados para algo ligeiramente diferente, digamos uma personagem diferente ou um movimento ligeiramente diferente, necessitamos de editar os dados. Criao de movimentos impossveis: dado que o motion capture grava aes reais, alguma edio necessria para que aes impossveis possam acontecer. Imperfeies da realidade: o movimento real no perfeito. Voluntrios no chegam a atingir objetivos exatos e os movimentos humanos repetitivos no so exatamente cclicos. Mudana intencional: nem sempre podemos prever que movimento poderemos vir a necessitar, e mesmo que consigamos, algum poder mudar de idias quanto ao efeito final desejado. Adio de movimento "secundrio": Incorporao de tecidos moles ou de vesturio numa personagem virtual. Existem questes que tornam a operao com o motion capture mais difcil de trabalhar do que o movimento animado tradicional. Estas questes transcendem a tecnologia usada na captura do movimento: Os dados recolhidos so de certeza um fator inconveniente para editar. Sistemas de motion capture fornecem tipicamente uma postura para cada frame do movimento, e no somente os instantes mais importantes do mesmo. Isto significa que muitos dados tm de ser alterados para que uma edio seja bem feita. No existe nada para alm dos dados gravados para propriedades do movimento. H pouca coisa nos dados que as propriedades importantes, e o que dever ser mudado movimento. Nem existe nenhum animador que conhea movimento.
Prof: Fernanda Maria da C. Santos

descrever as indique quais para afetar o o porqu do


143

Disciplina: Computao Grfica

Erros sensoriais ou outras falhas podero conduzir a imperfeies no movimento, necessitando assim de uma limpeza. O que torna este problema um desafio o fato de no se possuir uma gravao exata daquilo que se passou (se houvesse, passavam-se a usar esses dados em vez dos dados imperfeitos), difcil saber-se quando os dados esto incorretos, e ainda mais difcil saber como que os devemos substituir.

Viso Computacional e Motion Capture

H um segmento crescente no grupo de computao por viso que se encontra interessado no problema da anlise de imagens de seres humanos em locomoo. As aplicaes so variadas, indo desde a vigilncia, passando por inputs para interfaces com utilizadores indo ate anlise biomecnica. Tal como o motion capture tradicional este mtodo tem sido importado dos domnios anteriores para a animao, a vdeo-anlise oferece um dispositivo atrativo para a criao de movimento animado. O potencial para motion capture baseado em viso enorme: vantagens que vo desde a tecnologia de vdeo convencional ser mais acessvel, menos dispendiosa, estorvar menos aos voluntrios, e funcione numa maior variedade de ambientes do que os tecnologias atuais. Se o vdeo padro poder ser analisado, metragens legadas a ns podero ser usadas para criar animao. No entanto, estas possibilidades requerem que a tecnologia possa fornecer a fidelidade e qualidade que as aplicaes de animaes requerem.
Simulao

Ao contrrio de keyframing e motion capture, a simulao utiliza as leis da fsica para gerar o movimento de figuras e outros objetos. Seres humanos virtuais so normalmente representados como sendo uma coleco de partes corporais. A parte inferior do corpo poder consistir do torso, as partes superiores e inferiores das pernas e os ps, havendo junes rotativas para as ancas, joelhos e tornozelos. Quando os objetos so inanimados, tais como vesturio ou gua, o computador consegue determinar os seus movimentos, obrigando-os a obedecerem a equaes de movimento derivadas de leis fsicas. No caso de uma bola a descer um monte. A simulao pode calcular o movimento levando em conta a gravidade e foras tais como a frico que resultam do contacto entre a bola e o cho. Mas pessoas possuem fontes internas de energia e no so meramente objetos passivos ou inanimados. Humanos virtuais necessitam de uma origem de comandos musculares e/ou motores, designado por "sistema de controlo". Este software calcula e aplica aes a cada juno do corpo simulado para fazer com que a personagem execute uma determinada ao. Alguns sistemas de controlo usam maquinas de estado : algoritmos implementados em software que determinam o que cada juno dever estar a fazer em cada ao, e depois tal como um maestro de uma orquestra, assegura que as junes executam as funes no seu devido tempo. Correr, por exemplo, uma atividade cclica que alterna entre uma fase onde uma perna esta a fornecer suporte ao corpo, e outra fase quando nenhum p se encontra no solo. Durante a primeira fase o tornozelo, o joelho e a anca da perna que est em contacto com o solo tem de fornecer suporte e balano. Quando essa perna se encontra no ar as ancas tm de se mover de forma a preparar-se para o prximo encontro com o solo. A mquina de estados seleciona entre os vrios estados das ancas, escolhendo a ao correta para a fase corrente da corrida.
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 144

Associado a cada fase esto as leis de controlo que calculam os ngulos desejados para cada uma das 30 junes simuladas no corpo humano. As leis de controlo so equaes que representam como cada parte do corpo dever se movimentar para conseguir satisfazer uma determinada funo em cada fase da ao. Para mover as junes at uma determinada posio, o sistema de controlo calcula as aes apropriadas com equaes que agem como molas, puxando as junes at aos ngulos desejados. Essencialmente, as equaes so msculos virtuais que movem as vrias partes do corpo para as posies desejadas. Como tcnica de sintetizao da locomoo humana, a simulao possui duas potenciais vantagens sobre keyframing e motion capture. Primeiro, simulaes podem ser facilmente utilizadas para produzir sequncias ligeiramente diferentes mantendo o realismo fsico, por exemplo, uma pessoa a correr a 4 metros por segundo em vez de 5. Acelerando ou abrandando o playback de uma animao poder estragar a naturalidade do movimento. A segunda vantagem que a simulao em real-time permite que exista interatividade, um fator importante em ambientes virtuais e jogos de computador onde personagens artificiais tm de responder a aces de uma pessoa real. Em contraste aplicaes baseadas em keyframing ou motion capture selecionam e modificam movimentos de uma biblioteca de movimentos j computadas. Um aspecto negativo da simulao, o conhecimento e a quantidade de tempo necessrias para construir um sistema de controlo apropriado. Est-se a construir atualmente bibliotecas que possam conter j algumas aes pr programadas. Outra dificuldade a de adaptar sistemas de controlo preconcebidas e adapt-las a pessoas diferentes, nomeadamente, utilizar a corrida de um homem adaptando-a a uma criana.
Sombreado

O mtodo sombrear adiciona um grau de sombra a cada face de cada objeto. A sombra de cada face do objeto calculada com base no ngulo entre a face e o sol, as faces so renderizadas com sombras mais leves se estes estiverem virados para o sol, e progressivamente mais escura medida que estes se afastam do sol. As faces do objeto que esto viradas do lado oposto do sol so renderizadas com um sombreado ainda mais escuro, visto estes estarem j no interior de uma sombra.
Programas

Segue-se uma lista de programas utilizadas no processo de modelagem, animao, shading, iluminao, e renderizao.
Programas 2D:

- Softimage Toonz - D-Paint - Disney Animation Studio


Programas 3D: - Alias - Houdini - Maya - Renderman - Wavefront
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 145

- Crystal Topas - Hash's 3D Animation Pro - Softimage - Imagine - 3 D Max


Outros:

- Adobe Photo Shop - Adobe Premier - Adobe After Effects - Fractal Designs Painter - Corel Photo-Paint - Corel Draw - Metroworks Code Warrior - Freehand - Director

Gerao de Vdeos de Animao Computadorizada

As vinhetas mostradas na televiso so geradas numa taxa de 30 frames estticos por segundo, algumas so feitas em sistemas de pintura e outras em sistemas de animao modelada em universos bidimensionais ou tridimensionais. A seguir apresentamos as fases para a gerao de vdeos computadorizados: a) Definio do Roteiro da animao b) Concepo do "storyboard" c) Temporizao das aes do filme ou decupagem do roteiro d) Modelagem geomtrica dos atores e) Especificao da roteiro da animao na sintaxe definida pelo sistema f) Gerao dos movimentos g) Visualizao Prvia da Animao e depurao de erro dos tens anteriores h) Processo de gerao de arquivos de sada do sistema de animao i) Gerao de Imagens realsticas j) Processo de converso das imagens para o formato lido pela placa de sada de vdeo, por exemplo: Targa k) Sada de vdeo das imagens geradas l) Ps-produo do vdeo: udio, temporizao e crditos. Aps estas fases tem-se um vdeo de animao computadorizada pronto para ser exibido em formatos de vdeo compatveis com o gerado.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

146

Aula 21 21 Introduo a Realidade Virtual


O termo Realidade Virtual creditado a Jaron Lanier, fundador da VPL Research Inc., que o cunhou, no incio dos anos 80, para diferenciar as simulaes tradicionais feitas por computador de simulaes envolvendo mltiplos usurios em um ambiente compartilhado Pesquisas como a de Myron Krueger, em meados da dcada de 70, j utilizavam o termo Realidade Artificial, e William Gibson utilizou o termo cyberspace1 em 1984, no seu romance de fico cientfica Neuromancer [Gibson, 1984; Machover,1994a]. Espao ciberntico (cyberspace) foi o termo utilizado para designar uma representao grfica de dados abstrados dos bancos de dados de todos os computadores do sistema humano. Gibson descreveu uma rede de computadores universal contendo todo tipo de informaes, na qual seria possvel entrar e explorar os dados de forma multisensorial, e onde pessoas com implantes em seus corpos podiam transmitir informaes diretamente para o computador. Na verdade, o Espao Ciberntico um espao imaginrio, uma simulao 4D do espao-tempo controlada pela interface de RV. Desde que os sistemas de RV criem o espao ciberntico, possvel interagir com tudo e com todos em um nvel virtual. O termo RV bastante abrangente, e acadmicos, desenvolvedores de software e pesquisadores tendem a defini-lo com base em suas prprias experincias, gerando diversas definies na literatura. Pode-se dizer, de uma maneira simplificada, que RV a forma mais avanada de interface do usurio com o computador at agora disponvel. Trata-se de uma interface que simula um ambiente real e permite aos participantes interagirem com o mesmo, permitindo s pessoas visualizarem, manipularem e interagirem com representaes extremamente complexas. Ela um paradigma pelo qual usa-se um computador para interagir com algo que no real, mas que pode ser considerado real enquanto est sendo usado. Outra definio o uso de computadores e interfaces com o usurio para criar o efeito de mundos tridimensionais que incluem objetos interativos com uma forte sensao de presena tridimensional. Alm disso, a RV engloba um conjunto de tcnicas e ferramentas grficas 3D que permite aos usurios interagir com um ambiente gerado por computador, em tempo real, com uma pequena ou nenhuma conscincia de que est usando uma interface usuriocomputador. A RV uma tcnica avanada de interface que permite ao usurio realizar imerso, navegao e interao em um ambiente sinttico tridimensional gerado por computador, utilizando canais multi-sensoriais. Ainda outra definio como a simulao do espaotempo 4D, isto , uma animao de pontos de observao apresentada em um contexto interativo e em tempo real. uma interface que proporciona controles para o usurio manipular e interagir com uma base de dados que o espao-tempo 4D, incluindo a realidade artificial (espao virtual) e as entidades (objetos virtuais) que ela contm [Adams,1994]. O termo espao-tempo 4D geralmente refere-se a imagens computadorizadas 3D animadas s quais foi acrescentada a quarta dimenso, que o tempo. Na prtica, a RV permite que o usurio navegue e observe um mundo tridimensional, em tempo real e com seis graus de liberdade (6DOF). Isso exige a capacidade do software de definir, e a capacidade do hardware de reconhecer, seis tipos de movimento: para frente/para trs, acima/abaixo, esquerda/direita, inclinao para cima/para baixo, angulao esquerda/ direita e rotao esquerda/ direita. Na essncia, a RV um espelho da realidade fsica, na
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 147

qual o indivduo existe em trs dimenses, tem a sensao do tempo real e a capacidade de interagir com o mundo ao seu redor. Os equipamentos de RV simulam essas condies, chegando ao ponto em que o usurio pode tocar os objetos de um mundo virtual e fazer com que eles respondam, ou mudem, de acordo com suas aes [Von Schweber, 1995]. A interface em RV envolve um controle tridimensional altamente interativo de processos computacionais. O usurio entra no espao virtual das aplicaes e visualiza, manipula e explora os dados da aplicao em tempo real, usando seus sentidos, particularmente os movimentos naturais tridimensionais do corpo. A grande vantagem que o conhecimento intuitivo do usurio sobre o mundo fsico pode ser transportado para o mundo virtual. Para suportar esse tipo de interao o usurio utiliza dispositivos no convencionais, como capacetes de visualizao e controle, e luvas de dados, chamadas datagloves. O uso desses dispositivos d ao usurio a impresso de que a aplicao est funcionando no ambiente tridimensional real, permitindo a explorao do ambiente e a manipulao natural dos objetos com o uso das mos [Kirner, 1996]. O termo Mundo Virtual usado para denotar o mundo digital criado a partir de tcnicas de Computao Grfica. Uma vez que possvel interagir e explorar esse mundo por meio de dispositivos de entrada e de sada, ele se transforma em um ambiente virtual, ou ambiente de Realidade Virtual [Vince, 1995]. A RV , freqentemente, confundida com animao, CAD (Computer Aided Design) ou multimdia. Em comparao com essas tecnologias, a RV [Leston, 1996]: Orientada ao usurio, o observador da cena virtual; Mais imersiva, por oferecer uma forte sensao de presena dentro do mundo virtual; Mais interativa, pois o usurio pode modificar e influenciar o comportamento dos objetos; Mais intuitiva, pois existe pouca ou nenhuma dificuldade em manipular as interfaces computacionais entre o usurio e a mquina. Alm disso, RV pressupe rendering (processo de transformao dos modelos em imagens) em tempo real, isto , as imagens so atualizadas assim que a cena sofre qualquer tipo de modificao, e inclui uma descrio funcional dos objetos, estendendo a descrio puramente geomtrica e topolgica do CAD. O desenvolvimento de um sistema de RV requer estudos e recursos ligados a percepo sensorial, hardware, software, interface com o usurio, fatores humanos e aplicaes [Bishop, 1992]. necessrio, tambm, algum domnio sobre dispositivos no convencionais de Entrada/Sada, computadores de alto desempenho, sistemas paralelos e distribudos, modelagem geomtrica tridimensional, simulao em tempo real, navegao, deteco de coliso, avaliao, impacto social e projeto de interfaces [Kirner, 1996]. A RV comeou na indstria de simulao, com os simuladores de vo que a fora area do Estados Unidos passou a construir logo aps a Segunda Guerra Mundial [Jacobson, 1994]. A indstria de entretenimento tambm teve um papel importante, ao construir um simulador chamado Sensorama (Figura 2-1). O Sensorama era uma espcie de cabine que combinava filmes 3D, som estreo, vibraes mecnicas, aromas, e ar movimentado por ventiladores; tudo isso para proporcionar ao espectador uma viagem multisensorial [Pimentel, 1995]. Patenteado em 1962 por Morton Heilig, o equipamento j utilizava um dispositivo para viso estereoscpica. Os primeiros
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 148

trabalhos cientficos na rea surgiram em 1958, quando a Philco desenvolveu um par de cmeras remotas e o prottipo de um capacete com monitores que permitiam ao usurio um sentimento de presena quando dentro de um ambiente [Comeau, 1961]. Posteriormente, esse equipamento passou a se chamar head-mounted display, ou simplesmente HMD [Ellis, 1994]. Alguns anos depois, por volta de 1965, Ivan Sutherland, conhecido como o precursor da RV [Hand, 1994], apresentou comunidade cientfica a idia de desenhar objetos diretamente na tela do computador por meio de uma caneta tica, marcando o incio da Computao Grfica. Sutherland tornou-se o precursor da atual indstria de CAD e desenvolveu o primeiro vdeocapacete totalmente funcional para grficos de computador no projeto The Ultimate Display. Esse vdeo-capacete permitia ao usurio observar, movimentando a cabea, os diferentes lados de um cubo representado em uma estrutura fio-dearame flutuando no espao [Fisher, 1990; Machover, 1994b]. Na mesma poca em que Sutherland criava seu vdeocapacete na Universidade de Utah, Myron Krueger experimentava combinar computadores e sistemas de vdeo, criando Realidade Artificial na Universidade de Wisconsin [Pimentel, 1995]. Em 1975, Krueger criou o VIDEOPLACE, no qual uma cmera de vdeo capturava a imagem dos participantes e projetava-a em uma grande tela. Os participantes podiam interagir uns com os outros e com objetos projetados nessa tela, sendo que seus movimentos eram constantemente capturados e processados. Essa tcnica tornou-se conhecida como Realidade Virtual de Projeo [Jacobson, 1994]. Em 1982, Thomas Furness demonstrava para a Fora Area Americana o VCASS (Visually Coupled Airborne Systems Simulator), conhecido como Super Cockpit. Trata-se de um simulador que usava computadores e vdeocapacetes interligados para representar o espao 3D da cabine de um avio (Figuras 2-2 e 2-3). Os vdeo-capacetes integravam as componentes de udio e vdeo. Assim, os pilotos podiam aprender a voar e lutar em trajetrias com 6 graus de liberdade (6DOF) sem decolar verdadeiramente. O VCASS possua alta qualidade de resoluo nas imagens e era bastante rpido na atualizao de imagens complexas. No entanto, o custo representava um problema: milhes de dlares eram necessrios apenas para o capacete.
Requisitos necessrios para um sistema de RV necessrio ter bem claro quais so as condies necessrias para que um sistema seja considerado como de RV. Na nossa viso, caractersticas que devem estar presentes so descritas a seguir. Um sistema no precisa necessariamente explorar ao mximo todas estas caractersticas, mas a ausncia total de um desses itens pode comprometer a classificao do sistema como sendo de RV.

a) Interface de alta qualidade: a RV utilizada como a interface de mais alto nvel entre o ser humano e a mquina, pois permite que ambos interajam de uma maneira intuitiva para a pessoa, por imitar o que acontece na interao desta com o mundo real. b) Alta interatividade: O ambiente deve reagir de maneira adequada s aes do usurio e permitir o maior nmero possvel de aes. c) Imerso: o conceito de imerso aqui no est inteiramente ligado RV imersiva. O que se quer dizer com imerso que um sistema de RV deve permitir que o usurio sinta-se dentro
Disciplina: Computao Grfica Prof: Fernanda Maria da C. Santos 149

do mundo virtual, seja com o seu corpo fsico ou com uma representao qualquer (avatar2, vdeo, simulao de cabine, etc.). importante que, de alguma forma, o usurio seja envolvido pelo ambiente. d) Uso da Intuio/Envolvimento: o sistema deve explorar a intuio do usurio envolvido pelo ambiente e, assim, proporcionar novas formas de interao. Por exemplo, o projetista de um sistema de simulao de veculo que inclua um volante, marcha e pedais tem muito mais liberdade de projetar aes do que projetista de um sistema equivalente em que o usurio tem que ficar em p e utilizar um joystick. No primeiro caso, o projetista sabe que o usurio j est habituado a certas aes, por sua experincia no mundo real. e) Analogia/Ampliao do Mundo Real: O fato de criar envolvimento e utilizar a intuio faz com que o sistema de RV atue como uma transferncia do mundo real, capturando tudo de proveitoso que pode vir do fato de o usurio j ter uma noo do que deve fazer e como fazer, mas acrescentando aspectos que no existem no mundo real. Por exemplo, um sistema de busca bibliogrfica pode utilizar, de alguma forma, a habilidade do usurio se locomover em uma biblioteca e olhar as estantes, mas a biblioteca virtual pode destacar visualmente volumes que possam ser do interesse do usurio.

Disciplina: Computao Grfica

Prof: Fernanda Maria da C. Santos

150

Você também pode gostar