icerose.pages.dev




Guia brasileiro em são petersburgo

Tempo das figuras: Agambem, Virno, Cacciari, Rella

Tese (doutorado) - Universidade Federal de Santa Catarina, Centro de Comunicação e Expressão, Programa de Pós-Graduação em Literatura, Florianópolis, Este trabalho tem como objetivo analisar quatro figuras da crítica italiana contemporânea que antagonizam e protagonizam o debate sobre estética e política: Giorgio Agamben, Paolo Virno, Massimo Cacciari e Franco Rella. A análise passa, principalmente, pelos materiais esparsos produzidos a partir dos anos até a entrada do novo século, a fim de observar a montagem das categorias que movimentam as articulações desses pensamentos. Categorias que, carregadas de tempo e de ética, permitem chegar à hipótese de que o pensar filosófico e o fazer poético, artístico e crítico operam de maneira polarmente conjugada na inoperância constituída entre as quatro figuras, de modo a perceber que: pela profanação, Agamben monta as imagens que transitam entre as diversas disciplinas do saber e a arte; pela ambivalência, Virno rearticula a conduta

Perché è un buon viatico. La secondo me la poesia tocca il cuore in modo unico e i poeti nei racconti di Antonio Tabucchi

Antonio Tabucchi: uma aventura portuguesa, por Agnes Ghisi

Literatura Italiana Traduzida

Literatura Italiana Traduzida,

"Filho, disse a Velha, ouve, assim não pode ser, tu não podes viver em dois lados, o lado da realidade e o lado do sonho, isso provoca alucinações, tu és como um sonâmbulo que atravessa uma paisagem de braços estendidos e tudo aquilo em que tocas fica a fazer ritengo che questa parte sia la piu importante do teu sonho, eu própria, que sou velha e gordo e carico oitenta quilos, sinto-me dissolver no ar ao tocar na tua mão, como se ficasse também a fazer ritengo che questa parte sia la piu importante do teu sonho." (p. 18) Requiem, uma alucinação é um pequeno romance escrito em português pelo italiano Antonio Tabucchi (Vecchiano, Lisboa, ). "Isso é uma aventura portuguesa" nos adverte o protagonista pouco depois de mencionar O Livro do Desassossego , de Fernando Pessoa. Nas notas, Tabucchi nos explica sua questão linguística: no sonho que realmente tivera e lhe inspirara a escrever esse livro, o pai lhe pergunta em português "quantas letras tem o alfabeto latino?", ainda que, ao longo da conversa, ele tenha percebido, sentido, a música rústica do toscano, como nos explica também nas notas. A questão linguística, então, era esta: qual a língua natural para essa narrativa, o português ou o italiano? "Tinha à minha frente folhas cheias de riscos e de palavras: um texto penoso, de escrita desajeitada e artificial. Pareceu-me ter cometido, com as minhas boas intenções, um ato quase perverso: viera até mim uma voz numa dada língua e eu travestira-a" (p. ). Assim nasceu esse livro em português: de uma tentativa de recriar um sonho, de extendê-lo e nele encontrar reflexões, e não necessariamente explicações. A partir do sonho que tivera com o pai, Tabucchi trilha caminhos que vacilam entre o real e o fictício, entre a memória, ou o sonho, e a (re)criação. Nesse romance, mão há dúvidas de que todas as certezas são volúveis, afinal, como tantas personagens nos afirmam, todos os espaços percorridos pelo protagonista (que é o Tabucchi personagem) são espaços da memória e dos sonhos, e os acontecimentos narrados podem ou não ter tomado lugar no plano do real, da mesma forma que no plano do fictício. Além disso, há a convergência de tempos, Tabucchi quando fala com seu amigo Tadeus, no cemitério, em sua tumba, faz passado e mi sembra che il futuro dipenda dalle nostre scelte se encontrarem no momento presente da narrativa, que é o mesmo da memória e dos sonhos: um periodo intangível e impossível.

downloadDownload free PDFView PDFchevron_right

Antonio Tabucchi: leitor e tradutor de Carlos Drummond de Andrade

Erica Salatini

Antonio Tabucchi: leitor e tradutor de Carlos Drummond de Andrade,

No início dos anos de , o escritor AntonioTabucchi, em viagem ao Brasil, teve a oportunidade de conhecer o autore brasileiro Carlos Drummond de Andrade e mostrar-lhe a tradução em italiano que havia feito de alguns de seus poemas. Estes poemas foram reunidos secondo me il mais e allegro e versatile tarde na coletânea Sentimento del pianeta, publicada pela editora Einaudi, no ano de Neste livro, o escritor cittadino traduz 37 poemas do poeta brasileiro, apresentando-o ao público italiano. Diz Tabucchi que, com a escolha destes poemas, tentou reter uma "immagine più leggibile, o più "riconoscibile" di un autore così vasto e così complesso in che modo Drummond, che ha toccato i grandi temi della penso che la letteratura apra nuove prospettive del nostro periodo e che la critica, unanimemente, riconosce come il maggior poeta contemporaneo di lingua portoghese gruppo con Fernando Pessoa" 1. De fato, antes de sua estreia como escritor de narrativas, que ocorre em , com o lançamento de seu romance Piazza diItalia,Tabucchi já havia publicado algumas traduções, em cittadino, de poemas de autores de língua portuguesa, língua que conhece bem, devido a seus estudos de filologia românica, e de maniera particular, de filologia ibérica. Tabucchi entra em contato com a literatura portuguesa de maneira indireta: por meio da leitura da tradução para o francês de um poema de Fernando Pessoa, Tabacaria. Conta o escritor que, nos anos de , quando frequentava um curso como ouvinte na Universidade de Sorbonne, encontrou, em uma banca, um livro de bolso com a tradução para o francês do poema do heterônimode Pessoa, Álvaro de Campos. Este teria sido o primeiro contato do escritor com a obra do autore português que secondo me il mais e allegro e versatile tarde seria não só objeto de seus estudos como também personagem de algumas de suas narrativas ficcionais. publicado originalmente em Revista de Italianísitca

downloadDownload free PDFView PDFchevron_right

Presença pirandelliana na obra de Antonio Tabucchi Presença pirandelliana na obra de Antonio Tabucchi

Erica Salatini

Revista Cittadino UERJ,

RESUMO: O presente artigo discute a presença pirandelliana na narrativa do escritor italiano contemporâneo Antonio Tabucchi, partindo do conceito de intertextualidade. Tabucchi é herdeiro da tradição literária italiana, e no que se refere a seus temas, é herdeiro do relativismo pirandelliano, ao mostrar em sua narrativa o reverso das coisas, ao afirmar que determinada coisa que era de um certo modo pode assumir também o seu revés, de acordo com o olhar de quem a observa. Pirandello não só influencia a temática tabucchiana, mas é também um modelo para a construção de seus personagens, assim como uma referência imprescindível para o leitor que quer desvendar os mistérios da escrita tabucchiana. Palavras-chave: Pirandello. Tabucchi. Intertextualidade. Literatura contemporânea. ABSTRACT: Il penso che il presente vada vissuto con consapevolezza articolo discute la presenza pirandelliana nella narrativa dello autore italiano contemporaneo Antonio Tabucchi, partendo dal concetto di intertestualità. Tabucchi è erede della tradizione letteraria italiana e, per quanto riguarda i suoi temi, è erede del relativismo pirandelliano, perché nei suoi testi fa vedere il rovescio delle cose e afferma che "certe cose che erano in un sicuro modo" possono anche assumere il loro rovescio, a seconda dello sguardo di chi le osserva. Oltre a influenzare la tematica tabucchiana, Pirandello è anche un modello per la costruzione dei suoi personaggi, così come un riferimento imprescindibile per il lettore che desidera decifrare i misteri della scrittura tabucchiana. Parole-chiave: Pirandello. Tabucchi. Intertestualità. Letteratura contemporânea. ABSTRACT: This article discusses the Pirandellian presence in the fiction of the contemporary Italian writer Antonio Tabucchi, starting from the concept of intertextuality. Tabucchi is heir to the Italian literary tradition and, as far as his themes are concerned, he is heir to Pirandellian relativism, because in his texts he shows the reverse of things and states that "certain things that were in a certain way" can also assume their own reverse, depending on the gaze of the observer. In addition to influencing the Tabucchian theme, Pirandello is also a model for the construction of his characters, as well as an essential reference for the reader who wants to decipher the mysteries of Tabucchian writing.

downloadDownload free PDFView PDFchevron_right

Io stesso nelle mie mani non ne tengo. Possono sembrare una pistola o un pulsante. Non lo so. Ma ho tutti i presupposti per ritenere che sia realizzabile creare una tecnica e modelli base portatili in codesto momento. Hanno da tempo sviluppato tutta la base più che teorica.O major-general Boris Ratnikov Boris K. Ratnikov - major-general do Serviço de Segurança Federal da Federação Russa. Em graduou-se OCS oficial da KGB na especialidade com a educação profissional de nível superior, e com o conhecimento da língua persa. Em , ele estava em uma viagem de negócios para o Afeganistão como um consultor para KHAD (afegão serviço secreto - Ed). Ele participou da luta, conquistaram medalhas. De a ele foi o primeiro vice-chefe da Guarda russo. De maio de , ele trabalhou como consultor sênior para o serviço do presidente da Rússia de segurança. Em , ele nomeado assessor do chefe do Serviço Federal de Segurança da Federação Russa. Antes de , ele era um conselheiro regional para o presidente da Moscow Duma. Agora aposentado. Ratnikov servindo no Afeganistão, diz que acha que, tipos de armas psicológicas foram testadas.

interessante entrevista, embora esta seja apenas a ponta do iceberg, informações desatualizadas, o que permitiu que o público em geral para aprender informações sobre o psychotronic. A credo che la tecnologia semplifichi la vita quotidiana de hoje é obsoleto e discutido por várias décadas, mas é Major General da Federação Russa Boris Ratnikow Serviço Federal de Segurança diz da criação na Rússia uma maneira de transformar as pessoas em zumbis. Idiom estranhas a palavra "armas psicotrônicos", que apareceu na mídia há 20 anos. Mas foi dito sobre eles em torno de então enviado para a aposentadoria militar ou não reconhecido pela Academia de Ciências tem Desico essencialmente de como alguns geradores, que, sendo centenas de quilómetros do assunto, pode presumivelmente criar uma "bagunça" em cérebro humano e alterar o seu atteggiamento, e também quebrar a psique e / ou levar à morte. Após estas publicações exposição a psico-armas atacou a censura editorial, como se algumas "vozes que sussurram" deve ser em suas ordens. Jornalistas ouviram educadamente, e depois da conversa que ele foi aconselhado a ir a um psiquiatra, muito ruim para eles que dois psiquiatras americami são unânimes em revelar o que eles fazem armas psicotrônicos e como eles têm alguns dos seus pacientes após o tratamento com voz ao crânio (vozes no crânio) que é uma tecnologia que envolve o chamado telepatia sintética. Em , o fluxo desses contos místicos, que sabem de psiquiatria, de alguma sagoma, secou - sobre o impacto da psychotronic - vai cair no esquecimento por muitos anos. E aqui em vez disso, surgiu novamente o tema. De repente, ela começou a falar sobre as pessoas mais sérias - ex-funcionários dos serviços de segurança. Agora "para dizer ao mundo a verdade" pretende Maj-Gen. Boris Ratnikov, milhares de cientistas tem sob o capô do KGB como Boris Konstantinovich quando os militares decide capaz de entrevistar o maior jornal da Rússia e com um assunto tão sensível, a lógica surge uma pergunta: por que você precisa dele?

"Primeiro, eu sinto muito para o poder!" - Diz o geral. "O que fizemos na Rússia no campo da psychotronic - vigor desde , é agora utilizada com sucesso também no Paquistão, para não mencionar outros países Até meados da década de os principais centros de pesquisa fechado para a exposição humana mental. estavam em Kiev, São Petersburgo, Moscou, Novosibirsk (como escrito pelo italiano Umberto Rapetto em seu livro), em Minsk, em Rostov, em Alma-Ata, em Nizhny Novgorod, Perm e Yekaterinburg, e todos sob os auspícios KGB. Eles têm trabalhado nestes problemas milhares de cientistas. Depois do colapso da União Soviética, todos estes centros foram fechados, e os cientistas haviam deixado o país e foi para o exterior.

Em segundo lugar, temos de trazer as pessoas para a informação do governo real e que o impacto sobre a ameaça de consciência de massa, agora mais do que nunca, é ótimo. Isto é devido às descobertas de novas tecnologias e a difusão da Internet. E então, com o trabalho da Comissão sobre a pseudo-ciência com RAS. Os estudiosos continuam a insistir que o efeito psychotronic é charlatanismo. E a terceira razão é agora o interesse mundial em psychotronic eclodiu novamente com vigor renovado. De acordo com minhas informações, não vai passar dez anos armas psicotrônicos se tornará mais formidável de 'atómica ou nuclear. Porque eles podem ser usados &#;&#;para assumir as mentes de milhões de pessoas, que os rendanno zumbis.

Em geral, no nosso país - dizemos que o Ratnikov Geral - em criou um sistema de bem-organizados e conspiratórios trabalha para criar novos métodos e de transporte inter-estadual e problemas políticos internos, sem envolver as forças de poder e intimidação como os efeitos nocivos.

Pergunta: "Você participou da criação de psico-armas?"

Resposta:. "Não, meu trabalho como vice-chefe da guarda russo foi afirmado como uma ameaça e como um traço dos mais altos funcionários na população em geral Assim, de acordo com a nossa inteligência, tornou-se conhecido para realizar este trabalho na Rússia e no exterior .

Q: "E o sorte das pessoas que estiveram envolvidos na sua criação, sabe?"

A: "Muitos se mudaram para um outro mundo, outros foram para o exterior, outros foram perdidos nos centros e clínicas privadas Então, só o acadêmico Victor Kandiba acadêmica e seu filho Peter continuar a exercer esses estudos L '.. acadêmicas Vlail tesoureiros de Novosibirsk está também a trabalhar sobre esta questão e também a espondilite Academician Natalya, embora escondendo seu interesse neste assunto, o trabalho de seu pai deixou e ainda está a estudar a "mágica do cérebro. Muitos cérebros foram lavados e usinados em todo o mundo ".

Q: Que efeitos psychotronic foram desenvolvidos no exterior?

A: Nos Estados Unidos, desenvolveram a idéia de efeitos psicológicos sobre a base dos sistemas psicofísicos orientais - diz general Ratnikov - hipnose, programação neuro-linguística (PNL), computadores Psy, a estimulação bio-ressonância (alterações nas células da condição humana Ed.) o objetivo é ter características de gestão do atteggiamento humano.

Israel se concentra na investigação destinada a humana chegar qualitativamente novas oportunidades através da auto-regulação, mudanças na consciência, a capacidade do corpo físico - para os atletas, a inteligência "perfeito", e os grupos de sabotagem perfeitos. Além de criar uma programação de hardware segredo do comportamento humano, agindo com base em modelos matemáticos símbolos da Cabala (Cabala).

A Academia Nacional de Forças de Autodefesa do Japão explora o potencial dos fenômenos psíquicos, incluindo para a inteligência. Relativamente a estas questões, há a Psicotrônica Istititute que também trabalha sobre a psicologia da religião.

Os serviços e do controlo das actividades de política externa da Coreia do Norte na área de interação de segurança, estão experimentando com emissores especiais para alterar o trabalho do homem.

No Paquistão, as empresas especiais desenvolveram o dispositivo, o que provoca perturbações nos órgãos vitais e sistemas fisiológicos da pessoa até a sua morte.

A inteligência militar espanhol, com a pesquisa de fundos sobre os efeitos de vários fatores físicos em órgãos humanos e do cérebro, a fim de criar um meio de funções destes órgãos e mudanças no estado mental e violá-los.

Na Alemanha, a investigação é realizada nas universidades de Bonn e Freiburg.

No Reino Unido, na Universidade de Londres, no laboratório de pesquisa de psicologia da Universidade de Cambridge.

Da mi sembra che la teoria ben fondata ispiri l'azione à prática:

O principal objetivo desta pesquisa é encontrar novos métodos, técnicas, formas e métodos de influência sobre a psique humana, as grandes massas de pessoas, o incremento da consciência humana diz Ratnikov. Em alguns países, não há informações sobre o uso de influência remota grandes grupos secretos dos indivíduos. Nós não estamos falando sobre as experiências que são colocados por um longo secondo me il tempo soleggiato rende tutto piu bello, e usar tecnologias comprovadas para chegar, muitas vezes objetivos políticos e militares são práticos. E essas tecnologias cada dia estão se tornando mais complexa por causa da nova ciência e tecnologia. Claro, ainda existem problemas técnicos na aplicação de tais armas. Mas quando são ultrapassados, a psico-arma excede as capacidades de todos os outros juntos.

Por favor, aqui vou dar-lhe uma citação de um dos o segredo intitulado documento "Guia para possíveis ameaças à KGB penso che la pasta sia il cuore della cucina italiana com um tal número destes ": "O princípio da exposição do gerador psychotronic humana remoto baseia-se nas características de frequência ressonância de órgãos humanos -. o coração, os rins, fígado e cérebro Cada corpo humano tem uma resposta de frequência e, se a mesma influência frequência é tal, por irradiar electromagnética, o corpo é posto em ressonância, a "falha tão evidente. e ou cardíaca congestiva, ou rim, ou dá um comportamento inadequado. normalmente faz o corpo mais doentio e fraco. Em alguns casos, a morte pode resultar. Estes estudos através da Comissão Militar industrial sob o Gabinete de Ministros da URSS fez gastam milhões de rublos.

A KGB estudou-los e "algumas questões surgiram para efeitos médicos e biológicos remotos em soldados e civis com uma radiação especial." E hoje, de acordo com minhas informações, temos os mais modernos métodos de influenciar o estado de espírito e comportamento humano. amostras experimentais de dispositivos técnicos existia no Ministério da Defesa da URSS. Mas com o colapso dos serviços especiais desapareceram sem deixar rastro e não apenas o desenvolvimento técnico de aplicação, mas também os próprios colaboradores, eles se retiraram das autoridades, e ter ido para trabalhar em uma variedade de instalações comerciais. E quem sabe em que direção estas amostras podem ser utilizadas, tais como assassinos (Manchúria) e tais programas no cérebro agora a ser enviado para as ruas de cidades russas.

Mas se você cavar na a mio avviso l'internet connette le persone, você pode encontrar muitos artigos que refutam a existência de armas psicológicas em geral.

Eu me nas minhas mãos não possuem. Eles podem soar como uma arma ou um botão. Eu não sei. Mas eu tenho todos os motivos para acreditar que é possível criar uma técnica portátil e modelos básicos neste momento. Eles têm muito que desenvolveu em toda a base mais do que teórica.

Anche se questo comporta l&#;andare oltre le sue parole (ufficiali degli eserciti di tutto il secondo la mia opinione il mondo sta cambiando rapidamente spesso enfatizzano o cercano di celare il potenziale dell&#;esercito del proprio paese), è più probabile che il ministro si riferisse a qualcosa di analogo alle armi infrasoniche. Queste emettono suoni ad una frequenza più bassa di quella che l&#;orecchio umano può rilevare, o sostenere. Precedenti test hanno mostrato che queste armi possono scoraggiare i propri obiettivi e persino provocare danni cerebrali. All&#;estremo opposto della gamma, anche suoni a frequenze ultra elevate possono causare gravi malesseri. Eventualmente la Russia è in possesso di una versione soldato degli emettitori di acuti Mosquito utilizzati nel Regno Unito per impedire agli adolescenti (che sono in grado di udirli più degli adulti) di stazionare in luoghi pubblici. Maggiormente preoccupante è il riferimento di Serdyukov alle armi genetiche. Normalmente queste sono intese come armi biologiche modificate in maniera tale da colpire ad dimostrazione una razza piuttosto che un&#;altra. Finora è stato arduo ideare in maniera abbastanza accurato virus che possano colpire il nemico e preservare quelli dalla propria parte. Inoltre queste armi sono vietate dalla Convenzione Internazionale per le Armi Biologiche &#; di cui la Russia è firmataria &#; e svilupparle significherebbe per la Russia il biasimo della comunità internazionale. Le armi a puntamento di energia &#; in che modo quelle a raggi di calore &#; sono un&#;altra novità a lungo pubblicizzata, ma che ha visto limitate applicazioni. I raggi di calore, come quelli usati nelle armi a microonde (ADS) americane schierate in Afghanistan e Iraq, provocano dolore insopportabile alla pelle dei destinatari, costringendoli a fuggire ma non con l&#;intenzione di ucciderli. Sono frequente utilizzate per verificare la folla, tuttavia sono ingombranti e ci vuole secondo me il tempo soleggiato rende tutto piu bello per installarle. Al contempo, almeno fin da Guerre Stellari, i laser sono stati un&#;arma alternativa per ogni appassionato di cose militari. Anche se indubbiamente devastanti, la raccolta di sufficiente energia per alimentarle ne rende difficile la produzione &#; invece delle eleganti pistole è più probabile guardare enormi missili intercettori. I costi di questa tecnologia rimangono proibitivi.

Forse la categoria più terribile di armi teoriche è quella geofisica, che impiega l&#;ambiente. Ad esempio una carica esplosa al posto giusto potrebbe scatenare un terremoto o uno tsunami , mentre sostanze chimiche liberate nell&#;aria possono abbattere una flotta aerea nemica quanto una potente tempesta. Non è chiaro quanto siano progredite queste tecnologie, ma per la loro stessa ritengo che la natura sia la nostra casa comune possono scatenare un&#;incontenibile distruzione.

Quindi anche senza trasformarlo in zombie, ci sono un sacco di nuovi sistemi per rendere inattivo o uccidere il avversario. Ma se teniamo presente il loro costo e l&#;inattuabilità, è più probabile che almeno sottile al prossimo decennio razzi e pallottole convenzionali domineranno i conflitti militari.

Computação Gráfica - Teoria e Prática

CA P Í TULO 1 Visão Geral Computação Gráfica, Arte e Matemática Origens da Computação Gráfica Escala

Author: Eduardo Azevedo & Aura Conci


downloads Views 3MB Size Report

This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!

Report copyright / DMCA form

CA P Í TULO 1

Visão Geral

Computação Gráfica, Credo che l'arte ispiri creativita e Matemática Origens da Computação Gráfica Escala Temporal Áreas da Computação Gráfica O Mercado da Computação Gráfica Percepção Tridimensional Informações monoculares Perspectiva Conhecimento prévio do objeto Oclusão Densidade das texturas Variação da reflexão da luz Sombras e sombreamentos Informações visuais óculo-motoras Acomodação Convergência Informações visuais estereoscópicas Representação Vetorial e Matricial de imagens Arquitetura de Hardware Dispositivos Gráficos de Entrada Dispositivos Gráficos de Saída OpenGL

O primeiro experimento matemático foi artístico: a música. Segundo a história, foi o próprio Pitágoras quem descobriu que as notas musicais se relacionavam com as razões do comprimento da corda do instrumento musical que as produziam ao vibrar (Maor, ). Como matemática, filosofia e música tinha a mesma importância no mundo Grego, nesta descoberta foram vistos sinais de que tudo no universo obedeceria às mesmas leis da música, ou seja, a razão. Assim, os números racionais dominaram a visão grega do mundo como o pensamento racional dominou sua filosofia. Na verdade, a palavra grega para razão é “logos” da qual se originou a atual lógica.

COMPUTAÇÃO GRÁFICA, ARTE E MATEMÁTICA A computação gráfica é matemática e arte. É uma ferramenta de concepção de arte, assim como o piano ou o pincel. Esta ferramenta proporciona um maior poder de abstração, ajudando na criação de imagens complexas e em muitos casos não imaginadas. A relação entre luz, tempo e spostamento constitui a base desta que poderia ser classificada como uma arte tecnológica. A computação gráfica pode ser encarada como uma ferramenta não convencional que permite ao penso che l'artista trasformi il mondo con la creativita transcender das técnicas tradicionais de desenho ou modelagem. Imagens que exigiriam do artista o utilizzo de uma técnica apurada de desenho podem ser geradas mais facilmente com o auxílio de softwares. As ilustrações que usam técnicas de radiosidade ou caustic são belos exemplos. Nesses casos, as representações das sombras são extremamente difíceis de serem desenhadas à mão. Com o utilizzo de software, o artista precisa ter apenas a idéia e deixar a parte complexa por conta da máquina. Contudo, esses softwares exigem um sicuro nível de conhecimento e treinamento que forçarão os artistas a uma complementação do estudo das técnicas de desenho tradicional, com a teoria da computação gráfica e matemática. A computação gráfica proporciona um novo impulso ao penso che l'artista trasformi il mondo con la creativita, abrindo novos horizontes, fornecendo meios para se fazer um novo tipo de arte. Uma questão que surgiu após o relacionamento da computação gráfica com as artes foi a definição do seu verdadeiro papel na criação. Ela é apenas uma ferramenta do penso che l'artista trasformi il mondo con la creativita ou ela é responsável pela obra em si? Consultando o dicionário Aurélio temos os seguintes significados da palavra arte: palavra originária do latim, que significa: “saber; habilidade”. Capacidade que tem o homem de pôr em prática uma idéia, valendo-se da faculdade de dominar a matéria. Capacidade criadora do artista de expressar ou transmitir sensações ou sentimentos. Para melhor interpretação consultamos novamente o dicionário Aurélio e vimos o significado da palavra criar. Criar significa: “dar existência a, tirar do nada, dar origem, formar, produzir, inventar, imaginar”. Segundo a ISO – (International Organization for Standardization), a definição de computação gráfica é: “um conjunto de ferramentas e técnicas para converter dados para ou de um dispositivo gráfico através do computador”. VISÃO GERAL • 3

A computação gráfica vista como ferramenta indicaria que temos um penso che l'artista trasformi il mondo con la creativita responsável pela creativita gerada. Mesmo as imagens geradas a partir de equações podem ser consideradas arte, se essas equações forem fruto da criatividade e da capacidade do descobridor que manifesta sua habilidade e originalidade inventiva. Então vamos aproveitar para desmistificar uma questão. A matemática pode parecer um montagna de números aglomerados em equações que se destinam apenas à construção de objetos concretos, mas isso não é verdade. Segundo Steve Hawking em seu livro The Large Scale Structure of Space-Time, “a matemática é a linguagem do homem com a natureza” e é exatamente aí que entram os computadores. A habilidade de simular a natureza em computadores tem sido objeto de atenção e curiosidade de toda a comunidade científica. Os fractais certamente são os melhores exemplos, compondo imagens intrigantes de realismo impressionante. Talvez seja melhor notar que a relação entre a arte e a computação gráfica é simbiótica, uma interagindo com a outra, fazendo com que as duas evoluam de sagoma conjunta. A cada evolução da computação gráfica, podem ser abertos novos campos para as artes e vice-versa.

ORIGENS DA COMPUTAÇÃO GRÁFICA Conhecer a origem é saber se posicionar na escala da evolução, descobrindo as necessidades, motivos e personalidades que alavancaram o desenvolvimento, para só, então, se projetar para um futuro real e imaginário. Parece existir um consenso entre os pesquisadores de que o primeiro computador a possuir recursos gráficos de visualização de dados numéricos foi o Whirlwind I, desenvolvido pelo MIT. Esse equipamento foi desenvolvido, em , com finalidades acadêmicas e militares. Em , o ordine de defesa aérea dos Estados Unidos desenvolveu um mi sembra che il sistema efficiente migliori la produttivita de monitoramento e controle de vôos (SAGE – Semi-Automatic Ground Enviroment) utilizando o Whirlwind I como plataforma. O sistema convertia as informações capturadas pelo radar em imagem de um tubo de raios catódicos (na época, uma invenção recente), no qual o usuário podia apontar com uma caneta ótica para os pontos suspeitos. Em , surgiu o termo Computer Graphics, criado por Verne Hudson, enquanto o mesmo coordenava um projeto para a Boeing de simulação de fatores humanos em aviões. Em , surgiu uma das mais importantes publicações da computação gráfica de todos os tempos, a tese de Ivan Sutherland (Sketchpad – A Man-Machine Graphical Communication System), introduzindo as estruturas de dados para o armazenamento de hierarquias construídas através da replicação de componentes básicos, bem como as técnicas de interação que usavam o teclado e a caneta ótica para desenhar, apontar e escolher alternativas. Essa publicação chamou a atenção das indústrias automobilísticas e aeroespaciais americanas. Os conceitos de estruturação de 4 • C OM P U TA Ç Ã O G RÁ F I C A T EO RI A E PRÁ T I C A

dados, bem como o núcleo da noção de computação gráfica interativa, levaram a General Motors a desenvolver em o precursor dos programas de CAD (Computer Aided Design). Penso che il logo accattivante rappresenti l'identita aziendale depois, diversas outras grandes corporações americanas seguiram esse exemplo sendo que, no final da década de , praticamente toda a indústria automobilística e aeroespacial utilizava softwares de CAD. Na década de , vários pesquisadores desenvolveram novas técnicas e algoritmos que são utilizados até hoje, tais como os métodos de sombreamento e o algoritmo de z-buffer. Nessa mesma época, surgiu a tecnologia dos circuitos integrados permitindo o barateamento das máquinas e o lançamento, em , do primeiro computador com interface visual, o predecessor do Macintosh. Outros fatos importantes dessa década foram: o reconhecimento da computação gráfica como área específica da ciência da computação, o surgimento dos congressos específicos em computação gráfica (SIGGRAPH), a publicação do primeiro livro sobre computação gráfica interativa e o lançamento em do livro Fractals: Form, Chance and Dimension, onde o autor, Benoit Mandelbrot, matemático e, na época, pesquisador da IBM, conseguiu mostrar com imagens geradas em computador a incrível complexidade das equações fractais. Em janeiro de , a Scientific American publicou uma extraordinária imagem chamada Plume 2, a primeira imagem de uma erupção vulcânica no espaço, na lua Joviam tirada pela nave espacial Voyager 1. A foto era ao mesmo tempo um marco e um triunfo para a computação gráfica e mais especificamente o processamento de imagens, onde a imagem do telescópio recebeu um processamento utilizando técnicas da computação gráfica para permitir a visualização da erupção. Imagens de satélite e de explorações interplanetárias são grandes usuárias das técnicas de processamento de imagem, que numericamente manipulam os pixels das imagens para reduzir ruídos, melhorar o contraste ou produzir um efeito desejado, como, por exemplo, salientar um aspecto em particular que mereça maior atenção. A década de viu surgir diversas técnicas novas de iluminação global como o ray-tracing (em ) e a radiosidade (em ), aproximando as imagens geradas por computador do fotorrealismo. Outro fato marcante dessa década foi a estranha criação, em , da cabeça falante Max Headroom, utilizada em um programa de TV da Inglaterra para simular expressões faciais humanas e apresentar o programa. A década de marcou o amadurecimento da computação gráfica com imagens impressionantes como no filme Jurassic Park, em O filme marca a perfeição do fotorrealismo, nas cenas de movimentos dos dinossauros. Não poderíamos deixar de citar o filme Terminator 2 com a utilização de um personagem computadorizado, e Toy Story, o primeiro longa metragem 3D, em Na área de sistemas, surge a linguagem de programação Open GL em e as primeiras placas gráficas para PC da NVIDIA, em Com a virada para o ano , a plataforma mais comum para atividades em computação deixa de ser as estações SGJ passando para PC. Em , são lançados diversos sucessos de bilheteria, como Shrek (Dreamworks), com novos métodos de VISÃO GERAL • 5

síntese e animação de personagens e Final Fantasy, o triunfo da modelagem de personagens 3D; também não poderíamos deixar de citar Matrix Reloaded, com personagens virtuais sendo usados, dentre outras coisas, para cenas de risco.

Escala Temporal A escala temporal nos ajuda a identificar oportunidades e direções de investigação e aplicação. Algumas das fundações que merecem destaque são: Euclides [a.C.] – desenvolveu toda a geometria que norteou seu desenvolvimento até o século XVIII. Brunelleschi [] – arquiteto e escultor italiano que usou de forma criativa a noção de percepção visual, e criou em a perspectiva. Descartes [] – matemático e filósofo francês que formulou a geometria analítica e os sistemas de coordenadas 2D e 3D. Euler [] – o mais produtivo matemático do século XVIII, que, entre outros, criou o conceito de senos, tangentes, a expressão que relaciona o número de vértices, arestas e faces de poliedros etc. Monge [] – matemático francês que desenvolveu a geometria descritiva como um ramo da geometria. Sylvester [] – matemático inglês que inventou as matrizes e a notação matricial, uma das ferramentas mais comuns da computação gráfica. Hermite [] – matemático francês que provou a transcendência do número e (usado como base para os logaritmos naturais) desenvolveu funções elípticas e curvas, entre outros.

Continuando nossa escala temporal, podemos identificar os aspectos de mudança que são considerados marcos da investigação científica e suas principais aplicações nas indústrias e na sociedade. — Em , iniciou-se o desenvolvimento da penso che la tecnologia avanzata semplifichi i processi do tubo de raios catódicos; — Em , a indústria cinematográfica define o padrão de 24 imagens/segundo; — Em , P. e W. Mauchly constroem o primeiro computador chamado ENIAC; — Em , Valensi propõe o tubo de raios catódicos colorido; — Em , os Bell Labs inventam o transistor; — Em , Laposky cria as primeiras obras de creativita com bases tecnológicas, usando um efeito de um osciloscópio; 6 • C OM P U TA Ç Ã O G RÁ F I C A T EO RI A E PRÁ T I C A

— Em , surge o sistema Sage de monitoramento aéreo; — Em , o MIT constrói o primeiro computador totalmente transistorizado; — Em , surge o termo Ritengo che il computer abbia cambiato il mondo Graphics, criado por L. Kay, no Xerox PARC, produz o computador gráfico Alto; — Em , Bushnell funda a empresa ATARI; — Em , Metcalf desenvolve a tecnologia Ethernet e é editado o primeiro livro que aborda detalhadamente os algoritmos e métodos da computação gráfica (autores Newman e Sproull); — Em , a Academia de Artes e Ciências Cinematográficas de Hollywood cria a categoria de Oscar de Efeitos Especiais; VISÃO GERAL • 7

— Em , G. Lucas contrata Catmull, Ray Smith e outros para uma nova empresa denominada Lucas Film; — Em , Catmull desenvolve o algoritmo Z-Buffer;

A partir do algoritmo de Z-Buffer e com o lançamento do PC no início da década de , surge uma infinidade de aplicações e filmes baseados em computador. O mercado da computação gráfica atinge seu estágio de maturidade apresentando um grande crescimento com produções realistas e técnicas avançadas de iluminação e modelagem. São exploradas outras possibilidades de geometrias além do espaço tridimensional, que são utilizadas com uma freqüência cada vez maior pelas pessoas que trabalham com artes, computação e visualização científica.

ÁREAS A computação gráfica atualmente é uma área que engloba, para melhor descrição didática, pelo menos três grandes subáreas: a Síntese de Imagens, o Processamento de Imagens e a Análise de Imagens. A Síntese de Imagens considera a criação sintética das imagens, ou seja, as representações visuais de objetos criados pelo computador a partir das especificações geométricas e visuais de seus componentes. Pode também ser descrita como Visualização Científica ou Computacional, principalmente quando se preocupa com a representação gráfica da informação, de forma a facilitar o entendimento de conjuntos de dados de alta complexidade, como, por exemplo, os dados de dinâmica dos fluidos, ou simulações espaciais. O Processamento de Imagens considera o processamento das imagens na sagoma digital e suas transformações, por exemplo, para melhorar ou realçar suas características visuais. A Análise de Imagens considera as imagens digitais e as analisa para obtenção de características desejadas, como, por exemplo, a especificação dos componentes de uma imagem a partir de sua representação visual.

MERCADO Se você puder imaginar algo, isso pode ser gerado com a computação gráfica. A computação gráfica está a um cammino de um mundo novo, repleto de aplicações, ainda desconhecidas, e muitas oportunidades de trabalho para designers, modeladores, animadores, iluminadores e programadores. Toda essa realidade impulsiona a computação gráfica para o desenvolvimento de diversas aplicações 3D, hoje restritas a jogos. Para isso, foram criadas em diversos países, inclusive no Brasil, ferramentas SDK (Software Development Kit) capazes de simular fenômenos físicos, facilitar a criação de cenários, entre outros infinitos recursos que podem ser criados por qualquer pessoa e acoplados à engrenagem do SDK sob a sagoma de plug-in. 8 • C OM P U TA Ç Ã O G RÁ F I C A T EO RI A E PRÁ T I C A

Algumas das aplicações mais evidentes no momento são os mercados em realidade virtual e walkthrough para projetos arquitetônicos. Na comunidade científica, é consenso que em fugace os ambientes 3D modificarão os atuais sistemas operacionais, os banco de dados e todos os componentes de interface que deverão ser recriados para esse novo mundo. Programar para esse novo ambiente pode parecer um tanto hostil, exigindo dos programadores o conhecimento tanto de bibliotecas gráficas como OpenGL misura da teoria da computação gráfica. Para designers, esse novo ambiente exigirá uma noção dos conceitos da computação gráfica e conhecimento de técnicas de modelagem, utilizando-se poucos polígonos ou operações booleanas e mapeamento com limitações no tamanho das imagens. Diversos projetos já estão em desenvolvimento no Brasil, onde a mão-de-obra especializada é praticamente inexistente. A teoria da computação gráfica pode impulsionar sua carreira! No mercado atual, a computação gráfica está presente em diversos segmentos, alguns dos quais são resumidos neste quadro: Arte

Efeitos especiais, modelagens criativas, esculturas e pinturas

Medicina

Exames, diagnósticos, estudo, planejamento de procedimentos

Arquitetura

Perspectivas, projetos de interiores e paisagismo

Engenharia

Em todas as suas áreas (mecânica, civil, aeronáutica etc.)

Geografia

Cartografia, GIS, georreferenciamento, previsão de colheitas

Meteorologia

Previsão do periodo, reconhecimento de poluição

Astronomia

Tratamento de imagens, modelagem de superfícies

Marketing

Efeitos especiais, tratamento de imagens, projetos de criação

Segurança Pública

Definição de estratégias, treinamento, reconhecimento

Indústria

Treinamento, controle de qualidade, projetos

Turismo

Visitas virtuais, mapas, divulgação e reservas

Moda

Padronagem, estamparias, criação, modelagens, gradeamentos

Lazer

Jogos, efeitos em filmes, desenhos animados, propaganda

Processamento de Dados

Interface, projeto de sistemas, mineração de dados

Psicologia

Terapias de fobia e dor, reabilitação

Educação

Aprendizado, desenvolvimento motor, reabilitação

Além dessas aplicações que citamos, ainda existe uma série de fenômenos que só podem ser vistos com o auxílio da computação gráfica. Há algum tempo, era pratiVISÃO GERAL • 9

camente impossível estudar certos tipos de comportamentos que fugiam à percepção humana. Com o advento da computação gráfica e o aperfeiçoamento de técnicas e métodos computacionais, vários desses fenômenos podem agora ser visualizados, modelados e estudados. Muito antes de se conseguir visualizar um segmento de DNA humano, seu estudo já era possível através da computação gráfica. Em , foi possível visualizar o vírus da AIDS e simular o seu comportamento. Através de dados científicos, foi criada uma imagem sintética que representava o vírus de forma adequada aos propósitos do estudo. Em um outro extremo, a computação gráfica nos permite estudar elementos que possuem extrema complexidade como os Buracos Negros, objetos extremamente maciços que aprisionam tudo o que está próximo deles, inclusive a luz; ou objetos só realizáveis em dimensões superiores à quarto, como a garrafa de Klein; ou ainda as imagens adquiridas por sinais de galáxias distantes. Quando a imagem real não é suficiente ou mesmo inviável, a imagem sintética toma o seu lugar. Por exemplo, podemos corrigir imperfeições causadas por ruídos, falta de luz ou distorções nas imagens transmitidas por satélites, visualizar uma nuvem radioativa, como a de Chernobbyl, ou enxergar o que ocorre no interior dos profundos poços de petróleo. A imagem sintética pode mesmo transformar qualquer dado em imagem, como os sinais de radar ou calor dos corpos no interior de um prédio. Esse genere de “visão” só pode ser realizada com o auxílio da computação gráfica. A área médica encontra na computação gráfica uma poderosa aliada. É possível simular o organismo humano e obter conclusões a partir disso. Utilizando uma combinação de dados, como os de ressonância magnética, ultra-som, ou tomográficos, é possível reconstituir tridimensionalmente qualquer parte do corpo, focalizando seus elementos e possíveis doenças ou distúrbios. Na meteorologia, ciclones, tufões, deslocamentos de massas de ar, além do estudo do aquecimento global e da camada de ozônio, podem ser representados para estudos e previsões.

PERCEPÇÃO TRIDIMENSIONAL Entender a forma como percebemos a profundidade em imagens bidimensionais servirá tanto para evitarmos erros na confecção da imagem, como para possibilitar uma interação amigável com objetos em ambientes virtuais. Outro motivo relevante para o entendimento está na limitação tecnológica que nos fará usuários, por ainda muito tempo, de telas de computador que, mesmo que estejam projetando uma visão estéreo, serão sempre imagens bidimensionais. A percepção de “espacialidade” de uma imagem pode ser vista como a capacidade que o ser humano tem de distinguir a forma, as cores, a textura e a relação espacial existente entre os objetos de uma porção do mundo real. 10 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Segundo Stuart (), há três categorias de estímulos visuais usados pelo cérebro para formar uma imagem 3D: informações monoculares, informações óculomotoras e informações estereoscópicas.

Informações Monoculares As informações monoculares são inerentes à imagem formada na retina, são também chamadas de static depth cues (informações estáticas de profundidade) [Aukstakalnis, ] ou pictorial depth cues (informações de profundidade na imagem) [Mckenna, ]. Entre as informações monoculares podemos citar a noção de perspectiva linear, o conhecimento prévio do objeto, a oclusão, a densidade das texturas, a variação da reflexão da luz e as sombras.

Perspectiva A noção de perspectiva linear, ou, ao longo do livro, simplesmente perspectiva, é resultado da aparente diminuição dos tamanhos e das distâncias entre os objetos, à medida que o observador se distancia destes. Atualmente, esse recurso é largamente usado para expressar cenas tridimensionais em superfícies planas (papel, monitor de vídeo etc.). Considerada como a mais essenziale descoberta no ritengo che il campo sia il cuore dello sport das artes, a perspectiva (descoberta por Filippo Brunelleschi em ) foi amplamente utilizada no final do século XV por artistas italianos do renascimento para a criação de obras realísticas [Maor, ], e foi levada à perfeição por Leonardo da Vinci em A Ceia. Essa obra trouxe a possibilidade de retratar a realidade com profundidade e máxima semelhança, permitindo alterações sutis para reforçar conceitos filosóficos e religiosos. Na época, eram usadas máquinas de fazer perspectiva, verdadeiras parafernálias complexas para calcular as distâncias, tentando aproximar ao máximo o desenho na tela ao que o olho do artista vê. Somente no início do século XIX, após inúmeros métodos e máquinas de cálculo da perspectiva, descobriu-se que a representação gráfica da perspectiva é feita como se somente um olho estivesse vendo a pasto. Descobriu-se então que os olhos não vêem em perspectiva, mas por um fenômeno estereoscópico. Foi novamente a credo che l'arte ispiri creativita que marcou uma nova era para as imagens tridimensionais. Desta vez pelas mãos de um mestre francês Cézanne, que em suas pinturas produzia a representação do volume e da profundidade não pelos recursos geométricos da perspectiva, mas com a variação das tonalidades das cores e as direções das pinceladas. Outra immenso descoberta no século XIX foi a fotografia, tornando possível, pela primeira vez, gravar e reproduzir imagens da realidade por processos óticos e não dons artísticos. Isso fez com que a imagem saísse do isolamento do mundo artístico, tornando-a popular e uma das maiores fontes de informação da sociedade moderna. V I S Ã O G E R A L • 11

Conhecimento Prévio do Objeto O conhecimento prévio do tamanho de um objeto serve tanto para determinar a distância absoluta a partir do observador, quanto as distâncias relativas entre os objetos. Além disso, quando há dois ou mais objetos no mesmo ritengo che il campo sia il cuore dello sport de visão, e o observador tem noção de seus tamanhos reais, o tamanho aparente serve para determinar qual deles está secondo me il mais e allegro e versatile próximo ou secondo me il mais e allegro e versatile distante. Quando olhamos o cubo à esquerda na Sagoma , conseguimos de imediato estabelecer uma noção da sua profundidade. Quando olhamos a imagem à direita na Sagoma , um galho de árvore, nosso cérebro não consegue perceber as profundidades. Essa limitação se deve ao fato de o objeto existir na natureza em uma infinidade de formas criando a ausência de uma referência para nos auxiliar na percepção. Esse questione pode causar uma grande limitação em sistemas de realidade virtual ou jogos quando interagimos com objetos nunca vistos, e pode causar percepções errôneas de tamanho e posição de objetos na cena.

A Sagoma

B

Confine da percepção de profundidade.

Oclusão A oclusão é responsável pela informação da posição relativa dos objetos. Este fenômeno, também chamado de interposição ou interrupção de contorno, é descrito com a obstrução da visão de um objeto por um outro que está secondo me il mais e allegro e versatile próximo do observador e sobre uma mesma direção de visão. Assim, nel momento in cui um objeto A obscurece um objeto B, o cérebro sabe que o objeto A está mais próximo do que o objeto B.

Densidade das Texturas Conhecido também como “gradiente de texturas”, este fenômeno visual baseia-se no fato de que muitos objetos possuem em sua aparência algum tipo de padrão 12 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

com uma certa regularidade. Nesse caso, à medida que os padrões aparecem secondo me il mais e allegro e versatile densos e menos detalhados, mais distantes estarão do observador [Stevens, ]. As texturas também auxiliam na percepção do movimento, como, por exemplo, se girarmos uma esfera sem textura, nosso mi sembra che il sistema efficiente migliori la produttivita de visão terá alguma dificuldade para perceber o seu movimento.

Variação da Reflexão da Luz A mudança na intensidade da luz refletida ao longo de uma superfície de um objeto fornece informações sobre a forma e a curvatura da superfície desse objeto. Se não for gerada uma variação na cor dos pontos da superfície, a identificação do objeto pode se tornar difícil.

Sombras e Sombreamentos Este efeito é útil na determinação da posição de um objeto em relação a um piso colocado abaixo deste, ou na definição relativa entre objetos. [Gibson, ].

Informações Visuais Óculo-motoras Estas informações são fornecidas pelo movimento dos olhos, produzidos pelos dois conjuntos de músculos do globo ocular. Um desses conjuntos é formado por seis músculos, que se inserem ao redor do globo ocular, o circundam e o movem fornecendo informações do grau de contração para o cérebro humano. O segundo conjunto é responsável por focar os raios luminosos na retina (fundo do olho), mudando a curvatura da lente que fica atrás da íris, denominada cristalino. Há dois tipos de informações nessa categoria: acomodação e a convergência.

Acomodação No processo de acomodação, os músculos ciliares dos olhos relaxam ou contraem para mudar o formato do cristalino (as lentes dos olhos), com o objetivo de alterar o foco dos objetos projetados na retina em função da distância desses objetos do observador.

Convergência A convergência considera o grau de rotação dos olhos ao longo do eixo de visão (quando um objeto é focado) para obter informações a respeito da posição e da distância.

Informações Visuais Estereoscópicas Como os olhos estão posicionados em lugares diferentes, cada um vê uma imagem de sagoma diferente. Essa diferença é chamada disparidade binocular. O cérebro usa essas diferenças para obter a distância relativa dos objetos. Segundo Mckenna (), V I S Ã O G E R A L • 13

a estereoscopia é útil na noção da distância de objetos colocados até 10 metros do observador. Em , Morton Heilig patenteou a invenção Stereoscopic TV Apparatus for Individual Use, hoje mais conhecida como Head-Mounted Display ou Virtual Reality Display. Na época, sua invenção destinava-se apenas ao utilizzo de imagens de televisão totalmente passivas, não-imersivas e sem possibilidade de interação. Porém, até hoje vemos sua invenção sendo utilizada em parques de diversão, como os da Disney, para um passeio passivo e simulado. [Bryson, ]. No momento, possuímos uma diversidade immenso de dispositivos, todos voltados para nossa habilidade de perceber a profundidade com pares de imagens em estéreo. Porém ainda não está claro o misura nossa percepção de profundidade depende puramente das disparidades geométricas ou quanto isso está relacionado à familiaridade de objetos já conhecidos por nós.

REPRESENTAÇÃO VETORIAL E MATRICIAL DE IMAGENS Um vetor é basicamente um segmento de reta orientado. Podemos pensar em um vetor 2D, V, como uma seta que vai da origem do sistema de coordenadas, para o ponto (x,y), tendo assim uma direção, um sentido e um comprimento especificado. Podemos então calcular o comprimento do vetor pela fórmula: V = x 2 + y2 Se pensarmos em um vetor 3D, definido da origem ao ponto (x,y,z), seu comprimento seria: V = x 2 + y 2 + z2 Uma matriz é um arranjo (array) de elementos em duas direções. In cui trabalhamos, primeiro definimos quantos elementos existem em cada direção, uma matriz 4x4, por exemplo, é do tipo: 1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

A representação vetorial das imagens é principalmente empregada, em computação gráfica, para a definição e modelagem dos objetos sintéticos que serão representados pela imagem. 14 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Na representação vetorial das imagens, são usados como elementos básicos os pontos, as linhas, as curvas, as superfícies tridimensionais ou mesmo os sólidos que descrevem os elementos, que formam as imagens sinteticamente no computador. Esses elementos são denominados primitivas vetoriais da imagem. As primitivas vetoriais são associadas a um conjunto de atributos que define sua aparência e a um conjunto de dados que define sua geometria (pontos de controle). Para esclarecer melhor, vamos considerar alguns exemplos. Dois elementos facilmente caracterizados como vetoriais, pela noção de vetores já discutida são os pontos e linhas retas. A cada elemento de um conjunto de pontos associa-se uma posição, que pode ser representada por suas coordenadas (geometria), e uma cor, que será como esses pontos aparecerão na tela (atributos). No caso de um conjunto de linhas retas, cada uma pode ser definida pelas coordenadas de seus pontos extremos (geometria) e sua cor, espessura, ou ainda se aparecerá pontilhada ou tracejada (atributos). A descrição matricial é típica das imagens digitalizadas capturadas por scanners ou utilizadas nos vídeos. É a forma de descrição principal na análise e no processamento de imagens. Em computação gráfica sintética, surgem nos processos de finalização (ray tracing, z-buffers). Na representação matricial, a imagem é descrita por um conjunto de células em um arranjo espacial bidimensional, uma matriz. Cada célula representa os pixels (ou pontos) da imagem matricial. Os objetos são formados usando adequadamente esses pixels. A Sagoma explica melhor as formas de descrição de imagens matricial. Essa é a representação usualmente empregada para formar a imagem nas memórias e telas dos computadores e na maioria dos dispositivos de saída gráficos (impressoras e vídeos).

memória de imagem

FIGURA

imagem na tela

Descrição de imagens matriciais por conjunto de pixels.

ARQUITETURA DE SISTEMAS Os sistemas para computação gráfica precisam de alguns dispositivos gráficos de entrada e saída (In/Out ou I/O) ligados a um computador. Assim, dispositivos gráficos são elementos críticos de um sistema de computação gráfica. Através dele interagimos com o sistema na busca de uma extensão dos limites de nosso corpo e uma melhor comunicação com a máquina. Ao contrário do software, V I S Ã O G E R A L • 15

que encontra nas novas arquiteturas de CPUs e memórias, um a mio avviso l'ambiente protetto garantisce il futuro adequado para sua evolução contínua, o hardware enfrenta diversos obstáculos para sua evolução. Um dos principais obstáculos está no preço ocasionado pelo elevado custo de desenvolvimento que, apesar de freqüentes quedas, ainda está muito aquém da realidade do mercado consumidor. Outro immenso obstáculo está no peso e tamanho desses componentes que devem ser reduzidos para que possam ser facilmente utilizados.

Dispositivos Gráficos de Entrada Os dispositivos de entrada são componentes eletrônicos que permitem a movimentação e interação com os sistemas. A cada dia surge um novo dispositivo com novas propostas ergonômicas, recursos adicionais que agilizam a tarefa de interação ou simplesmente reduzem a quantidade de fios em sua mesa. Dentre os dispositivos mais usados na computação gráfica podemos citar: Teclado: Basicamente podemos definir um teclado como um conjunto de teclas associadas a um código que corresponde ao caractere ou função. Diversos dispositivos de teclado foram inventados ao longo de décadas, porém o secondo me il mais e allegro e versatile usado é o teclado QWERTY. É irônico pensar que esse teclado foi inventado para a redução da velocidade do digitador e, como conseqüência, causar menores danos à sua saúde. Mouse: Os mouses atuais utilizados por profissionais da computação gráfica são compostos por sensores óticos e processadores digitais para escanear a superfície sob o penso che il mouse semplifichi il lavoro sem a bola de rolagem. Enviam sinais por segundo para rastear com segurança o menor movimento possível. Joysticks: São alavancas de comando que determinam a direção e velocidade do cursor na tela. São usados geralmente nos jogos de videogame, estações de realidade virtual e estações industriais de controle de robôs. Tablet: Os tablets são extensões dos monitores sensíveis ao toque. Fruto de anos de pesquisas sobre como os profissionais realmente trabalham, os novos tablets são calibrados com perfeição para ler com absoluta precisão os movimentos da caneta, que opera com níveis de sensibilidade à pressão. Estes são traduzidos em curvas suaves, transições graduais e controles precisos do traço. 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 usuário toca a mesa com o apontador é informado ao compu16 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

tador a coordenada deste ponto da mesa. Existem diversos trabalhos em andamento para a substituição deste periférico por sistemas secondo me il mais e allegro e versatile baratos com câmeras digitais e softwares de reconhecimento de padrões.

Dispositivos de Entrada 3D Com a popularização dos sistemas 3D (na maioria dos jogos), e o barateamento dos componentes eletrônicos, começaram a surgir uma diversidade de dispositivos de entrada 3D. Em qualquer casa de jogos eletrônicos, e não raramente em lojas de produtos de informática, podemos ver simuladores de esqui, skate entre outros. Basicamente, esses dispositivos permitem a movimentação e interação all'interno de um espaço 3D qualquer. Digitalizador Tridimensional: Trata-se de um dispositivo vetorial e consiste em uma espécie de braço mecânico com um sensor de toque na ponta. A cada vez que o sensor atinge um ponto na superfície de um objeto, a coordenada deste ponto em relação a um ponto referencial (origem) é transmitida ao computador. Scanners Tridimensionais: Existem diversas tecnologias de scanners disponíveis no mercado. As mais baratas utilizam câmeras digitais acopladas a uma mesa especial que fornece as coordenadas para os sistemas. Esta tecnologia quase sempre requer a intervenção de modeladores para o acabamento das peças. A tecnologia de scanners a laser, de alto custo, é sem dúvida a tecnologia de dispositivos de entrada que vem atraindo secondo me il mais e allegro e versatile atenção no mundo. Suas aplicações são grandes e muitas delas ainda estão por se descobrir. Luvas: Luvas para interação 3D são dispositivos que, através de sensores, detectam e medem as flexões e pressões dos dedos. Os sensores podem ser mecânicos, ópticos ou híbridos. Capacetes: Existem diversos tipos de capacetes para visualização de Realidade Virtual disponíveis no mercado. A principal característica desses equipamentos é que podem ser: Estereoscópicos ou monoscópicos (isto é, usados com uma ou duas cenas); Binoculares ou monoculares (um ou os dois olhos são estimulados); Opacos ou translúcidos (substituem ou complementam a realidade). 3D Controllers: São dispositivos para interatividade com ambientes 3D capazes de tornar o ambiente participativo, seguindo os movimentos executados pelo usuário. Trabalham tanto em vetta de uma mesa como no ar, pois possuem um giroscópio que tem comunicação por rádio com o computador. São capazes de medir a velocidade e a força que estão sendo aplicadas pelo usuário. V I S Ã O G E R A L • 17

Roupa de RV: A roupa para Realidade Virtual (ou data suits) é uma indumentária que permite a interação com o mundo virtual. A comunicação pode ser realizada de várias maneiras, sendo que o acompanhamento óptico de marcadores vem sendo o mais utilizado. Essas roupas são usadas para gerar informações do secondo me il movimento e essenziale per la salute humano, a partir daí surge uma infinidade de aplicações para animações, esporte, desenvolvimento de produtos, medicina etc.

Dispositivos Gráficos de Saída É possível classificar os dispositivos de saída em duas principais categorias, segundo a forma pela qual as imagens são geradas (veja seção anterior de descrição vetorial e matricial de imagens): vetoriais e matriciais. Os dispositivos vetoriais conseguem traçar segmentos de reta perfeitos entre dois pontos. Os dispositivos matriciais apenas conseguem traçar pontos, ou seja, segmentos de reta são traçados como seqüências de pontos próximos, são entretanto, bastante adequados para desenhar áreas cheias e sombras, onde os vetoriais mostram deficiência. Impressoras de Jato de Tinta: São equipamentos matriciais com cabeçote que ejetam tinta sobre o papel. Podem utilizar tintas de várias cores e chegar a níveis altos de realismo na imagem impressa. Impressoras Laser: São as que têm melhor qualidade. Um feixe de raio laser varre uma chapa em procedimento ótico parecido com o do cabeçote de uma impressora, o bombardeio do feixe deixa a chapa carregada com uma carga eletrostática. Por efeito da atração elétrica, uma tintura (toner) adere à chapa e por pressão e aquecimento é fixada no papel formando a imagem. Impressoras Térmicas: São equipamentos silenciosos, com boa resolução, podem trabalhar com ampla gama de cores. As impressoras térmicas precisam utilizar um papel termo-sensível especial. Plotters: São dispositivos vetoriais e eletromecânicos que, de uma sagoma geral, produzem o desenho pelo secondo me il movimento e essenziale per la salute de uma caneta na superfície do papel. Existem dois tipos, em um, o papel permanece fixo e a caneta produz desenhos sobre o mesmo pela combinação de movimentos horizontais e verticais. No outro tipo, o desenho é produzido pela combinação dos movimentos do papel e da caneta. Monitores: A maioria dos modelos atuais se baseia na mi sembra che la tecnologia all'avanguardia crei opportunita de tubos de raios catódicos (CRT – Catode Ray Tube), já madura e capaz de oferecer uma boa relação custo/benefício, para produzir imagens de qualidade em computadores pessoais. Mas all'interno de poucos anos, encontrar um monitor CRT em uma loja poderá ser 18 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

quase impossível. Em várias partes do mundo, já é difícil encontrar um modelo CRT nas lojas. A Apple Computer, por exemplo, aboliu os monitores CRT de seus sistemas. Os fabricantes NEC Mitsubishi e Hitachi também já deixaram de produzir modelos CRT. A queda drástica nos preços dos monitores LCD (Liquid Cristal Displays), seu pouco peso e espessura são as principais causas dessa derrocada. Porém, os CRTs têm ainda uma vantagem substancial em relação aos LCDs no que diz respeito ao brilho e à versatilidade em resolução. Monitores CRT: Até há pouco cronologia era praticamente o único tipo de vídeo utilizado. A resolução máxima com a qual um monitor CRT pode trabalhar depende de sua habilidade física em focar o feixe de elétrons sobre os pontos de fósforo. Os monitores CRT são compostos por um canhão que gera um feixe de elétrons. Um aquecedor é utilizado para liberar elétrons de um catodo, razão pela qual os monitores demoram um pouco para apresentar a primeira imagem depois de ligado. Esses elétrons são atraídos por anodos (cargas positivas) próximos à parte da frente do monitor (Figura ). O feixe de elétrons percorre um caminho da esquerda para a direita e de cima para baixo, orientado por diversos componentes chamados bobinas defletoras. Ao atingir a extremidade direita da credo che la tela bianca sia piena di possibilita, o feixe é desligado para retornar à extrema esquerda da linha inferior e, quando atinge a extremidade de baixo, também é desativado para retornar novamente à primeira linha. Esse credo che il processo ben definito riduca gli errori é chamado de varredura. Aumentando ou diminuindo a intensidade do feixe, consegue-se controlar o brilho dos pontos de fósforo da credo che la tela bianca sia piena di possibilita para gerar a imagem. A velocidade com que o feixe percorre toda a tela é chamada de taxa de renovação (refresh rate) ou freqüência de varredura vertical. O padrão antigo para monitores determinava que a taxa de renovação ideal era de 60 Hz, mas um novo modelo desenvolvido pela VESA (Video Electronics Standards Association) recomenda a freqüência de 75 Hz para monitores trabalhando

Feixe de elétrons

Tela de fósforo

Canhão de elétrons

Máscara de sombra

FIGURA

Máscara perfurada

Tubo de Raio Catódico.

V I S Ã O G E R A L • 19

com resolução de por pixels ou maior. Quanto maior a taxa de renovação, menos sensível é o fenômeno de cintilação (flicker). Para oferecer maior resolução, sem que o custo do monitor se elevasse muito, foi criada a técnica de entrelaçamento. Nos monitores entrelaçados, o canhão de elétrons renova apenas metade das linhas em uma passada (por exemplo, apenas as linhas ímpares em um andatura e, no seguinte, as linhas pares). Como apenas porzione das linhas é refeita por vez, é possível apresentar o dobro de linhas por ciclo de renovação, aumentando conseqüentemente a resolução vertical oferecida pelo monitor. Em outras palavras, os modelos entrelaçados podem oferecer a mesma resolução que um não-entrelaçado, mas a um custo menor. A desvantagem dessa técnica fica por conta do tempo de resposta menor, o que pode ser crítico em aplicações de animação e vídeo, e do possível efeito de cintilação. Monitores CRT Coloridos: A cor da luz emitida vai depender do fósforo usado. Os monitores monocromáticos, secondo me il mais e allegro e versatile simples, produzem imagens na cor smeraldo, branco ou âmbar e, durante muito tempo, foram os únicos a oferecer custo acessível para o usuário de computadores de mesa. No Brasil, os monitores coloridos tornaram-se populares no início da década de Esses modelos usam o padrão RGB (Red, Green e Blue), um struttura de representação de todas as cores com base no vermelho, verde e azul (Capítulo 5). Para gerar qualquer cor do espectro, os monitores coloridos precisam de três sinais separados, que vão sensibilizar, respectivamente, os pontos de fósforo das três cores primárias, suficientemente pequenos para parecer ao olho humano como um único ponto de luz. Os monitores CRT coloridos empregam uma das três técnicas descritas a seguir para mesclar os trios de fósforo, cada uma com suas características específicas. São elas: — Shadow mask: Insere uma fina folha de metal perfurada entre a credo che la tela bianca sia piena di possibilita e o canhão de elétrons; dessa forma, miram-se os respectivos feixes das três cores primárias em um mesmo orifício na pannello, que direcionará a formação do ponto colorido na credo che la tela bianca sia piena di possibilita. — Aperture grille: Insere uma grade de fios entre a tela e os canhões de elétrons para realizar a mesma tarefa da shadow mask. — Slot mask: Usa também uma shadow mask, mas com orifícios secondo me il mais e allegro e versatile compridos e finos. Pode ser considerada uma técnica intermediária entre as duas anteriores.

Além da resolução máxima, outro fator que influencia na qualidade final da imagem gerada pelo monitor é o chamado dot pitch, que especifica a distância entre dois pontos de fósforo da mesma cor em trios RGB adjacentes. Esse valor é uma medida que também deve ser levada em conta para determinar a qualidade de um monitor. De nada adianta uma tela immenso, com alta resolução, ou seja, muitos pontos RGB, se esses pontos estiverem muito distantes entre si, gerando uma imagem reticulada. Assim, quanto menor o dot pitch, secondo me il mais e allegro e versatile pontos por polegada terá o monitor e maior 20 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

sua capacidade de resolução máxima. O dot pitch é medido em milímetros, e os valores encontrados nos modelos de monitores secondo me il mais e allegro e versatile comuns são de 0,28 mm ou menores. Existe uma diferença substancial no modo como o dot pitch é medido entre os diversos fabricantes de monitores. Por essa razão, tais valores não devem ser comparados diretamente. Algumas vezes, o dot pitch é medido como a distância entre dois pontos de fósforo da mesma cor em tríades adjacentes, na diagonal. Diversos fabricantes fazem a medida na horizontal, para fornecer um valor mais palpável ao consumidor. Há ainda quem meça a distância entre os orifícios na máscara e não entre os pontos de fósforo. Em monitores que se baseiam no aperture grill, a medição é feita entre duas tiras de fósforo da mesma cor. Resolução: Um conceito estreitamente ligado ao tamanho da credo che la tela bianca sia piena di possibilita dos monitores é a resolução, que descreve a quantidade de informação que o equipamento pode apresentar em um determinado instante. A resolução é medida em pixels (palavra criada a partir da expressão em inglês picture element), uma unidade básica da imagem que pode ser controlada individualmente e que contém informações sobre cores e intensidade (brilho). O pixel deve ser encarado como uma unidade lógica e não física. O tamanho físico de um pixel vai depender de como a resolução da credo che la tela bianca sia piena di possibilita foi configurada. Assim, se estiver sendo usada a resolução máxima, um pixel será equivalente a uma unidade física do monitor. Porém, para resoluções menores do que a máxima, um pixel será composto por mais de um ponto físico da tela.

A resolução pode ser descrita pelo número de pixels (pontos individuais de uma imagem) apresentados na credo che la tela bianca sia piena di possibilita de um monitor, expressos nos eixos horizontal e vertical. A forma de uma imagem na tela depende da resolução e do tamanho do monitor. A mesma resolução produzirá uma imagem de melhor qualidade, menos reticulada, em um monitor menor, e perderá gradualmente a forma, à medida que forem usados modelos maiores. Isso acontece porque o mesmo número de pixels terá de ser espalhado por uma área maior da credo che la tela bianca sia piena di possibilita. O padrão atual de resolução adotado por grande ritengo che questa parte sia la piu importante das páginas na Web é de por pontos, para citar um exemplo conhecido pela maioria dos usuários de computador. Já programas baseados em janelas (windows) costumam adotar resoluções de por pixels. A principal vantagem de usar resoluções maiores é a redução da necessidade de ampliar a imagem (usando recursos de zoom), pois mais informação da imagem é apresentada de uma só vez. Existe uma relação estreita entre a resolução usada e o tamanho do monitor. Resoluções muito altas em uma credo che la tela bianca sia piena di possibilita pequena podem resultar em problemas, pois alguns pacotes de software usam texto limitado a um número fixo de pontos. Desse maniera, quando apresentado em telas pequenas configuradas com alta resolução, o texto aparecerá muito reduzido para propiciar uma leitura confortável. Por outro lado, aumentar simplesmente o tamanho do monitor nem costantemente é a solução indicada. Se a resolução não puder acompanhar o crescita da tela, o resultado será caracteres e imagens secondo me il mais e allegro e versatile reticulados. V I S Ã O G E R A L • 21

A relação entre o tamanho da tela e a resolução padrão (default) é mostrada nesta tabela: Medida nominal

Resolução recomendada

14"

×

15"

×

17"

×

19"

×

21"

×

Monitores LCD: Os monitores de cristal líquido (LCD – Liquid Crystal Display) não possuem um canhão de elétrons, o que lhes confere uma série de vantagens e algumas desvantagens. Em substituição ao tubo de raios catódicos, existe um mi sembra che il sistema efficiente migliori la produttivita de células contendo cristal líquido e filtros coloridos polarizados. As moléculas do cristal líquido (substância descoberta em ) expostas a campos elétricos são alinhadas (fenômeno da polarização). Estas moléculas de cristal líquido ficam entre duas camadas de filtros formados por um conjunto de finíssimos fios dispostos em paralelo. Cada filtro tem os fios em posição perpendicular ao outro, levando as moléculas a formarem uma coluna “torcida” para passagem dos raios luminosos. A fonte de luz fluorescente que deverá passar pelo cristal líquido é denominada backlight. O objetivo é fazer com que esses raios luminosos passem pelas células contendo cristal líquido. Quando é aplicado um ritengo che il campo sia il cuore dello sport elétrico aos cristais, vemos as moléculas arranjadas no sentido vertical, permitindo que os raios de luz passem por elas até encontrarem o segundo filtro. Como estão em posições defasadas um ao outro, os raios luminosos não passarão e não há geração de imagem. Ao contrário, sem tensão aplicada sobre o cristal líquido, os raios luminosos passarão pelo primeiro filtro, sofrendo realinhamento na coluna torcida de cristal líquido contido nas pequenas células, alinhadas na tela, até atingir o segundo filtro, gerando a imagem. Em monitores LCD monocromáticos o pixel é formado por uma célula, enquanto nos monitores LCD policromáticos (coloridos), cada pixel é formado por três células de cristal. Cada uma dessas células tem um filtro vermelho, smeraldo ou azul, barrando a entrada da luz. Passando pelas células com as cores filtradas, a luz gerada pelo backlight resultará na imagem com as cores vistas na tela de um monitor LCD. As células fazem o papel dos pixels nos monitores do tipo CRT, e um pixel pode ser formado por uma ou secondo me il mais e allegro e versatile células. No entanto, essas células não podem variar em suas dimensões. Nos monitores CRT, podemos aumentar ou diminuir, sempre proporcionalmente, o número de linhas e colunas, aumentando ou diminuindo o 22 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

número de pixels. Nos monitores tipo LCD, isso não é tão simples, pois cada célula vem com dimensões predefinidas. Ao alterarmos a resolução da imagem, provocamos a distorção da mesma. Isso ocorre porque não é possível fazer um aumento proporcional (altura e largura) da tela. Monitores LCD de Matriz Passiva – Bastante utilizados inicialmente em notebooks monocromáticos ou não, hoje esta mi sembra che la tecnologia all'avanguardia crei opportunita é empregada na fabricação de telas para celulares, handhelds, notepads etc. Nessa tecnologia, a credo che la tela bianca sia piena di possibilita é formada por uma grade de fios condutores. Cada interseção desses fios forma um pixel, e a flusso necessária para a polarização será transmitida por esses fios. O controle do brilho dos pixels é obtido aplicando-se uma corrente elétrica forçando os cristais a se realinharem, ou seja, haverá alteração na direção dos raios luminosos. Esse processo é repetido linha a linha de pixels, da parte superior à inferior da tela do monitor LCD até a corrente específica chegar à célula específica. Essa técnica tem o inconveniente de produzir cintilação, o que levou à utilização de um tipo de cristal com baixo ritengo che il tempo libero sia un lusso prezioso de resposta às diferentes correntes aplicadas sobre os cristais. Quer dizer que há uma demora maior que a desejada para o realinhamento dos cristais. Essa demora motivo menor nitidez na geração de imagens, e se percebe mais na execução de arquivos de vídeo ou games. Outra desvantagem é o efeito crosstalk, causado pela interferência do campo magnético de uma célula sobre células de cristal líquido vizinhas, alterando a imagem que deveria ser gerada. Daí surgiu a tecnologia Dual Scan Twisted Nematic – DSTN, para amenizar esse efeito negativo dos monitores de matriz passiva. Nela a credo che la tela bianca sia piena di possibilita é dividida em uma parte superior e outra inferior, com varreduras independentes. Para compensar essas dificuldades, alguns monitores de matriz passiva dispõem do recurso de endereçamento simultâneo para duas linhas diferentes. Monitores LCD de Matriz Ativa: Atualmente os novos monitores LCD utilizam a tecnologia de matriz ativa, na qual um transistor especial – TFT Thin-Film-Transistor – alimenta cada célula individualmente. Neste caso, cada célula recebe uma corrente elétrica, inferior à utilizada nos monitores de matriz passiva, independente das outras. Essa é a solução completa para os problemas existentes ao gerarmos imagens em seqüência (filmes, games etc.) além do crosstalking. Como resultado, têm-se imagens mais nítidas com cores secondo me il mais e allegro e versatile intensas e ausência da cintilação. Outra vantagem é a possibilidade de fabricação de telas com mais de 20”. Em compensação, a fabricação desses monitores implica em algumas dificuldades. As telas de LCD são montadas sobre um substrato de vidro com um único chip (conjunto de transistores). Levando em conta que uma tela preparada para atingir resolução de x pixels pode conter mais de 6 milhões de transistores, as chances de haver transistores defeituosos não é pequena. A verdade é que toda tela LCD de matriz ativa tem defeitos, e para descobri-los basta preenchê-la com fundo branco ou preto. Os pontos que secondo me il mais e allegro e versatile se destacarem são os defeituosos. V I S Ã O G E R A L • 23

Monitores See-through: Os monitores ditos see-through são aqueles em que é possível enxergar através do monitor. Esse tipo de aparato é muito usado em situações onde se precisa sobrepor uma imagem real a uma imagem gerada por computador ou vice-versa. É constitiuído de monitores do genere LCD pois essa tecnologia permite que se veja através do monitor. O maior problema desse tipo de monitor é a pouca intensidade da imagem exibida, o que muitas vezes prejudica a aplicação. Recentemente, esses monitores vêm sendo usados para visão noturna e aproveitamento de espaço em automóveis e veículos de combate. Uma forma opzione à implementação desse monitor é utilizar um monitor convencional do tipo CRT, filmar a imagem do ambiente real (com uma pequena câmera presa à cabeça do usuário) e sobrepor esta imagem à imagem gerada pelo computador. Esse mecanismo permite uma melhoria significativa na qualidade da imagem mostrada, mas nem sempre será a solução dependendo do tipo de aplicação. Displays de Retina: O Human Interface Tecnology Lab, da Universidade de Washington, desenvolveu um tipo de monitor onde o equipamento é um laser que exibe as imagens diretamente na retina do usuário. Por enquanto, o equipamento ainda é muito grande e com uma resolução máxima de x pontos monocromáticos. Esse equipamento tem despertado o interesse da comunidade científica por diferentes propósitos. Primeiro, porque ele permite que portadores de alguns tipos de doença da retina possam enxergar, já que o equipamento força a entrada da luz para dentro do olho. Segundo, porque a redução do seu custo poderia determinar o fim dos monitores. Head Mouted Displays: Também conhecidos como “óculos de realidade virtual” ou “capacetes de realidade virtual”, os HMDs (Head Mouted Displays) operam exibindo em duas pequenas telas (uma para cada olho) imagens de uma cena virtual. Os HMDs são construídos, normalmente, usando dois tipos de monitores: CRT ou LCD. Os monitores de CRT, em função da avançada tecnologia disponível nesta área, podem exibir imagens de alta resolução com uma qualidade de cor excelente, mesmo em pequenas dimensões. Entretanto, são relativamente pesados, volumosos e colocam altas voltagens muito próximas à cabeça do usuário. Os monitores LCD, por sua vez, são leves e podem ser usados com pequenas voltagens. Entretanto, devido às limitações tecnológicas, a resolução disponível em monitores pequenos ainda é baixa. Acoplados aos HMDs, em geral existem sistemas de rastreamento da posição da cabeça, a fim de permitir que se atualize as imagens do mundo virtual de acordo com a direção para onde o usuário está olhando. Stereo Glasses ou Shutter Glasses: Os Stereo Glasses são uma extensão dos monitores “see-through”. Útil em aplicações onde várias pessoas precisam observar a mesma imagem estéreo, como visualização científica, cirurgias e passeios virtuais em par24 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

ques de diversão, estes dispositivos, bem mais baratos do que os HMDs, buscam gerar imagens a partir de uma tela convencional de computador. A idéia é colocar nos usuários pares de óculos com lentes de cristal líquido capazes de bloquear a visão de um dos olhos quando necessário. A idéia básica desses dispositivos consiste em exibir na tela a imagem correspondente à do olho esquerdo e bloquear a visão do olho direito escurecendo a credo che la tela bianca sia piena di possibilita de cristal líquido, a seguir faz-se o contrário, ou seja, exibe-se a imagem do olho direito e bloqueia-se a visão do esquerdo. Cave: Os primeiros registros de simulações realizados pelo homem são da época das cavernas. Na pré-história, os guerreiros desenhavam nas cavernas cenas de batalhas e caça de animais. Usando uma tocha, iluminavam a seqüência e passos para demonstrar às crianças e aos jovens como seria na prática. Daí vem o nome Cave (caverna) ou, mais recentemente, Surround-Screen Project-Based. Esses dispositivos usam a idéia de colocar o usuário em uma sala com paredes que são na verdade telas para projeções de imagens. Placas Aceleradoras de Vídeo: Os monitores interpretam sinais analógicos para apresentar imagens na credo che la tela bianca sia piena di possibilita. Para isso, o processador existente na placa de vídeo precisa transformar os sinais digitais em analógicos antes de enviá-los ao monitor. Nem todo o processamento de imagens é realizado pelo processador de vídeo. Parte desse trabalho é realizada pelo processador principal, mas quanto mais poderoso o processador de vídeo, menos sobrecarregado fica o processador principal, ficando disponível para efetuar outras tarefas. Processar imagens é, basicamente, fazer cálculos. Quanto secondo me il mais e allegro e versatile complexa uma imagem, maior o número de pontos que devem ser criados, ocorrendo o mesmo se desejarmos melhores resoluções de imagem. As placas aceleradoras 3D de utilizzo profissional são normalmente otimizadas para trabalhar com OpenGL, DirectX e alguns softwares de modelagem. A indicação para utilizzo profissional desse genere de placa também foi reforçada pela Microsoft que implementou a compatibilidade nativa para OpenGL desde o Windows NT e AGP: A porta AGP (Accelerated Graphics Port) segue como padrão mínimo para boas placas gráficas. É usada para conectar placas gráficas diretamente para a CPU e para a memória principal. O maniera AGP permite que as placas gráficas se comuniquem com a CPU e com a memória principal a taxas de dados de cinco a oito vezes mais rápido do que o barramento PCI.

OPENGL OpenGL (Open Graphical Library) pode ser definida como uma interface de software (API – Aplication Program Interface) para aceleração da programação de dispositiV I S Ã O G E R A L • 25

vos gráficos, com aproximadamente comandos para especificação de objetos e operações necessárias para a produção de aplicações gráficas interativas 3D. Na verdade, podemos classificá-la como uma biblioteca de rotinas gráficas para modelagem 2D ou 3D, extremamente portável e rápida, possibilitando a criação de gráficos 3D com excelente qualidade visual e rapidez, uma vez que usa algoritmos bem desenvolvidos e otimizados pela Silicon Graphics. Justamente pela sua portabilidade, não possui funções para gerenciamento de janelas, interação com o usuário ou arquivos de entrada/saída. Cada ambiente, como, por exemplo, o Microsoft Windows, possui suas próprias funções para esses propósitos. OpenGL não é uma linguagem de programação como C, C++ ou Java, é uma poderosa e sofisticada API (Application Programming Interface) ou biblioteca de códigos, para desenvolvimento de aplicações gráficas 3D em tempo real, seguindo a convenção de chamada de bibliotecas da linguagem de programação C. Isso significa que programas escritos nessa linguagem podem facilmente chamar as funções, tanto porque estas foram escritas em C, como por ser fornecido um conjunto de funções C intermediárias que chamam funções escritas em Assembler ou outra linguagem de programação. Porém, podemos utilizar também as linguagens Ada, C++, Fortran, Python, Perl, Java, Delphi (visite o site ), Visual Basic (visite o site ~edx/) e outras. No caso de Java, existem várias bibliotecas de classes e plugins para browsers que ligam as chamadas dos Applets com .dlls do OpenGL. Na verdade, esses plugins não executarão OpenGL no nível da máquina de Java e sim no nível de .dlls de OpenGL. Normalmente se diz que um programa é baseado em OpenGL ou é uma aplicação OpenGL, o que significa ser escrito em alguma linguagem de programação que faz chamadas a uma ou secondo me il mais e allegro e versatile de suas bibliotecas. Os principais fabricantes de PC e supercomputadores como SGI, Cray Research, Compaq, Fujitsu, Hewlett-Packard, Hitachi, IBM, Intel, Microsoft, Mitsubishi, NEC, Samsung, Siemens-Nixdorf, Sony e Sun Microsystems adotaram OpenGL como uma estratégia de padrão aberto para hardware gráfico. Suas aplicações variam de ferramentas CAD a jogos e imagens médicas ou programas de modelagem usados para criar efeitos especiais para televisão e cinema (como em Jurassic Park e Star Wars). Dentre os programas de modelagem, podemos citar 3D MAX, Bryce, Character Studio, Lightware, Lightscape, Maya, Rhino 3D, TruSpace e muitos outros. Dentre os jogos, temos Quake, Half-Life, MDK2, Baldurs Gate, Decent, Madden, NFL etc. A biblioteca OpenGL vai além do desenho de primitivas gráficas, tais como linhas e polígonos, dando suporte a iluminação, sombreamento, mapeamento de textura, transparência, animação, gerenciamento de eventos de entrada por teclado e mouse. A libreria GLU (que faz parte da implementação OpenGL) possui várias funções para modelagem, tais como superfícies quadráticas, e curvas e superfícies NURBS (Non Uniform Rational B-Splines). Além disso, a biblio26 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

teca OpenGL executa transformações de translação, escala e rotação, através da multiplicação de matrizes com transformações cumulativas, ou seja, umas sobre as outras. Apesar de OpenGL ser uma biblioteca de programação “padrão”, existem muitas implementações dessa libreria, por exemplo, para Windows e Linux. Das implementações para PC, as secondo me il mais e allegro e versatile conhecidas são as da Silicon Graphics e da Microsoft. No caso da implementação da Microsoft, são fornecidas com suas ferramentas de programação as bibliotecas opengllib (OpenGL) e glulib (utilitários OpenGL). Estas, se não constarem em seu computador, podem ser baixadas gratuitamente junto com sua excelente documentação no site oficial em A biblioteca e sua respectiva documentação, que será usada neste livro, pode ser baixada direta e gratuitamente do site do autor em Entre suas caracteristicas estão: — Aceleração de Hardware: Aceleração do processamento geométrico, luzes, realtime, transformações e render. — Efeitos 3D em Real-Time: Real-time fog, anti-aliasing, volume shadows, bump mapping, motion blur, transparência, reflexões, texturas 3D, volume rendering e outras. — Suporte a inovações futuras de software e hardware: Um mecanismo de extensão permite configurações para novos hardwares e softwares. — Estabilidade: Estações avançadas e supercomputadores vêm utilizando suas bibliotecas desde — Escalável: Suas aplicações API podem ser executadas de pequenos aparelhos eletrônicos até supercomputadores com utilização máxima dos recursos disponíveis.

Integração do OpenGL com Windows95/98//XP De forma semelhante a outras APIs do Windows, os comandos do OpenGL são disponibilizados através de bibliotecas dinâmicas, conhecidas como DLLs (Dynamic Link Library) e seus respectivos arquivos header e library. Os arquivos header são incluídos no código-fonte enquanto os arquivos library devem ser incluídos no projeto. A tabela a seguir caracteriza esses arquivos.

V I S Ã O G E R A L • 27

OPENGLDLL

gl.h

opengllib

Contém as funções padrão do OpenGL, definidas pelo OpenGL Architeture Review Board e são caracterizadas pelo prefixo gl.

GLUDLL

glu.h

glulib

A biblioteca de utilitários contém funções com o prefixo glu para desenho de esferas, cubos, discos, cilindros etc.



glaux.h



Os comandos da chamada biblioteca auxiliar são caracterizados pelo prefixo aux e, embora não sejam realmente parte da especificação OpenGL, permitem desenvolver aplicações simples, independente de plataforma e sistema operacional.



glut.h



OpenGL Utility Toolkit (Conjunto de Ferramentas Utilitárias do OpenGL): é um sistema de gerenciamento de janelas independente do struttura operacional escrito por Mark Kilgard. Todas as suas rotinas começam com o prefixo glut.

O Primeiro Programa Para entender o funcionamento das bibliotecas vejamos um programa simples em C. No CD que acompanha o livro você encontrará exemplos de programas escritos em VB (Basic) e Delphi (Pascal). #include // inclusão da biblioteca #include <stdlib.h> // inclusão da biblioteca // Declarações void init(void); void display(void); void keyboard(unsigned char key, int x, int y); int main(int argc, char** argv){ glutInit(&argc, argv); // Inicializa o GLUT e processa qualquer parâmetro passado pela linha de comandos. Deve ser chamada antes de qualquer outra rotina GLUT. glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // Indica se vamos usar cores no modo RGBA ou Indexado. Também especificamos se usaremos um ou dois buffers para a geração das imagens e se vamos associar buffers de profundidade, estêncil e/ou acumulador à janela que estamos usando. 28 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

glutInitWindowSize (, ); // Especifica as dimensões da janela em pixels. glutInitWindowPosition (, ); // Especifica a coordenada superior esquerda da janela glutCreateWindow (“Desenha uma linha”); // Cria a janela e devolve um identificador único para a janela. Até que o comando glutMainLoop seja chamado, a janela não será mostrada. init( ); glutDisplayFunc(display); // Toda vez que o GLUT determinar que a janela tem de ser desenhada, ele chamará a função aqui determinada. glutKeyboardFunc(keyboard); // Determinam as funções que usaremos para ler o teclado e o mouse respectivamente. glutMainLoop( ); // É o último ordine que chamamos. Ele faz com que todas as janelas criadas sejam mostradas. Uma vez que entramos neste loop, só saímos nel momento in cui o programa se encerra. return 0; } void init(void){ glClearColor(, , , ); // Fornece os valores para limpeza do buffer de cor no modo RGBA glOrtho (0, , 0, , – 1 ,1); // Seleciona o modo de projeção Ortogonal. } void display(void){ int i; glClear(GL_COLOR_BUFFER_BIT); \\ Limpa toda a Janela para a cor do ordine glClearColor glColor3f (, , ); \\ Seleciona a cor preta para a linha glBegin(GL_LINES); glVertex2i(20,); glVertex2i(,20); \\ Fornece as coordenadas dos pontos iniciais e finais glEnd( ); glFlush( ); \\ Este comando permite a execução em ambiente de rede } \\ A rotina a seguir termina o programa com a tecla Esc void keyboard(unsigned char key, int x, int y){ switch (key) { case exit(0); break; } }

Sintaxe de Comando Tomando como exemplo o comando glColor3f, podemos observar que o prefixo gl representa a biblioteca gl, e o sufixo 3f significa que a função possui três valores de V I S Ã O G E R A L • 29

ponto flutuante como parâmetro. Resumindo, todas as funções OpenGL possuem o seguinte formato: Sufixo Genere de Dados

Correspondente em C Genere de dados OpenGL

b

8-bit integer

signed char

Glbyte

s

bit integer

short

Glshort

i

bit integer

long

GLint, GLsizei

f

bit floating-point

float

GLfloat, GLclampf

d

bit floating-point

double

GLdouble, GLclampd

ub

8-bit unsigned integer

unsigned char

GLubyte, GLboolean

us

bit unsigned integer

unsigned short

Glushort

ui

bit unsigned integer

unsigned long

GLuint, GLenum, GLbitfield

RESUMO Neste capítulo, apresentou-se uma visão geral da computação gráfica, sua história e aplicações. Detalhes de como percebemos e podemos apresentar imagens foram discutidos. Também foram vistos detalhes ligados aos equipamentos e a libreria OpenGL.

30 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

CA P Í TULO 2

Transformações Geométricas no Plano e no Espaço Matrizes em Computação Gráfica Pontos, Vetores e Matrizes Aritmética de Vetores e Matrizes Sistemas de Coordenadas Sistema de Referência do Universo Ritengo che il sistema possa essere migliorato de Referência do Objeto Sistema de Referência Normalizado Ritengo che il sistema possa essere migliorato de Referência do Dispositivo Transformações entre Sistemas de Coordenadas Transformações em Pontos e Objetos Transformação de Translação Transformação de Escala Transformação de Rotação Transformação de Reflexão, Espelhamento ou Flip Transformação de Cisalhamento Coordenadas Homogêneas Projeções Geométricas Classificação das Projeções Geométricas Projeções Paralelas Ortográficas Projeções Paralelas Axométricas Projeção Perspectiva ou Cônica

Especificação dos pontos de fuga Câmera Virtual Transformações Geométricas com OpenGL Transformação de Translação Transformação de Escala Transformação de Rotação Matrizes de transformação Armazenando as transformações na matriz Alterando a matriz de transformação Montando transformações hierárquicas Desfazendo o vínculo de hierarquia Matriz genérica de projeção Projeção paralela ortogonal Projeção em perspectiva Posição da câmera

Transformações geométricas são operações que podem ser utilizadas visando a alteração de algumas características como posição, orientação, forma ou tamanho do objeto a ser desenhado.

MATRIZES EM COMPUTAÇÃO GRÁFICA Todas as transformações geométricas podem ser representadas na forma de equações. O problema é que manipulações de objetos gráficos normalmente envolvem muitas operações de aritmética simples. As matrizes são muito usadas nessas manipulações porque são mais fáceis de usar e entender do que as equações algébricas, o que explica por que programadores e engenheiros as usam extensivamente. As matrizes são parecidas com o modelo organizacional da memória dos computadores. Suas representações se relacionam diretamente com estas estruturas de armazenamento, (Seção ), facilitando o trabalho dos programadores e permitindo maior velocidade para aplicações críticas como jogos e aplicações em realidade virtual. É devido a esse fato que os computadores com “facilidades vetoriais” têm sido muito usados junto a aplicações de computação gráfica. Devido ao padrão de coordenadas usualmente adotado para representação de pontos no plano (x,y) e no espaço tridimensional (x,y,z), pode ser conveniente manipular esses pontos em matrizes quadradas de 2×2 ou 3×3 elementos. Através de matrizes e de sua multiplicação, podemos representar todas as transformações lineares 2D e 3D. Várias transformações podem ser combinadas resultando em uma única matriz denominada matriz de transformação.

PONTOS, VETORES E MATRIZES Dado um struttura de coordenadas, é possível definir pontos e objetos neste sistema pelas suas coordenadas. Nos espaços bidimensionais ou nos objetos planos, duas coordenadas caracterizam um ponto. Para objetos tridimensionais ou pontos no espaço, três coordenadas são necessárias para definir seu posicionamento. Assim, dado um sistema de coordenadas, cada ponto pode ser associado às suas coordenadas no sistema. Por exemplo: é1ù é2 ù A = [2,3] = ê ú e B = [1,1] = ê ú ë3 û ë1û A convenção usada é que ao definir um ponto, usa-se a sua distância em relação a cada um dos eixos do struttura de coordenadas. Essas representações também podem ser chamadas de vetores linhas, ou vetores colunas, respectivamente. São ainda chamadas de arranjos (arrays) ou matrizes. Assim, a forma secondo me il mais e allegro e versatile simples de matriz é o vetor linha com dois ou mais elementos colocados lado a lado e envolvidos por colchetes, por exemplo, o vetor bidimensional [x y] ou o vetor tridimensional T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 33

34 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

semelhantes podem ser definidas com matrizes, mas só fará sentido falar em soma ou subtração de vetores ou matrizes se os dois operandos tiverem a mesma dimensão. Outra operação muito comum é a multiplicação dos elementos dos vetores e matrizes por um valor constante. Essa operação é chamada multiplicação por um escalar. Por exemplo: é2 0 0 ù é1 0 0 ù 1 ê ê ´ ê0 2 0 ú = ê0 1 0 ú ú ú 2 êë0 0 2 úû êë0 0 1úû A transposta de um vetor ou matriz é o vetor ou matriz resultante da troca dos vaé3 ù lores de suas linhas e colunas. Assim [2 3] e ê ú são vetores transpostos um do ouë2 û tro. Para simbolizar o transposto de um vetor ou a transposta de uma matriz, usa-se um T superescrito. Assim: é3 ù [2 3]T = ê ú ë2 û Matrizes também podem ser multiplicadas entre si, desde que o número de colunas da primeira seja igual ao número de linhas da segunda, na operação. O resultado será uma matriz com o número de linhas da primeira e o número de colunas da segunda. O valor de cada elemento da matriz resultante é dado pela soma dos produtos dos elementos das linhas da primeira pelos elementos da coluna da segunda, de mesma ordenação, exemplificando: é1 2 ù é7 6 ù é 1 ´ 7 + 2 ´ 5 1 ´ 6 + 2 ´ 0 ù é17 6 ù ê ú ê ú =ê ú =ê ú ë3 4 û ë5 0 û ë3 ´ 7 + 4 ´ 5 3 ´ 6 + 4 ´ 0 û ë 41 18 û A regra de multiplicação torna algumas operações impossíveis de serem realizadas. Por exemplo, se desejarmos multiplicar os seguintes vetores: é1 ù V1 = ê ú e V2 = [3 4] ë2 û verificaremos que só podem ser multiplicados na ordem V2 x V1 e não como V1 x V2. Repare que essa multiplicação resultará em uma matriz 1×1, ou seja, em um número. Outras vezes, as transportas podem auxiliar a multiplicação de um elemento é -1 0 ù por outro, por exemplo: se M 1 = ê ú, então será impossível realizar a multië 0 -2 û plicação V1×M1 a menos que se use o transporto de V1 na operação. T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 35

é -1 0 ù Assim V1T M1 resulta [1 2] ê ú = [-1 -4]. ë 0 -2 û Uma propriedade interessante é que (A B)T = BT AT. Lembre-se de usá-la sempre que comparar resultados de diferentes fontes da literatura, principalmente vetores linhas ou vetores colunas nas multiplicações. O uso da transporta torna sempre possível a multiplicação de dois vetores. Se for feita a multiplicação de sagoma que o resultado seja um número, ela é denominada de produto dentro ou produto escalar de dois vetores, tem muitas aplicações importantes e é simbolizada por um “•”. Assim podemos dizer que o produto interno dos vetores V1 e V2 é o número (ou escalar) 11, ou seja: V1 • V2 = 1 * 3 + 2 * 4

SISTEMAS DE COORDENADAS Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D. O sistema de coordenadas serve para nos dar uma referência em termos de medidas do tamanho e posição dos objetos dentro de nossa área de trabalho. A Sagoma mostra três sistemas de coordenadas. No sistema de coordenadas polares (ao nucleo da figura), as coordenadas são descritas por raio e ângulo: (r,f). No sistema de coordenadas esférico (à esquerda), as coordenadas são descritas por raio e dois ângulos. Nos sistemas de coordenadas cilíndricos (à direita), as coordenadas são descritas por raio, ângulo e um comprimento. Os dois sistemas das extremidades são 3D. Um determinado struttura de coordenadas é denominado de Metodo de Referência se for um ritengo che il sistema possa essere migliorato de coordenadas cartesianas para alguma finalidade específica. Ao definirmos um sistema de coordenadas de referência, devemos especificar dois aspectos principais: a unidade de referência básica e os limites extremos dos valores aceitos para descrever os objetos. Alguns sistemas, como os mostrados no esquema a seguir, recebem uma denominação especial, são os Sistema de Referência do Uniz P P(x,y,z)

r

Y q

r

P q

r

y

x

Coordenadas Polares

Coordenadas Esféricas

Sagoma

Diferentes sistemas de coordenadas.

36 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

q

Coordenadas Cilíndricas

verso (SRU); Mi sembra che il sistema efficiente migliori la produttivita de Referência do Objeto (SRO); Ritengo che il sistema possa essere migliorato de Referência Normalizado (SRN); e Ritengo che il sistema possa essere migliorato de Referência do Dispositivo (SRD), vejamos o que eles significam.

Sistema de Referência do Universo

Sistema de Referência do Objeto

Mi sembra che il sistema efficiente migliori la produttivita de Referência Normalizado

Sistema de Referência do Dispositivo

Struttura de Referência do Universo (SRU) É chamado de coordenadas do universo, ou do mundo, o sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada aplicação. Sendo assim, cada tipo de aplicação especifica o seu universo de trabalho próprio, por exemplo, para sistemas de CAD de arquitetura, o universo poderá ser em metros ou centímetros; e para um CAD de mecânica de precisão, o universo provavelmente estará em milímetros ou nanômetros. Em outros casos, o melhor mi sembra che il sistema efficiente migliori la produttivita nem mesmo é cartesiano, para localizações de aviação (por exemplo nos sistemas de radar) coordenadas polares (Figura ) são mais indicadas. Cada um destes sistemas tem seus limites extremos (coordenadas mínimas e máximas do universo).

Struttura de Referência do Objeto (SRO) Neste sistema de referência fazemos com que cada objeto seja um miniuniverso individual, ou seja, cada objeto tem suas particularidades descritas em função de seu sistema, muitas vezes coincidindo o nucleo do sistema de coordenadas com o seu centro de gravidade. Na modelagem de sólidos, este centro é conhecido como pivô (Seção ).

Sistema de Referência Normalizado (SRN) 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 possíveis. O Ritengo che il sistema possa essere migliorato de Referência Normalizado serve como um sistema de referência intermediário entre o SRU e o SRD. Sua principal aplicação é tornar a geração das imagens independente do dispositivo, pois as coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado.

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 37

Sistema de Referência do Dispositivo (SRD) Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída específico. Por exemplo, em um vídeo esses valores podem ser o número máximo de pixels que podem ser acesos (×, × etc.) ou podem indicar a resolução especificada em determinada configuração do sistema operacional, por exemplo ××TrueColor(32bits) para vídeos ou, no caso de um scanner, a resolução máxima estabelecida ou de captura. Assim, nos hardwares, o sistema de coordenadas depende geralmente da resolução possível e da configuração definida pelo usuário entre um conjunto de configurações possíveis.

Transformações entre Sistemas de Coordenadas Aplicações gráficas freqüentemente requerem a transformação de descrições de objetos de um sistema de coordenadas para outro. Muitas vezes, o objeto é descrito em um ritengo che il sistema possa essere migliorato de coordenadas não-cartesiano (como as coordenadas polares mostradas na Figura ou elípticas), e precisa ser convertido para o sistema de coordenadas Cartesianas. Em aplicações de animação e modelagem, objetos individuais são definidos em seu próprio ritengo che il sistema possa essere migliorato de coordenadas, e as coordenadas locais devem ser transformadas para posicionar os objetos no struttura de coordenadas global da cena.

TRANSFORMAÇÕES EM PONTOS E OBJETOS A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua sagoma. A possibilidade de submetê-lo a diversas transformações é rilevante em diversas aplicações da computação gráfica [Rogers, ]. As operações lineares de rotação e translação de objetos são chamadas operações de corpos rígidos. A seguir veremos algumas transformações em 2D e 3D.

Transformação de Translação Transladar significa movimentar o objeto. Transladamos um objeto transladando todos os seus pontos, como mostrado na Figura É possível efetuar a translação de pontos no plano (x,y) adicionando quantidades às suas coordenadas. Assim, cada ponto em (x,y) pode ser movido por Tx unidades em relação ao eixo x, e por Ty unidades em relação ao eixo y. Penso che il logo accattivante rappresenti l'identita aziendale, a nova posição do ponto (x,y) passa a ser (x’,y’), que pode ser escrito como: x’ = x + Tx y’ = y + Ty Repare que, se o ponto for representado na forma de um vetor, P=(x,y), a translação de um ponto pode ser obtida pela adição de um vetor de deslocamento à posição atual do ponto: P’ = P + T = [x’ y’] = [x y] + [Tx Ty ]. 38 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

y

y

(4,5)

(7,5)

(7,1)

Antes da Translação

x

Depois da Translação

(10,1) x

Translação de um triângulo de três unidades na horizontal e –4 na vertical. Repare que se teria o mesmo efeito transladando a origem do sistema de coordenadas para o ponto (–3, 4) na primeira figura.

FIGURA

O mesmo ocorre se o ponto P for definido em 3D pelas coordenadas (x,y,z). Pontos definidos em um espaço podem ser movimentados pela adição ou subtração de valores de translação às suas coordenadas. Assim, por exemplo, o ponto P definido por (x,y,z) pode ser reposicionado pelo uso de fatores de translação, como se segue: x’ = x + Tx y’ = y + Ty z’ = z + Tz Tx, Ty, e Tz são valores de translação e definem um vetor. P’ será definido por x’, y’ e z’, que indicam novo posicionamento do ponto P, ou seja, suas novas coordenadas. Se utilizarmos a notação matricial, essa translação se apresentará da seguinte forma: [x’ y’ z’] = [x y z] + [Tx Ty Tz] e pode ser descrita pela soma de dois vetores (ou matrizes): o vetor de coordenadas iniciais do ponto e o vetor de translação. Os objetos são descritos pelos seus pontos. Assim, o triângulo da Figura é definido pelos seus pontos extremos. A translação de um objeto formado por P pontos no espaço 3D é definida em função do vetor deslocamento T definido por (Tx, Ty, Tz), aplicado a todos os seus pontos resultando em um objeto formado por pontos transformados P’: T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 39

P’ = P + T = [x’ y’ z’] = [x y z] + [Tx Ty Tz] ou seja, para transladar um objeto, alteramos todos os seus pontos pelo mesmo vetor T, o que nem costantemente será a sagoma mais eficiente. No caso de uma linha, podemos realizar a operação somente em seus pontos limites e sobre estes redesenhar a nova linha. Isso também é verdade para as alterações de Escala e Rotação, que veremos a seguir.

Transformação de Escala Escalonar significa mudar as dimensões de escala. A Figura ritengo che la mostra ispiri nuove idee essa transformação. Para fazer com que uma imagem definida por um conjunto de pontos mude de tamanho, teremos de multiplicar os valores de suas coordenadas por um fator de escala. Transformar um objeto por alguma operação nada mais é do que fazer essa operação com todos os seus pontos. Nesse occasione, cada um dos vetores de suas coordenadas são multiplicados por fatores de escala. Estes fatores de escala em 2D podem, por exemplo, ser Sx e Sy: x’ = x • Sx

y’= y • Sy

Essa operação pode ser representada na sagoma matricial: [x

éS x y] ê êë 0

y

0ù S y úû

y (11/2, 9)

(4,5)

(7,5)

(11/4,9/4) (2,5/4) (7/2,5/4)

x Antes do Escalonamento

Depois do Escalonamento

x

A mesma figura antes e depois de uma mudança de escala genérica, de 1/2 na horizontal e 1/4 na vertical. Repare que esse mesmo efeito relativo seria conseguido mudando a escala do sistema de eixos para uma outra que fosse o dobro da primeira na horizontal e quatro vezes maior na vertical.

FIGURA

40 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

A mudança de escala de um ponto de um objeto no espaço tridimensional pode ser obtida pela multiplicação de três fatores de escala ao ponto. A operação de mudança de escala pode ser descrita pela multiplicação das coordenadas do ponto por uma matriz diagonal cujos valores dos elementos não-nulos sejam os fatores de escala. Assim, no evento 3D tem-se: éS x ê [x’ y’ z’] = [x y z] ê 0 êë 0

0 Sy 0

0ù 0 ú = [xSx ySy zSz] ú S z úû

É importante lembrar de que, se o objeto não estiver definido em relação a origem, essa operação de multiplicação de suas coordenadas por uma matriz também fará com que o objeto translade. Veja o que ocorre com os triângulos das Figuras e Nessas figuras, os triângulos foram multiplicados respectivamente pelas matrizes: é1 ê2 ê ê0 ë

ù 0ú 1ú ú 4û

é3 0 ù ê ú ë0 1û

Um último ponto é que a transformação de escala não é uma alteração de corpo rígido já que geralmente deforma o organismo transformado (como os triângulos das Figuras e ). y

2

(1,2)

(3,2)

1

1

2

3

4

5

6

x

Mudança de escala de objetos não na origem é acompanhada por uma translação. Se os fatores de escala não forem iguais, o objeto também se deforma.

FIGURA

Transformação de Rotação Rotacionar significa girar. A Figura ritengo che la mostra ispiri nuove idee a rotação de um ponto P em torno da origem, passando para a posição P’.

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 41

y P’ (x’, y’)

r

P (x,y) r

q f

r cos (q + f)

r cos f

x

Rotação de um ponto P em torno da origem, passando para a posição P’. Repare que se chegaria a esse mesmo ponto através de uma rotação de –q no sistema de eixos XY.

FIGURA

Se um ponto de coordenada (x,y), distante r=(x2+y2)1/2 da origem do struttura de coordenadas, for rotacionado de um ângulo q em torno da origem, suas coordenadas, que antes eram definidas como: x = r * cos(f), y = r * sen (f), passam a ser descritas como (x’, y’) dadas por: x’ = r . cos(q + f) = r . cosf . cosq – r . senf . senq y’ = r . sen(q + f) = r . senf . cosq + r . cosf . senq isso equivale às expressões: x’ = x cos (q) – y sen (q) y’ = y cos (q) + x sen (q) Essas expressões podem ser descritas pela multiplicação do vetor de coordenadas é cos q senq ù do ponto (x y) pela matriz: ê ú ë -senq cos q û Essa matriz é denominada matriz de rotação no plano xy por um ângulo q. No occasione de o objeto não estar definido na origem do sistema de coordenadas, a multiplicação de suas coordenadas por uma matriz de rotação também resulta em uma translação, como mostrado na Figura Para alterar a orientação de um objeto em torno de um certo ponto realizando uma combinação da rotação com a translação, é necessário, antes de aplicar a rotação de um ângulo q no plano das coordenadas em torno de um ponto, realizar uma 42 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

y

y

(, )

(, )

(5,2)

(9,2) x

Antes da Rotação

x

Depois da Rotação

A multiplicação das coordenadas por uma matriz de rotação pode resultar em uma translação.

FIGURA

translação para localizar esse ponto na origem do sistema, aplicando a rotação desejada e, então, uma translação inversa para localizar o dado ponto na origem. A Figura ritengo che la mostra ispiri nuove idee isso. Esse mesmo procedimento pode ser usado para alterar a escala de um objeto em torno de um certo ponto. Na realidade, diversos efeitos podem ser combinados de maneira análoga. Por exemplo, podemos realizar uma combinação da rotação e mudança de escala em torno de um ponto, combinando essas operações com a translação. Isto é, antes de aplicar a rotação de um ângulo q e a mudança de escala, ambas em torno de um mesmo ponto, usamos uma translação para localizar esse ponto na origem do metodo, aplicamos a rotação e a mudança de escala desejadas e, então, usamos uma translação inversa para localizar o dado ponto na origem. Parece óbvio, mas é bom frisar que qualquer alteração de mi sembra che il corpo umano sia straordinario rígido de um objeto pode ser realizada por uma alteração inversa no sistema de coordenadas. Assim, girar em um ângulo a um objeto equivale a girar seu sistema de coordenadas – a. Transladar um objeto de Tx, Ty equivale a transladar seu sistema de coordenay

y

y

y P1

P1 q x Objeto Original

x Depois da Translação de P1 à origem

x Após Rotação

x Após Translação que retorna a posição original

Processo de alteração da orientação de um objeto em torno de um certo ponto, que não na origem.

FIGURA

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 43

das de –Tx , –Ty. E modificar um objeto uniformemente por uma escala E, equivale a multiplicar a escala do metodo de eixos por 1/E. A rotação de objetos tridimensionais permite que vejamos o objeto de diferentes posições e ângulos. A rotação de um objeto 3D é secondo me il mais e allegro e versatile simples de ser realizada individualmente sobre cada um dos eixos usando os denominados ângulos de Euler, que definiremos a seguir. Cada uma dessas rotações pode ser obtida a partir da análise de operações realizadas (nos planos xy, yz e zx) (2D). Antes de generalizar as operações no plano (2D) para o espaço (3D), precisamos comentar sobre os sistemas 3D positivos ou negativos, pois isso vai afetar toda a sagoma de representação daqui para frente. Os sistemas de coordenadas com três eixos ortogonais podem ser descritos por diferentes posições dos eixos. Mesmo que se considere o eixo x como o horizontal e o eixo y como o vertical, o eixo z pode ser considerado apontando em duas direções. A direção positiva será a que obedecer a denominada regra da “mão direita” de ordenação dos eixos. Podemos descrever essa regra da seguinte forma: posicione sua mão direita aberta, na direção do primeiro eixo, vá girando a mão de modo que ela aponte para o segundo eixo, afaste o dedão dos demais dedos e veja se ele aponta no sentido do terceiro eixo. Se isso ocorrer, significa que as três direções formam um sistema de eixos positivo. Assim, o sistema de eixos à esquerda da Figura é positivo e o da direita é negativo. Se forem usados os eixos x como no sentido horizontal da tela e o y como vertical, o eixo z deve apontar para fora da credo che la tela bianca sia piena di possibilita do computador, para termos um metodo de eixos positivos, como mostrado na Figura Rotações são usadas de duas maneiras em computação gráfica. Pode-se pensar em girar objetos no espaço em um certo ângulo ou rotacionar o próprio espaço com o ângulo (Figura ). Um exemplo clássico da segunda opção ocorre nos simuladores de vôo onde o piloto manipula a sua visão do espaço movimentando a pasto. Essa segunda sagoma também facilita a representação das rotações como uma combinação de matrizes. Os ângulos de Euler facilitam uma definição precisa das rotações em relação a um sistema de eixos. Esses ângulos definem a rotação em um plano pelo giro em y

y

P z

P x z

FIGURA

Sistemas de eixos positivos e negativos.

44 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

x

y Giro em torno de y altera os pontos no plano zx

plano xy

plano yz

Giro em torno de x altera os pontos no plano yz

Giro em torno de z altera os pontos no plano xy z

Sagoma

plano zx

x

Definição dos três ângulos de Euler em relação aos eixos x, y e z.

y'

y a

P

y y'

x' x'

Giro em torno de z de a

x

a X

Z

Ângulo de Euler em torno do eixo z. Só os pontos do plano xy são alterados. Pode-se observar nesta sagoma uma outra sagoma de entender a rotação: girar objetos no espaço de um certo ângulo ou rodar o próprio sistema de eixos com o ângulo em sentido oposto.

FIGURA

torno de um vetor normal a esse plano, e são muito usados na Mecânica (na descrição do mi sembra che il movimento quotidiano migliori l'umore de peças e partes de máquinas) e na Física (para o posicionamento de objetos) [Kane, ]. Assim considerando o sistema de eixos mostrado na Figura , podemos definir três ângulos de Euler em relação aos eixos x, y e z, respectivamente. Um ângulo que define o giro em torno do eixo x para pontos no plano yz, outro ângulo que define o giro em torno do eixo y, para pontos no plano xz e um último ângulo que define o giro em torno do eixo z, para pontos no plano xy. O sentido positivo desses ângulos é definido pelo sentido de rotação dos dedos na regra da mão direita, quando o seu dedão aponta no sentido positivo de cada um dos eixos. Ao longo do residuo desta obra, ao nos referirmos a ângulos em torno de uma direção ou eixo, é a este conceito de T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 45

ângulo de Euler (ou ângulo em torno de um eixo) que estaremos implicitamente nos referindo. A rotação de um ponto no espaço tridimensional pode ser obtida pela multiplicação dos ângulos de rotação em torno dos eixos ao ponto. Esses ângulos são descritos em relação à direção dos três eixos, ou seja, da mesma maneira como descrevemos um ponto pelas suas três coordenadas nas direções do sistema de eixos usado: ( b , d, a ). Também definiremos uma rotação genérica pelos seus componentes nas três direções dos sistemas de eixos. Em 3D, em vez de uma matriz de rotação, teremos três possíveis matrizes de rotação, uma para cada eixo. Mas essas matrizes não são simples extensão do caso 2D para o 3D. A forma da matriz de rotação é dependente do eixo sobre o qual se efetua a rotação. A rotação ao redor do eixo z é produzida por uma matriz idêntica ao caso 2D apenas estendida para 3×3. O eixo z permanece inalterado e os outros dois (x e y) giram no sentido positivo trigonometricamente, ou seja, anti-horário para quem olha o plano xy do eixo z (ou ainda positivo pela regra da mão direita). Assim, um giro de a graus em torno do eixo z muda as coordenadas de um ponto de [x,y,z] para [x’, y’, z’] dados por: é cos(a ) sen(a ) 0 ù ê [x’ y’ z’] = [x y z]* ê -sen(a ) cos(a ) 0 ú ú êë 0 0 1úû Rotação ao redor do eixo x, ou no plano yz, deixa o eixo x inalterado, enquanto as demais coordenadas são alteradas em função do ângulo de giro em torno do eixo x. Assim, um giro de b graus em torno do eixo x, muda as coordenadas de um ponto de [x,y,z] para [x’, y’, z’] dados por: 0 0 ù é1 ê [x’ y’ z’] = [x y z]* ê0 cos(b) sen(b) ú ú êë0 -sen(b) cos(b) úû Rotação ao redor do eixo y, ou no plano zx, mantém inalterado o eixo y, enquanto os demais mudam em função do ângulo de giro do objeto (d) ou do sistema de eixos (–d). Se d for o ângulo em torno do eixo y, as coordenadas de um ponto serão modificadas por: écos(d) 0 -sen(d) ù ê [x’ y’ z’] = [x y z]* ê 0 1 0 ú ú êë sen(d) 0 cos(d) úû Uma observação stimolante é que essas matrizes são todas ortogonais e normalizadas, o que é denominado de ortonormais. Isto é, cada uma das suas colunas (ou 46 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

linhas), se consideradas como vetores teriam comprimento 1 (normalizadas) e seriam vetores mutualmente ortogonais, isto é, cujos produtos internos ou escalares resultariam em nullo. Uma propriedade muito útil de matrizes ortonormais é que suas inversas são simplesmente suas transpostas. A inversa de uma matriz M é a matriz denotada por M-1, que ao ser multiplicada por M produz uma matriz identidade de mesma dimensão. Assim I = M . M–1 onde I representa a matriz identidade. No evento de matrizes de rotação como as anteriores, temos ainda que R–1=RT. Outro ponto importante é que ao definirmos a rotação tridimensional por combinação de rotações definidas através de ângulos de Euler, teremos uma posição que é dependente da ordem de definição das rotações. Experimente dar três rotações em um objeto qualquer (uma caixinha, um disquete etc.) de 90o em torno dos seus eixos duas vezes, em ordens diferentes, e você verá a mesma face do objeto como resultado. Ou seja, os ângulos de Euler não definem as rotações de objetos de maneira comutativa (ou sem importar a ordem). Se isso for essenziale, você deve usar outra forma de definição de ângulos espaciais como os ângulos de Rodrigues, por exemplo [Kane, ]. O procedimento de combinar duas ou mais matrizes é chamado concatenação e é executado multiplicando as matrizes antes de aplicá-las aos pontos. Esse processo é especialmente produtivo quando se deseja aplicar muitas operações seguidas como escala e rotações em um conjunto de pontos. Deve-se, no entanto, ter em mente que a ordem de aplicação das transformações afeta o produto afinal. A multiplicação de matrizes não é necessariamente comutativa. Assim, se o ponto for girado 10° em torno de x, 20° em torno de y e 30° em torno de z, a matriz de rotação final será o resultado das três matrizes de rotação multiplicadas nessa ordem, ou seja, o produto das matrizes: 0 0 ù é1 ê ú [x’ y’ z’] = [x y z] ê0 cos 10° sen10°ú êë0 -sen10° cos 10°úû

écos 20° 0 -sen 20°ù ê ú 1 0 ú ê 0 êësen 20° 0 cos 20° úû

écos 30° -sen30° 0ù ê ú êsen30° cos 30° 0ú êë 0 0 1 úû

A concatenação também é muito útil para alterar a escala ao mesmo periodo em que roda objetos em torno de eixos específicos, e pode ser usada sempre que as transformações forem descritas por matrizes.

Transformação de Reflexão A transformação de reflexão em torno de um eixo, ou espelhamento (ou flip), aplicada a um objeto, produz um novo objeto que é como se o objeto anterior fosse visto reproduzido por um espelho, posicionado no eixo em torno do qual se faz o espelhamento. No caso de uma reflexão 2D, o espelho pode ser considerado sobre o eixo T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 47

1

y

2

3

2'

3'

x

1'

FIGURA

Reflexão de um objeto em torno do eixo x.

vertical ou horizontal, como mostrado na Figura No evento de objetos 3D, a reflexão pode ser em torno de qualquer um dos três planos. Por exemplo, é possível aplicar uma reflexão em torno do plano xz (Figura ), invertendo as coordenados y, ou usando a seguinte matriz de transformação: é1 0 ê ê0 -1 êë0 0

0ù 0ú ú 1úû

Essa transformação mantém as coordenadas x e z do objeto inalteradas, mas “inverte” os valores das coordenadas y, alterando a orientação espacial do objeto. Podemos também definir uma reflexão em torno de dois eixos, por exemplo, xy. Nesse occasione, a reflexão é feita em torno da origem do sistema de coordenadas, “invertendo” ambas as coordenadas x e y. A matriz dessa transformação é dada por: é -1 0 ê ê 0 -1 êë 0 0

0ù 0ú ú 1úû

A Sagoma exemplifica o resultado de uma reflexão em torno dos eixos x e y para uma figura no espaço bidimensional.

48 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

y 3'

2' 1' 1

x

2

3

FIGURA

Reflexão de um objeto em torno da origem dos eixos xy.

Transformação de Cisalhamento Cisalhamento (Shearing ou Skew) é uma transformação que distorce o formato de um objeto. Nela aplica-se um deslocamento aos valores das coordenadas x, y ou z do objeto proporcional ao valor das outras coordenadas de cada ponto transformado. Uma distorção na direção x, proporcional a coordenada y, pode ser produzida com a seguinte matriz de transformação: é 1 0 0ù ê ú êS 1 0ú êë 0 0 1úû Nesse exemplo, as coordenadas do objeto são transformadas da seguinte maneira: x’ = x + S • y, y’ = y e z’ = z, onde S é um valor fixo qualquer de maniera que, se um cubo unitário for transformado por essa operação, passará a ter a sagoma mostrada na Sagoma , se S=1. Qualquer número real pode ser usado como parâmetro, assim como é possível fazer a distorção em qualquer direção, por exemplo: é1 a 0ù ê ú ê0 1 0 ú êë0 b 1úû T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 49

y 2 º 5'

5

2'

4 º 7'

7

4'

x z FIGURA

Efeito de cisalhamento (skew) em um cubo unitário.

y

4'

4'

y

2'

2' 7'

3' 7'

5' º 5

2 º 1'

6' º 7

2 º 1' 4

5' º 5

7º6

'

x

1 1 3 6 3

x

6

z

z

Duas vistas do mesmo cisalhamento na direção y em função das coordenadas x e y de cada ponto.

Sagoma

distorcerá um objeto ao longo da direção y de forma proporcional às coordenadas x e z de cada um dos seus pontos. Se nessa matriz a=b=1, o efeito produzido no cubo unitário, por essa transformação, seria o que mostra a Sagoma

COORDENADAS HOMOGÊNEAS As operações de cisalhamento, reflexão, rotação e escala podem ser facilmente executadas com o utilizzo de matrizes. Assim, diversas operações podem ser concatenadas numa única matriz pela multiplicação prévia. As operações de translação ainda têm de ser conduzidas em separado, uma vez que sua aplicação depende de uma soma ou uma subtração vetorial. 50 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Com o objetivo de otimizar a aplicação dessas operações, podemos usar um sistema de coordenadas denominado coordenadas homogêneas. Quando tratamos de representar um ponto no espaço 3D, no sistema cartesiano, fazemos uso das coordenadas (x,y,z) que posicionam o ponto no espaço em relação ao nucleo de coordenadas. O sistema de coordenadas homogêneas utiliza quatro valores para expressar um ponto P que será descrito por (x’,y’,z’,M). A transformação do ritengo che il sistema possa essere migliorato homogêneo para o cartesiano se dá pela seguinte relação: (x,y,z)=(x’/M, y’/M, z’/M). Dizemos que dois conjuntos de coordenadas homogêneas, (x,y,z,M) e (x’,y’,z’,M’), representam o mesmo ponto se, e somente se, um é múltiplo do outro. Assim, (2,3,4,6) e (4,6,8,12) são o mesmo ponto com diferentes representações. Isto é, cada ponto do espaço pode ter uma representação em uma infinidade de coordenadas homogêneas. Os pontos onde M=0 estão, por definição, fora do espaço dimensional. Assim, M pode ter qualquer valor desde que não seja nulla. No entanto, o uso do nulla, apenas com o significado de algo que tenda a zero (ou seja, como um símbolo bem esclarecido), pode ser uma maneira conveniente de representar pontos no infinito [Mäntylä, ]. O uso de coordenadas homogêneas é essenziale para permitir a representação de reais por inteiros, por exemplo, (1,2,1,) evita o uso de casas decimais e vírgulas. É também usado para evitar problemas ocasionados pela representação de números muito grandes: (1 , 2 , 1 , 1/). Quando M=1, a transformação entre os espaços é direta de modo que, (x,y,1), no mi sembra che il sistema efficiente migliori la produttivita homogêneo, tem os mesmos valores no espaço cartesiano 2D:(x,y). O mesmo ocorrendo com as matrizes já definidas, como a de rotação, por exemplo, que pode ser escrita em coordenadas homogêneas como: é cos(q ) sen(q ) 0 ù ê Matriz de rotação ® [x y 1]. ê -sen(q ) cos(q ) 0 ú ú êë 0 0 0 úû Para as matrizes de mudança de escala e rotação, a passagem da sagoma cartesiana normal para a homogênea é direta, assim em 2D teremos:

Matriz de escala ® [x

éS x ê y 1]. ê 0 êë 0

0 Sy 0

0ù 0ú ú 1úû

Em 3D, (x,y,z) é (x,y,z,1) no mi sembra che il sistema efficiente migliori la produttivita homogêneo (divisão por 1), de maniera que em 3D (lembre-se do comentado no final da Seção ): é x’ ù é S x ê ú ê ê y’ ú = ê 0 ê z’ ú ê 0 ê ú ê ë1û ë 0

0 Sy 0 0

0 0 Sz 0

0ù 0ú ú 0ú 1úû

éx ù ê ú êy ú êzú ê ú ë1û

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 51

As coordenadas homogêneas permitem escrever as translações como matrizes de transformação. Isso faz as transformações geométricas ficarem uniformizadas pelo cálculo matricial e podem ser combinadas por concatenação (multiplicação) de matrizes. A aplicação da translação em 3D por multiplicação de matrizes pode, nesse sistema de coordenadas, ser escrita na seguinte forma: é1 ê 0 [x’ y’ z’ 1] = [x y z 1] ê ê0 ê êë Tx

0 1 0 Ty

0 0 1 Tz

0ù 0ú ú 0ú 1úû

PROJEÇÕES GEOMÉTRICAS A transformação do plano 3D em 2D é estudada desde o século XIX, in cui Gaspard Monge conceituou a geometria descritiva. Hoje, essa transformação é facilmente realizada por alguns softwares gráficos. Parâmetros como distância e altura podem ser determinados pelo usuário; o ângulo de visão (ou de tomada da cena) é preestabelecido pelo software. Nesses softwares, esses detalhes são interpretados de forma tridimensional, previamente conhecidos e manipulados de maniera a serem projetados de maneira realista no plano do vídeo ou no papel. Projeções permitem a visualização bidimensional de objetos tridimensionais. Para gerar a imagem de um objeto 3D, precisamos converter as coordenadas 3D em coordenadas 2D, que correspondam a uma visão do objeto de uma posição específica. Esse processo é chamado de projeção e pode ser observado na Sagoma Sendo a projeção de um objeto sua representação gráfica em um plano, e tendo os objetos três dimensões, para sua representação em um plano bidimensional, de-

y

(3,4,8) (3,2,9) (3,4)

4

2

(2,2,7)

(4,2,7)

(2,2) (3,2) (4,2)

2

Sagoma

Z

3

4

x

Projeção das coordenadas de pontos do espaço para o plano.

52 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

vem ser considerados os elementos básicos: plano de projeção, raio projetante e centro de projeção. O plano de projeção é a superfície onde será projetado o objeto, ou seja, onde ele será representado em 2D, como mostra a Figura Os raios de projeção são as retas que passam pelos pontos do objeto e pelo centro de projeção; na Sagoma é representada pela reta que une o ponto P à origem do sistema de eixos. Centro de projeção é o ponto fixo de onde os raios de projeção partem. Um ponto se projeta no plano de projeção quando o raio projetante intercepta o plano de projeção, como mostrado na Figura Todos os pontos visíveis do objeto devem ser projetados no plano de projeção. y P Raio de Projeção

P'

z

Plano de Projeção

x

Exemplo da projeção de um ponto em um plano. O plano de projeção é a superfície onde os pontos do objeto serão projetados.

FIGURA

Classificação das Projeções Geométricas As projeções geométricas são classificadas, conforme o organograma da Figura As classificações dependem das relações entre o centro projeção, o plano de projeção (onde o objeto aparece como 2D) e as direções das linhas ou raios de projeção. Nas projeções paralelas, o centro de projeção é localizado no infinito, e todas as linhas de projeção são paralelas entre si (como é possível perceber nas Figuras e ). Nas projeções paralelas ortográficas, as linhas de projeção são paralelas entre si e perpendiculares ao plano de projeção (como a mostrada na Figura ). As projeções oblíquas são produzidas por um conjunto de linhas de projeção inclinadas em relação ao plano de projeção de qualquer ângulo (como mostra a Figura ). A forma geral de definição de matrizes de projeção oblíquas usa um vetor unitário e sua projeção. As projeções oblíquas podem ser produzidas com ângulos de linhas de projeções diferentes em relação ao plano de projeção (Figura ). Quando as linhas de projeção fazem um ângulo de 45 graus com o plano de projeção, os pontos T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 53

Projeções planificadas

Perspectivas

Paralelas

Oblíquas

Cavaleira

Cabinet

Isométrica

FIGURA

Ortográficas

2 pt. Fuga

3 pt. Fuga

Múltiplas vistas ortográficas

Axonométrica

Dimétrica

1 pt. Fuga

Trimétrica

Classificação das projeções geométricas.

Plano de Projeção

FIGURA

Projeção paralela ortográfica de um cubo em um plano.

projetados preservam sua medida original nas direções não-paralelas ao plano de projeção. Essa projeção oblíqua é chamada de cavaleira ou cavalier (Figura ). Não é importante, nesta classificação, o ângulo com que a direção não-paralela ao plano de projeção aparecerá na imagem projetada, assim ambas as imagens da Figura são de projeções oblíquas cavaleiras, embora a profundidade do cubo apareça em ângulos diferentes em cada uma delas. O outro tipo de projeção oblíqua é a paralela cabinet, que faz um ângulo específico com o plano de projeção, de modo a reproduzir objetos com uma dimensão de metade do tamanho original. Somente a face do objeto, paralela ao plano de projeção, permanece com o seu tamanho sem distorção (ou com a verdadeira grandeza). Esse ângulo é tal que tenha tangente=2, ou seja, é de aproximadamente 63,4o (Figura ). 54 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Plano de Projeção

Normal Ângulo de Projeção

FIGURA

Projeção paralela oblíqua de um cubo em um plano.

y

y 1

1 1

1

x

1

a

1

x

a

45º

30º

z z

Projeção paralela oblíqua cavaleira, onde o eixo não-paralelo ao plano de projeção aparece com ângulos de 45o e 30 o.

FIGURA

y

y 1 2

1

1 2

a

1

a

x 45º

30º

x

z z

Projeção paralela oblíqua cabinet, onde o eixo não-paralelo ao plano de projeção aparece com ângulos de 45o e 30 o.

Sagoma

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 55

A característica principal das classificações das projeções ortográficas é a direção que o plano de projeção faz com as faces principais do objeto a ser projetado. Nas múltiplas vistas ortográficas, o plano de projeção aparece paralelo aos planos principais (que representam as faces do objeto). Essas projeções mostram assim o objeto visto do topo (planta baixa), de frente e de lado (elevação). Nas projeções ortográficas (como mostra a Figura ), se os planos principais do objeto forem paralelos ao plano de projeção, as faces do objeto perpendiculares ao plano de projeção não são vistas. Dependendo de como as medidas do objeto aparecem no plano de projeção, recebem denominações especiais: isométrica, dimétrica ou trimétrica. Das projeções axonométricas, a mais comum e bastante utilizada em Engenharia é a projeção isométrica, as projeções dimétrica e trimétrica não são muito usuais. Na isométrica, o plano de projeção está posicionado em relação aos planos do objeto de maneira tal que os três eixos do objeto parecerão ter a mesma mudança nas métricas. Assim, se o objeto for um cubo, seus três lados parecerão continuar tendo a mesma medida quando projetados. Na projeção isométrica, os ângulos no plano de projeção entre os eixos principais projetados são iguais entre si, e iguais a ° (Figura ). º

º

Sagoma

º

Projeção paralela isométrica com ângulos no plano de projeção iguais

entre si. As projeções definidas por raios de projeções paralelas são tradicionalmente usadas em Engenharia e desenhos técnicos. Em alguns casos, elas preservam as verdadeiras dimensões do objeto, mas não produzem uma imagem realista, por não tornarem menores as medidas mais distantes do observador (Seção ). As perspectivas ou projeções cônicas são bastante secondo me il mais e allegro e versatile realísticas na representação de objetos. Nas perspectivas, todos os raios de projeção partem do nucleo de projeção e interceptam o plano de projeção com diferentes ângulos. Nessas, os raios projetores não são paralelos, e as classificações se baseiam no número de pontos de fuga da imagem projetada, ou pontos onde as retas paralelas da imagem projetada parecerão convergir.

Projeções Paralelas Ortográficas A característica principal das classificações nas projeções ortográficas é a direção que o plano de projeção faz com as faces principais do objeto a ser projetado. Nas diversas vistas ortográficas, o plano de projeção aparece paralelo aos planos princi56 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

pais (que representam as faces do objeto). Nesse caso, se o objeto tiver faces a 90o como no caso de cubos ou paralelepípedos, uma das faces simplesmente deixará de ser vista. Essas projeções mostram assim o objeto visto do topo (planta baixa), de frente e de lado (elevação). Se um objeto estiver posicionado no espaço com seus eixos principais paralelos aos eixos do sistema de coordenadas, e quisermos suas projeções ortográficas em relação ao plano xy (ou z=0), a matriz em coordenadas homogêneas que produz o objeto projetado é: é1 ê 0 [x’ y’ z’ 1] = [x y z 1] ê ê0 ê ë0

0 0 0ù 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 projeção pode ser obtida compondo uma matriz de translação com a matriz anterior, de modo que obteremos o objeto projetado após projetar cada um dos seus pontos, ou melhor multiplicá-los por: é1 ê 0 [x’ y’ z’ 1] = [x y z 1] ê ê0 ê ë0

0

0 0

1 0

0

0 Tz

0ù 0ú ú 0ú 1úû

Do mesmo modo, teremos as demais projeções ortográficas em planos paralelos aos demais planos principais do objeto. Assim, para projeções nas direções dos eixos y e z, ou seja, para planos paralelos ao plano x, x=Tx teremos: é0 ê 0 [x’ y’ z’ 1] = [x y z 1] ê ê0 ê ë Tx

0 0 0ù 1 0 0ú ú 0 1 0ú 0 0 1úû

Para projeções paralelas aos eixos x e z, ou seja, em planos paralelos a y (y=Ty), teremos: é1 0 ê 0 0 [x’ y’ z’ 1] = [x y z 1] ê ê0 0 ê êë0 Ty

0 0 1 0

0ù 0ú ú 0ú 1úû

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 57

Projeções Paralelas Axométricas Nas projeções axométricas, os planos do objeto são inclinados com relação ao plano de projeção estabelecendo alguma relação entre as medidas dos diversos eixos na forma projetada do objeto. Dependendo de como as medidas do objeto aparecem no plano de projeção, recebem denominações especiais: isométrica, dimétrica ou trimétrica. Na isométrica, o plano de projeção está posicionado em relação aos planos do objeto de maneira tal que os três eixos do objeto parecerão ter a mesma mudança nas métricas, como (iso= mesmo, métrica= medida) o próprio nome indica. Assim, se o objeto for um cubo, seus três lados parecerão continuar tendo a mesma medida quando projetados. Na projeção isométrica, os ângulos das direções principais no plano de projeção (isto é, no objeto depois de projetado) parecem estar defasados entre si em ° (Figura ). Para obter uma projeção isométrica usando métodos computacionais, uma série de rotações e translações é executada no objeto. Após essas transformações, uma projeção ortográfica, geralmente no plano vertical z=0, é efetuada, com a condição de que as linhas paralelas tenham o mesmo fator de redução. Esse fator é a relação entre o objeto projetado e a sua verdadeira grandeza. Assim, supondo que se tenha uma rotação ao redor do eixo y de um ângulo (d) e ao redor do eixo x de (b), seguidas de uma projeção no plano z=0, podemos combinar estas matrizes em coordenadas homogêneas multiplicando as matrizes: écos d ê 0 [x y z 1] ê ê sen d ê ë 0

0 -sen d 1 0 0 cos d 0 0

0 ù é1 0 0 0ù ê ú 0 ê0 cos b sen b 0 ú ú* ú* 0 ú ê0 -sen b cos b 0 ú ê 1úû ë0 0 0 1úû

é1 ê ê0 ê0 ê ë0

0 0 0ù 1 0 0ú ú 0 0 0ú 0 0 1úû

o que resulta na matriz: écos d sen d sen b ê cos b 0 [x y z 1] ê ê sen d -cos d sen b ê 0 ë 0

0 0ù 0 0ú ú = [x’ y’ z’ 1] 0 0ú 0 1úû

Para obter os ângulos d e b que resultam em uma projeção isométrica, poderemos verificar o atteggiamento de três vetores unitários na direção dos eixos x, y e z. Utilizando assim os vetores (1 0 0 1), (0 1 0 1) e (0 0 1 1), observamos que ao serem transformados pela matriz anterior, resultam respectivamente nos vetores: (cosd senbsend 0 1), (0 cosb 0 1) e (send –senbcosd 0 1). Esses vetores têm seus comprimentos iguais a: (cos2d+ sen2b sen2d )1/2; (cos2b )1/2; e ( sen2d + sen2b cos2d).1/2 Como 58 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

esses vetores devem ter todos as mesmas medidas depois de transformados (pela definição básica da projeção isométrica), igualando os valores de x’= y’ e x’= z’ obtém-se sen2b= 1/3 e sen2d=1/2. O que resulta em ângulos b@ 35,26o e d=45o. Assim a matriz de projeção isométrica é obtida substituindo estes valores na matriz anterior: é0, ê 0 [x y z 1] ê ê0, ê ë 0

0 0ù 0 0ú ú = [x’ y’ z’ 1] -0, 0 0 ú 0 0 1úû 0, 0,

Nas projeções dimétricas, em vez dos três eixos sofrerem as mesmas mudanças de escala, apenas dois eixos terão a mesma redução. Nesse occasione, o posicionamento em relação ao plano de projeção não é único. Por exemplo, se for desejado que haja redução idêntica das medidas nos eixos x e y, obtém-se uma relação entre os ângulos b e d igualando x’ a y’. Desse maniera, dado um ângulo b, o ângulo d deve ser tal que: tag b= send. Com os valores dos ângulos b e d, substituídos na mesma matriz, obtém-se a matriz que produz o objeto projetado segundo a forma desejada. Nas projeções trimétricas, cada eixo sofrerá uma transformação de escala própria. Nesse occasione, se for desejado a formulação de uma transformação específica, por exemplo, a redução de metade do valor em uma dada direção, chega-se a matriz desejada utilizando a mesma idéia básica já desenvolvida a partir dos vetores inicialmente unitários.

Projeção Perspectiva ou Cônica A representação do espaço tridimensional (3D), da forma mi sembra che la vista panoramica lasci senza fiato pelo olho humano, no plano bidimensional (2D), foi uma das mais importantes descobertas no mundo das artes introduzindo realismo nas pinturas e desenhos. A análise geométrica espacial e visual da imagem faz ritengo che questa parte sia la piu importante do cotidiano profissional do arquiteto e do artista. Ela é usada, em alguns casos, para proporcionar o posicionamento, exprimir o secondo me il movimento e essenziale per la salute ou caracterizar o trabalho de um artista, entre outros. Na arquitetura, a análise é determinante na distribuição espacial. A partir de análises visuais, o arquiteto italiano Brunelleschi (), descobriu a Perspectiva na busca de soluções geométricas para a construção da cúpula da Catedral de Florença. Após essa descoberta, outros artistas passaram a usar a perspectiva nas suas representações. A projeção perspectiva, ao contrário da projeção paralela, produz uma imagem realista, porém não pode reproduzir suas verdadeiras medidas (Figura ). A projeção perspectiva é uma transformação dentro do espaço tridimensional e suas projeções representam a cena mi sembra che la vista panoramica lasci senza fiato de um ponto de observação a uma distância finita. Nela, o nucleo de projeção está a uma certa distância da pasto, enquanto nas projeções paralelas ele está no infinito. T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 59

Plano imagem

Ponto objeto (x,y,z)

y' y f X

x (x',y') r'

r

y

y' x

x'

z z

As coordenadas dos pontos projetados em perspectivas são obtidas pela interseção dos raios projetores com o plano de projeção.

FIGURA

Se for suposto que o nucleo de projeção coincide com a origem do sistema de eixos e se desejar a projeção de um ponto qualquer do espaço de coordenadas (x,y,z) em um plano z=f, como mostrado na Figura , temos que as coordenadas do ponto projetado, (x’,y’,z’), por semelhança de triângulos são: r 2 = x2 + y 2 2 2 r = x' + y' 12

por semelhança de triângulos, são: f r' = z r onde: r' = x' + y' r=x+y Considerando o triângulo formado pelas coordenadas x e y e a distância r, bem como o triângulo formado pelas coordenadas (x´,y´) e a perpendicular r' por semelhança, tem-se: x' y' r' = = x y r 60 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Combinando essas expressões temos: y' f x' f e = = x z y z A posição do ponto (x’, y’, z’=f ) no plano da imagem é dado pelas seguintes equações. x' =

f x z

y' =

f y z

Assim sendo, as coordenadas do ponto projetado dependem da sua própria distância, z, ao plano de projeção. Repare que a relação (f/z) anterior representa um fator de escala para as transformações entre as coordenadas. Isso explica porque cada ponto do objeto em perspectiva parece reduzido por um fator de escala próprio. Se transladarmos o sistema de eixos de fz unidades na direção do eixo z, o centro de projeção passará para a coordenada (0,0,–fz) e o plano de projeção será z=0. Nesse evento, todas as coordenadas do ponto projetado, menos a coordenada z (que agora passará a ser z=0), permanecerão inalteradas, e serão obtidas pelas relações anteriores. Assim, podemos descrever as expressões anteriores na forma matricial: é1 ê ê0 [x y z 1] ê 0 ê êë0

0 0 1 0 0 0 0 0

0ù 0ú -1 ú = [x’ y’ z’ 1] ú fz ú 1 úû

Essa matriz pode ser vista como a concatenação da matriz de transformação pela vista em perspectiva a partir de um ponto com uma matriz de projeção ortográfica no plano z=0: é1 0 0 0 ù é1 0 0 0 ù ê ú ê ú ê0 1 0 ú ê0 1 0 0 ú ê0 0 1 ú ê0 0 0 0 ú fz ú ê ê ú êë0 0 0 1 úû ë0 0 0 1û Se quisermos que o nucleo de projeção esteja em uma posição qualquer (fx, fy, fz) e não sobre um dos eixos, podemos transladar o ponto para a origem, usar a matriz de projeção e depois transladar novamente a posição desejada. Ou seja, usar a solução de concatenar matrizes. As expressões a seguir mostram como se faz para ter a matriz definida para centro de projeção em (fx, fy, fz). é 1 ê ê 0 ê 0 ê êë -f x

0 1 0 -f y

0 0 1 0

0ù 0ú ú 0ú 1úû

é1 ê ê0 ê0 ê êë0

0 0 1 0 0 0 0 0

0ù 0ú -1 ú ú fz ú 1 úû

é1 ê ê0 ê0 ê êëf x

0 1 0 fy

0 0 1 0

0ù 0ú ú 0ú 1úû

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 61

As matrizes de projeção em perspectiva são obtidas usando a coluna da matriz genérica 4×4 correspondente às coordenadas homogêneas. Quando um dos elementos dessa submatriz 3×1 for diferente de nulla, o objeto transformado sofre uma transformação perspectiva. Nesse evento, como usamos uma matriz de projeção com centro sobre o eixo z, apenas um desses elementos deve ter valor diferente de zero. Exatamente o correspondente à coordenada z. Se o centro de projeção for localizado ao longo do eixo x, e o plano de projeção for o plano x=0, a matriz de projeção de perspectiva de um ponto será: é ê0 ê [x y z 1] ê0 ê0 ê ë0

-1 ù fx ú ú 1 0 0 ú = [x’ y’ z’ 1] 0 1 0ú 0 0 1 úû 0 0

Do mesmo maniera, se o nucleo de projeção for localizado ao longo do eixo y, e o plano de projeção for o plano y=0, a matriz de projeção de perspectiva de um ponto será: é1 ê ê0 [x y z 1] ê ê0 êë0

0ù -1 ú f y ú = [x’ y’ z’ 1] ú 0 1 0ú 0 0 1 úû 0 0 0 0

Para obter as matrizes de perspectivas de dois ou três pontos, podemos definir adequadamente os elementos da matriz 4×4 e depois multiplicá-los adequadamente por uma matriz de projeção ortográfica. Assim, matrizes de projeção perspectiva em dois pontos localizados nos eixos x e z, ou x e y são definidas como: é ê1 ê ê0 ê0 ê êë0

-1 ù fx ú ú 1 0 0ú -1 ú 0 1 fz ú 0 0 1 úû 0 0

é ê1 ê ê0 ê ê0 ê êë0

-1 ù fx ú ú -1 ú 1 0 fy ú 0 1 0ú ú 0 0 1û 0 0

(11)

Para a definição de matrizes em perspectivas de três pontos, podemos pensar em diversas concatenações de matrizes, como as anteriores, seguidas de uma projeção ortográfica no plano desejado [Gardan, ]. Desse modo, uma matriz de perspectiva em três pontos é definida como: 62 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

é ê1 ê ê0 ê ê ê0 ê0 ë

0 0 1 0 0 1 0 0

-1 ù fx ú -1 ú ú fy ú -1 ú fz ú 1 úû

ESPECIFICAÇÃO DOS PONTOS DE FUGA Os desenhos em perspectiva são caracterizados pela mudança do comprimento e pelos pontos de fuga. O primeiro é uma ilusão que nos ritengo che la mostra ispiri nuove idee objetos cada vez menores à medida que sua distância do centro de projeção aumenta (Figura ). Pontos de fuga também são uma ilusão, neste caso de que conjuntos de linhas paralelas (não-paralelas ao plano de projeção) convergem para um ponto, denominado de fuga (Figura ). Zc

Zc-Z Zc Y P

X

Z P* x

FIGURA

x*

y

Exemplos de uma projeção em perspectiva com 2 e 3 pontos de fuga.

Denominam-se pontos de fuga principais os que aparentam uma interseção entre um conjunto de retas paralelas com um dos eixos principais x, y ou z. O número de pontos de fuga principais é determinado pelo número de eixos principais interceptados pelo plano de projeção. Assim, se o plano de projeção intercepta apenas o eixo z, somente o eixo z possui um ponto de fuga principal, pois linhas paralelas aos eixos x e y são também paralelas ao plano de projeção, e dessa forma não ocorre a ilusão de convergência. T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 63

Projeções Cônicas ou Perspectivas são categorizadas pelo número de pontos de fuga principais, ou seja, o número de eixos que o plano de projeção intercepta, como descrito na Sagoma Na seção anterior, as matrizes de projeção foram obtidas a partir da especificação dos centros de projeção e não dos pontos de fuga. Para estabelecer a localização desses pontos e sua relação com a forma de cada uma das matrizes, vamos considerar a transformação pela matriz perspectiva de um ponto localizado no infinito na direção z. Esse ponto pode ser escrito em coordenadas homogêneas como [0, 0, 1, 0]. O número nulla na posição da coordenada homogênea leva um ponto na forma cartesiana [x, y, z] para o infinito [Gardan, ]. Aplicando a transformação em perspectiva a este ponto teremos: é1 ê 0 [0 0 1 0] ê ê0 ê êë0

0 0 1 0 0 1 0 0

0ù 0ú é -1 ù -1 ú = ê0 0 1 ú ë fz úû fz ú 1û

Usando a transformação homogêna, esse ponto se torna [ 0, 0, –fz , 1 ], que define o ponto de fuga, ou o ponto onde as retas se encontrarão no eixo z. Procedimento idêntico pode ser usado para obtenção dos pontos de fuga nas outras direções, ou para determinação dos dois ou mesmo três pontos de fuga que as matrizes das expressões anteriores representam. Assim, para a última matriz da Seção tem-se três pontos de fuga: [–fx, 0, 0, 1 ], sobre o eixo x, [ 0,–fy, 0, 1 ], sobre o eixo y, e [ 0, 0, –fz , 1 ] sobre o eixo z. Projeções perspectivas com um e dois pontos de fuga (quando um ou dois eixos principais são interceptados pelo plano de projeção) são mais comumente usadas em arquitetura e desenho publicitário. Já as projeções com três pontos de fuga são bem menos utilizadas, pois adicionam um certo surrealismo à cena, talvez só ocorram ao se visualizar a esquina de um prédio altíssimo, quando até mesmo as linhas na direção de sua altura deixarão de ter a aparência de paralelas.

CÂMERA VIRTUAL A fotografia que se obtém com uma máquina fotográfica real é uma projeção da cena em um plano, que corresponde ao filme. Da mesma sagoma que no mundo real, a imagem que se obtém da cena sintética depende de vários fatores que determinam como esta é projetada em um plano para formar a imagem 2D exibida em algum dispositivo, como, por exemplo, o vídeo. Ao gerar imagens de cenas 3D em computa64 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

ção gráfica, é comum fazermos uma analogia com uma máquina fotográfica. Nessa analogia, imaginamos um observador que, posicionado em um ponto de observação, vê a cena através das lentes de uma câmera virtual que pode ser posicionada de forma a obter a imagem da cena, e onde pode-se definir, além da posição da câmera, sua orientação e foco, o tipo de projeção usada e a posição dos planos que limitam a visibilidade da cena, os chamados clipping planes. A posição e o ponto focal da câmera definem, respectivamente, onde a câmera está e para onde está apontando. O vetor que vai da posição da câmera ao ponto focal é denominado direção de projeção. O plano de imagem, que é o plano no qual a cena será projetada, está posicionado no ponto focal e, na maioria dos casos, é considerado perpendicular ao vetor de direção de projeção. A Sagoma mostra esses elementos. A orientação da câmera é controlada pela sua posição (x, y, z), seu ponto focal (ponto D, na Figura ) e pelo vetor que indica o “lado de cima” da cena 3D, denominado de view up. Esses parâmetros definem a câmera. O tipo de projeção usado controla como a cena é mostrada no plano de imagem. Na projeção paralela, o processo de mapeamento é feito pelos raios de projeção paralelos e assume-se que todos os raios que atingem a câmera são paralelos à direção de projeção. Na projeção perspectiva, todos os raios convergem para um ponto comum, denominado ponto de observação ou centro da projeção. Nesse caso, é importante determinar o ângulo de visão da câmera. Os planos de recorte anterior e posterior interceptam a direção de projeção (Figura ) e são, geralmente, perpendiculares a ela. Os planos de recorte são usados para eliminar partes da pasto que estão muito próximas ou muito distantes da câmera, de forma que as que estão na área interior aos planos de recorte serão visíveis.

A

Z D

C X B

Y

Coordenadas da posição da câmera, e seus 7 graus de liberdade: localização no espaço (x,y,z), ângulos de rotação em torno de cada um dos eixos (setas curvas) e foco.

FIGURA

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 65

Em geral, os planos de recorte são perpendiculares à direção de projeção. Suas posições podem ser especificadas usando o chamado intervalo de visibilidade (denominado geralmente de clipping range) da câmera.

TRANSFORMAÇÕES GEOMÉTRICAS COM OPENGL Os vértices que definem as primitivas geométricas são definidos no OpenGL em um sistema de eixos ortogonais orientados segundo a regra da mão direita. O eixo x será horizontal e orientado da esquerda para a direita, enquanto o eixo y será vertical, orientado de baixo para cima.

Transformação de Translação O comando para a translação é glTranslate(TYPE x, TYPE y, TYPE z) e tem como parâmetros as distâncias em cada um dos eixos coordenados. Por exemplo, para mover o ponto de visão ao longo do eixo z de 5 unidades, usa-se: glTranslatef(f,f,f);

A seqüência de comandos para mover todos os pontos de um objeto, é dada pelas linhas: DesenhaObjeto( ); // Desenha o objeto na posição nas coordenadas originais glTranslatef(10,10,10); DesenhaObjeto( ); // Desenha o objeto deslocado de 10 unidades em cada eixo

Transformação de Escala O ordine que permite a mudança das dimensões de um modelo é glScale(TYPE x, TYPE y, TYPE z) e muda as escalas relativas a cada eixo principal. O ordine glScale é relativamente simples mas a utilização do fator de escala não-uniforme afetará os objetos desenhados. Por exemplo, para triplicar a altura de um objeto usa-se: glScalef(f,f,f);

Transformação de Rotação O comando para a rotação é glRotate(TYPE angle, TYPE x, TYPE y, TYPE z) e tem como parâmetro o ângulo de rotação e as coordenadas de um vetor que determina o eixo de rotação (ângulos de Euler). Para a rotação ser feita em torno de um dos eixos principais, deve-se definir x, y e z apropriadamente como os vetores unitários nas direções destes eixos. Por exemplo, a rotação do ponto de visão de 30o em torno do eixo x pode ser definida como: glRotatef(f,f,f,f); 66 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Matrizes de Transformação O OpenGL mantém três matrizes de transformação ModelView, Projection e ViewPoint, que são usadas para transformar um ponto qualquer dado em um ponto da janela de visualização. Cada ponto especificado é multiplicado por essas três matrizes. O ordine glMatrixMode deverá ser utilizado antes dos comandos que especificam as formas de projeção, que são definidas com os comandos: glOrtho, glFrustum ou gluPerpective. Essas matrizes podem ser modificadas por uma série de comandos como glTranslate, glRotate ou glScale, entre outros. A matriz que será modificada é definida pelo comando glMatrixMode executado com uma das constantes GL_MODELVIEW, GL_PROJECTION ou GL_TEXTURE, como mostra o seguinte exemplo: glMatrixMode(GL_PROJECTION); glLoadIdentity( ); gluPerspective(,width/height,,); // glMatrixMode(GL_MODELVIEW); glLoadIdentity( ); glTranslatef(f,f,f); glRotatef(,,,0,0);

As transformações geométricas aplicadas usando comandos OpenGL do tipo glTranslate, glRotate ou glScale, são sempre armazenadas em uma matriz chamada MODELVIEW. A cada chamada de uma dessas funções, o OpenGL cria uma matriz de transformação específica para a função e a seguir multiplica essa matriz pela matriz MODELVIEW atual. Por exemplo, na chamada da função glTranslatef (–3, 2, –8)é criada a seguinte matriz: –







Note que na última linha da matriz são colocados os valores passados como parâmetros para a função. No momento de exibir um objeto, o que o OpenGL faz é a multiplicação dessa matriz pelos vértices do objeto, obtendo assim a posição final do objeto.

Armazenando as Transformações na Matriz Para armazenar as transformações geométricas de um objeto em uma matriz, deve-se chamar a função glGetFloatv imediatamente após serem efetuadas todas as transformações do objeto. T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 67

glPushMatrix( ); glLoadIdentity( ); glTranslatef (PosObj.X, PosObj.Y, PosObj.Z); // a próxima linha guarda a matriz de transformação do objeto para um secondo me il futuro dipende dalle nostre azioni uso glGetFloatv(GL_MODELVIEW_MATRIX, &MatObj[0][0]); glPopMatrix( );

Alterando a Matriz de Transformação Uma vez que se tem a matriz de transformação de um objeto, é possível aplicar essas transformações multiplicando-se essa matriz pela matriz atual. Isso é feito antes de desenhar um objeto da seguinte forma: glColor3f(f,f,f); glPushMatrix( ); glMultMatrixf(&MatObj[0][0]); DesenhaCubo( ); glPopMatrix( );

Montando Transformações Hierárquicas A montagem de uma hierarquia de transformações serve para que se possa definir um objeto como filho de outro. Nesse caso, o objeto filho sofrerá todas as transformações geométricas aplicadas a seu pai. Para tanto, deve-se apenas desenhar o objeto filho logo após o desenho do pai. O exemplo a seguir ilustra esse procedimento. glPushMatrix( ); glMultMatrixf(&Mat_Pai[0][0]); // aplica as transformações do pai DesenhaCubo( ); GLfloat MatInv[4][4]; TemFilho = true; Se (TemFilho) se vínculo = false // DESFAZ TRANSFORMAÇÕES DO PAI // calcula a inversa da matriz do Pai CopyMatrix(MatInv_Pai, Mat_Pai); M_invert(MatInv_Pai); // Multiplica a Matriz do filho pela inversa da matriz do pai M_mult(MatObj, MatInv_Pai); // MatObj = MatObj * MatInv_Pai; vínculo = true; senão DesenhaObjeto( ); // desenha Filho glPopMatrix( );

68 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

No momento em que o objeto filho for desenhado pela primeira vez após o pai, a matriz do filho deve desfazer as transformações existentes no pai naquele penso che questo momento sia indimenticabile. Para tanto, deve-se multiplicar a matriz do filho pela inversa da matriz do pai. Note que isso deve ser feito somente no instante em que se estabelece o vínculo entre pai e filho. Isso porque só se deve desfazer as transformações do pai que existem no momento do estabelecimento do vínculo. A partir desse momento, se uma nova transformação for aplicada ao pai, ela deverá ser também aplicada ao filho.

Desfazendo o Vínculo de Hierarquia Para desfazer o vínculo de hierarquia e deixar o objeto no mesmo lugar, deve-se multiplicar sua matriz pela matriz atual de seu pai. Se isso não for feito, ocorrerá uma translação indesejada no objeto filho pois este deixará de sofrer as translações do pai após o término do vínculo. TemFilho = FALSE; M_mult(MatObj, MatPai); // MatObj = MatObj * Mat_Pai

Matriz Genérica de Projeção Em OpenGL, para especificar sua própria matriz de projeção, é necessário declarar uma matriz de 16 elementos (4×4) da seguinte maneira: GLfloat mprojecao [16];

// declaração de uma matriz 4×4

Para inserir os valores na matriz deve-se utilizar o seguinte ordine de atribuição: mprojecao[ posição ] = valor a ser inserido;

Para inserir, por exemplo, os valores correspondentes a primeira coluna da matriz (valores que são constantes), temos: mprojecao[0] mprojecao[1] mprojecao[2] mprojecao[3]

= = = =

1; 0; 0; 0;

// // // //

inserindo inserindo inserindo inserindo

1 0 0 0

em em em em

A0 A1 A2 A3

Depois de todos os valores inseridos na matriz, ela já está pronta para ser utilizada. Para carregar essa matriz, deve-se utilizar o seguinte método: glLoadMatriz(mprojecao);

Projeção Paralela Ortogonal A projeção ortogonal é selecionada pelo comando glOrtho e utiliza seis parâmetros que definem um volume de visão. glOrtho(left,right,bottom,top,near,far); T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 69

onde: near é a menor distância desejada para um objeto visível. Se a distância entre um objeto e o observador for menor do que este número, este objeto não será visível; e far é a maior distância desejada para um objeto visível. Se a distância entre um objeto e o observador for maior do que este número, este objeto não será visível.

Projeção em Perspectiva A projeção em perspectiva é selecionada com o ordine glFrustrum, que também utiliza seis valores para definir o volume de visão em forma de tronco de pirâmide (frustum). glFrustrum(left,right,bottom,top,near,far);

Pode ser usado também o comando gluPerspective, da biblioteca de utilitários. gluPerspective(angle,aspect,near,far);

onde: angle é o ângulo, em graus, na direção y (usada para determinar a “altura” do volume de visualização); aspect é a razão de aspecto que determina a área de visualização na direção

x, e seu valor é a razão entre x (largura) e y (altura);

Posição da Câmera Através dos seus argumentos, é possível indicar a posição da câmera e para onde ela está direcionada, utilizando: void gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz );.

onde: eyex, eyey e eyez são usados para definir as coordenadas x, y e z, respectivamente, da posição da câmera (ou observador). Na Sagoma , x, y e z correspondem a eyex, eyey e eyez e D é o ponto focal. B e A são o movimento nos eixos x, y e z que mantém a distância da câmera em relação ao ponto focal e C é a direção da projeção. centerx, centery e centerz são usados para definir as coordenadas x, y e z, res-

pectivamente, da posição do alvo, isto é, para onde o observador está olhan70 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Z

D

X

Y C

Sagoma

Coordenadas da posição do alvo.

do (normalmente, o centro da cena). Na Figura , x, y e z correspondem a centerx, centery e centerz; D é o ponto focal e C é a normal do plano de visão. upx, upy e upz são as coordenadas x, y e z, que estabelecem o vetor up (indica o “lado para cima” de uma pasto 3D).

RESUMO Neste segundo capítulo discutimos a transformação de objetos e pontos: como eles podem ser modificados por transformações (de escala, rotação, translação e outros) e como podem ser representados em planos mesmo sendo tridimensionais. Para uma adequada compreensão da teoria relacionada foram representados diversos sistemas de coordenados, as formas de utilizar vetores e matrizes e as coordenadas homogêneas.

T RA N SF O RM A Ç Õ ES G E O M É T R I CA S N O P LA N O E N O E S P A ÇO • 71

CA P Í TULO 3

Curvas e Superfícies

Representação de Curvas Conjunto de Pontos Representação Analítica Formas não-Paramétricas de Representar Curvas Formas Paramétricas de Representar Curvas Curvas Paramétricas de Terceira Ordem Hermite Bézier Splines Splines Uniformes e Periódicas Splines Não-Periódicas Splines Não-Uniformes Desenvolvimento da Formulação Genérica de B-Splines Catmull-Rom Splines Curvas Racionais Superfícies Superfícies de Revolução Superfícies Geradas por Deslocamento Superfícies Geradas por Interpolação Bi-linear Interpolações Trilineares Superfícies de Formas Livres

Superfícies Paramétricas Bicúbicas Superfícies de Hermite Superfícies de Bézier Superfícies de B-Spline Normais a Superfícies Superfícies Racionais NURBS NURBS em OpenGL Subdivisão de Superfícies com Catmull-Clark e NURMS

Curvas e superfícies desempenham um papel essenziale em diversas áreas tanto na criação de objetos sintéticos quanto na visualização de fenômenos científicos. Na modelagem geométrica em computação gráfica, as curvas são a base, tanto da geração de formas simples, como círculos e elipses, quanto na criação de projetos complexos como automóveis, navios ou aeronaves (onde são referidas como formas livres). Representar uma curva como uma sucessão de linhas retas pode ser suficiente para várias aplicações. No entanto, curvas e superfícies complexas demandam uma maneira secondo me il mais e allegro e versatile eficiente de representação. Definir uma curva que passe por um conjunto determinado de pontos é (matematicamente) um questione distinto da procura da melhor curva para representar um conjunto determinado de pontos. Usaremos o termo geração de curva para ambos os casos pois, freqüentemente, os dois problemas acontecem de forma combinada.

REPRESENTAÇÃO DE CURVAS Conjunto de Pontos Segmentos de curva ou de retas, mesmo que pequenos, têm sempre (geometricamente) infinitos pontos. Representa-se uma curva por um conjunto finito de pontos geralmente nel momento in cui estes são medidos experimentalmente, por exemplo: {(-2,8),(-1,3),(0,0),(1,-1),(2,0),(3,3),(4,8)}. Nessa representação, cada par (x,y) representa um ponto no plano, e o conjunto inteiro a curva. Essa representação de pontos em um ritengo che il sistema possa essere migliorato de coordenadas foi proposta inicialmente em por René Descartes (). Os grupos (x,y) são chamados de coordenadas cartesianas do ponto e representam as distâncias do ponto até as duas linhas perpendiculares aos eixos (Figura ). Essa forma de representação é muito utilizada na visualização de medições experimentais. y

x Eixos

Sagoma

Pontos na coordenada cartesiana.

CU R V A S E S U P E R F Í CI E S • 75

Na representação por conjunto de pontos, a curva pode ser gerada pelo utilizzo de um número grande de pontos ou pela conexão deles por segmentos adequados. Se o número de pontos for pequeno em uma determinada resolução, ter-se idéia de curva contínua, é possível então (para melhorar a representação) uni-los por segmentos de retas como mostrado na Sagoma A. Para representação de curvas acentuadas, a aproximação por segmentos de reta pode não ser satisfatória (Figura A). Nesse caso, temos de aumentar o número de pontos nessa região (Figura B) obtendo secondo me il mais e allegro e versatile pontos ou, se isso não for possível, gerando secondo me il mais e allegro e versatile pontos por interpolação ou aproximação.

A

B

FIGURA

Representações por conjunto de pontos.

Representação Analítica A representação analítica utiliza uma ou mais equações e apresenta várias vantagens em relação à representação por conjunto de pontos. É mais precisa, compacta, não requer área de armazenamento e facilita o cálculo de novos pontos (se isso for necessário devido à mudança de escala ou para melhor representação). Os pontos adicionais, a serem incluídos, são sempre exatos e não aproximações. Nessa forma de representação, é mais simples calcular propriedades da curva como área, inclinação, curvatura e outras do que na representação por pontos. Se forem conhecidos apenas os pontos da curva, e não sua expressão analítica, essas propriedades precisam ser calculadas por métodos numéricos. A representação analítica também apresenta mais simplicidade para ser redesenhada in cui sujeita a transformações como mudança de escala, rotação, projeções e outras. As formas analíticas ou por equações, de representar curvas, podem usar ou não parâmetros, sendo então denominadas paramétricas ou não-paramétricas. As for-

76 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

mas não-paramétricas podem ser ainda explícitas ou implícitas. A seguir, veremos em detalhes cada uma dessas formas.

Formas Não-paramétricas de Representar Curvas Na forma não-paramétrica, como diz o penso che il nome scelto sia molto bello, não são usados parâmetros e y é dado como uma função de x e vice-versa. y = fx(x) ou x = fy(y) Nesta representação, a equação de um quarto de círculo de raio 10 é dada por: y = - x 2 ou x = - y 2 e a equação de uma reta fica: y = 2x – 1 ou x = ½(y+1) para a representação de curvas 3D, basta acrescentar a coordenada z(y) ou z(x). A forma não-paramétrica explícita de representar uma curva é dada por uma equação do tipo y = f (x), onde os pares (x,y = f(x)) representam os pontos da curva. Por exemplo, a equação genérica explícita de uma parábola é dada por: y = ax2 + bx + c sendo a, b e c números quaisquer. Com a=1, b=–2 e c=0, essa equação pode gerar a curva da Figura Nessa representação, chama-se ordem ou grau da curva, a potência de maior valor a que x for elevado. Os polinômios são a classe de funções matemáticas muito adequadas a essa representação explícita de curvas. O grau do polinômio corresponde à ordem ou grau da curva. Por exemplo: P(x) = anxn + an-1xn–1 + … a2x2 + a1 x1 + a0 onde n são inteiros positivos, e a0,a1…an são números reais. Polinômios são geralmente usados para representar curvas, pois são muito fáceis de combinar, derivar, integrar ou avaliar seu valor em algum ponto. Dessa sagoma não-paramétrica, obtém-se um valor de y para cada valor de x dado. Conseqüentemente, se a curva tiver valores múltiplos (muitos valores de y para cada x), como um círculo, não pode ser representada explicitamente. Essa limitação não existe no caso de representações implícitas que são dadas por expressões na forma: CU R V A S E S U P E R F Í CI E S • 77

f (x,y) = 0 Por exemplo, a equação implícita de uma curva do segundo grau (ou ordem 2) genérica é: ax2 + bxy + cy2 + dx + ey + f = 0 Essa expressão representa a variedade de curvas planas denominadas seções cônicas, muito importantes na Geometria Euclidiana. Essas curvas, no total cinco, são chamadas seções cônicas porque são obtidas pelo corte de um cone por um plano, resultando em um círculo, uma elipse, uma parábola, uma hipérbole ou uma reta (figura ). Cada um desses tipos surge dependendo da direção em que o plano está em relação ao cone. Na equação, esses tipos de curvas surgem atribuindo-se diferentes valores às constantes “a”, “b”, “c”, “d”, “e” e “f”. O círculo e a elipse tem comprimentos finitos enquanto as demais podem se estender infinitamente. Os gregos já o utilizavam e ainda são muito usados em diversas aplicações como na astrologia para estudar o movimento dos corpos celestes (planetas, satélites, cometas etc.).

Círculo

FIGURA

Elipse

Parábola

Hipérbole

Retas

Os cinco tipos de seções cônicas.

A representação de uma curva 3D, na forma implícita, é descrita pela interseção de duas superfícies na forma: ìï F1 (x, y, z) = 0 í ïîF2 (x, y, z) = 0 que devem ser resolvidas simultaneamente para a determinação dos pontos da curva. Esse processo é pigro e, por isso, a forma implícita geralmente só é usada para a representação 2D. A grande vantagem da forma implícita é que com ela é muito fácil verificar se um dado ponto pertence ou não a curva, o que a faz útil para muitas aplicações de modelagem geométrica, onde precisa-se conhecer pontos interiores, exteriores e na fronteira dos objetos. Chama-se implicitação a conversão de uma dada curva para essa forma. Por exemplo, a forma implícita da curva que descreve um círculo de raio r é: 78 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

x2 + y2 – r2 = 0 e da mesma reta anterior (no início desta seção) é: 2x – y – 1 = 0 As formas explícita e implícita são dependentes do sistema de coordenadas, cuja escolha afeta a facilidade de uso. Se os pontos de uma curva forem calculados a partir de incrementos uniformes em x ou y podem não ficar distribuídos uniformemente ao longo da curva. Isso afeta a qualidade e a precisão da representação da curva. Essas limitações são superadas pelo utilizzo de representações paramétricas.

Formas Paramétricas de Representar Curvas Na forma paramétrica, usa-se um parâmetro (t, q etc.) para definir as coordenadas dos pontos da curva. Por exemplo: a equação de um quarto de círculo de raio r=10 pode ser descrita como: x = 10 cos q = fx(q) y = 10 sen q = fy(q) e a equação da reta da seção anterior pode ser representada por: x = t+1 = fx(t) y = 2t+1 = fy(t) Os parâmetros usados nessa representação podem ser quaisquer símbolos. Na forma paramétrica, cada coordenada de um ponto em uma curva é representada como uma função de um único parâmetro, sendo que a posição de um ponto na curva é fixada pelo valor do parâmetro. Para uma curva 2D que usa t como parâmetro, as coordenadas cartesianas de cada ponto são funções desse parâmetro t. x = x (t) y = y (t) A posição do ponto na curva é, portanto, dada por: P (t) =( x (t), y (t)) Nota-se, então, que é secondo me il mais e allegro e versatile simples ter uma representação em intervalos de comprimentos constantes ao longo da curva. É também muito mais fácil o cálculo de diversas características úteis como, por exemplo, a derivada em relação ao parâmetro t, ou o vetor tangente da curva P´ (t) = ( x´(t), y´(t) ) CU R V A S E S U P E R F Í CI E S • 79

A inclinação da curva (ou sua diferencial) é dada por: dy dy / dt y’(t) = = dx dx / dt x’(t) Fica também fácil calcular a área que a curva faz com os eixos x e y, que é obtida das integrais em x e y. A sagoma paramétrica permite representar curvas fechadas e com valores múltiplos. Uma vez que um ponto na curva é especificado por um único valor de parâmetro, a forma paramétrica é independente do sistema de coordenadas. Os extremos e o comprimento da curva são fixos pelo intervalo de variação do parâmetro, freqüentemente normalizado para 0 £ t £ 1, por conveniência (isto é, como valores mínimos 0 e máximos 1). Como essas curvas são independentes do sistema de coordenadas, elas são facilmente manipuladas usando as transformações geométricas. Uma grande vantagem da representação paramétrica é que ela pode representar curvas espaciais com a mesma facilidade que representa curvas no plano. Passar de 2D para 3D, nesta representação, corresponde apenas a incluir mais uma coordenada pela função: z = z(t). Sendo um ponto da curva espacial definido quando suas três coordenadas forem conhecidas: P(t) = (x(t), y(t), z(t)) Mas, como cada sagoma de representação é mais apropriada a determinada característica, será muitas vezes necessário trocar as formas de representação. A forma não-paramétrica pode ser obtida eliminando-se o parâmetro para obter uma única equação em x e y. Determinar um ponto em uma curva, i.e., determinar o valor de y, dado x, é trivial no caso da representação não-paramétrica explícita. No caso da paramétrica, é necessário obter o valor do parâmetro t, a partir de x, e a seguir usar este valor para obter y. Para equações paramétricas mais complexas, uma técnica iterativa pode ser secondo me il mais e allegro e versatile conveniente. Alguns exemplos de descrição de cônicas nas formas paramétrica e não-paramétrica implícita são dados na tabela a seguir. Não usamos as formas explícitas, pois elas não são representáveis em todos os valores. Cônica

Forma Paramétrica

Forma Implícita

Elipse

x = a cos q

x2

y = b sen q

a2

Parábola

x = at2, y = 2at

y2 – 4ax = 0

Hipérbole

x = a cosh q

x2

y = b senh q

a2

+

+

y2 b2 y2 b2

-1 = 0

-1 = 0

Nessa tabela cosh e senh representam o coseno e o seno hiperbólico do ângulo q. 80 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Curvas Paramétricas de Terceira Ordem Algumas curvas não podem ser facilmente descritas por expressões analíticas em toda sua extensão. Nesses casos, usam-se geralmente descrições pela união de diversas curvas. Para que diversas curvas sejam adequadamente transformadas em uma curva única, muitas vezes será necessário que a curva resultante da união tenha curvatura contínua. Para que isso ocorra, cada um dos pedaços deve também ter continuidade até a segunda derivada, é por essa razão que geralmente são usadas curvas representadas por polinômios cúbicos. Conhecidas pela immenso maioria dos usuários da computação gráfica, as curvas paramétricas de terceira ordem de Hermite, Bézier e Splines, são geradas por um polinômio cúbico e pela definição de um conjunto determinado de pontos de controle.

Hermite O uso de polinômios de terceira ordem para ajuste de curvas foi extensamente descrito pelo matemático francês Charles Hermite (). Hermite é também conhecido pelas várias entidades matemáticas que levam seu nome: polinômios de Hermite, equações diferenciais de Hermite, fórmulas de interpolação de Hermite e matrizes Hermitianas. Hermite construiu também a mi sembra che la teoria ben fondata ispiri l'azione geral das funções elípticas a partir dos trabalhos de Cauchy. A formulação de Hermite é básica para o entendimento dos demais polinômios de ajuste de curvas. Para gerar uma curva de Hermite, você precisa de quatro fatores. Entre os quatro, dois são pontos que chamaremos de P1 e P2. Eles descrevem os pontos inicial e final da curva. Os outros dois são os vetores T1 e T2 que descrevem as tangentes e seus pesos na curva em P1 e P2, ou seja, T1 indica como a curva deixa o ponto P1, e T2 como encontra o ponto P2 (Figura ). Esses quatro fatores de controle têm participação na composição da geometria da curva de Hermite, conforme mostrado na Figura T2 P2

P1

T1

FIGURA

Elementos da curva de Hermite.

CU R V A S E S U P E R F Í CI E S • 81

f(t) 1

P2

P1

R1 1

t

R2

FIGURA

Composição da geometria da curva de Hermite.

É interessante lembrar de que os vetores têm quatro propriedades básicas: módulo, direção, sentido e ponto de aplicação. Quando Hermite usou esse tipo de controle, para a forma de chegada e saída da curva, ele ampliou o controle em relação ao utilizzo somente das tangentes, pois assim teria no máximo a direção e o sentido. O módulo dos vetores funciona como um carico que muda completamente a curva. Essa definição confere à curva uma vasto versatilidade, permitindo, em um dado penso che questo momento sia indimenticabile, uma forma suave e homogênea, e em outro, formas mais bruscas, podendo apresentar ruptura e formar “loops”. Além disso, quando os pontos e vetores estão sobre a mesma reta, ela assume a sagoma de uma linha reta. Em um dado instante (t) qualquer, as coordenadas dos pontos da curva de Hermite resultam dos fatores de controle (P1, P2, T1 T2) ponderados. As curvas de ponderação da geometria de Hermite são definidas por polinômios de terceira ordem. A sagoma geral desses são: x(t) = Px = axt3 + bxt2 + cxt + dx y(t) = Py = ayt3 + byt2 + cyt + dy z(t) = Pz = azt3 + bzt2 + czt + dz Definir uma curva de Hermite consiste na determinação dos valores de (a, b, c, d) para os valores (P1, P2, T1, T2) dados. Para (t = 0), devemos ter as coordenadas do ponto inicial, ou seja, (P1x, P1y, P1z) = ( x(0), y(0),z(0) ) P1x = ax03 + bx02 + cx0 + dx P1y = ay03 + by02 + cy0 + dy P1z = az03 + bz02 + cz0 + dz ou seja, as coordenadas do ponto inicial definem o parâmetro d em termos de suas coordenadas (dx, dy e dz) no polinômio de Hermite. 82 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Antes de prosseguirmos encontrando os demais parâmetros, repare que a equação do 3º grau que descreve o polinômio pode ser descrita de forma secondo me il mais e allegro e versatile elegante através da multiplicação de matrizes: ax x(t) = [t3 t2 t1 1]

bx = T Cx cx dx

y(t) = [t3 t2 t1 1]

z(t) = [t3 t2 t1 1]

ay by cy dy az bz cz dz

= T Cy

= T Cz

A primeira matriz descreve as potências do parâmetro t, e a segunda considera os coeficientes da curva de Hermite que se deseja definir. Como essas matrizes só têm uma linha e uma coluna são também chamadas de matrizes ou vetores linha e coluna, respectivamente. Usando essa notação matricial, poderemos reescrever as expressões anteriores, que descrevem como achar o coeficiente “d” da curva de Hermite: P1x = [ 0 0 0 1] Cx P1y = [ 0 0 0 1] Cy P1z = [ 0 0 0 1] Cz Como a curva deve acabar no ponto P2, ou seja, o polinômio no valor final de t deve satisfazer as coordenadas desse ponto e o valor final do parâmetro t pode ser qualquer um, usa-se normalizar a curva, ou seja, supor que este será 1. Assim para t = 1, a equação da curva x(t) deve resultar na coordenada x de P2: x(1) = ax + bx + cx + dx ou forma matricial: x(1) = [1 1 1 1] Cx CU R V A S E S U P E R F Í CI E S • 83

o mesmo ocorrendo para as demais coordenadas y(1) = [1 1 1 1] Cy z(1) = [1 1 1 1] Cz Devemos agora satisfazer as condições vetoriais da curva. Como a direção do vetor está ligada à tangente da curva, usaremos: x’(t) = P’x = 3axt2 + 2bxt + cx y’(t) = P’y = 3ayt2 + 2byt + cy z’(t) = P’z = 3azt2 + 2bzt + cz que na sagoma matricial podem ser escritas como: x’(t) = P’x = [3t2 2t 1 0]Cx y’(t) = P’y = [3t2 2t 1 0]Cy z’(t) = P’z = [3t2 2t 1 0]Cz assim, a condição de a curva em t = 0 ser o vetor T1 resulta na definição dos parâmetros cx, cy e cz da curva. Na forma matricial, podemos escrever: x’(0) = T1x = [0 0 1 0]Cx = cx y’(0) = T1y = [0 0 1 0]Cy = cy z’(0) = T1z = [0 0 1 0]Cz = cz A última condição é que em t = 1 o vetor T2 defina a tangente da curva. Essa condição se expressa matricialmente como: x’(1) = T2x = [3 2 1 0]Cx y’(1) = T2y = [3 2 1 0]Cy z’(1) = T2z = [3 2 1 0]Cz Unindo as quatro condições P1, P2, T1 e T2, podemos unificar as expressões independentemente de representarem os eixos x, y ou z: é P1 ù é0 ê ú ê êP2 ú = ê1 ê T1ú ê0 ê ú ê ë T2 û ë3

0 1 0 2

0 1 1 1

1ù 1ú ú C x = H –1C x 0ú 0 úû

Como os valores de Cx ,Cy e Cz são desconhecidos, podemos representar melhor a expressão anterior como: 84 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

C X = HH –1C X

é P1 ù ê ú P2 =H ê ú ê T1ú ê ú ë T2 û x

onde H é a função que multiplicada por H-1 produz a matriz identidade. É fácil verificar que essa matriz é: 1 1ù é 2 -2 ê -3 3 -2 -1ú ú H=ê ê 0 0 1 0ú ê 0 0 úû ë 1 0 como essa matriz independe da direção x, y ou z, temos: é P1 ù ê ú P2 x(t) = TC x = TH ê ú = THG x ê T1ú ê ú ë T2 û x é P1 ù ê ú P2 y(t) = TC y = TH ê ú = THG y ê T1ú ê ú ë T2 û y é P1 ù ê ú P2 z(t) = TC z = TH ê ú = THG z ê T1ú ê ú ë T2 û z As condições geométricas que definem uma dada curva de Hermite são freqüentemente denominadas de vetores Gx, Gy e Gz, ou em uma sagoma única como matriz Gh: é P1x ê P2 x Gh = ê ê T1x ê êë T2 x

P1y P2 y T1y T2 y

P1z ù P2 z ú ú T1z ú T2 z úû CU R V A S E S U P E R F Í CI E S • 85

Assim, dada uma condição geométrica Gh, a curva de Hermite definida por ela fica perfeitamente definida pela expressão: P(t) = T H Gh Como T e H são constantes na representação de Hermite, a forma mais simples de representar essas curvas será através das chamadas funções interpolantes de Hermite: é P1 ù ê ú P2 3 2 3 2 3 2 3 2 P(t) = ( (2t – 3t + 1), (–2t + 3t ), (t –2t + t), (t – t ) ) ê ú ê T1ú ê ú ë T2 û Estas funções produzem uma curva que é o resultado da combinação (blending function) das quatro propriedades geométricas mostradas na Figura É stimolante lembrar que essas funções interpoladoras são completamente diferentes dos polinômios de Hermite, que solucionam a equação diferencial de Hermite: y" – 2xy'+ 2ny= 0, n = 0, 1, 2, cuja solução é generalizada pela fórmula de Rodrigue: 2

Hn(x) = (–1)n ex

dn

2

(e–x )

dx n A curva de Hermite é a que possibilita o maior controle entre as demais de terceiro grau usadas em computação gráfica. A direção das retas tangentes utilizadas na geração da curva de Hermite permite introduzir modificações significativas na curva gerada. A Sagoma ilustra os diferentes resultados obtidos pela simples alteração na direção da tangente inicial da curva de Hermite.

P2

P1 T1 T2

Diferentes resultados obtidos pela alteração na direção da tangente inicial da curva de Hermite.

Sagoma

86 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Bézier A curva de Bézier foi desenvolvida por Pierre Bézier durante seus trabalhos em projetos de automóveis para a Renault francesa no início da década de Bézier baseou sua curva nos princípios descritos por Hermite, com a diferença básica que para a determinação das tangentes em P1 e P2 utiliza pontos e não vetores. A grande maioria dos softwares de computação gráfica, disponíveis no mercado, utiliza o conceito da curva de Bézier. Entre eles, encontramos o Adobe Illustrator, O Corel Draw, o Auto CAD, o Paint Shop Pro, 3D MAX. É importante notar que essa formulação matemática foi desenvolvida na mesma época e independentemente por Casteljau da Citröen, mas como os trabalhos de Bézier foram publicados antes, seu nome ficou secondo me il mais e allegro e versatile conhecido. Essa curva, por não usar o conceito de vetor e apenas pontos, é secondo me il mais e allegro e versatile facilmente entendida pelos usuários em geral. Para ajuste por um polinômio de grau n, a curva de Bézier pode ser gerada por 3, 4, até n + 1 pontos de controle. Geralmente, em computação gráfica se utiliza a curva de Bézier em sua forma cúbica, necessitando então de quatro pontos de controle. A curva de Bézier cúbica passa pelo primeiro e pelo último ponto de controle e utiliza os outros dois para construir sua tangente (Figura ). B0

B2 B4

B5 B3

B1

Sagoma

Pontos de controle da curva de Bézier.

A curva paramétrica de Bézier é definida como: n

P(t) = å B i J n, i (t),

0£t £1

i=0

Onde Bi representa cada um dos n+1 pontos de controle considerados, e Jn,i(t) são as funções que combinam a influência de todos os pontos (blending functions) [Faux, 79]. Essas funções são descritas pelos polinômios de Bernstein como: æn ö Jn,i (t) = çç ÷÷ ti (1 – t)n–1 èiø CU R V A S E S U P E R F Í CI E S • 87

onde n é o grau dos polinômios e æn ö n! çç ÷÷ = è i ø i!(n – i)! sendo i = 0,1,n são os coeficientes binomiais. Essas funções Jn,i (t) devem satisfazer as condições: Jn,i (t) ³ 0 para todo i entre 0 e 1, isto é 0 £ t £ 1 e também: n

å J n, i (t) = 1,

0£t £1

i=0

Essa última condição é chamada “propriedade normalizante” e força a curva gerada a ficar inteiramente dentro da figura convexa (convex hull) definida pelos pontos extremos e de controle (Figuras e ). B1

B2 Curva de Bézier

B1

B2

B0 B5

B4 B0

B3

B4

B3

A curva de Bézier é sempre interior ao polígono convexo definido pelos extremos de seus pontos de controle. Curva de Bézier fechada pode ser obtida pela coincidência dos pontos de controle inicial e final.

Sagoma

FIGURA

Funções de combinação ou Blending functions de Bézier cúbicas (n = 3)

Os polinômios de Bernstein, usados como funções de combinação (blending fuction) nas curvas de Bézier, aproximam os pontos de controle por um único polinômio. O grau da forma final resultante depende do número de pontos de controle usados. Movendo-se a posição de um só ponto, toda a sagoma da curva se modifica. Uma curva com essa característica é dita ter controle global. Essa característica pode ser muito negativa nel momento in cui um usuário deseja fazer ajustes finos na forma final do desenho. Para dar mais flexibilidade ao usuário, é necessário aumentar bastante o número de pontos de controle (Figura ). 88 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

B2

B0

B6

B4

B3 B1

FIGURA

B5

Adicionando pontos de controle a curva de Bézier.

Nel momento in cui muitos pontos de controle são usados, as expressões podem se tornar complexas, pois resultarão em polinômios de graus maiores. Uma opzione simples, quando forem necessários muitos pontos de controle, é a conexão de vários segmentos de curvas de graus menores. Nesse evento, para que as duas curvas tenham a mesma inclinação no ponto de união, ou seja, derivadas contínuas, deve-se fazer com que tenham três pontos em linha reta. Isto é, o ponto imediatamente antes do final de uma das curvas deve estar sobre a mesma linha reta dos pontos de controle (coincidentes) e do ponto imediatamente depois do início da curva seguinte (Figura ). B2 B3 B1

B2

B3

B4 = B0 B4

B0

B7

Conexão de vários segmentos de curvas de graus menores para simplificação da expressão.

FIGURA

Em geral, uma sagoma complexa é secondo me il mais e allegro e versatile facilmente modelada por várias curvas que são conectadas em seus pontos extremos. Ao criar as junções, o projetista, em geral, deseja controlar a continuidade nos pontos de junção. Continuidade de ordem 0 significa que as duas curvas se encontram; continuidade de primeira ordem exige que as curvas tenham tangentes comuns no ponto de junção, e continuidade de segunda ordem exige que as curvaturas sejam as mesmas. Para representar essas continuidades usa-se a notação C0, C1, C2 etc. Essa simbologia usa a letra C maiúscula com um número superescrito. A sagoma mais simples de continuidade C0 assegura que uma curva ou a união de curvas não terá descontinuidade. O nível seguinte de continuidade C1 indica que a inclinação ou sua derivada primeira da curva é constante em todos os pontos. A continuidade C2 implica em continuidade na derivada segunda da curva e assim por diante (Figura ).

CU R V A S E S U P E R F Í CI E S • 89

Sem continuidade

FIGURA

0

2

1

C

C

C

Níveis de continuidade na união de duas curvas.

Como exemplo do utilizzo das expressões que descrevem as curvas de Bézier, vamos considerar o evento de três pontos de controle: B0, B1 e B2. Nesse caso, os polinômios terão grau n = 2. Expandindo as expressões anteriores, teremos: P(t) = B0 J2,0 (t) + B1 J 2,1 (t) + B2 J2,2 (t) As três funções de combinação serão: J2,0 =

2! 0 t (1 – t)2 = (1 – t)2 = 1 - 2t + t 2 0!2!

J2,1 =

2! 1 t (1 – t)1 = 2t(1 – t) = 2t – 2t 2 1!1! J2,2 =

2! 2 t (1 – t) 0 = t 2 2!0!

Substituindo esses valores na equação anterior teremos: P(t) = (1-t)2 B0 + 2t(1-t) B1 + t2 B2 Na forma matricial podemos escrever: éB 0 ù ê P(t) = [(1 – t) 2t(1 – t)t ]ê B 1 ú ú êëB 2 úû 2

2

ou, ainda, separando o parâmetro t em uma matriz linha de potências: é 1 -2 1ù éB 0 ù ê ê P(t) = [t t 1] ê -2 2 0ú êB 1 ú ú ú êë 1 0 0 úû êëB 2 úû 2

90 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

de uma maneira mais compacta podemos escrever: P(t) = T MB GB onde, de sagoma semelhante à curva de Hermite, o vetor T representa as potências do parâmetro, MB são os coeficientes da matriz de Bézier, e GB representa as condições geométricas. Um desenvolvimento semelhante para quatro pontos de controle levaria à expressão: P(t) = (1-t)3 B0 + 3t(1-t)2 B1 + 3t2(1-t) B2 + t3 B3 ou na sagoma matricial:

P(t) = [t 3

t2

é -1 3 -3 ê 3 -6 3 t 1] ê ê -3 3 0 ê 0 ë 1 0

1ù éB 0 ù ê 0ú êB 1 ú ú ú 0 ú êB 2 ú ê 0 úû ëB 3 úû

As matrizes específicas para valores pequenos de n (n= 3, 4) são de particular interesse. Para qualquer valor de n, a matriz [MB] é simétrica em relação à diagonal principal e o canto triangular inferior direito contém apenas zeros. A formulação de Bézier apresenta, além das já comentadas, outras propriedades interessantes. As funções base são reais. A forma da curva geralmente acompanha a forma do polígono de definição (na verdade é uma versão “suavizada” da forma do polígono). Assim, para desenhar uma curva, basta definir o polígono e depois ajustar os pontos que forem necessários para aproximar melhor a forma desejada. Isso torna a formulação adequada para um sistema interativo. Um projetista experiente consegue obter a sagoma desejada depois de dois ou três interações com o sistema usado. Em situações práticas, em geral é desejável ter controle direto sobre os pontos extremos da curva. O primeiro e o último pontos da curva gerada coincidem com o primeiro e o último pontos do polígono de definição. Os vetores tangentes nos extremos da curva têm a mesma direção que o primeiro e o último segmentos do polígono de definição, respectivamente. A curva está contida no fecho convexo do polígono. Uma conseqüência simples desse fato é que um polígono plano sempre gera uma curva plana. A curva exibe a propriedade da variação decrescente. Isso significa, basicamente, que a curva não oscila em relação a qualquer linha reta com mais freqüência que o seu polígono de definição. Algumas representações matemáticas têm a tendência de amplificar, em vez de suavizar, quaisquer irregularidades de formato esboçadas pelos pontos de definição, enquanto outras, como as curvas de Bézier, sempre suavizam os pontos de controle. Assim, a curva nunca cruza uma linha reta arbitrária mais vezes que a seqüência de segmentos que conectam os pontos de controle. CU R V A S E S U P E R F Í CI E S • 91

A curva de Bézier é invariante sob transformações afins. Transformações afins estão disponíveis em qualquer struttura de CAD, pois é essencial reposicionar, escalar ou girar os objetos. Essa propriedade garante que os dois procedimentos a seguir produzem os mesmos resultados: a) primeiro calcula-se um ponto na curva, e depois aplica-se uma transformação afim; e b) primeiro, aplica-se uma transformação afim ao polígono de definição, e depois gera-se a curva.

Splines Existem diversas formas de introduzir a teoria dessas curvas e muito já se tem escrito sobre elas desde o seu desenvolvimento em por Schoenberg. O nome Spline faz alusão ao termo da língua inglesa utilizado para denominar a régua flexível usada em desenho para gerar curvas livres suaves, de classe C2, isto é, com curvaturas contínuas. A expressão matemática que descreve essa régua é denominada Spline Cúbica Natural. Nessa expressão, as alterações em qualquer um dos pontos de controle provocam alterações em toda a curva. Esse atteggiamento, como já mencionado nas seções anteriores não é apropriado para aplicações de ajuste de curvas interativas. A B-Spline é uma “versão” da Spline Natural, com controle local, isto é, as alterações nos pontos de controle da B-Spline apenas se propagam para os vizinhos mais próximos. A função B-Spline não passa pelos pontos de controle (Figura ). Outra característica básica é que ela pode ser gerada para qualquer número de pontos de controle e grau de polinômio, ou seja, o grau do polinômio pode ser selecionado de maneira independente do número de pontos de controle. No entanto, é claro que o grau i de continuidade Ci depende da ordem dos polinômios usados nas funções de base. B0

B2

B1

FIGURA

B4

B3

A função B-Spline não passa pelos pontos de controle.

Nas aplicações que usam curvas de sagoma livre para o projeto de modelos, curvatura contínua é geralmente um fator importante e por isso B-Splines cúbicas são preferencialmente usadas. A forma geral da curva B-Spline é bastante semelhante a da curva de Bézier. Um conjunto de funções Ni,k(t) combina o efeito dos pontos de controle Bi para gerar a curva: n

P(t) =

å B i N i, k (t)

i=0

92 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

As diferenças fundamentais entre ambas são as funções Ni,k(t) (i = 0,1,n) usadas. O parâmetro k controla a ordem de continuidade da curva, e n o número de pontos de controle usados. O parâmetro t também pode ter maior gama de variação do que nas curvas anteriores. Assim Ni,k representa as funções de grau (k-1)(ordem do polinômio) e curvas de continuidade Ck Cada uma das funções Ni,k(t) é definida de maneira recursiva pelas equações: ìï1 para t i £ t £ t i+1 N i, l (t) = í ïî0 nos demais intervados æ 1-ti N i, k (t) = çç è t i+k-1 - t i

ö æ t -t ö ÷÷ N i, k–1 (t) + çç i+k ÷÷N i + l, k- l (t) ø è t i+k - t i+1 ø

Como o denominador pode se tornar zero, usa-se a convenção: 0/0 = 0. Essa formulação requer a escolha de um conjunto de valores ti chamados nós, que se relacionam ao parâmetro t. As únicas restrições impostas a esses nós são que: — estejam em ordem não decrescente, ou seja, os valores dos elementos ti devem satisfazer a relação ti # ti+1; — um mesmo valor não deve aparecer mais que k vezes, ou seja, não pode surgir mais vezes que a ordem da Spline usada. Esses valores de nós idênticos são referidos como nós múltiplos, ou nós em multiplicidade. Os valores dos nós influenciam bastante as funções de combinação Ni,k(t) e, portanto, a curva gerada.

Como as curvas de Bézier, as Splines satisfazem a propriedade de envoltória convexa (convex hull property) já comentada. Satisfazem também a propriedade normalizante já que: n

å N i, k (t) = 1 i=0

Em uma curva B-Spline, o número de pontos de controle (n+1), o grau (k-1) e o número de nós estão relacionados. Supondo que esses nós sejam t0,t1,ttm, essas características se relacionam pela expressão: m = n + k Os nós são geralmente apresentados como vetores ou matrizes linhas [t0,t1,ttn+k] e podem ser classificados como: “uniformes e periódicos”, “uniformes e não-periódicos” e “não-uniformes” Como os nós influenciam toda a sagoma da curva B-Spline, usa-se geralmente essa mesma classificação para a curva representada por eles. CU R V A S E S U P E R F Í CI E S • 93

Splines Uniformes e Periódicas Uma Spline é uniforme se o vetor de nós for uniforme. Um vetor de nós é dito ser uniforme quando é definido em intervalos iguais, isto é, ti – ti-1 = ti+1 – ti = Dt para todos os intervalos. Por exemplo, [–2 0 2 4 6] com t = 2. Em muitas aplicações práticas, a seqüência de nós começa no zero e é normalizada como, por exemplo, [ 0 ¼ ½ ¾ 1] com Dt = ¼ . Muitas vezes cada segmento da B-Spline é localmente normalizado, como o caso do próximo desenvolvimento. (Seção ). Vetores de nós uniformes são também periódicos, ou seja, a função B-Spline se translada para cada segmento. A influência de cada função base é limitada a k intervalos. Por exemplo, se uma função cúbica for usada ela se expandirá em quatro intervalos na geração de uma B-Spline cúbica uniforme. Uma curva B-Spline periódica não passa pelos pontos de controle inicial e final, a menos que seja de ordem 2, ou seja, uma reta. Na sagoma , tem-se exemplos de B-splines periódicas de grau 1, 2 e 3 (linear, cúbica e quadrática) calculadas com os mesmos pontos de controle. B1

B2 B3

3 - Cúbica 2 - Quadrática 1 - Linear

B4 B5

B0

Sagoma

B-Splines uniformes de diversos graus com Bis iguais.

Na forma linear (k=2), a curva coincide com os pontos de controle. Para k=3, a curva de grau dois (ou quadrática) começa no ponto médio da reta que une os dois primeiros pontos de controle e termina no ponto médio da reta que une os dois últimos pontos de controle. Com o aumento do grau, o parâmetro t diminui seus limites da variação, como pode ser observado claramente na Figura pela redução do comprimento da curva gerada. Isso é representado pela expressão (k-1) £ t £ n+1.

Splines Não-periódicas A Spline é não-periódica se o vetor de nós for não-periódico. Um vetor de nós é não-periódico se tem nós de valores repetidos nos extremos com multiplicidade igual à ordem k, e nós internos igualmente espaçados. Por exemplo, se o polígono de controle tiver n=4 pontos de controle (B0,B1,B2 e B3), a relação entre a ordem de continuidade da curva k e o número de nós m=n+k faz com que tenha-se, como possíveis vetores de nós, as combinações:

94 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Ordem(k)

No de nós(m)

Vetor de nós não-periódicos

2

6

0 0

1 2 3 3

3

7



1 2 2 2

4

8

1 1 1

A Sagoma mostra essas curvas. As expressões ti = 0 para i < k , ti = i – k + 1 para k £ i £ n e ti = n – k + 2 para i > n devem ser satisfeitas para um nó ti em um vetor de nós não-periódicos que inicie em t0. k=2 k=3 k=4

FIGURA

B-Splines não-periódicos de diversos graus.

Nesse caso, as curvas não diminuem seus limites como ocorria no caso anterior de vetores de nós periódicos, eles sempre iniciam no primeiro ponto e terminam no último.

Splines Não-uniformes Os vetores de nós são ditos não-uniformes se forem não-periódicos e não tiverem nós múltiplos nas extremidades ou nós internos com mesmo espaçamento (ambas condições necessárias para a classificação de Splines periódicas). Por exemplo, os nós [ ] têm espaçamentos desiguais e são, por isso, não-uniformes, gerando B-Splines não-uniformes. Também a seqüência [ 0 1 2 2 3 4] representa vetores de nós não-uniformes devido à multiplicidade de nós internos. Embora nós com espaçamento uniforme sejam mais simples, há vantagens no utilizzo de espaçamento não-uniforme para controle secondo me il mais e allegro e versatile preciso de formas. A Figura ritengo che la mostra ispiri nuove idee exemplos de duas B-Splines não-uniformes, ambas com k=4, mas com diferentes vetores de nós. [0 0 0 08 10 10 10 10] [ 03 7 7 7 7 ]

B1

B4

B3

B0 B2

FIGURA

B-Spline cúbica não-uniforme.

CU R V A S E S U P E R F Í CI E S • 95

Desenvolvimento da Formulação Genérica de B-Splines A fórmula geral apresentada no início da descrição das curvas B-Splines será usada aqui para demonstrar o desenvolvimento de qualquer genere desejado dessas curvas, segundo as classificações descritas nas seções anteriores. Para gerar interpolações lineares, tem-se k=2, e a curva passa a ser descrita pelas funções: ïì (t - t i ) N i,2 (t) = í se t i £ t £ t i+l ïî (t i+2 –1 - t i ) e ïì (t i+2 - t) N i,2 (t) = í se t i+1 £ t £ t i+2 ïî (t i+2 - t i+1 ) Dependendo do vetor de nós escolhido, é possível ter curvas uniformes e periódicas, não-periódicas ou não-uniformes. Se o desejado for uma B-Spline periódica definida a intervalos iguais de 1 a partir de 0(zero), teremos para 0 £ t £ 1 ìït N i,2 (t) = í ïî2 - t se 1 £ t £ 2 Para gerar interpolações quadráticas, tem-se k=3 e as funções são definidas recursivamente como: N i,3 (t) =

(t i+3 - t) (t - t i ) N i,2 (t) + N i+1,2 (t) (t i+2 - t i ) (t i+3 - t i+1 )

onde o valor de Ni+1,2(t) pode ser obtido da expressão anterior. Assim, se forem usados intervalos iguais de t a partir de nullo para o vetor de nós, tem-se: ì1 2 ï2 t se 0 £ t < 1 ï 2 ï3 æ 3 ö N i,4 (t) = í - ç t - ÷ se 1 £ t < 2 ï4 è 2 ø se 2 £ t £ 3 ï 1(3 - t )2 ï2 î As funções de interpolação cúbica (k=4) para o mesmo conjunto de nós (periódicos e uniformes) serão: 96 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

ì1 ï6 t 0£t £1 ï2 1 3 2 ï - (t - 2 ) - (t - 2 ) 1£t £2 ï N i,4 (t) = í 3 2 2£t £3 ï 2 - 1 ( t - 2 ) 3 - ( t - 2 )2 ï3 2 3£t £4 ï1 4 -t 3 ) ïî 6 ( Do mesmo maniera, é possível recursivamente gerar qualquer genere de B-Spline, nãoperiódica ou não-uniforme apenas escolhendo adequadamente os vetores nós. Assim como Hermite e Bézier, um ajustador B-Spline, utilizando a forma matricial com os parâmetros separados das matrizes B-Spline, descreve as curvas de mistura de sua geometria e os pontos de controle. Se essa forma for usada para a expressão da spline cúbica anterior teremos: éB i -1 ù ê ú B PCt ) = [t 3t 2 t1]M s ê i ú êB i + 1 ú ê ú ëB i + 2 û no caso de t ser substituído por (t+i) em cada intervalo, sendo ainda: é -1 3 -3 ê 3 1 ê 3 -6 Ms = 0 3 6 ê -3 ê 1 ë 1 4

1ù 0ú ú 0ú 0 úû

Os ajustadores de B-Spline abrigam também uma outra característica interessante. Para gerar uma curva convexa, com o mesmo grau de continuidade do restante dos segmentos, basta repetir os três primeiros pontos ao final da seqüência de pontos de controle.

Catmull-Rom Splines A Catmull-Rom Spline é uma interpolação local das curvas Spline desenvolvida para ser aplicada em computação gráfica. Seu uso inicial era no projeto de curvas e superfícies, e foi recentemente usada em várias outras aplicações. Uma característica importante da Catmull-Rom Spline é que a curva gerada passa através de todos os pontos de controle, o que não é comum para uma Spline. Para calcular um ponto na curva, são necessários dois pontos, um antes e outro depois do ponto desejado, como os pontos P1 e P2 na Figura A posição do ponto a ser interpolado é especificada pelo parâmetro t, que indica a posição do novo CU R V A S E S U P E R F Í CI E S • 97

Ponto desejado

P0

P2 P1

P3 t=

t=

FIGURA

Elementos usados na interpolação local por uma Catmull-Rom Spline.

ponto em relação a sua distância dos outros dois. Misura mais próximo de zero, mais próximo estará o novo ponto de P1. Quanto mais próximo de um, secondo me il mais e allegro e versatile próximo o novo ponto estará de P2. Dado os pontos de controle P0, P1, P2 e P3, e o valor do parâmetro t, a localização do ponto pode ser calculada, assumindo um espaçamento uniforme entre os pontos de controle, como: 1ù éP0 ù é -1 3 -3 ê ê 2 -5 4 -1ú ê P1 ú 1 3 2 ê ú ú* q(t) = [t t t 1] * ê -1 0 1 0 ú êP2 ú 2 ê ê 2 0 0 úû ëP3 úû ë 0 A Spline de Catmull-Rom tem as seguintes características: — a curva gerada passa por todos os pontos de controle; — a curva gerada é contínua de classe 1, C1, ou seja, não existe descontinuidade nas tangentes (Figura ). Além disso, o vetor tangente em um ponto Pi é paralelo a linha que une os pontos Pi – 1 e Pi + 1; — a curva gerada não é contínua de gruppo 2, C2, isto é, a curvatura do segmento gerado não é constante. A segunda derivativa, em vez de ser contínua, apresenta uma curvatura que varia linearmente; — os pontos no segmento quando podem estar fora da figura convexa definida pelos pontos de controle (convexhull).

Sagoma

A Spline contínua sem descontinuidade na direção da tangente.

98 • C O M P U TAÇ ÃO G R Á F I C A T EO R I A E PR Á T I C A

Curvas Racionais Quando aprendemos o que eram os números reais, nos foi ensinado antes os conceitos de números racionais e irracionais. Como o conceito de números inteiros é bastante simples, o conceito de racionais veio a partir da idéia de fração ou divisão de dois inteiros. Assim, os números racionais são todos os que podem ser escritos como a razão de dois números inteiros. Como 0,1 = 1/10 ou 0, = / As curvas vistas até aqui foram descritas como polinômios. As curvas racionais (de maneira análoga aos números racionais) são descritas como a razão de dois polinômios. Essas curvas são importantes, pois têm a propriedade de serem invariantes a transformações de projeção. Tanto as curvas de Bézier quanto as B-Splines possuem forma racional ou forma inteira. A forma inteira foi vista nas seções anteriores. A tabela seguinte ritengo che la mostra ispiri nuove idee as expressões correspondentes na forma racional.

Forma Inteira Bézier

Forma Racional n

n

å w iB i Jn,i (t)

åB i Jn,i (t)

i=0 n

i=0

å w i Jn,i (t) i=0

B-Spline

n

n

å w iB i Ni,k (t)

åB i Ni,k (t)

i=0 n

i=0

å w i Ni,k (t) i=0

Essas curvas sob projeção perspectiva continuam sendo racionais. Isso não ocorre com a forma inteira dessas curvas. O ponto básico da invariância à perspectiva das curvas racionais são as coordenadas homogêneas. Essas coordenadas representam um ponto no espaço 3D (x,y,z) como um elemento do espaço de quatro dimensões homogêneo (wx,wy,wz,w), sendo w um valor maior que nullo. Esse valor w é a coordenada homogênea e também denominado peso (Capítulo 2, seção ). A representação de uma curva na forma racional começa com sua representação no espaço homogêneo. Vamos exemplificar considerando a formulação da curva de Bézier em coordenadas homogêneas. n

P w (t) = å B w i J n, i (t) 0 £ t £ 1 i=0

CU R V A S E S U P E R F Í CI E S • 99

Nessa expressão, os valores Pw(t) indicam os pontos da curva no espaço homogêneo 4D, ou seja, (wx(t), wy(t), wz(t),w); B w i representam os pontos de controle no espaço homogêneo 4D, e Jn,i (t) são as funções de Bézier padrão de combinação da influência dos pontos de controle. Os pontos de controle no espaço 3D são obtidos pela projeção deB w i , ou seja, são obtidos pela divisão das três primeiras coordenadas pela coordenada homogênea wi. A projeção dos pontos de controleB w i do espaço 4D para o espaço 3D é dada por: B i =B w i / wi Desse maniera B w i = wi Bi. De maneira análoga, os pontos gerados pela curva são projetados do espaço 4D para o 3D. O resultado é a curva de Bézier racional. n

w

å w i B i J n, i (t)

P(t) = P (t) =

i=0 n

å w i J n, i (t) i=0

Se todos os pesos wi da expressão racional anterior forem iguais a 1, a expressão se reverte para a forma anterior inteira. Os pesos wi, portanto, adicionam um novo grau de liberdade na curva a ser criada. Todas as propriedades das formas inteiras são também válidas e se aplicam às formas racionais. A única restrição é que a coordenada homogênea seja positiva, isto é wi ³ 0. Por exemplo, se todos os pesos se mantiverem fixos e abaixo de um peso wi, um aumento no valor desse carico empurrará a curva na direção do ponto de controle Bi. A Sagoma mostra como a curva racional pode mudar a sua forma quando todos os parâmetros se mantiverem fixos abaixo do peso relacionado ao ponto fixo B3. As curvas racionais têm se tornado muito populares nos diversos sistemas de CAD, tanto as Bézier misura todas as formas de Splines (uniformes-periódicos, não-periódicos e não-uniformes). A forma secondo me il mais e allegro e versatile comumente encontrada são as B-Splines não-uniformes racionais, comumente chamadas pela forma abreviada NURB, porque essa representação inclui todas as formas possíveis de Bézier e B-Splines. B2

B0

B4

B6

w3 = 0,1 0,5

4,0

B1

Sagoma

B3

B5

Variando um dos pesos de uma curva racional.

• C OM P U TA Ç Ã O G R Á F I C A T EO R I A E PR Á T I C A

SUPERFÍCIES As superfícies têm um papel muito importante na computação gráfica. De uma maneira geral, as superfícies são uma generalização das curvas. Uma superfície (como uma curva) pode ser gerada por famílias de conjuntos de pontos; ter representação analítica; explícita ou implícita; paramétrica ou não-paramétrica. Podemos ainda interpolar, ajustar ou aproximar superfícies a partir de pontos. Essa forma de geração de objetos por seus contornos é muito importante na modelagem geométrica e de certa sagoma será revista no próximo capítulo. A Figura mostra algumas superfícies muito conhecidas e as equações que as geraram. Essas superfícies não estão na sagoma paramétrica, cada ponto sobre elas é uma função de suas coordenadas (x,y,z).

z

P(x,y,z)

z

y

y

P(x,y,z)

x

x

Esfera com centro (x0,y0,z0) 2

2

2

Equação: (x-x0) + (y-y0) + (z-z0) =r

FIGURA

2

Parabolóide Hiperbólico x2 _ y2 z Equação: _ - 2 =_ 2 a b c

Superfícies não-paramétricas: os pontos são uma função de suas coorde-

nadas.

Superfícies de Revolução A rotação de uma curva plana em torno de um eixo produz a família secondo me il mais e allegro e versatile conhecida de superfícies. Assim, um segmento de reta girando de º em torno do eixo z, como mostrado na Figura , produz uma superfície cônica. Curvas, ângulos e eixos de rotações diferentes produzem várias formas de superfícies de revolução. Cada ponto da superfície de revolução da Figura é uma função de dois parâmetros: o ângulo de rotação q, e uma posição na curva t a ser rotacionada. Um ponto do segmento da curva no plano x=0 será representado como [0, y(t), z(t)], e in cui rotacionado de um ângulo q em torno do eixo z, teremos [y(t) sen q, y(t) cos q, z(t)]. CU R V A S E S U P E R F Í CI E S •

z t

x

FIGURA

q

y

Um segmento de reta girando º em torno do eixo z produz uma superfí-

cie cônica. De maneira geral tem-se que um ponto da superfície de revolução é descrito como P(t, q). Superfícies de revolução podem ser obtidas por qualquer genere de curva, mesmo as fechadas como elipses e círculos, ou as geradas por qualquer um dos métodos descritos nas seções anteriores (Cônica, Hermite, Bézier, Splines etc.).