• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Sistemas de Informação ·

Organização de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Comportamento Reprodutivo da Andorinha-Celeiro - Guia Completo

1

Comportamento Reprodutivo da Andorinha-Celeiro - Guia Completo

Organização de Computadores

UFES

Lista de Exercicios Circuitos Digitais - Multiplexadores e Deslocadores Programaveis

1

Lista de Exercicios Circuitos Digitais - Multiplexadores e Deslocadores Programaveis

Organização de Computadores

UFES

Plano de Ensino - Fundamentos de Organização e Arquitetura de Computadores - CSI211

6

Plano de Ensino - Fundamentos de Organização e Arquitetura de Computadores - CSI211

Organização de Computadores

UFOP

Memória Cache - Python

9

Memória Cache - Python

Organização de Computadores

UFMG

Exercícios de Organização de Computadores

9

Exercícios de Organização de Computadores

Organização de Computadores

USP

Lista de Exercicios Sistemas Operacionais UFMS - Questões e Conceitos Chave

3

Lista de Exercicios Sistemas Operacionais UFMS - Questões e Conceitos Chave

Organização de Computadores

UFMS

Texto de pré-visualização

CAPÍTULO 1 Visão Geral 11 Computação Gráfica Arte e Matemática 12 Origens da Computação Gráfica 121 Escala Temporal 13 Áreas da Computação Gráfica 131 O Mercado da Computação Gráfica 14 Percepção Tridimensional 141 Informações monoculares 1411 Perspectiva 1412 Conhecimento prévio do objeto 1413 Oclusão 1414 Densidade das texturas 1415 Variação da reflexão da luz 1416 Sombras e sombreamentos 142 Informações visuais óculomotoras 1421 Acomodação 1422 Convergência 143 Informações visuais estereoscópicas 15 Representação Vetorial e Matricial de imagens 16 Arquitetura de Hardware 161 Dispositivos Gráficos de Entrada 162 Dispositivos Gráficos de Saída 17 OpenGL a estereoscopia é útil na noção da distância de objetos colocados até 10 metros do observador Em 1960 Morton Heilig patenteou a invenção Stereoscopic TV Apparatus for Individual Use hoje mais conhecida como HeadMounted Display ou Virtual Reality Display Na época sua invenção destinavase apenas ao uso de imagens de televisão totalmente passivas nãoimersivas 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 1993 No momento possuímos uma diversidade grande 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 quanto nossa percepção de profundidade depende puramente das disparidades geométricas ou quanto isso está relacionado à familiaridade de objetos já conhecidos por nós 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 ra zões do comprimento da corda do instrumento musical que as produziam ao vibrar Maor 1987 Como matemática filosofia e música tinha a mesma importância no mundoGregonestadescobertaforamvistossinaisdequetudonouniversoobedece ria às mesmas leis da música ou seja a razão Assim os números racionais domina ram 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 11 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 movimento constitui a base desta que po deria ser classificada como uma arte tecnológica A computação gráfica pode ser en carada como uma ferramenta não convencional que permite ao artista transcender das técnicas tradicionais de desenho ou modelagem Imagens que exigiriam do ar tista o uso 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 extre mamente difíceis de serem desenhadas à mão Com o uso de software o artista pre cisa ter apenas a idéia e deixar a parte complexa por conta da máquina Contudo es ses softwares exigem um certo 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 artista 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 artista ou ela é res ponsá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 ohomemdepôrempráticaumaidéiavalendosedafaculdadededominaramatériaCa pacidade 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 artista res ponsável pela arte 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 va mos aproveitar para desmistificar uma questão A matemática pode parecer um monte 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 SpaceTime a matemática é a linguagem do homem com a natureza e é exatamente aí que entram os computadores A habilidade de si mular 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 é sim biótica uma interagindo com a outra fazendo com que as duas evoluam de forma conjunta A cada evolução da computação gráfica podem ser abertos novos cam pos para as artes e viceversa 12 ORIGENS DA COMPUTAÇÃO GRÁFICA Conhecer a origem é saber se posicionar na escala da evolução descobrindo as ne cessidades 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 computa dor a possuir recursos gráficos de visualização de dados numéricos foi o Whirlwind I desenvolvido pelo MIT Esse equipamento foi desenvolvido em 1950 com finali dades acadêmicas e militares Em 1955 o comando de defesa aérea dos Estados Unidos desenvolveu um sistema de monitoramento e controle de vôos SAGE Se miAutomatic 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 1959 surgiu o termo Computer Graphics criado por Verne Hudson enquan to o mesmo coordenava um projeto para a Boeing de simulação de fatores humanos em aviões Em 1962 surgiu uma das mais importantes publicações da computação gráfica de todos os tempos a tese de Ivan Sutherland Sketchpad A ManMachine Graphi cal Communication System introduzindo as estruturas de dados para o armazena mento 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 dese nhar apontar e escolher alternativas Essa publicação chamou a atenção das indús trias automobilísticas e aeroespaciais americanas Os conceitos de estruturação de 4 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dados bem como o núcleo da noção de computação gráfica interativa levaram a General Motors a desenvolver em 1965 o precursor dos programas de CAD Com puter Aided Design Logo depois diversas outras grandes corporações americanas seguiram esse exemplo sendo que no final da década de 1960 praticamente toda a indústria automobilística e aeroespacial utilizava softwares de CAD Na década de 1970 vários pesquisadores desenvolveram novas técnicas e algo ritmos que são utilizados até hoje tais como os métodos de sombreamento e o al goritmo de zbuffer Nessa mesma época surgiu a tecnologia dos circuitos integra dos permitindo o barateamento das máquinas e o lançamento em 1975 do primei ro computador com interface visual o predecessor do Macintosh Outros fatos im portantes 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 1977 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 com plexidade das equações fractais Em janeiro de 1980 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éc nicas 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éc nicas de processamento de imagem que numericamente manipulam os pixels das imagens para reduzir ruídos melhorar o contraste ou produzir um efeito desejado comoporexemplosalientarumaspectoemparticularquemereçamaioratenção A década de 1980 viu surgir diversas técnicas novas de iluminação global como o raytracing em 1980 e a radiosidade em 1984 aproximando as imagens geradas por computador do fotorrealismo Outro fato marcante dessa década foi a estranha criação em 1987 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 1990 marcou o amadurecimento da computação gráfica com ima gens impressionantes como no filme Jurassic Park em 1993 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 computa dorizado e Toy Story o primeiro longa metragem 3D em 1995 Na área de siste mas surge a linguagem de programação Open GL em 1992 e as primeiras placas gráficas para PC da NVIDIA em 1999 Com a virada para o ano 2000 a plataforma mais comum para atividades em computação deixa de ser as estações SGJ passando para PC Em 2001 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 per sonagens 3D também não poderíamos deixar de citar Matrix Reloaded com perso nagens virtuais sendo usados dentre outras coisas para cenas de risco 121 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 300250aC desenvolveu toda a geometria que norteou seu desenvol vimento até o século XVIII Brunelleschi 13771446 arquiteto e escultor italiano que usou de forma criativa a noção de percepção visual e criou em 1425 a perspectiva Descartes 15961650 matemático e filósofo francês que formulou a geometria analítica e os sistemas de coordenadas 2D e 3D Euler 17071783 o mais produtivo matemático do século XVIII que entre ou tros criou o conceito de senos tangentes a expressão que relaciona o número de vértices arestas e faces de poliedros etc Monge 17461818 matemático francês que desenvolveu a geometria descritiva como um ramo da geometria Sylvester 18141897 matemático inglês que inventou as matrizes e a notação matricial uma das ferramentas mais comuns da computação gráfica Hermite 18221901 matemático francês que provou a transcendência do nú mero e usado como base para os logaritmos naturais desenvolveu funções elípti cas 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 1885 iniciouse o desenvolvimento da tecnologia do tubo de raios cató dicos Em1927aindústriacinematográficadefineopadrãode24imagenssegundo Em1930PeWMauchlyconstroemoprimeirocomputadorchamadoENIAC Em 1938 Valensi propõe o tubo de raios catódicos colorido Em 1947 os Bell Labs inventam o transistor Em 1950 Laposky cria as primeiras obras de arte com bases tecnológicas usando um efeito de um osciloscópio 6 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Em 1955 surge o sistema Sage de monitoramento aéreo Em 1956 o MITconstrói o primeiro computador totalmente transistorizado Em 1959 surge o termo ComputerGraphics criado por L Hudson da Boeing No final da década de 1950 as universidades e empresas americanas como a Boeing começam a usar computadores para testar idéias e novas aplicações Em 1960 é lançado o primeiro computador comercial DEC PDP1 Em 1961 no MIT é criado o primeiro jogo de computador Spacewars para o computador DEC PDP1 Em 1963 Sutherland apresenta um sistema de desenho interativo de primiti vas gráficas 2D baseado em caneta luminosa Em 1963 Englebart inventa o dispositivo de interação mouse Em 1963 Zajac produz nos laboratórios da Bell o primeiro filme gerado por computador imagens formadas de linhas e texto Em 1963 surge o primeiro sistema comercial de CAD DAC1 Em 1963 Coons inventa a teoria de representação de superfícies curvas atra vés de retalhos baseados em aproximações polinomiais Em 1965 Roberts cria um algoritmo de remoção de partes invisíveis de seg mentos de reta e introduz a noção de coordenadas homogêneas na represen tação geométrica de objetos Em 1966 é lançado no mercado o primeiro console caseiro de jogos Odissey Em 1966 surge a primeira empresa de produção computacional de anima ções e efeitos especiais a MAGI Em 1967 Rougelet cria o primeiro simulador de vôo interativo da NASA Em 1968 é fundada a Intel Em 1969 a MAGI produz para a IBM o primeiro comercial baseado em técni cas de computação gráfica Em 1969 é criado entre os grupos da ACM o Special Interest Group on Grap hics SIGGRAPH Em 1969 nasce a ARPANET rede percussora da Internet Em 1969 nos laboratórios da Bell é construída a primeira matriz de pixels cada pixel representado por 3 bits Em 1972 A Kay no Xerox PARC produz o computador gráfico Alto Em 1972 Bushnell funda a empresa ATARI Em 1973 Metcalf desenvolve a tecnologia Ethernet e é editado o primeiro li vro que aborda detalhadamente os algoritmos e métodos da computação grá fica autores Newman e Sproull Em 1977 a Academia de Artes e Ciências Cinematográficas de Hollywood cria a categoria de Oscar de Efeitos Especiais VISÃO GERAL 7 Em 1979 G Lucas contrata Catmull Ray Smith e outros para uma nova em presa denominada Lucas Film Em 1974 Catmull desenvolve o algoritmo ZBuffer A partir do algoritmo de ZBuffer e com o lançamento do PC no início da década de 1980 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 tri dimensional que são utilizadas com uma freqüência cada vez maior pelas pessoas que trabalham com artes computação e visualização científica 13 Á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 Processamen to de Imagens e a Análise de Imagens A Síntese de Imagens considera a criação sintética das imagens ou seja as repre sentaçõ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 Visua lizaçã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 con juntos 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 forma digital e suas transformações por exemplo para melhorar ou realçar suas caracte rí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 14 MERCADO Se você puder imaginar algo isso pode ser gerado com a computação gráfica A computação gráfica está a um passo de um mundo novo repleto de aplicações ain da desconhecidas e muitas oportunidades de trabalho para designers modelado res 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 re cursos que podem ser criados por qualquer pessoa e acoplados à engrenagem do SDK sob a forma de plugin 8 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Algumas das aplicações mais evidentes no momento são os mercados em reali dade virtual e walkthrough para projetos arquitetônicos Na comunidade científi ca é consenso que em breve os ambientes 3D modificarão os atuais sistemas ope racionais 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 quanto 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 modela gem utilizandose poucos polígonos ou operações booleanas e mapeamento com li mitações no tamanho das imagens Diversos projetos já estão em desenvolvimento no Brasil onde a mãodeobra es pecializada é praticamente inexistente A teoria da computação gráfica pode impul sionar 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 tempo 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 prati VISÃ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écni cas e métodos computacionais vários desses fenômenos podem agora ser visualiza dos modelados e estudados Muito antes de se conseguir visualizar um segmento de DNA humano seu estu do já era possível através da computação gráfica Em 1983 foi possível visualizar o vírus da AIDS e simular o seu comportamento Através de dados científicos foi cria da uma imagem sintética que representava o vírus de forma adequada aos propósi tos 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 à quarta 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 inte rior dos profundos poços de petróleo A imagem sintética pode mesmo transfor mar qualquer dado em imagem como os sinais de radar ou calor dos corpos no in terior de um prédio Esse tipo 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 corpo humano e obter conclusões a partir disso Utilizando uma combi nação de dados como os de ressonância magnética ultrasom 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 tu fões deslocamentos de massas de ar além do estudo do aquecimento global e da ca mada de ozônio podem ser representados para estudos e previsões 15 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 relevan te para o entendimento está na limitação tecnológica que nos fará usuários por ain da 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 capacida de que o ser humano tem de distinguir a forma as cores a textura e a relação espa cial existente entre os objetos de uma porção do mundo real 10 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Segundo Stuart 1996 há três categorias de estímulos visuais usados pelo cére bro para formar uma imagem 3D informações monoculares informações óculo motoras e informações estereoscópicas 151 Informações Monoculares As informações monoculares são inerentes à imagem formada na retina são tam bém chamadas de static depth cues informações estáticas de profundidade Auks takalnis 1992 ou pictorial depth cues informações de profundidade na imagem Mckenna 1992 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 1511 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 é largamen te usado para expressar cenas tridimensionais em superfícies planas papel moni tor de vídeo etc Considerada como a mais importante descoberta no campo das artes a perspec tiva descoberta por Filippo Brunelleschi em 1425 foi amplamente utilizada no fi nal do século XV por artistas italianos do renascimento para a criação de obras rea lísticas Maor 1987 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 se melhança permitindo alterações sutis para reforçar conceitos filosóficos e religio sos Na época eram usadas máquinas de fazer perspectiva verdadeiras paraferná lias complexas para calcular as distâncias tentando aproximar ao máximo o dese nho 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 descobriuse que a representação gráfica da perspectiva é feita como se somente um olho estivesse vendo a cena Descobriuse então que os olhos não vêem em perspectiva mas por um fenômeno estereoscópico Foi novamente a arte 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 vo lume 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 grande 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 tornandoa popular e uma das maiores fontes de informação da socie dade moderna VISÃO GERAL 11 1512 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 ob jetos Além disso quando há dois ou mais objetos no mesmo campo de visão e o observador tem noção de seus tamanhos reais o tamanho aparente serve para de terminar qual deles está mais próximo ou mais distante Quando olhamos o cubo à esquerda na Figura 11 conseguimos de imediato es tabelecer uma noção da sua profundidade Quando olhamos a imagem à direita na Figura 11 um galho de árvore nosso cérebro não consegue perceber as profundi dades Essa limitação se deve ao fato de o objeto existir na natureza em uma infini dade de formas criando a ausência de uma referência para nos auxiliar na percep ção Esse problema pode causar uma grande limitação em sistemas de realidade vir tual ou jogos quando interagimos com objetos nunca vistos e pode causar percep ções errôneas de tamanho e posição de objetos na cena 1513 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á mais próximo do ob servador e sobre uma mesma direção de visão Assim quando um objeto A obscure ce um objeto B o cérebro sabe que o objeto A está mais próximo do que o objeto B 1514 Densidade das Texturas Conhecido também como gradiente de texturas este fenômeno visual baseiase no fato de que muitos objetos possuem em sua aparência algum tipo de padrão 12 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 11 Limite da percepção de profundidade com uma certa regularidade Nesse caso à medida que os padrões aparecem mais densos e menos detalhados mais distantes estarão do observador Stevens 1979 As texturas também auxiliam na percepção do movimento como por exemplo se girarmos uma esfera sem textura nosso sistema de visão terá algu ma dificuldade para perceber o seu movimento 1515 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 1516 Sombras e Sombreamentos Este efeito é útil na determinação da posição de um objeto em relação a um piso co locado abaixo deste ou na definição relativa entre objetos Gibson 1950 152 Informações Visuais Óculomotoras 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 forne cendo informações do grau de contração para o cérebro humano O segundo con junto é responsável por focar os raios luminosos na retina fundo do olho mudan do 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 1521 Acomodação No processo de acomodação os músculos ciliares dos olhos relaxam ou contraem para mudaroformatodocristalinoaslentesdosolhoscomoobjetivodealterarofocodos objetos projetados na retina em função da distância desses objetos do observador 1522 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 dis tância 153 Informações Visuais Estereoscópicas Como os olhos estão posicionados em lugares diferentes cada um vê uma imagem de forma diferente Essa diferença é chamada disparidade binocular O cérebro usa essas diferenças para obter a distância relativa dos objetos Segundo Mckenna 1992 VISÃO GERAL 13 16 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 xy tendo assim uma direção um sentido e um comprimento especificado Podemos então calcular o comprimento do vetor pela fórmula V x² y² Se pensarmos em um vetor 3D definido da origem ao ponto xyz seu comprimento seria V x² y² z² Uma matriz é um arranjo array de elementos em duas direções Quando 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 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 caracteri zados como vetoriais pela noção de vetores já discutida são os pontos e linhas retas A cada elemento de um conjunto de pontos associase 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 processa mento de imagens Em computação gráfica sintética surgem nos processos de fina lização ray tracing zbuffers Narepresentação matricialaimagemédescritaporumconjuntodecélulasemum arranjo espacial bidimensional uma matriz Cada célula representa os pixels ou pon tos da imagem matricial Os objetos são formados usando adequadamente esses pi xels A Figura 12 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 computadoresenamaioriadosdispositivosdesaídagráficosimpressorasevídeos 17 ARQUITETURA DE SISTEMAS Os sistemas para computação gráfica precisam de alguns dispositivos gráficos de entrada e saída InOut ou IO 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 VISÃO GERAL 15 memória de imagem imagem na tela FIGURA 12 Descrição de imagens matriciais por conjunto de pixels que encontra nas novas arquiteturas de CPUs e memórias um ambiente adequa do 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 ele vado custo de desenvolvimento que apesar de freqüentes quedas ainda está muito aquém da realidade do mercado consumidor Outro grande obstáculo está no peso e tamanho desses componentes que devem ser reduzidos para que possam ser facilmente utilizados 171 Dispositivos Gráficos de Entrada Os dispositivos de entrada são componentes eletrônicos que permitem a movimen taçã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 dis positivos de teclado foram inventados ao longo de décadas porém o mais usado é o teclado QWERTY É irônico pensar que esse teclado foi inventado para a re duçã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 mouse sem a bola de rolagem Enviam 1500 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 realida de 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 1024 níveis de sensibilidade à pressão Estes são traduzi dos em curvas suaves transições graduais e controles precisos do traço Um software incluso nos pacotes dos hardwares de tablet possibilita o reconheci mento da escrita Mesa Digitalizadora Dispositivo vetorial que consiste de uma mesa e de um aponta dor A cada vez que o usuário toca a mesa com o apontador é informado ao compu 16 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tador a coordenada deste ponto da mesa Existem diversos trabalhos em andamen to para a substituição deste periférico por sistemas mais baratos com câmeras digi tais 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 Ba sicamente esses dispositivos permitem a movimentação e interação dentro de um espaço 3D qualquer Digitalizador Tridimensional Tratase 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 sen sor 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 mais 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 ópti cos ou híbridos Capacetes Existem diversos tipos de capacetes para visualização de Realidade Vir tual disponíveis no mercado A principal característica desses equipamentos é que podem ser Estereoscópicos ou monoscópicos isto é usados com uma ou duas ce nas 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 cima 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 veloci dade e a força que estão sendo aplicadas pelo usuário VISÃO GERAL 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 movimento hu mano a partir daí surge uma infinidade de aplicações para animações esporte de senvolvimento de produtos medicina etc 172 Dispositivos Gráficos de Saída É possível classificar os dispositivos de saída em duas principais categorias segun do a forma pela qual as imagens são geradas veja seção anterior de descrição veto rial e matricial de imagens vetoriais e matriciais Os dispositivos vetoriais conse guem traçar segmentos de reta perfeitos entre dois pontos Os dispositivos matri ciais 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 de senhar áreas cheias e sombras onde os vetoriais mostram deficiência Impressoras de Jato de Tinta São equipamentos matriciais com cabeçote que eje tam 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 processo ótico parecido com o do cabeçote de uma impressora o bombardeio do feixe deixa a chapa carregada com uma carga eletrostática Por efei to da atração elétrica uma tintura toner adere à chapa e por pressão e aquecimen to é 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 termosensível especial Plotters São dispositivos vetoriais e eletromecânicos que de uma forma geral produzem o desenho pelo movimento 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 ou tro tipo o desenho é produzido pela combinação dos movimentos do papel e da caneta Monitores A maioria dos modelos atuais se baseia na tecnologia de tubos de raios catódicos CRT Catode Ray Tube já madura e capaz de oferecer uma boa relação custobenefício para produzir imagens de qualidade em computadores pessoais Mas dentro de poucos anos encontrar um monitor CRT em uma loja poderá ser 18 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 Dis plays 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 res peito ao brilho e à versatilidade em resolução Monitores CRT Até há pouco tempo 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 ha bilidade 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 13 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 tela o feixe é desligado para retornar à extrema es querda da linha inferior e quando atinge a extremidade de baixo também é desativa do para retornar novamente à primeira linha Esse processo é chamado de varredura Aumentando ou diminuindo a intensidade do feixe conseguese controlar o brilho dos pontos de fósforo da tela para gerar a imagem A velocidade com que o feixe per corretodaatelaéchamadadetaxaderenovaçãorefreshrateoufreqüênciadevarre dura 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 VISÃO GERAL 19 Feixe de elétrons Canhão de elétrons Máscara de sombra Máscara perfurada Tela de fósforo FIGURA 13 Tubo de Raio Catódico com resolução de 640 por 480 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 semqueocustodomonitorseelevassemuitofoicriadaatécnicadeentrelaç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 passo e no seguinte as linhas pares Como apenas parte 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 po dem oferecer a mesma resolução que um nãoentrelaçado mas a um custo menor A desvantagemdessatécnicaficaporcontadotempoderespostamenoroquepodeser 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 mais simples produzem imagens na cor verde 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 tornaramse populares no início da década de 1990 Esses modelos usam o padrão RGB Red Green e Blue um sistema de representação de todas as cores com base no verme lho 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 pare cer ao olho humano como um único ponto de luz OsmonitoresCRTcoloridosempregamumadastrêstécnicasdescritasaseguirpara 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 tela e o canhão de elétrons dessa forma miramse os respectivos feixes das três cores primá rias em um mesmo orifício na placa que direcionará a formação do ponto co lorido na tela 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 mais compri dos 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 ima gem 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 grande 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 mais pontos por polegada terá o monitor e maior 20 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA sua capacidade de resolução máxima O dot pitch é medido em milímetros e os va lores encontrados nos modelos de monitores mais comuns são de 028 mm ou me nores 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 en tre dois pontos de fósforo da mesma cor em tríades adjacentes na diagonal Diver sos 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 tela dos monitores é a resolução que descreve a quantidade de informação que o equipamento pode apre sentar em um determinado instante A resolução é medida em pixels palavra cria da 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ísi ca O tamanho físico de um pixel vai depender de como a resolução da tela foi confi gurada Assim se estiver sendo usada a resolução máxima um pixel será equivalen te a uma unidade física do monitor Porém para resoluções menores do que a máxi ma 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 tela de um monitor expressos nos eixos horizontal e verti cal 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 espa lhado por uma área maior da tela O padrão atual de resolução adotado por grande parte das páginas na Web é de 800 por 600 pontos para citar um exemplo conhecido pela maioria dos usuários de computador Já programas baseados em janelas win dows costumam adotar resoluções de 1024 por 768 pixels A principal vantagem de usar resoluções maiores é a redução da necessidade de ampliar a imagem usando re cursos 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 Re soluções muito altas em uma tela pequena podem resultar em problemas pois al guns pacotes de software usam texto limitado a um número fixo de pontos Desse modo 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 sempre é a solução indi cada Se a resolução não puder acompanhar o aumento da tela o resultado será ca racteres e imagens mais reticulados VISÃO GERAL 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 800 600 15 800 600 17 1024 768 19 1280 1024 21 1600 1200 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 sis tema de células contendo cristal líquido e filtros coloridos polarizados As molé culas do cristal líquido substância descoberta em 1888 expostas a campos elé tricos são alinhadas fenômeno da polarização Estas moléculas de cristal líqui do 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 campo 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 ima gem 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 fil tro gerando a imagem Em monitores LCD monocromáticos o pixel é formado por uma célula en quanto 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 ver de ou azul barrando a entrada da luz Passando pelas células com as cores filtra das 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 mais 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 provoca mos 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 tecnologia é empregada na fabricação de telas para celulares handhelds notepads etc Nessa tecnologia a tela é formada por uma grade de fios condutores Cada interseção desses fios forma um pixel e a corrente necessá ria para a polarização será transmitida por esses fios O controle do brilho dos pixels é obtido aplicandose uma corrente elétrica forçando os cristais a se realinharem ou sejahaveráalteraçãonadireçãodosraiosluminososEsseprocessoérepetidolinhaa linha de pixels da parte superior à inferior da tela do monitor LCD até a corrente es pecífica chegar à célula específica Essa técnica tem o inconveniente de produzir cin tilação o que levou à utilização de um tipo de cristal com baixo tempo de resposta às diferentes correntes aplicadas sobre os cristais Quer dizer que há uma demora maior queadesejadaparaorealinhamentodoscristaisEssademoracausamenornitidezna 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 tela é dividida em uma parte superior e outra inferior com varreduras independentes Para com pensar 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 tecnologiadematrizativanaqualumtransistorespecial TFTThinFilmTransistor alimenta cada célula individualmente Neste caso cada célula recebe uma cor rente 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êmse imagens mais nítidas com cores mais intensas e ausência da cintilação Ou tra vantagem é a possibilidade de fabricação de telas com mais de 20 Em compen saçã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 800 x 600 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 ati va tem defeitos e para descobrilos basta preenchêla com fundo branco ou preto Os pontos que mais se destacarem são os defeituosos VISÃO GERAL 23 Monitores Seethrough Os monitores ditos seethrough 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 viceversa É constitiuído de monitores do tipo LCD pois essa tecnologia permite que se veja através do monitor O maior problema desse tipo de monitor é a pouca in tensidade da imagem exibida o que muitas vezes prejudica a aplicação Recentemen te 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 alternativa à implementação desse monitor é utilizar um monitor convencional do tipo CRT filmar a imagem do ambi ente real com uma pequena câmera presa à cabeça do usuário e sobrepor esta ima gem à imagem gerada pelo computador Esse mecanismo permite uma melhoria sig nificativa na qualidade da imagem mostrada mas nem sempre será a solução depen dendo do tipo de aplicação Displays de Retina O Human Interface Tecnology Lab da Universidade de Washing ton 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 1000x1000 pontos monocromáti cos Esse equipamento tem despertado o interesse da comunidade científica por di ferentes 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 exibin do 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 volumo sos 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 Entretan to devido às limitações tecnológicas a resolução disponível em monitores peque nos 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 seethrough Ú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 par 24 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA ques de diversão estes dispositivos bem mais baratos do que os HMDs buscam ge rar 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 tela de cristal líquido a seguir fazse o contrário ou seja exibese a imagem do olho direito e bloqueiase 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 de monstrar às crianças e aos jovens como seria na prática Daí vem o nome Cave ca verna ou mais recentemente SurroundScreen ProjectBased 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 tela Para isso o processador existente na placa de vídeo precisa transformar os sinais digitais em analógicos antes de enviálos ao moni tor Nem todo o processamento de imagens é realizado pelo processador de vídeo Parte desse trabalho é realizada pelo processador principal mas quanto mais po deroso o processador de vídeo menos sobrecarregado fica o processador princi pal ficando disponível para efetuar outras tarefas Processar imagens é basica mente fazer cálculos Quanto mais complexa uma imagem maior o número de pontos que devem ser criados ocorrendo o mesmo se desejarmos melhores reso luções de imagem As placas aceleradoras 3D de uso profissional são normalmen te otimizadas para trabalhar com OpenGL DirectX e alguns softwares de modela gem A indicação para uso profissional desse tipo de placa também foi reforçada pela Microsoft que implementou a compatibilidade nativa para OpenGL desde o Windows NT e 2000 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 modo AGP permite que as placas gráficas se comuni quem 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 18 OPENGL OpenGL Open Graphical Library pode ser definida como uma interface de software API Aplication Program Interface para aceleração da programação de dispositi VISÃO GERAL 25 vos gráficos com aproximadamente 120 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 mode lagem 2D ou 3D extremamente portável e rápida possibilitando a criação de gráfi cos 3D com excelente qualidade visual e rapidez uma vez que usa algoritmos bem desenvolvidos e otimizados pela Silicon Graphics Justamente pela sua portabilida de não possui funções para gerenciamento de janelas interação com o usuário ou arquivos de entradasaída Cada ambiente como por exemplo o Microsoft Win dows possui suas próprias funções para esses propósitos OpenGL não é uma linguagem de programação como C C ou Java é uma po derosa e sofisticada API Application Programming Interface ou biblioteca de códigos para desenvolvimento de aplicações gráficas 3D em tempo real seguin do 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 con junto 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 lingua gens Ada C Fortran Python Perl Java Delphi visite o site httpwwwglsce neorg Visual Basic visite o site httpis6pacificnethkedx e outras No caso de Java existem várias bibliotecas de classes e plugins para browsers que li gam 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 mais de suas bibliotecas Os principais fabricantes de PC e supercomputadores como SGI Cray Research Compaq Fujitsu HewlettPackard Hitachi IBM Intel Microsoft Mitsubishi NEC Samsung SiemensNixdorf Sony e Sun Microsystems adotaram OpenGL como uma estratégia de padrão aberto para hardware gráfico Suas aplicações vari am 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 ou tros Dentre os jogos temos Quake HalfLife MDK2 Baldurs Gate Decent Mad den NFL 2001 etc A biblioteca OpenGL vai além do desenho de primitivas gráficas tais como li nhas e polígonos dando suporte a iluminação sombreamento mapeamento de textura transparência animação gerenciamento de eventos de entrada por te clado e mouse A biblioteca GLU que faz parte da implementação OpenGL possui várias funções para modelagem tais como superfícies quadráticas e cur vas e superfícies NURBS Non Uniform Rational BSplines Além disso a biblio 26 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 so bre as outras Apesar de OpenGL ser uma biblioteca de programação padrão existem mui tas implementações dessa biblioteca por exemplo para Windows e Linux Das implementações para PC as mais conhecidas são as da Silicon Graphics e da Mi crosoft No caso da implementação da Microsoft são fornecidas com suas ferra mentas de programação as bibliotecas opengl32lib OpenGL e glu32lib utili tários OpenGL Estas se não constarem em seu computador podem ser baixa das gratuitamente junto com sua excelente documentação no site oficial em httpwwwopenglorg A biblioteca glutlib e sua respectiva documentação que será usada neste livro pode ser baixada direta e gratuitamente do site do autor em httprealitysgicomopenglglut3glut3html Entre suas caracteristicas estão Aceleração de Hardware Aceleração do processamento geométrico luzes real time transformações e render Efeitos 3D em RealTime Realtime fog antialiasing volume shadows bump mapping motion blur transparência reflexões texturas 3D volume rende ring e outras Suporte a inovações futuras de software e hardware Um mecanismo de ex tensão permite configurações para novos hardwares e softwares Estabilidade Estações avançadas e supercomputadores vêm utilizando suas bibliotecas desde 1992 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 Windows95982000XP De forma semelhante a outras APIs do Windows os comandos do OpenGL são dis ponibilizados através de bibliotecas dinâmicas conhecidas como DLLs Dyna mic Link Library e seus respectivos arquivos header e library Os arquivos header são incluídos no códigofonte enquanto os arquivos library devem ser incluídos no projeto A tabela a seguir caracteriza esses arquivos VISÃO GERAL 27 OPENGL32DLL glh opengl32lib Contém as funções padrão do OpenGL definidas pelo OpenGL Architeture Re view Board e são caracterizadas pelo pre fixo gl GLU32DLL gluh glu32lib A biblioteca de utilitários contém fun ções com o prefixo glu para desenho de esferas cubos discos cilindros etc GLAUXDLL glauxh glauxlib Os comandos da chamada biblioteca au xiliar são caracterizados pelo prefixo aux e embora não sejam realmente parte da especificação OpenGL permitem de senvolver aplicações simples indepen dente de plataforma e sistema operacio nal GLUTDLL gluth glutlib OpenGL Utility Toolkit Conjunto de Ferramentas Utilitárias do OpenGL é um sistema de gerenciamento de janelas independente do sistema 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 GLgluth inclusão da biblioteca include stdlibh inclusão da biblioteca Declarações void initvoid void displayvoid void keyboardunsigned char key int x int y int mainint argc char argv glutInitargc argv Inicializa o GLUT e processa qualquer parâmetro passado pela linha de comandos Deve ser chamada antes de qualquer outra rotina GLUT glutInitDisplayMode GLUTSINGLE GLUTRGB 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 eou acumulador à janela que estamos usando 28 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA glutInitWindowSize 150 150 Especifica as dimensões da janela em pixels glutInitWindowPosition 100 100 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 glutDisplayFuncdisplay Toda vez que o GLUT determinar que a janela tem de ser desenhada ele chamará a função aqui determinada glutKeyboardFunckeyboard Determinam as funções que usaremos para ler o teclado e o mouse respectivamente glutMainLoop É o último comando que chamamos Ele faz com que todas as janelas criadas sejam mostradas Uma vez que entramos neste loop só saímos quando o programa se encerra return 0 void initvoid glClearColor10 10 10 10 Fornece os valores para limpeza do buffer de cor no modo RGBA glOrtho 0 256 0 256 1 1 Seleciona o modo de projeção Ortogonal void displayvoid int i glClearGLCOLORBUFFERBIT Limpa toda a Janela para a cor do comando glClearColor glColor3f 00 00 00 Seleciona a cor preta para a linha glBeginGLLINES glVertex2i20100 glVertex2i10020 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 keyboardunsigned char key int x int y switch key case 27 exit0 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 VISÃO GERAL 29 ponto flutuante como parâmetro Resumindo todas as funções OpenGL possuem o seguinte formato Sufixo Tipo de Dados Correspondente em C Tipo de dados OpenGL b 8bit integer signed char Glbyte s 16bit integer short Glshort i 32bit integer long GLint GLsizei f 32bit floatingpoint float GLfloat GLclampf d 64bit floatingpoint double GLdouble GLclampd ub 8bit unsigned integer unsigned char GLubyte GLboolean us 16bit unsigned integer unsigned short Glushort ui 32bit unsigned integer unsigned long GLuintGLenumGLbitfield RESUMO Neste capítulo apresentouse 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 biblioteca OpenGL 30 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 2 Transformações Geométricas no Plano e no Espaço 21 Matrizes em Computação Gráfica 22 Pontos Vetores e Matrizes 23 Aritmética de Vetores e Matrizes 24 Sistemas de Coordenadas 241 Sistema de Referência do Universo 242 Sistema de Referência do Objeto 243 Sistema de Referência Normalizado 244 Sistema de Referência do Dispositivo 245 Transformações entre Sistemas de Coordenadas 25 Transformações em Pontos e Objetos 251 Transformação de Translação 252 Transformação de Escala 253 Transformação de Rotação 254 Transformação de Reflexão Espelhamento ou Flip 255 Transformação de Cisalhamento 26 Coordenadas Homogêneas 27 Projeções Geométricas 271 Classificação das Projeções Geométricas 272 Projeções Paralelas Ortográficas 273 Projeções Paralelas Axométricas 274 Projeção Perspectiva ou Cônica 28 Especificação dos pontos de fuga 29 Câmera Virtual 210 Transformações Geométricas com OpenGL 2101 Transformação de Translação 2102 Transformação de Escala 2103 Transformação de Rotação 2104 Matrizes de transformação 2105 Armazenando as transformações na matriz 2106 Alterando a matriz de transformação 2107 Montando transformações hierárquicas 2108 Desfazendo o vínculo de hierarquia 2109 Matriz genérica de projeção 21010 Projeção paralela ortogonal 21011 Projeção em perspectiva 21012 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 21 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 16 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 geralmente adotado para representação de pontos no plano xy e no espaço tridimensional xyz pode ser conveniente manipular esses pontos em matrizes quadradas de 2x2 ou 3x3 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 22 PONTOS VETORES E MATRIZES Dado um sistema 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 A 23 e B 11 1 1 A convenção usada é que ao definir um ponto usase a sua distância em relação a cada um dos eixos do sistema de coordenadas Essas representações também podem ser chamadas de vetores linha ou vetores coluna respectivamente São ainda chamadas de arranjos arrays ou matrizes Assim a forma mais 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 34 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA semelhante 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 A transposta de um vetor ou matriz é o vetor ou matriz resultante da troca dos valores de suas linhas e colunas Assim 2 3 e 3 2 são vetores transpostos um do outro Para simbolizar o transposto de um vetor ou a transposta de uma matriz usase um T superescrito Assim 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 Figura 21 mostra três sistemas de coordenadas No sistema de coordenadas polares ao centro da figura as coordenadas são descritas por raio e ângulo rφ 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 244 Sistema de Referência do Dispositivo SRD Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositi vo de saída específico Por exemplo em um vídeo esses valores podem ser o núme ro máximo de pixels que podem ser acesos 640480 800600 etc ou podem in dicar a resolução especificada em determinada configuração do sistema operacio nal por exemplo 800600TrueColor32bits para vídeos ou no caso de um scan ner a resolução máxima estabelecida ou de captura Assim nos hardwares o siste ma 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 245 Transformações entre Sistemas de Coordenadas Aplicações gráficas freqüentemente requerem a transformação de descrições de obje tos de um sistema de coordenadas para outro Muitas vezes o objeto é descrito em um sistema de coordenadas nãocartesiano como as coordenadas polares mostradas na Figura 21 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 defi nidos em seu próprio sistema de coordenadas e as coordenadas locais devem ser transformadasparaposicionarosobjetosnosistemadecoordenadasglobaldacena 25 TRANSFORMAÇÕES EM PONTOS E OBJETOS A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua forma A possibilidade de submetêlo a diversas transforma ções é importante em diversas aplicações da computação gráfica Rogers 1990 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 251 Transformação de Translação Transladar significa movimentar o objeto Transladamos um objeto transladando todos os seus pontos como mostrado na Figura 22 É possível efetuar a translação de pontos no plano xy adicionando quantidades às suas coordenadas Assim cada ponto em xy pode ser movido por Tx unidades em relação ao eixo x e por Ty unidades em relação ao eixo y Logo a nova posição do ponto xy passa a ser xy que pode ser escrito como x x Tx y y Ty Repare que se o ponto for representado na forma de um vetor Pxy 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA O mesmo ocorre se o ponto P for definido em 3D pelas coordenadas xyz Pontos definidos em um espaço podem ser movimentados pela adição ou sub tração de valores de translação às suas coordenadas Assim por exemplo o pon to P definido por xyz 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 coor denadas Seutilizarmosanotaçãomatricialessatranslaçãoseapresentarádaseguinteforma 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 22 é de finido 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 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 39 Antes da Translação 45 75 y x Depois da Translação 71 101 y x FIGURA 22 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 252 Transformação de Escala Escalonar significa mudar as dimensões de escala A Figura 23 mostra essa transformação Para fazer com que uma imagem definida por um conjunto de pontos mude de tamanho teremos que 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 caso 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 253 Transformação de Rotação Rotacionar significa girar A Figura 25 mostra a rotação de um ponto P em torno da origem passando para a posição P FIGURA 25 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 θ no sistema de eixos XY A multiplicação das coordenadas por uma matriz de rotação pode resultar em uma tradução das de Tx Ty E modificar um objeto uniformemente por uma escala E equivale a multiplicar a escala do sistema de eixos por 1E A rotação de objetos tridimensionais permite que vejamos o objeto de diferentes posições e ângulos A rotação de um objeto 3D é mais simples de ser realizada indi vidualmente 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 for ma 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 pri meiro 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 28 é positivo e o da direita é negativo Se fo rem usados os eixos x como no sentido horizontal da tela e o y como vertical o eixo z deve apontar para fora da tela do computador para termos um sistema de eixos po sitivos como mostrado na Figura 29 Rotações são usadas de duas maneiras em computação gráfica Podese pensar em girar objetos no espaço em um certo ângulo ou rotacionar o próprio espaço com o ângulo Figura 210 Um exemplo clássico da segunda opção ocorre nos simula dores de vôo onde o piloto manipula a sua visão do espaço movimentando a cena Essa segunda forma também facilita a representação das rotações como uma combi naçã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 44 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA y P z x y P z x FIGURA 28 Sistemas de eixos positivos e negativos Definição dos três ângulos de Euler em relação aos eixos x y e z ângulo de Euler ou ângulo em torno de um eixo que estaremos implicitamente nos referindo A inversa de uma matriz M é a matriz denotada por M¹ que ao ser multiplicada por M produz uma matriz identidade de mesma dimensão Assim I M M¹ onde I representa a matriz identidade No caso de matrizes de rotação como as anteriores temos ainda que R¹ Rᵀ 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 90 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 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 x y z x y z 1 0 0 0 cos 10 sen 10 0 0 cos 10 sen 10 0 0 sen 10 cos 10 cos 20 sen 20 0 0 0 1 A concatenação também é muito útil para alterar a escala ao mesmo tempo em que roda objetos em torno de eixos específicos e pode ser usada sempre que as transformações forem descritas por matrizes FIGURA 211 Reflexão de um objeto em torno do eixo x vertical ou horizontal como mostrado na Figura 211 No caso 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 invertendo as coordenadas y ou usando a seguinte matriz de transformação 1 0 0 0 1 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 caso 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 0 1 0 0 0 1 A Figura 212 exemplifica o resultado de uma reflexão em torno dos eixos x e y para uma figura no espaço bidimensional FIGURA 212 Reflexão de um objeto em torno da origem dos eixos xy 255 Transformação de Cisalhamento Cisalhamento Shearing ou Skew é uma transformação que distorce o formato de um objeto Nela aplicase 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 à 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 modo que se um cubo unitário for transformado por essa operação passará a ter a forma mostrada na Figura 213 se S1 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 0 b 1 Efeito de cisalhamento skew em um cubo unitário 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 xyz que posicionam o ponto no espaço em relação ao centro de coordenadas O sistema de coordenadas homogêneas utiliza quatro valores para expressar um ponto P que será descrito por xyzM A transformação do sistema homogêneo para o cartesiano se dá pela seguinte relação xyzxM yM zM Dizemos que dois conjuntos de coordenadas homogêneas xyzM e xyzM representam o mesmo ponto se e somente se um é múltiplo do outro Assim 2346 e 46812 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 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 x y z 1 x y z 1 1 0 0 0 0 1 0 0 0 0 1 0 Tx Ty Tz 1 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 216 Os raios de projeção são as re tas que passam pelos pontos do objeto e pelo centro de projeção na Figura 216 é 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 216 Todos os pontos visíveis do objeto devem ser projetados no plano de projeção 271 Classificação das Projeções Geométricas As projeções geométricas são classificadas conforme o organograma da Figura 217 As classificações dependem das relações entre o centro projeção o plano de pro jeçã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 li nhas de projeção são paralelas entre si como é possível perceber nas Figuras 218 e 219Nasprojeçõesparalelasortográficasaslinhasdeprojeçãosãoparalelasentresi e perpendiculares ao plano de projeção como a mostrada na Figura 218 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 219 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 219 Quando as li nhas de projeção fazem um ângulo de 45 graus com o plano de projeção os pontos TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 53 y P z x Plano de Projeção Raio de Projeção P FIGURA 216 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 projetados preservam sua medida original nas direções nãoparalelas ao plano de projeção Essa projeção oblíqua é chamada de cavaleira ou cavalier Figura 220 Não é importante nesta classificação o ângulo com que a direção nãoparalela ao plano de projeção aparecerá na imagem projetada assim ambas as imagens da Figura 220 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 meta de do tamanho original Somente a face do objeto paralela ao plano de projeção per manece com o seu tamanho sem distorção ou com a verdadeira grandeza Esse ân guloétalquetenhatangente2ousejaédeaproximadamente634oFigura221 54 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Projeções planificadas Isométrica Dimétrica Trimétrica 3 pt Fuga Cavaleira Cabinet Axonométrica Múltiplas vistas ortográficas Oblíquas Ortográficas 1 pt Fuga 2 pt Fuga Paralelas Perspectivas FIGURA 217 Classificação das projeções geométricas Plano de Projeção FIGURA 218 Projeção paralela ortográfica de um cubo em um plano Projeção paralela oblíqua de um cubo em um plano 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 prin cipais que representam as faces do objeto Essas projeções mostram assim o obje to visto do topo planta baixa de frente e de lado elevação Nas projeções orto gráficas como mostra a Figura 218 se os planos principais do objeto forem para lelos 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 re cebem 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 iso mé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 120 Figura 222 As projeções definidas por raios de projeções paralelas são tradicionalmente usa das em Engenharia e desenhos técnicos Em alguns casos elas preservam as verda deiras dimensões do objeto mas não produzem uma imagem realista por não torna rem menores as medidas mais distantes do observador Seção 15 As perspectivas ou projeções cônicas são bastante mais realísticas na representação de objetos Nas perspectivastodososraiosdeprojeçãopartemdocentrodeprojeçãoeinterceptamo plano de projeção com diferentes ângulos Nessas os raios projetores não são parale los 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 272 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 princi 56 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 120º 120º 120º FIGURA 222 Projeção paralela isométrica com ângulos no plano de projeção iguais entre si Projeção paralela oblíqua cavelire onde o eixo nãoparalelo ao plano de projeção aparece com ângulos de 45º e 30º x y z 1 x y z 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 esses vetores devem ter todos as mesmas medidas depois de transformados pela definição básica de projeção isométrica igualando os valores de x y e x z obtémse sen²β 13 e sen²δ 12 O que resulta em ângulos β 3526 e δ 45 Assim a matriz de projeção isométrica é obtida substituindo estes valores na matriz anterior FIGURA 223 As coordenadas dos pontos projetados em perspectivas são obtidas pela interseção dos raios projetores com o plano de projeção Combinando essas expressões temos x x f z e y y f z A posição do ponto xyzf no plano da imagem é dada pelas seguintes equações As matrizes de projeção em perspectiva são obtidas usando a coluna da matriz genérica 4x4 correspondente às coordenadas homogêneas Quando um dos elementos dessa submatriz 3x1 for diferente de zero o objeto transformado sofre uma transformação perspectiva Nesse caso 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 x0 a matriz de projeção de perspectiva de um ponto será x y z 1 0 0 0 1fx 0 1 0 0 0 1 0 0 0 0 0 1 x y z 1 Do mesmo modo se o centro de projeção for localizado ao longo do eixo y e o plano de projeção for o plano y0 a matriz de projeção de perspectiva de um ponto será x y z 1 1 0 0 0 0 0 1fy 0 0 1 0 0 0 0 0 1 x y z 1 Para obter as matrizes de perspectivas de dois ou 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 1986 Desse modo uma matriz de perspectiva em três pontos é definida como 1 0 0 1fx 0 1 0 1fy 0 0 1 1fz 0 0 0 1 0 0 0 1fx 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1fx 0 0 0 0 0 1 0 1 0 0 0 1 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 1986 Desse modo uma matriz de perspectiva em três pontos é definida como 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 Figura 217 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 zero na posição da coordenada homogênea leva um ponto na forma cartesian x y z para o infinito Gardan 1986 Aplicando a transformação em perspectiva a este ponto teremos 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1fz 1 0 0 1 1fz Usando a transformação homogênea 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 274 temse três pontos de fuga fx 0 0 1 sobre o eixo x 0fy 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 ao ocorreram ao se visualizar a esquina de um prédio altíssimo quando até mesmo as linhas na direção de sua altura deixará de ter a aparência de paralelas çã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 podese 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 ca sos é considerado perpendicular ao vetor de direção de projeção A Figura 225 mostra esses elementos A orientação da câmera é controlada pela sua posição x y z seu ponto focal ponto D na Figura 225 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 pa ralelos e assumese 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 co mum denominado ponto de observação ou centro da projeção Nesse caso é im portante determinar o ângulo de visão da câmera Os planos de recorte anterior e posterior interceptam a direção de projeção Fi gura 225 e são geralmente perpendiculares a ela Os planos de recorte são usados para eliminar partes da cena que estão muito próximas ou muito distantes da câme ra de forma que as que estão na área interior aos planos de recorte serão visíveis TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 65 D Z C A B Y X FIGURA 225 Coordenadasdaposiçãodacâmeraeseus7grausdeliberdadelocalização noespaçoxyzângulosderotaçãoemtornodecadaumdoseixossetascurvasefoco 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 denomi nado geralmente de clipping range da câmera 210 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á verti cal orientado de baixo para cima 2101 Transformação de Translação O comando para a translação é glTranslateTYPE 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 usase glTranslatef00f00f50f 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 glTranslatef101010 DesenhaObjeto Desenha o objeto deslocado de 10 unidades em cada eixo 2102 Transformação de Escala O comando que permite a mudança das dimensões de um modelo é glScaleTYPE x TYPE y TYPE z e muda as escalas relativas a cada eixo principal O comando glScale é relativamente simples mas a utilização do fator de escala nãouniforme afetará os objetos desenhados Por exemplo para triplicar a altura de um objeto usase glScalef10f30f10f 2103 Transformação de Rotação O comando para a rotação é glRotateTYPE 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 ei xos principais devese 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 30oem torno do eixo x pode ser definida como glRotatef300f10f00f00f 66 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 2104 Matrizes de Transformação O OpenGL mantém três matrizes de transformação ModelView Projection e View Point que são usadas para transformar um ponto qualquer dado em um ponto da ja neladevisualizaçãoCadapontoespecificadoémultiplicadoporessastrêsmatrizes O comando glMatrixMode deverá ser utilizado antes dos comandos que especi ficam as formas de projeção que são definidas com os comandos glOrtho glFrus tum ou gluPerpective Essas matrizes podem ser modificadas por uma série de comandos como glTrans late glRotate ou glScale entre outros A matriz que será modificada é definida pelo comando glMatrixMode executado com uma das constantes GLMODELVIEW GLPROJECTION ou GLTEXTURE como mostra o seguinte exemplo glMatrixModeGLPROJECTION glLoadIdentity gluPerspective300widthheight10100 glMatrixModeGLMODELVIEW glLoadIdentity glTranslatef00f00f50f glRotatef300100000 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 ma triz MODELVIEW atual Por exemplo na chamada da função glTranslatef 3 2 8é criada a seguinte matriz 100 000 000 000 000 100 000 000 000 000 100 000 300 200 800 100 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 2105 Armazenando as Transformações na Matriz Para armazenar as transformações geométricas de um objeto em uma matriz de vese chamar a função glGetFloatv imediatamente após serem efetuadas todas as transformações do objeto TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 67 glPushMatrix glLoadIdentity glTranslatef PosObjX PosObjY PosObjZ a próxima linha guarda a matriz de transformação do objeto para um futuro uso glGetFloatvGLMODELVIEWMATRIX MatObj00 glPopMatrix 2106 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 multiplicandose essa matriz pela matriz atual Isso é feito antes de desenhar um objeto da seguinte forma glColor3f00f00f06f glPushMatrix glMultMatrixfMatObj00 DesenhaCubo glPopMatrix 2107 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 trans formações geométricas aplicadas a seu pai Para tanto devese apenas desenhar o objeto filho logo após o desenho do pai O exemplo a seguir ilustra esse procedi mento glPushMatrix glMultMatrixfMatPai00 aplica as transformações do pai DesenhaCubo GLfloat MatInv44 TemFilho true Se TemFilho se vínculo false DESFAZ TRANSFORMAÇÕES DO PAI calcula a inversa da matriz do Pai CopyMatrixMatInvPai MatPai MinvertMatInvPai Multiplica a Matriz do filho pela inversa da matriz do pai MmultMatObj MatInvPai MatObj MatObj MatInvPai vínculo true senão DesenhaObjeto desenha Filho glPopMatrix 68 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 momen to Para tanto devese 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 en tre 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 2108 Desfazendo o Vínculo de Hierarquia Para desfazer o vínculo de hierarquia e deixar o objeto no mesmo lugar devese 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 MmultMatObj MatPai MatObj MatObj MatPai 2109 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 44 da seguinte maneira GLfloat mprojecao 16 declaração de uma matriz 44 Parainserirosvaloresnamatrizdeveseutilizaroseguintecomandodeatribuição mprojecao posição valor a ser inserido Para inserir por exemplo os valores correspondentes a primeira coluna da ma triz valores que são constantes temos mprojecao0 1 inserindo 1 em A0 mprojecao1 0 inserindo 0 em A1 mprojecao2 0 inserindo 0 em A2 mprojecao3 0 inserindo 0 em A3 Depois de todos os valores inseridos na matriz ela já está pronta para ser utiliza da Para carregar essa matriz devese utilizar o seguinte método glLoadMatrizmprojecao 21010 Projeção Paralela Ortogonal A projeção ortogonal é selecionada pelo comando glOrtho e utiliza seis parâmetros que definem um volume de visão glOrtholeftrightbottomtopnearfar TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 69 onde near é a menor distância desejada para um objeto visível Se a distância en tre 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 21011 Projeção em Perspectiva A projeção em perspectiva é selecionada com o comando glFrustrum que também utiliza seis valores para definir o volume de visão em forma de tronco de pirâmide frustum glFrustrumleftrightbottomtopnearfar Pode ser usado também o comando gluPerspective da biblioteca de utilitários gluPerspectiveangleaspectnearfar 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 21012 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 GLdou ble 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 respectiva mente da posição da câmera ou observador Na Figura 225 x y e z cor respondem 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á olhan 70 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA do normalmente o centro da cena Na Figura 226 x y e z correspondem a centerx centery e centerz D é o ponto focal e C é a normal do plano de vi sã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 cena 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 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 71 Z D X Y C FIGURA 226 Coordenadas da posição do alvo CAPÍTULO 3 Curvas e Superfícies 31 Representação de Curvas 311 Conjunto de Pontos 312 Representação Analítica 313 Formas nãoParamétricas de Representar Curvas 314 Formas Paramétricas de Representar Curvas 315 Curvas Paramétricas de Terceira Ordem 316 Hermite 317 Bézier 318 Splines 3181 Splines Uniformes e Periódicas 3182 Splines NãoPeriódicas 3183 Splines NãoUniformes 3184 Desenvolvimento da Formulação Genérica de BSplines 3185 CatmullRom Splines 319 Curvas Racionais 32 Superfícies 321 Superfícies de Revolução 322 Superfícies Geradas por Deslocamento 323 Superfícies Geradas por Interpolação Bilinear 324 Interpolações Trilineares 325 Superfícies de Formas Livres 326 Superfícies Paramétricas Bicúbicas 327 Superfícies de Hermite 328 Superfícies de Bézier 329 Superfícies de BSpline 3210 Normais a Superfícies 3211 Superfícies Racionais 3212 NURBS 32121 NURBS em OpenGL 3213 Subdivisão de Superfícies com CatmullClark e NURMS Curvas e superfícies desempenham um papel importante em diversas áreas tanto na criação de objetos sintéticos quanto na visualização de fenômenos científicos Na modelagemgeométricaemcomputaçãográficaascurvassãoabasetantodageraçã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 mais eficiente de representação Definir uma curva que passe por um conjunto determinado de pontos é matema ticamente um problema 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 31 REPRESENTAÇÃO DE CURVAS 311 Conjunto de Pontos Segmentos de curva ou de retas mesmo que pequenos têm sempre geometrica mente infinitos pontos Representase uma curva por um conjunto finito de pon tos geralmente quando estes são medidos experimentalmente por exemplo 28130011203348 Nessa representação cada par xy representa um ponto no plano e o conjunto inteiro a curva Essa representação de pontos em um sistema de coordenadas foi proposta inicialmente em 1637 por René Descartes 15961650 Os grupos xy são chamados de coordenadas cartesianas do ponto e representam as distâncias do ponto até as duas linhas perpendiculares aos eixos Figura 31 Essa forma de representação é muito utilizada na visualiza ção de medições experimentais CURVAS E SUPERFÍCIES 75 Eixos y x FIGURA 31 Pontos na coordenada cartesiana Na representação por conjunto de pontos a curva pode ser gerada pelo uso 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 terse idéia de cur va contínua é possível então para melhorar a representação unilos por segmen tos de retas como mostrado na Figura 32A Para representação de curvas acentua das a aproximação por segmentos de reta pode não ser satisfatória Figura 32A Nesse caso temos de aumentar o número de pontos nessa região Figura 32B obtendo mais pontos ou se isso não for possível gerando mais pontos por interpo lação ou aproximação 312 Representação Analítica A representação analítica utiliza uma ou mais equações e apresenta várias vanta gens 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 incli naçã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 preci sam ser calculadas por métodos numéricos A representação analítica também apresenta mais simplicidade para ser redesenhada quando 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ãoparamétricas As for 76 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 32 Representações por conjunto de pontos mas nãoparamétricas podem ser ainda explícitas ou implícitas A seguir veremos em detalhes cada uma dessas formas 313 Formas Nãoparamétricas de Representar Curvas Na forma nãoparamétrica como diz o nome não são usados parâmetros e y é dado como uma função de x e viceversa y fxx ou x fyy Nesta representação a equação de um quarto de círculo de raio 10 é dada por y 10² x² ou x 10² y² e a equação de uma reta fica y 2x 1 ou x ½y1 para a representação de curvas 3D basta acrescentar a coordenada zy ou zx A forma nãoparamétrica explícita de representar uma curva é dada por uma equação do tipo y fx onde os pares xy fx representam os pontos da curva Por exemplo a equação genérica explícita de uma parábola é dada por y ax² bx c sendo a b e c números quaisquer Com a1 b2 e c0 essa equação pode gerar a curva da Figura 31 Nessa representação chamase 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 Px anxn an1xn1 a2x² a1x a0 onde n são inteiros positivos e a0a1an 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 forma nãoparamétrica obtémse um valor de y para cada valor de x dado Consequentemente 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 Por exemplo a equação implícita de uma curva do segundo grau ou ordem 2 genérica é ax² bxy cy² 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 33 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 atribuindose diferentes valores às constantes a b c d e e f O círculo e a elipse têm 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 A representação de uma curva 3D na forma implícita é descrita pela interseção de duas superfícies na forma F1xyz 0 F2xyz 0 que devem ser resolvidas simultaneamente para a determinação dos pontos da curva Esse processo é lento 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 à curva o que a faz útil para muitas aplicações de modelagem geométrica onde precisase conhecer pontos interiores exteriores e na fronteira dos objetos Chamase implicaçã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 é x² y² r² 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 foram 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 uso de representações paramétricas 314 Formas Paramétricas de Representar Curvas Na forma paramétrica usase um parâmetro t θ etc para definir as coordenadas dos pontos da curva Por exemplo a equação de um quarto de círculo de raio r10 pode ser descrita como x 10 cos θ fₓθ y 10 sen θ fᵧθ e a equação da reta da seção anterior pode ser representada por x t1 fₓt y 2t1 fᵧ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 xt y yt A posição do ponto na curva é portanto dada por Pt xt yt Notase então que é mais simples ter uma representação em intervalos de comprimentos constantes ao longo da curva É também muito mais fácil o cálculo de derivadas características úteis como por exemplo a derivada em relação ao parâmetro t ou o vetor tangente da curva Pt xt yt A inclinação da curva ou sua diferencial é dada por dydx dydt dxdt yt xt 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 forma paramétrica permite representar curvas fechadas 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 frequentemente 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 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 zt Sendo um ponto da curva espacial definido quando suas três coordenadas forem conhecidas Pt xt yt zt Mas como cada forma de representação é mais apropriada a determinada característica será muitas vezes necessário trocar as formas de representação A forma nãoparamétrica pode ser obtida eliminandose o parâmetro para obter uma única equação em x e y Determinar um ponto em uma curva ie determinar o valor de y dado x é trivial no caso da representação nãoparamétrica explícita No caso da paramétrica é necessário obter o valor do parâmetro t a partir de x e seguir usar este valor para obter y Para equações paramétricas mais complexas uma técnica iterativa pode ser mais conveniente Alguns exemplos de descrição de cônicas nas formas paramétrica e nãoparamé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 315 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 usamse geralmente descrições pela união de di versas curvas Para que diversas curvas sejam adequadamente transformadas em uma curva única muitas vezes será necessário que a curva resultante da união te nha 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 grande maioria dos usuários da computação gráfica as cur vas 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 316 Hermite O uso de polinômios de terceira ordem para ajuste de curvas foi extensamente des crito pelo matemático francês Charles Hermite 18221901 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 teoria geral das funções elípti cas 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 fato res 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 34 Esses quatro fatores de controle têm participação na composição da geometria da curva de Hermite con forme mostrado na Figura 35 CURVAS E SUPERFÍCIES 81 T2 P1 P2 T1 FIGURA 34 Elementos 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 con trole para a forma de chegada e saída da curva ele ampliou o controle em relação ao uso somente das tangentes pois assim teria no máximo a direção e o sentido O mó dulo dos vetores funciona como um peso que muda completamente a curva Essa definição confere à curva uma grande versatilidade permitindo em um dado momento 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 ve tores estão sobre a mesma reta ela assume a forma de uma linha reta Em um dado instante t qualquer as coordenadas dos pontos da curva de Her mite 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 or dem A forma geral desses são xt Px axt3 bxt2 cxt dx yt Py ayt3 byt2 cyt dy zt 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 x0 y0z0 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 1 1 R1 R1 R2 P2 P1 ft t FIGURA 35 Composição da geometria da curva de Hermite 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 mais elegante através da multiplicação de matrizes xt t3 t2 t1 1 a b c d x x x x T Cx yt t3 t2 t1 1 a b c d y y y y T Cy zt t3 t2 t1 1 a b c d z z z z 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 colu na 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 usase normalizar a curva ou seja supor que este será 1 Assim para t 1 a equação da curva xt deve resultar na coordenada x de P2 x1 ax bx cx dx ou forma matricial x1 1 1 1 1 Cx CURVAS E SUPERFÍCIES 83 o mesmo ocorrendo para as demais coordenadas y1 1 1 1 1 Cᵧ z1 1 1 1 1 C𝓏 Devemos agora satisfazer as condições vetoriais da curva Como a direção do vetor está ligada a tangente da curva usaremos xt Pᵡ 3aₓt² 2bₓt cₓ yt Pᵧ 3aᵧt² 2bᵧt cᵧ zt Pᵧ 3a𝓏t² 2b𝓏t c𝓏 que na forma matricial podem ser escritas como xt Pᵡ 3t² 2t 1 0Cₓ yt Pᵧ 3t² 2t 1 0Cᵧ zt Pᵏ 3t² 2t 1 0C𝓏 assim a condição de a curva em t0 ser o vetor T₁ resulta na definição dos parâmetros cₓ cᵧ e c𝓏 da curva Na forma matricial podemos escrever x0 T₁ₓ 0 0 1 0Cₓ cₓ y0 T₁y 0 0 1 0Cᵧ cᵧ z0 T₁z 0 0 1 0C𝓏 c𝓏 A última condição é que em t 1 o vetor T₂ define a tangente da curva Essa condição se expressa matricialmente como x1 T₂ₓ 3 2 1 0Cₓ y1 T₂y 3 2 1 0Cᵧ z1 T₂z 3 2 1 0C𝓏 Unindo as quatro condições P₁ P₂ T₁ e T₂ podemos unificar as expressões independentemente de representarem os eixos x y ou z 𝒫₁ 0 0 0 1 𝒫₂ 1 1 1 1 𝒯₁ 0 0 1 0 𝒯₂ 3 2 1 0 𝒞ₓ H¹Cₓ Como os valores de Cₓ Cᵧ e C𝓏 são desconhecidos podemos representar melhor a expressão anterior como CX HH1CX H beginbmatrix P1 P2 T1 T2 endbmatrixX onde H é a função que multiplicada por H1 produz a matriz identidade É fácil verificar que essa matriz é H beginbmatrix 2 2 1 1 3 3 2 1 0 0 1 0 1 0 0 0 endbmatrix como essa matriz independe da direção x y ou z temos xt TCX TH THGX yt TCY TH THGY zt TCZ TH THGZ As condições geométricas que definem uma dada curva de Hermite são frequentemente denominadas de vetores GX GY e GZ ou em uma forma única como matriz Gh Gh beginbmatrix P1x P1y P1z P2x P2y P2z T1x T1y T1z T2x T2y T2z endbmatrix Assim dada uma condição geométrica Gh a curva de Hermite definida por ela fica perfeitamente definida pela expressão Pt 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 Pt left 2t3 3t2 1 2t3 3t2 t3 2t2 t t t2 right beginbmatrix P1 P2 T1 T2 endbmatrix Estas funções produzem uma curva que é o resultado da combinação blending function das quatro propriedades geométricas mostradas na Figura 35 É interessante 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 Rodrigues Hnx 1n ex2 fracdndxn ex2 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 Figura 36 ilustra os diferentes resultados obtidos pela simples alteração na direção da tangente inicial da curva de Hermite 317 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 1960 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 Citroën mas como os trabalhos de Bézier foram publicados antes seu nome ficou mais conhecido Essa curva por não usar o conceito de vetor e apenas pontos é mais 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 37 onde n é o grau dos polinômios e Quando muitos pontos de controle são usados as expressões podem se tornar complexas pois resultarão em polinômios de graus maiores Uma alternativa simples quando forem necessários muitos pontos de controle é a conexão de vá rios segmentos de curvas de graus menores Nesse caso para que as duas curvas tenham a mesma inclinação no ponto de união ou seja derivadas contínuas de vese fazer com que tenham três pontos em linha reta Isto é o ponto imediata mente 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 311 Em geral uma forma complexa é mais 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 or dem 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 usase a notação C0 C1 C2 etc Essa simbologia usa a letra C maiús cula com um número superescrito A forma mais simples de continuidade C0 asse gura que uma curva ou a união de curvas não terá descontinuidade O nível seguin te 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 deri vada segunda da curva e assim por diante Figura 312 CURVAS E SUPERFÍCIES 89 B2 B1 B0 B6 B5 B4 B3 FIGURA 310 Adicionando pontos de controle a curva de Bézier B2 B2 B1 B0 B3 B7 B B 4 0 B4 B3 FIGURA 311 Conexão de vários segmentos de curvas de graus menores para simplifica ção da expressão Níveis de continuidade na união de duas curvas Pt T MB GB A curva de Bézier é invariante sob transformações afins Transformações afins estão disponíveis em qualquer sistema de CAD pois é essencial repositionar escalálos ou girar os objetos Essa propriedade garante que os dois procedimentos a seguir produzem os mesmos resultados a primeiro calculase um ponto na curva e depois aplicase uma transformação afim e b primeiro aplicase uma transformação afim ao polígono de definição e depois gerase a curva 318 Splines Existem diversas formas de introduzir a teoria dessas curvas e muito já se tem escrito sobre elas desde o seu desenvolvimento em 1967 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 C² 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 comportamento como já mencionado nas seções anteriores não é apropriado para aplicações de ajuste de curvas interativas A BSpline é uma versão da Spline Natural com controle local isto é as alterações nos pontos de controle da BSpline apenas se propagam para os vizinhos mais próximos A função BSpline não passa pelos pontos de controle Figura 313 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 e a continuidade Cᵢ dependem da ordem dos polinômios usados nas funções de base Pt i0n Bᵢ Nikt Nas aplicações que usam curvas de forma livre para o projeto de modelos curvatura contínua é geralmente um fator importante e por isso BSplines cúbicas são preferencialmente usadas A forma geral da curva BSpline é bastante semelhante à da curva de Bézier Um conjunto de funções Nikt combina o efeito dos pontos de controle Bᵢ para gerar a curva Pt i0n Bᵢ Nikt As diferenças fundamentais entre ambas são as funções Nikt i 01n 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 Nik representa as funções de grau k1ordem do polinômio e curvas de continuidade Ck2 Cada uma das funções Nikt é definida de maneira recursiva pelas equações Ni1t 1 para tᵢ t tᵢ₁ 0 nos demais intervalos Nikt left frac1 t titik1 ti right Nik1t left fract titik ti1 right Ni1k1t Como o denominador pode se tornar zero usase a convenção 00 0 Essa formulação requer a escolha de um conjunto de valores tᵢ chamados nós que 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 tᵢ devem satisfazer a relação tᵢ tᵢ₁ e 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 Nikt 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 i0n Nikt 1 Em uma curva BSpline o número de pontos de controle n1 o grau k1 e o número de nós estão relacionados Suponto que esses nós sejam t₀t₁t₂tₘ essas características se relacionam pela expressão m n k Os nós são geralmente apresentados como vetores ou matrizes linha t₀t₁t₂tₙ₁ e podem ser classificados como uniformes e periódicos uniformes e nãoperiódicos e nãouniformes Como os nós influenciam toda a forma da curva BSpline usase geralmente essa mesma classificação para a curva representada por eles 3184 Desenvolvimento da Formulação Genérica de BSplines A fórmula geral apresentada no início da descrição das curvas BSplines será usada aqui para demonstrar o desenvolvimento de qualquer tipo desejado dessas curvas segundo as classificações descritas nas seções anteriores Para gerar interpolações lineares temse k2 e a curva passa a ser descrita pelas funções N₁₂t t tᵢ tᵢ₂₁ tᵢ se tᵢ t tᵢ₁ e N₁₂t tᵢ₂ t tᵢ₂ tᵢ₁ se tᵢ₁ t tᵢ₂ Dependendo do vetor de nós escolhido é possível ter curvas uniformes e periódicas nãoperiódicas ou nãouniformes Se o desejado for uma BSpline periódica definida a intervalos iguais de 1 a partir de 0zero teremos N₁₂t t para 0 t 1 2 t se 1 t 2 Para gerar interpolações quadráticas temse k3 e as funções são definidas recursivamente como N₁₃t t tᵢ tᵢ₂ tᵢ N₁₂t tᵢ₃ t tᵢ₃ tᵢ₁ Nᵢ₁₂t onde o valor de Nᵢ₁₂t pode ser obtido da expressão anterior Assim se forem usados dos intervalos iguais de t a partir de zero para o vetor de nós temse N₁₄t 12 t² 0 t 1 34 12t 32² 1 t 2 123 t² 2 t 3 As funções de interpolação cúbica k4 para o mesmo conjunto de nós periódicos e uniformes serão N₁₄t 16 t³ 0 t 1 23 12t 2³ t 2² 1 t 2 23 12t 2³ t 2² 2 t 3 16 4 t³ 3 t 4 Do mesmo modo é possível recursivamente gerar qualquer tipo de BSpline nãoperiódica ou nãouniforme apenas escolhendo adequadamente os vetores nós Assim como Hermite e Bézier um ajustador BSpline utilizando a forma matricial com os parâmetros separados das matrizes BSpline descreve 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 Pt t³ t² t¹Mₛ no caso de t ser substituído por ti em cada intervalo sendo ainda Mₛ 16 1 3 3 1 3 6 3 0 3 0 3 0 1 4 1 0 Os ajustadores de BSpline 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 sequência de pontos de controle ponto em relação a sua distância dos outros dois Quanto mais próximo de zero mais próximo estará o novo ponto de P1 Quanto mais próximo de um mais próximo estará 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 qt 12 t³ 3t² t 1 1 3 3 1 2 5 4 1 1 0 1 0 0 2 0 0 P0 P1 P2 P3 uma Spline de CatmullRom tem as seguintes características a curva gerada passa por todos os pontos de controle a curva gerada é contínua de classe 1 C¹ ou seja não existe descontinuidades nas tangentes Figura 318 Além disso o vetor tangente em um ponto Pi é paralelo a linha que une os pontos Pi1 e Pi1 a curva gerada não é contínua de classe 2 C² 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 319 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 ideia 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 01 110 ou 098765 98765100000 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 às transformações de projeção Tanto as curvas de Bézier quanto as Bsplines possuem forma racional ou forma inteira A forma inteira foi vista nas seções anteriores A tabela seguinte mostra as expressões correspondentes na forma racional Forma Inteira Forma Racional Bézier i0 to n Bi Jnit i0 to n wi Bi Jnit i0 to n wi Jnit BSpline i0 to n Bi Nikt i0 to n wi Bi Nikt i0 to n wi Nikt 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 xyz como um elemento do espaço de quatro dimensões homogêneo wxwywzw sendo w um valor maior que zero Esse valor w é a coordenada homogênea e também denominado peso Capítulo 2 seção 26 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 PWt i0 to n Bi W Jnit 0 t 1 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 peso empurrará a curva na direção do ponto de controle Bi A Figura 319 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 quanto todas as formas de Splines uniformesperiódicos nãoperiódicos e nãouniformes A forma mais comumente encontrada são as BSplines nãouniformes racionais comumente chamadas pela forma abreviada NURB porque essa representação inclui todas as formas possíveis de Bézier e BSplines 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ãoparamé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 forma será revista no próximo capítulo A Figura 320 mostra algumas superfícies muito conhecidas e as equações que as geraram Essas superfícies não estão na forma paramétrica cada ponto sobre elas é uma função de suas coordenadas xyz Um segmento de reta girando 360 em torno do eixo z produz uma superfície cônica De maneira geral temse que um ponto da superfície de revolução é descrito como Pt θ Superfícies de revolução podem ser obtidas por qualquer tipo 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 323 Superfícies Geradas por Interpolação Bilinear A geração de superfícies a partir da expressão da curva ou dos pontos que descre vem seus limites é uma das formas mais úteis muito empregada nas construções navais aeroespaciais e na análise numérica onde há necessidade de discretização de domínios elementos finitos ou de contorno Essas formas são paramétricas e começam pela definição da forma como os parâ metros representarão a superfície A forma mais simples é considerar o espaço dos parâmetros representados por uma área unitária limitada pelos pontos 0001 10 e 11 Essa área pode ser vista como o produto cartesiano dos dois eixos nor malizados ortogonais mostrados na Figura 323 de modo que qualquer ponto do interior seja definido univocamente Se você deseja gerar uma superfície a partir de quatro pontos ABC e D deve associar esses pontos aos limites do espaço dos parâ metros 00 01 10 11 e gerar o interior empregando duas interpolações li neares sucessivas Na primeira interpolação serão geradas as retas AD e BC que correspondem aos limites com parâmetro u0 e u1 Qualquer ponto E sobre a reta AD será definido como E 1 v A v D de modo que se v0 E é o próprio ponto A e se v1 E corresponde ao ponto D Fi gura 323 Do mesmo modo os pontos F sobre a reta BC serão obtidos pela inter polação linear das coordenadas de B e C F 1 v B v C Com os pontos E e F é possível gerar o interior da superfície a partir de outra in terpolação linear usando agora o parâmetro u CURVAS E SUPERFÍCIES 103 D 01 11 10 v A C E P v F y z x u v B 00 FIGURA 323 Parâmetros u v e geração de superfícies por quatro pontos limites Puv 1 u E u F As expressões anteriores podem ser reunidas resultando em duas interpolações lineares ou uma interpolação bilinear Puv 1 u 1 v A 1 u v D u 1 v B u v C É fácil verificar que se a superfície gerada é um plano então os quatro pontos de vem ser coplanares estarem sobre um mesmo plano e as fronteiras devem estar sempre limitadas por segmentos de reta Se as fronteiras ou limites forem definidas por curvas e não por retas a forma mais simples de gerar o interior é usar a expressão dessas curvas para gerar os pontos E e F Essa é a idéia de geração de superfícies denominada lofting usada desde a antigüidade na construção de caravelas naus embarcações e navios Nela as curvas dos limites opostos nas direções u ou v dos parâmetros são usadas para a geração da superfície A Figura 324 mostra os chamados loftings verticaisv e horizontaisu A interpolação resultante é linear a partir das curvas das fronteiras Por isso as outras fronteiras limitantes serão retas No caso de o limite ser quatro curvas a interpolação de Coons1974 resolve esse problema O resultado obtido ou seja a superfície gerada é conhecida na lite ratura como retalho de Coon interpolação de Coon ou Coons Patches Esse méto do consiste na soma das superfícies geradas pelos loftings verticais e horizontais an teriores subtraídas da superfície gerada pela interpolação bilinear dos quatro pon tos expressos por A B C e D Sendo esses representados por qualquer uma das duas curvas limites que passam por eles isto é 104 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA B B C P y A V v 0 D V v 1 z u v C x x P A D y v u Puv1v U u v U u 0 1 Puv1u V v u V v 0 1 U u 0 U u 1 FIGURA 324 Loftings verticais e horizontais A U00 V00 B U01 V10 C U11 V11 D U10 V01 324 Interpolações Trilineares As interpolações trilineares são úteis no caso da definição da superfície por três cur vas de fronteira Nessa interpolação um ponto do interior é definido por três parâ metros uv e w cada um com valores entre 0 e 1 Figura 325 Como as superfícies são elementos 2D ou seja sempre podem ser descritas com apenas dois parâme tros obviamente há a restrição adicional de que w v u 1 em qualquer ponto A geração de superfícies a partir de suas fronteiras permite diversas possibilida des de restrições adicionais muito úteis às análises numéricas como a passagem por pontos ou curvas interiores específicas a combinação de duas curvas para a for mação de um contorno único a utilização de contornos definidos por curvas fecha das a Figura 326 mostra essa possibilidade a redução de uma das várias curvas a pontos para discretizar a malha gerada e diversos outros CURVAS E SUPERFÍCIES 105 w P uvw B 100 C 010 A 001 u v u espaço dos parâmetros superfície gerada pelas curvas de fronteira w v FIGURA 325 Interpolações trilineares u v FIGURA 326 Restrições adicionais úteis às análises numéricas A ideia básica dos retalhos patches usados para construir uma superfície gerada pelas interpolações da seção anterior pode ser generalizada para uso com qualquer uma das formas de descrição de superfícies por pontos de controle utilizadas nas seções iniciais deste capítulo quando a geração de curvas Hermite Bézier Splines ou Racionais foi desenvolvida Superfícies podem então ser geradas pela combinação de pedaços gerados por essas curvas como na confecção de uma colcha de retalhos Figura 327 Essa forma é conhecida como geração de superfícies por formas livres A superficie bicubica de Hermite e uma extensao da formulacia da curva de Hermite As curvas de contorno sao definidas pelas expressoes de Hermite e pelo interior gerado pelas funcoes de mistura blending function Dois parametros sao necessarios ambos variando entre 0 e 1 Se esses parametros forem chamados de s e t a superficie bicubica pode ser escrita como Pst S H Gh HT TT onde S s3 s2 s 1 T t3 t2 t 1 o índice T indica transposto das matrizes e vetores H é a matriz de Hermite usada na geração de curvas e Gh as condições geométricas que definirão a superfície de Hermite Essa matriz deve ser representada pelos quatro pontos limites suas derivadas em relação a s e t e suas derivadas cruzadas Isto é Gh beginpmatrix P00 P01 fracpartial Ppartial t00 fracpartial Ppartial t01 P10 P11 fracpartial Ppartial t10 fracpartial Ppartial t11 fracpartial Ppartial s00 fracpartial Ppartial s01 fracpartial2 Ppartial s partial t00 fracpartial2 Ppartial s partial t01 P10 P11 fracpartial Ppartial s10 fracpartial Ppartial s11 endpmatrix Variações da superficie sao obtidas trocando os pontos representados na submatriz superior esquerda os vetores tangentes ou as derivadas cruzadas submatriz inferior à direita A curva pode ser simplificada anulando as derivadas cruzadas Essa variação é chamada de superficie Ferguson patch ou Fpatch Faulx 1987 A equação para os patches de Bézier é como os de Hermite uma extensão direta das curvas de Bézier sendo mais simples de criar e mais intuitivamente modificáveis que aquelas da Seção 327 Um ponto qualquer da superficie pode ser obtido pela expressão Pst sumi0n sumj0m Bij Jins Jjmt quad 0 leq st leq 1 onde como no caso das curvas de Bézier Bij define o vértice de controle da superficie Jijns Jjmt sao as funções de Bernstein nas direções s e t respectivamente Seção 317 As funções não precisam ter o mesmo grau nas duas direções podendo ser cúbicas na direção s e quadráticas na direção t por exemplo Os pontos dos quatro cantos da superficie gerada coincidem com os quatro pontos de controle Na forma matricial a equação anterior pode ser escrita como Pst S MB GB MBT TT onde os vetores S e T têm o significado usual MB é a matriz de Bézier e GB os pontos de controle Se a superficie de Bézier a ser gerada for definida por dois polinômios de grau 3 teremos as chamadas bicúbicas de Bézier que podem ser escritas como Pst s3 s2 s 1 MB GB MBT beginpmatrix t3 t2 t 1 endpmatrix sendo MB beginpmatrix 1 3 3 1 3 6 3 0 3 3 0 0 1 0 0 0 endpmatrix e os pontos de controle representados pela matriz GB beginpmatrix P00 P01 P02 P03 P10 P11 P12 P13 P20 P21 P22 P23 P30 P31 P32 P33 endpmatrix Para representar uma superficie Bézier bicubica os dezesseis pontos de controle que definem mostrados na Figura 328 devem ser especificados onde Niks e Njlt sao as funções de BSpline definidas na seção 318 de curvas BSpline e Bij sao os pontos de controle Os vetores de nós nas duas direções de parametrização podem ser classificados como periódicos uniformes nãoperiódicos ou nãouniformes como no caso das curvas As superficies BSplines periódicas uniformes são geradas usando vetores de nós não uniformes Como no caso das curvas BSplines periódicas essas superficies também podem ser expressas em formulação matricial que no caso das bicúbicas torna a forma Pst S Ms Gs MsT TT onde os vetores S e T têm o significado usual Gs representa a matriz formada pelos dezesseis pontos de controle e as matrizes Ms são as mesmas já usadas para curvas Ms frac16 beginpmatrix 1 3 3 1 3 6 3 0 3 3 0 0 1 4 1 0 endpmatrix Normais a superficies sao importantes para a geração realista de sombreamentos capítulo 7 cálculo de trajetórias em jogos detecção de interferências em robótica e para diversos cálculos na modelagem de objetos Essas normais no caso de superficies bicubicas sao fáceis de se obter Todas as expressões na forma matricial têm tangentes na superficie Pst dadas pelas derivadas parciais fracpartial barPpartial sst 3s2 2s 1 0 MG MT TT e s s t S M G M T 3t² 2t 1 0 de modo que para calcular o valor do vetor tangente em um ponto basta substituir nas expressões anteriores as coordenadas s e t do ponto onde desejase conhecer a tangente e as matrizes do tipo da curva desejada Por exemplo para as cúbicas de Hermite as tangentes no ponto s 12 e t 1 serão definidas pelos vetores Ps 14 925 12 Pt 11375 1125 10 des das superfícies nãoracionais estendese à sua forma similar racional Por exem plo se rotações e translações forem aplicadas aos pontos de controle a superfície será interior ao convex hull do poliedro que a envolve 3212 NURBS O termo NURBS é a abreviatura de NonUniform Rational BSplines Surfaces ou seja é uma BSpline racional originária da razão de polinômios NonUniform significa que a influência da extensão de um controle de vértice não precisa ser a in tervalos iguais do parâmetro t podendo variar o que é muito bom na modelagem de superfícies irregulares Rational significa que a equação usada para representar a curva ou superfície é expressa pela razão de dois polinômios A forma Rational como comentado na seção anterior fornece um modelo melhor de algumas im portantes superfícies especialmente para formas cônicas e esféricas As superfícies NURBS não existem no mundo do desenho tradicional Elas foram criadas especialmente para a modelagem em três dimensões no computador As NURBS são construídas matematicamente e representam formas de um espaço 3D O uso de NURBS oferece uma forma matemática comum tanto para a análise quan to para a geração de formas livres Ela provê uma flexibilidade adicional para proje tar uma grande variedade de formas e pode ser avaliada de maneira razoavelmente rápida por algoritmos numericamente estáveis e precisos Essas superfícies são obtidas com o uso de matrizes Bij de nós nãouniformes e são uma das formas de representação mais usadas em projetos de engenharia prin cipalmente por englobar todas as outras formas de representação A forma geral das BSplines racionais descritas na seção anterior é também usada nas formas nãouniformes A única restrição é como o nome indica que os vetores de nós sejam nãouniformes Ela pode fazer com que todas as demais formas de re presentação sejam casos particulares dela bastando seguir as seguintes restrições Tipo De Curva Restrição BSpline nãoracional Fixar todos os pesos wij1 Bézier racional Se o número de pontos de controle é igual à ordem em cada di reção dos parâmetros e não existirem nós interiores duplicados Bézier nãoracional As mesmas das racionais além de fixar que o peso seja wij1 Além disso as NURBS têm a habilidade de representar superfícies quadráticas A característica nãouniforme das NURBS nos leva a um importante ponto Por se rem geradas matematicamente na forma homogênea NURBS possuem um parâmetro adicionalem3DEspecificamenteumarraydevaloreschamadosnósespecificaain fluência de sua extensão para cada vértice da curva ou superfície Os nós são invisíveis CURVAS E SUPERFÍCIES 111 Pt P w t n i0 w i B i N ni t n i0 w i N ni t Todos os polinômios possuem um grau Uma equação linear possui grau 1 uma quadrática grau 2 e as NURBs dependerão do grau das equações Por exemplo as cúbicas possuem grau 3 Graus mais elevados são possíveis porém muitas vezes desenháveis e complexos Uma curva pode possuir níveis de continuidade maiores que C² mas para modelagem em computadores curvaturas contínuas são satisfatórias Geralmente a distinção entre uma curva C² e uma outra de maior continuidade é imperceptível para usuário Os reparametrizadores mais úteis são os de comprimento de curva e os unifor mes No primeiro caso os espaços entre os nós são reparametrizados com base na raiz quadrada do comprimento de cada segmento da curva No segundo caso ocor re a reparametrização uniforme dos espaços entre os nós 32121 NURBS em OpenGL Antes de chamarmos qualquer função NURBS temos de dizer ao OpenGL que cria remos um NURB Isso pode ser feito pela chamada de função nurbSurface gluNewNurbsRenderer Cada chamada a essa função retorna um ponteiro para a GLUnurbsObj que deve ser usado com as demais funções NURBS Dessa maneira podemos criar quantos patches NURBS desejarmos ajustando suas propriedades individualmente Para ajustarmos as propriedades de um NURBS chamamos a função gluNur bsProperty gluNurbsProperty GLUnurbsObj nurb GLenum property GLfloat value As propriedades devem ser uma das que seguem GLUSAMPLINGTOLERANCE especifica o comprimento máximo em pixel dos polígonos que compõem a malha Quanto menor mais suave parecerá a malha po rém demandará mais tempo para o render O valor padrão é de 50 pixels GLUDISPLAYMODE define como um NURBS deve ser renderizado entre as seguin tes opções GLUFILL GLUOUTLINEPOLYGON ou GLUOUTLINE PATCH GLUCULLING este é um valor booleano GLTRUE significa que uma superfície NURBS deve ser descartada se os seus pontos de controle estiverem fora da janela de visualização O padrão é GLFALSE GLUAUTOLOADMATRIX este também é um valor booleano GLTRUE sig nifica que um NURBS utiliza as matrizes de projeção corrente modelview e view port GLFALSE requer a especificação de matrizes através da função gluLoadSam plingMatrices Agora que ajustamos as propriedades basta desenhar a curva através da função gluNurbsSurface GLUnurbsObj nurb GLint uKnotCount GLfloat uKnot GLint vKnotCount GLfloat vKnot GLint uStride GLint vStride GLfloat ctrlArray GLint uOrder GLint vOrder GLenum type CURVAS E SUPERFÍCIES 113 nurb é o ponteiro do objeto NURBS uKnotCount especifica o número de nós na direção paramétrica u uKnot especifica um array de nós crescente na direção u vKnotCount especifica o número de nós na direção paramétrica v vKnot especifica um array de nós crescente na direção v uStride especifica o equilíbrio entre pontos de controles sucessivos na direção paramétrica u em ctrlArray vStride especifica o equilíbrio entre pontos de controles sucessivos na direção paramétrica v em ctrlArray uOrder especifica a ordem da superfície NURBS na direção u vOrder especifica a ordem da superfície NURBS na direção v type especifica o tipo de superfície que poderá ser GLMAP2VERTEX3 or GLMAP2COLOR4 Sedesejardesenharumalinhacurvaemvezdeumasuperfícievocêpoderáchamar a função gluNurbsCurve que possui os mesmos parâmetros menos a direção v 3213 Superfícies NURMS Foram Catmull e Clark que primeiro notaram que as regras de subdivisão podiam ser estendidas para incluir malhas de topologia arbitrária Em 1978 através da publica ção de Recursively generated Bspline surfaces on arbitrary topological surfaces eles mostraram que a superfície limite é localmente uma Bspline bicúbica uniforme ex ceto em alguns pontos na superfície que eles chamaram pontos extraordinários Essa técnica de subdivisão fez surgir as ferramentas de modelagem NURMS NonUniform Rational Mesh Smooth As superfícies NURMS são mais fáceis e rá pidas de gerar e alterar do que as superfícies NURBS e por isso vêm ganhando adeptos quando o assunto é modelagem de personagens ou modelagem de objetos de contornos suaves A Figura 330 demonstra a aplicação de NURMS em um mo delo de face de poucos polígonos lowpoly model observe os contornos do quei xo Outro exemplo clássico para rápida e fácil geração de personagens é demonstra do na Figura 331 onde as NURMS são aplicadas a um modelo do corpo de um per sonagem com poucos polígonos Utilizando a subdivisão de superfícies Bspline bicúbicas uniformes Catmull e Clark seguiram a metodologia de Doo e Sabin e notaram que a regra de subdivisão expressa para a superfície Bspline cúbica não só trabalha para malhas retangulares mas também pode ser estendida para malhas de uma topologia arbitrária Essa ex tensão pode ser realizada generalizando a definição de um ponto da superfície mo 114 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dificando o método para calcular novos pontos nos lados da malha poligonal e es pecificando um método para reconectar os pontos da malha O procedimento de refinamento pode ser exemplificado com o uso de uma ma lha formada por quatro triângulos como mostra a Figura 332 Primeiro construímos os pontos médios das superfícies Esses pontos são cal culados com a média aritmética das coordenadas dos pontos que compõem os vértices de cada triângulo Esses pontos são mostrados na Figura 333 pela le tra F Podemos dizer que o cálculo de F1 por exemplo é obtido de F1G1 G2 G0 3 e do mesmo modo se obtém os demais F2 F3 F4 CURVAS E SUPERFÍCIES 115 FIGURA 331 NURMS aplicado a um modelo de corpo de poucos polígonos FIGURA 330 NURMS aplicado em um modelo de face de poucos polígonos Agora construímos os novos pontos para subdivisão da malha que são calculados pela média dos quatro pontos formados pelos dois novos pontos F de lados adjacentes e os dois pontos dos vértices G do triângulo original Os novos pontos são identificados pela letra E na Figura 334 Dessa maneira E1 será o resultado da média dos pontos F1 F4 G1 e G0 Do mesmo modo determinase os demais E2 E3 E4 Os novos pontos de vértice são calculados pela expressão Q n 2R n Sn 3 n onde Q é a média dos novos pontos F de todas as faces adjacentes à malha original R é a média dos pontos centrais E de todas as extremidades adja centes originais S é o ponto de vértice original e n é o número de vértices da face em consideração Este ponto pelo menos para esse exemplo em duas di mensões é idêntico ao centro do diamante Este ponto está representado na Figura 335 pela letra V CURVAS E SUPERFÍCIES 117 G4 G0 F4 E4 G1 F1 E1 G2 F2 E2 G3 F3 E3 FIGURA 334 Determinando os pontos de extremidade V FIGURA 335 Determinando os novos pontos de vértice Finalmente conectamos as extremidades aos pontos que geramos primeiro conectando os novos pontos das faces pontos E e F e então conectando os novos pontos de vértice aos pontos das faces originais neste caso conecta mos todos os pontos E ao G0 Figura 336 A Figura 337 exemplifica a inclusão de malhas na topologia de um objeto 3D com a técnica de refinamento de CatmullClark Outras implementações de modelagem de superfícies por subdivisão podem ter características diferentes Alguns produtos como o Pixar Render Man dão suporte a subdivisão de superfícies usando NURBS Algumas engrenagens 3D de jogos e visualizadores 3D para Internet suportam subdivisão de superfície em realtime 118 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA G0 F4 E4 F1 E1 F2 E2 F3 E3 FIGURA 336 Conectando as extremidades dos novos pontos FIGURA 337 Inclusão de malhas na topologia de um objeto 3D com a técnica de Cat mullClark CAPÍTULO 4 Representação e Modelagem 41 Pivô 42 Sólidos uni bi e tridimensionais 43 Sólidos realizáveis 44 Formas de representação de objetos 441 Representação Aramada Wire Frame 442 Representação por Faces ou Superfícies Limitantes 443 Representação por Faces Poligonais 444 Fórmula de Euler 445 Operadores de Euler 446 Estrutura de dados baseada em vértices 447 Estrutura de dados baseada em arestas 448 Estrutura de dados WingedEdge e Half WingedEdge 449 Utilização de Operações Booleanas com Brep 45 Técnicas de Modelagem Geométrica 451 Instanciamento de Primitivas 452 Objetos de Combinação 453 Operações Booleanas e Booleanas Regularizadas 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry 455 Connect 456 Modelagem por Varredura Sweep ou Deslizamento 457 Modelagem por Seções Transversais 458 Modelagem por Superfícies 46 Modificadores 461 Bend ou Curvatura 462 Lattice ou Malha 463 MeshSmooth ou Suavização 464 Optimize 465 Bevel 466 Melt 467 Skew 468 Squeeze ou Stretch 469 Taper 4610 Twist 4611 Diaplace ou Deslocamento 4612 Space Warps 47 Interfaces para Modelagem Geométrica 471 Tape Fita de Medida 472 Protractor Transferidor 473 Compass Bússola 474 Array Vetor 48 Modelagem Geométrica com OpenGL 481 Desenhando um Ponto 482 Desenhando uma Linha 483 Desenhando um Polígono 484 Primitivas 485 Objetos Sólidos 486 Wireframe 49 Modelagem pelo Número de Ouro 491 A Seqüência de Fibonacci 410 Modelagem Fractal 4101 Os Objetos de Mandelbrot 411 Shape from X Reconstrução Tridimensional 4111 Implementação 412 Sistemas de Partículas 4121 Distribuição de partículas no sistema 4122 Noção de centro de massa 4123 Velocidade do centro de massa 4124 Quantidade de movimento 4125 Aceleração do centro de massa 4126 Movimento de uma partícula em relação ao seu centro de massa 4127 Choque 4128 Quantidade de movimento de um sistema de duas partículas 4129 Energia de um sistema de duas partículas 41210 Conceito de Sistemas de Partículas 41211 Renderizando as Partículas 41212 Características dos Sistemas de Partículas Quando modelamos um objeto devemos sempre observar as limitações resul tantes das técnicas disponíveis As atuais técnicas de modelagem apesar de efi cientes para determinadas situações podem representar um problema para ou tras Se tomarmos um objeto complexo por exemplo uma cabeça humana ve remos que este poderá ser inviável para utilização em aplicações de tempo real como Games ou Realidade Virtual Uma cabeça com riqueza de detalhes terá no mínimo 300000 polígonos Podemos ainda citar diversas outras dificulda des relacionadas com a representação de um rosto como as expressões faciais realistas ou custo de renderização Tornarse um bom modelador poderá garantir o sucesso profissional de quem deseja trabalhar com computação gráfica Na verdade modelar é um assunto que exige muita intuição conhecimento e experiência A modelagem está presente em quase todas as aplicações da medicina para diagnósticos e ensino à indústria para garantir a precisão dos projetos no entretenimento para criar personagens e cenários virtuais e em uma infinidade de outras aplicações 41 PIVÔ Antes de iniciarmos os estudos sobre modelagem precisamos conhecer uma peça importante do assunto o Pivô ou usando a terminologia da seção 24 o sistema de referência do objeto Figura 41 REPRESENTAÇÃO E MODELAGEM 121 FIGURA 41 O ponto pivô Todos os objetos têm um pivô e um sistema de coordenadas próprio Você pode pensar sobre o pivô como o centro do objeto ou o centro de coordenadas lo cais Quando modelamos um objeto usando um software podemos observar que o pivô é criado automaticamente pelo sistema Nesse momento é importante verifi car se a escolha feita pelo sistema será adequada para as modificações que aplicare mos Muitas vezes será necessário alterar a posição padrão do sistema para realizar uma modificação qualquer no objeto O pivô de um objeto é usado em funções de transformação Seção 25 como centralizar rotacionar e dimensionar para deter minar a posição de atuação de um modificador como veremos mais à frente e para definir a relação de transformação para os elementos conectados Agora que conhe cemos o pivô podemos iniciar os estudos de modelagem pelos sólidos 42 SÓLIDOS UNI BI E TRIDIMENSIONAIS O termo modelagem de sólidos designa um conjunto de teorias técnicas e sistemas que permitem criar um sólido com suas propriedades geométricas Mas antes veja mos se está bem clara a idéia do que é um sólido Algo é considerado um sólido se tem uma forma própria A modelagem de líqui dos gazes materiais flexíveis ou de coisas que não tenham forma própria roupas tecidos plásticos gel e outros é também necessária e representável em computa ção gráfica Muitos modelos representativos desses comportamentos complexos ainda estão em estágio de desenvolvimento e pesquisa Uma definição mais precisa de sólido é encontrada em uma das ótimas referên cias sobre modelagem de sólidos o livro do pesquisador finlandês Martti Mäntylä Anintroductiontosolidmodeling publicado pela ComputerSciencePress em 1988 Definição Um sólido é um subconjunto fechado e limitado do espaço Euclidiano tridimensional E3 Essa definição esclarece alguns pontos muito importantes sobre um sólido O mais importante talvez é que associada à idéia de sólido está a idéia de ser algo es sencialmente tridimensional abreviadamente 3D Assim embora em muitos ca sos o objeto em estudo possa ser considerado unidimensional como um fio ou bi dimensional como folhas de metal ou papel será sempre algo essencialmente parte de nosso mundo físico palpável e portanto 3D Poderemos considerálo bidimen sional 2D se uma das dimensões não for considerada por nela nada ocorrer ou por ser desprezível for 100 vezes menor que qualquer uma das outras dimensões por exemplo que concentram todas as informações sobre o objeto Do mesmo modo o sólido pode ser considerado unidimensional 1D se só uma das dimen sões concentrar as informações ou as demais forem desprezíveis face a essa uma delas for 100 vezes maior que qualquer uma das outras dimensões por exemplo 122 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Outro ponto importante é ser um elemento Euclidiano Algo que obedece às re gras da geometria formulada pelo matemático grego Euclides que viveu na Alexan dria no século III AC ou seja obedece à geometria que estamos acostumados a tratar desde que entramos na escola e que é regida por todo um conceito de regras rigorosamente lógicas e bem definidas formuladas na obra de Euclides Elementos de Geometria Nessa obra é construído tudo o que é até hoje usado no ensino da geometria partindo de definições simples e do célebre postulado ou axioma de Eu clides por um ponto podese traçar uma única paralela a uma reta Essa afirmação nunca pôde ser provada como teorema embora isso tenha sido tentado por um grande número de matemáticos ilustres no decorrer dos séculos O próprio Carl Friedrich Gauss 1777 1855 voltou sua atenção a esse postulado e tentou pro válo falhando como todos os demais que o tentaram No entanto Gauss com a idade de 15 anos mostrou que trocando um ou mais dos axiomas euclidianos toda uma estrutura completamente diferente das lógicas de geometria surgiria ou seja como axioma a afirmação pode ser posta em dúvida e mesmo eliminada Pela sua substituição surgiram as geometrias nãoeuclidianas Maor 1987 Foi apenas no século XIX que a geometria de Euclides deixou de ser verdade ab soluta e surgiram as primeiras geometrias nãoeuclidianas desenvolvidas por Lo batchevski Nicolai Ivanovitch Lobachevski matemático russo 17931856 e Rie mann Georg Friedrich Bernhard Riemann matemático alemão 18261866 Atual mente existem diversas outras geometrias cada uma com aplicações específicas como por exemplo a geometria Fractal que é muito importante para a modelagem em computação gráfica de formas da natureza como plantas montanhas nuvens e outras como comentaremos no final deste capítulo Falconer 1990 Há ainda dois pontos a serem comentados na definição de sólido citada as pala vras fechado e limitado Vamos ficar com os conceitos intuitivos dessas afirmações embora pelo menos o conceito de fechado seja bem familiar se você tiver ainda lembrança da teoria de conjuntos Um conjunto um corpo ou qualquer objeto é fechado se tiver todos os seus pontos de contorno assim como uma pele que limita o interior do corpo humano do mundo exterior Limitado está associado à idéia de não ter alguma dimensão infinita Infinito no sentido de realmente não ter fim e não apenas de ser muito grande 43 SÓLIDOS REALIZÁVEIS Os modeladores de sólidos devem gerar objetos que mesmo que não sejam reais possam ser construídos ou virem a existir no nosso mundo euclidiano do dia a dia e não simples desenhos Um sólido é considerado realizável ou válido se satisfizer às seguintes propriedades Rigidez o objeto deve possuir forma invariante se for movido de um lugar para outro Mais rigorosamente isso é expresso dizendo que deve ser invari REPRESENTAÇÃO E MODELAGEM 123 ante sobre transformações de corpo rígido São elas a rotação a translação e a mudança dos sistemas de coordenadas usadas para descrever suas coorde nadas Ou seja ter a propriedade de rigidez significa que o sólido deve ser in dependente da sua localização e orientação no espaço Finitude o objeto deve ter dimensões finitas e ser contido em uma porção fi nita do espaço Essa propriedade está relacionada ao conceito de limitado descrito anteriormente na definição de sólido Homogeneidade o objeto deve ter as mesmas propriedades em todos os seus pontos interiores Determinismo dos limites deve ser possível descrever o limite o interior e o exterior do objeto Essa propriedade está relacionada ao conceito de fechado descrito anteriormente na definição de sólido Descritibilidade o objeto deve poder ser descrito através de um número fini to de propriedades físicas químicas biológicas etc Fechamento sobre operações o resultado de operações geométricas realiza das em objetos válidos deve ser ainda um objeto válido Os sólidos podem ser representados por diversas formulações As propriedades desejáveis das formas de representação são Validade o modelo deve representar somente sólidos válidos Unicidade cada sólido válido deve ter apenas um modelo Não ambigüidade cada modelo deve corresponder a apenas um sólido válido Completude o modelo deve ser completo ou seja conter uma variedade de informações sobre as quais as várias funções possam ser executadas Deve ser possível obter informações suficientes a partir do modelo mesmo após even tuais transformações por funções que operam sobre o mesmo Concisão o modelo deve ocupar o menor espaço de memória possível Simplicidade deve ser possível criar o modelo de uma forma simples e direta sem que nenhuma característica especial de hardware seja exigida Eficiência as operações devem ser de fácil aplicação e apresentar respostas rápidas Fechamento sobre operações as operações de descrição e manipulação de vem preservar a validade do modelo 44 FORMAS DE REPRESENTAÇÃO DE OBJETOS Cada método de representação tem suas vantagens e desvantagens Uma solução ideal poderá ser uma forma híbrida isto é uma mistura de alguns desses métodos 124 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 441 Representação Aramada Wire Frame Nesta representação os objetos são descritos por um conjunto de arestas que define as bordas do objeto O método nada mais é do que uma extensão 3D do método de representação de objetos 2D por contornos A principal vantagem dessa técnica é a sua velocidade na exibição dos modelos sendo necessário apenas exibir um conjunto de linhas Porém há sérios inconveni entes nos usos da representação aramada Um dos inconvenientes é o fato de gerar uma representação ambígua com margem para várias interpretações A Figura 42 exemplifica esse problema Em A temse a representação aramada e em B e C duas possíveis interpretações O problema não reside propriamente no fato de que a simples exibição das linhas gera ambigüidades mas na constatação de que o mode lo não fornece informações precisas para que estas sejam eliminadas no exemplo seria necessário remover as arestas da parte traseira ou dianteira do objeto Outra inconveniência está na dificuldade de realizar certas operações como a determina ção de massa ou volume No sentido restrito da modelagem de sólidos essa técnica não tem como garantir que o objeto desenhado seja um sólido válido e geralmente nem é considerada uma técnica de modelagem de sólidos 442 Representação por Faces ou Superfícies Limitantes Esta representação de sólidos usa suas superfícies limites para descrever seus con tornos Essas superfícies são supostas fechadas e orientáveis Orientáveis nesse caso significa que é possível distinguir entre dois lados da superfície de modo que um esteja no interior e o outro no exterior do sólido Essa técnica consiste em defi nir um modelo através de um conjunto de superfícies que delimita a região fechada do espaço que define o interior do modelo As superfícies que limitam a região rece bem o nome de faces Essa técnica é também denominada Boundary Representati on ou Brep consiste na descrição de objetos pelos seus contornos ou seja suas fa ces arestas e vértices Pode ser restrita a formas definidas cúbicas elipsóides esfé ricas aproximadas por superfícies planas ou pode ser descrita por faces represen tadas por retalhos de superfícies curvas A representação de sólidos por faces pode também ser vista como uma simples extensão da modelagem 2D por contornos Como no caso 2D onde há pelo menos duas formas de armazenamento das arestas em 3D as faces podem ser representa REPRESENTAÇÃO E MODELAGEM 125 A B C FIGURA 42 Representação aramada em A e suas possíveis interpretações em B e C das através de uma ou mais listas explícitas de vértices contendo a topologia e a geo metria da face A primeira se encarrega de fazer as relações entre os elementos por exemplo aresta ai é limitada pelos vértices Vl e Vm e faces Fn e Fo A segunda define as posições dos elementos no espaço pela determinação da sua forma geométrica a aresta ai é uma semireta ou um arco de círculo por exemplo e as coordenadas do vértice Vl do modelo são 102030 A representação pelos seus limites é a forma mais encontrada na modelagem de sólidos em geral Muitos sistemas que a usam se limitam no entanto a representa ção de sólidos que tenham contornos formados por superfícies que sejam varieda des de dimensão 2 ou 2manifold Manifold é uma palavra que em inglês arcaico quer dizer algo que tem muitas par tes muitos elementos ou formas Mas matematicamente é um termo que indica um conjunto de objetos que tem determinadas propriedades topológicas Por defini ção um objeto é um manifold de dimensão 2 ou uma variedade de dimensão 2 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um disco plano Uma definição formal simples é encontrada em Mäntylä 1988 Definição Um 2manifold é um espaço topológico onde cada ponto tem uma vi zinhança topologicamente equivalente a um disco do espaço Euclidiano bidi mensional E2 Um objeto é topologicamente equivalente a outro se é possível encontrar uma função biunívoca inversível e contínua que mapeie os pontos do contorno de um no outro Obviamente a melhor forma de entender a noção de equivalência topoló gica é por uma analogia física Supondo que o objeto seja feito de um material extre mamente elástico como as membranas das bolas de encher de aniversário todas as transformações que mantêm as vizinhanças das superfícies são modificações to pologicamente equivalentes Isso é se você mudar as formas da geometria construí da nesse material elástico puxando e esticando até conseguir transformálo em outra forma terá apenas transformações geométricas e não topológicas ou seja to das as transformações que você puder fazer em uma membrana elástica sem ras gála ou colar um ponto a outro podem ser entendidas como equivalentes físicos de transformações contínuas e biunívocas ou inversíveis Essas operações não mu dam as relações de vizinhança entre os pontos da região ou seja não mudam a topo logia da região Assim em um objeto com superfícies que sejam variedades de dimensão 2 2mani fold todos os seus pontos têm uma vizinhança topologicamente equivalente a um disco Uma forma de ter uma visualização disso é imaginar que você tem uma eti queta adesiva na forma de um círculo e deseja colála no objeto analogia da etique ta adesiva Se você puder colála em qualquer ponto da superfície desse objeto en 126 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tão ele pode ser considerado uma variedade de dimensão 2 A Figura 43 mostras al guns objetos simples que não são 2manifolds Outra forma talvez mais simples mas menos intuitiva de definir uma variedade de dimensão 2 seria dizer que são as formas que têm planos tangentes em todos os seus pontosoupelomenossónãotemplanotangenteemumnúmerofinitodepontos 443 Representação por Faces Poligonais Polígonos das palavras gregas polys que significa muitos e gonon que significa ângulo são figuras planas fechadas formadas por muitos segmentos de retas e mui tos ângulos O polígono mais simples é o triângulo Mas é possível construir polígo nos com qualquer número de lados Um polígono é chamado regular se tiver ângu los e portanto lados iguais A técnica de representação por faces poligonais pode ser considerada um caso particular da anterior Chamase tesselation a cobertura de uma área plana como um piso por repeti ções sem fim de uma forma sem deixar vazios como fazer calçadas com pedras por tuguesas Ela oferece grandes possibilidades de criação Glassner 1998 O artista holandes Maurits Cornelis Escher 18981972 soube usála com inteligência na criação de belas obras de arte seção 11 Uma questão interessante é se quisermos cobrir uma área com polígonos regula res quais são os polígonos que nos permitem fazer isso Você já pensou sobre isso Embora existam polígonos regulares com qualquer número de lados só poderemos usar triângulos equiláteros quadrados e hexágonos Figura 44 para fazer tessela tion ou tiling de um plano por formas regulares essas são as únicas formas cujos ângulos internos multiplicados por um número inteiro resulta em um múltiplo de 360 graus Quase todos os softwares de modelagem e realtime rendering jogos e realidade vir tual utilizam a representação por faces triangulares Essa representação é muito utili REPRESENTAÇÃO E MODELAGEM 127 FIGURA 43 Exemplo de 3 formas simples que não são variedades de dimensão 2 se fo rem consideradas como objetos únicos A da esquerda por ter arestas que limitam 4 fa ces de modo que para termos a vizinhança de um ponto precisaríamos de pelo menos duas etiquetas adesivas a do centro por ter uma aresta que limita três faces e a da di reita pelo vértice comum às duas formas dos cubos zadaporqueusamenosmemóriamenortempoderendereseadaptaaqualquertipode contorno Além de ser automaticamente implementada por funções de OpenGL ou Java 3D Uma classe importante de objetos usados na representação de sólidos são os poli edros das palavras gregas polys que significa muitos e hedra que significa lados ou seja objetos compostos por muitos lados Como os objetos da Figura 45 Mais precisamente um poliedro é um sólido que é limitado por um conjunto de polígonos cujos lados chamados arestas do poliedro pertencem a um número par de polígonos Para os poliedros um objeto ser uma variedade de dimensão 2 ou um 2manifold significa simplesmente que o número de polígonos que compartilham uma aresta deve ser 2 Ou em outras palavras se as arestas do objeto poliedral fo rem formadas pelos lados de dois polígonos então esse objeto é uma variedade de dimensão 2 ou um 2manifold Se o poliedro for topologicamente equivalente a uma esfera é classificado como um poliedro simples Assim um poliedro simples é o que pode ser deformável em uma esfera ou seja não é equivalente topologicamente a um toro ou outras figuras com furos E é composto de só um bloco componente ou uma única parte Se um 128 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 44 Tiling de uma superfície por triângulos quadrados e hexágonos D A B E C FIGURA 45 Os 5 tipos possíveis de poliédros regulares objeto tem um único componente o número dos furos que trespassam o objeto é denominado de genus G do objeto Assim um poliedro simples é um objeto de ge nus 0 A Figura 46 ilustra essa definição de genus 4431 Fórmula de Euler A Brep de poliedros simples sem furos satisfaz a fórmula proposta por Leonhard Euler em 1752 V A F 2 onde V representa o número de vértices do objeto A é o número de arestas e F o nú mero de faces Euler era um matemático suíço nasceu em 1707 na Basiléia e morreu em 1783 em São Petersburgo Foi aluno de Bernouilli e a despeito de uma cegueira progressiva produziu mais de 900 trabalhos de matemática mecânica astronomia ótica ciência naval e música Struik 1967 Essa fórmula expressa uma relação in variante entre os componentes topológicos de um sólido simples realizáveis que já era utilizada pelos gregos embora de maneira intuitiva sem uma prova definitiva A fórmula de Euler é facilmente verificada para objetos formados de faces planas É também com facilidade incorporada nas implementações da formulação por con tornos pois sempre é simples o conhecimento do número de componentes das lis tas de vértices arestas e faces Satisfazer a fórmula de Euler é uma condição necessária para um objeto ser um po liedro simples mas não suficiente Os poliedros são regulares se forem constituídos por faces e ângulos iguais Embora existam infinitos polígonos regulares há apenas cinco poliedros regulares ou seja só podem ser construídos poliedros regulares com 4 6 8 12 ou 20 faces o tetraedro o hexaedro cubo o octaedro o dodecaedro e o icosaedro Figura 45 Todos muito importantes em cristalografia pois os átomos dos cristais são arranjados segundo essas formas regulares Por exemplo os átomos do diamante ocupam os vértices de um tetraedro regular o que lhe confere o alto grau de dureza A possibilidade de existência de apenas cinco formas regulares já era conhecida desde a antigüidade grega onde poliedros regulares eram conhecidos como sólidos Platônicos e aos quais se atribuíam propriedades místicas REPRESENTAÇÃO E MODELAGEM 129 Geno 0 Geno 1 Geno 2 FIGURA 46 Exemplos de diversos genus A fórmula de Euler é aplicável mesmo a objetos que não tenham faces planas como o cilindro mostrado na Figura 47 Neste caso o conceito de faces deve ser estendido para considerar toda as superfícies as arestas devem ser entendidas como os limites entre as faces e os vértices definidos pelos limites das arestas Assim um cilindro pode ser considerado formado por dois vértices três arestas e três faces veja a Figura 47 Uma esfera pode ser entendida a partir de um caso limite do cilindro quando as faces planas e as arestas que as limitavam de saparecem e a aresta antes reta vai se deformando até formar uma semicircunfe rência limitada pelos dois vértices de modo que a figura passa a ser formada por uma única face só uma aresta e dois vértices Essa fórmula deve ser usada com cuidado também em outros casos simples Por exemplo como uma esfera é topologicamente equivalente a um elipsóide e esta a uma pirâmide e um cone todos esses objetos devem satisfazêla Para variedades de dimensão 2 que tenham furos a fórmula de Euler é generali zada para fórmula de EulerPoincaré V A F H 2 C G onde os primeiros três elementos têm os mesmos significados anteriores e H é o número de loops internos fechados ou quaisquer buracos nas faces C é o número de partes ou componentes separáveis do objeto e G é o número de furos que tres passam o objeto ou genus 4432 Operadores de Euler As informações topológicas e geométricas devem ser armazenadas na estrutura de dados usada pelas Brep Ao se criar um objeto devese a partir de sua geometria 130 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Vértice 1 Face 3 Vértice 2 Face 2 Face 1 Aresta 1 Aresta 2 Aresta 3 FIGURA 47 A fórmula de Euler é aplicável mesmo a objetos que não tenham faces pla nas como o cilindro assegurar a validade de sua topologia essas informações servem como uma cola que mantém as informações geométricas consistentes Assim operações de mu dança da geometria pelo deslocamento da posição de um vértice alteração do comprimento de uma aresta ou mudança da área de uma face são feitas facilmen te sem alterar a consistência do sólido Essas operações são chamadas de tweaking operations operações de arrasto As operações de alteração topológicas são mais complexas Para assegurar a vali dade topológica do modelo Brep alguns operadores especiais são usados para criar e manipular as entidades topológicas Eles são chamados de operadores de Euler e se aplicam a objetos que satisfazem a fórmula de EulerPoincaré Esses operadores foram introduzidos por Baumgart em 1974 e operam nos obje tos pela adição ou remoção dos elementos topológicos vértices arestas faces de modo a transformálos em outros que também satisfaçam a fórmula de Euler Poincaré A prova de que qualquer Brep válida pode ser construída por um número finito de operadores de Euler foi apresentada por Mäntilä em 1988 4433 Estrutura de Dados Baseada em Vértices A estrutura de dados usada para armazenamento das informações é muito impor tante pois permite mais rapidez e consistência nas operações geométricas e até a re alização de operações topológicas como subdivisão criação ou agrupamento de faces arestas e vértices Uma boa discussão sobre elas é encontrada na obra de Mäntylä já citada Os modelos mais simples são para objetos de faces poligonais e se baseiam na definição da topologia das faces planas e arestas retas por uma lista de vértices e uma lista de vértices que define a geometria dos objetos por suas coorde nadas Esta é a estrutura do denominado modelo baseado em vértices Cuja única exi gência é que a descrição das faces seja consistente os vértices limites das faces des critos sempre no mesmo sentido horário ou antihorário do exterior do objeto para todas as faces Nas tabelas abaixo temse um exemplo desta estrutura de dados para os vértices do cubo mostrado na Figura 48A Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 REPRESENTAÇÃO E MODELAGEM 131 Faces Vértices F1 EFBA F2 GFEH F3 CBFG F4 DABC F5 HEAD F6 DCGH 4434 Estrutura de Dados Baseada em Arestas No caso de uso de faces curvas no modelo Brep é útil uma estrutura de dados que permita a descrição das faces através de uma seqüência de arestas fechadas ou de um loop de arestas Essa descrição é denominada de estrutura de dados baseada em arestas Nela a ordem das arestas nas faces também deve ter sempre a mesma orien tação e as próprias arestas são consideradas orientadas Na estrutura de dados baseada em arestas além das listas de coordenadas de vértices e definição das faces temse uma lista que identifica cada aresta e seus vértices limi tantes A estrutura completa para o cubo da Figura 48A é composta das 3 tabelas que seguem Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 132 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA D H C G A B E F A D H C G A B E F B J I z y x FIGURA 48 Exemplificação as diferentes estruturas de dados Faces Arestas F1 A1 A2 A3 A4 F2 A9 A6 A1 A5 F3 A6 A10 A7 A2 F4 A7 A11 A8 A3 F5 A12 A5 A4 A8 F6 A9 A12 A11 A10 Aresta Vértices Aresta Vértices A1 EF A7 BC A2 FB A8 AD A3 BA A9 HG A4 AE A10 GC A5 EH A11 CD A6 FG A12 DH 4435 Estrutura de Dados WingedEdge e Half WingedEdge Introduzida por Baumgart a estrutura de dados WingedEdge foi proposta para melhorar os algoritmos de remoção de superfícies escondidas e sombreamento Nesta estrutura as informações das faces vizinhas e das próximas arestas são adicio nadas aos dados das arestas Sabendo que cada aresta pertence a duas faces podemos dizer que duas novas arestaspodemdescreverestasfacesTomandocomo exemplo o cubo da Figura 48 A podemos dizer que a aresta composta pelos vértices EF pertence a face EFBA e GFEH Nesse caso as arestas FB e HE podem representar essas duas faces Por con venção o identificador de sentido horário ncw next clockwise e o identificador de sentido antihorário nccw next counterclockwise indicam as arestas que per tencem às faces vizinhas e sua orientação em relação à aresta comum as duas faces neste exemplo EF Devido a esta orientação consistente das faces cada aresta só ocorre uma vez no sentido positivo e uma vez no negativo A estrutura de dados WingedEdge para o cubo da Figura 48 A será a mostrada nas tabelas que seguem Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 REPRESENTAÇÃO E MODELAGEM 133 Aresta Vértices Vértice Inicial Vértice Final ncw nccw A1 EF E F A2 A5 A2 FB F B A3 A6 A3 BA B A A4 A7 A4 AE A E A1 A8 A5 EH E H A9 A4 A6 FG F G A10 A1 A7 BC B C A11 A2 A8 AD A D A12 A3 A9 HG H G A6 A12 A10 GC G C A7 A9 A11 CD C D A8 A10 A12 DH D H A5 A11 Face Primeira Aresta Sinal F1 A1 F2 A9 F3 A6 F4 A7 F5 A12 F6 A9 4436 Utilização de Operações Booleanas com Brep As Brep não têm representação única Muitos sistemas são capazes de modelar ape nas objetos Brep que sejam variedades de dimensão 2 Esses no entanto não são fechados em relação às operações booleanas isso quer dizer que nem sempre Ope rações Booleanas realizadas como variedades de dimensão 2 resultam em objetos que sejam variedades de dimensão 2 Weiler descreveu em 1988 um modelador que levanta essa restrição e pode ser usado para modelar até objetos nonmanifold Um objeto 2manifold veja seção 442 ou que pode ser considerado uma varie dade de dimensão 2 também pode ser descrito como aquele que tem planos tangen tes em todos os seus pontos de superfície ou pelo menos só não tem plano tangente em um número finito de pontos Um objeto 1manifold ou que pode ser considera do uma variedade de dimensão 1 é um objeto unidimensional que tem uma reta tangente em todos os seus pontos ou pelo menos só não tem tangente em um nú mero finito de pontos Um objeto nonmanifold é o que não tem qualquer tangente 134 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Em termos de vizinhança um objeto é um manifold de dimensão 2 ou uma varie dade de dimensão 2 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um disco plano Um objeto unidimensional é um manifold de dimensão 1 ou uma variedade de dimensão 1 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um intervalo na reta 444 Representação por Enumeração da Ocupação Espacial Esta representação decompõe o sólido em pedaços Figura 49 Como se estivés semos fazendo uma tessellation do espaço Um aspecto interessante é se quisermos fazer um tile do espaço por sólidos regulares os poliedros vistos anteriormente dos cinco tipos de sólidos regulares existentes Figura 45 apenas um permite o preenchimento total do espaço por repetições infinitas dele mesmo o cubo Assim na representação por Enumeração da Ocupação Espacial o espaço é subdivido em cubos que são chamados de voxels formando uma grade tridimensional Isso pode ser considerado uma generalização da descrição de uma imagem 2D através de uma matriz de zeros e uns Através das regiões que o objeto ocupa nesse espaço pode mos obter diversas informações de suas propriedades Essa representação tem algumas características interessantes Para determinar se um dado ponto pertence ou não ao sólido basta verificar se o ponto pertence a algum dos voxels É fácil determinar se dois objetos se interferem É fácil a realização de operações booleanas como união diferença e intersec ção entre sólidos REPRESENTAÇÃO E MODELAGEM 135 FIGURA 49 Exemplificando a representação por ocupação espacial o sólido a ser des crito é representado por elementos de volume chamados voxels É fácil a obtenção da propriedade de massa e volume do objeto bastando sa ber o volume de uma das partes e multiplicar pelo número total de divisões ocupadas A desvantagem dessa representação é que na representação de objetos comple xos e muito detalhados é necessária uma grande quantidade de memória disponí vel A modelagem por voxel foi usada em alguns jogos mas foi abandonada devido ao seu alto custo para armazenagem e representação realística render 445 Representação por Decomposição do Espaço em Octrees Essa representação pode ser considerada um caso particular de Subdivisão Espa cial A técnica de representação por octree ou árvore com oito filhos envolve o ob jeto por um cubo que em seguida é dividido em oito cubos menores de igual tama nho octantes Cada um destes é então classificado em Cheio caso o objeto ocupe todo o cubo em classificação Vazio caso o objeto não ocupe nenhuma parte do cubo ou CheioVazio caso o objeto ocupe parte do cubo Quando um octante for classificado em CheioVazio ele é novamente dividido em oito partes iguais e o processo de classificação é refeito para as novas partes Este algorit mo repetese até que todos os objetos pertençam às duas primeiras classes Figura 410 Neste caso os voxels passam a ser cubos paralelepípedos de dimensões variáveis 136 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Representação em octree Numeração das células da octree Imagem que a octree representa Parcial Vazio Cheio 2 3 6 7 5 1 0 FIGURA 410 Representação por Octree Essa representação facilita as operações de união e interseção No caso da união de dois objetos representados por octree se em determinado nível um deles estiver cheio o resultado da operação será um objeto cheio nesse nível não importando qual a forma em que o mesmo nível do outro esteja No caso da interseção de dois objetos representados por octree se em determinado nível um deles estiver vazio o resultado da operação será um objeto vazio nesse nível não importando qual a for ma em que o mesmo nível do outro esteja Operação de rotação de 90 graus em tor no de qualquer um dos três eixos é também facilmente implementada diretamente na estrutura da octree 446 Representação por Decomposição do Espaço em Quadtrees Para o armazenamento de objetos 2D ou 3D com espessura constante usase asQua dtrees Essas estruturas de armazenamento dividem o plano onde está o objeto em quatro partesiguaiseclassificamcadapartedamesmaformasemelhanteasoctreesFi gura 411 Essa representação tem as mesmas vantagens e desvantagens da Enumeração Espacial e das octrees além de permitirem uma representação mais detalhada que as octrees com um gasto menor de memória 447 Quadtrees e Octrees Lineares Emborapareçaàprimeiravistanecessárioousodeponteirosnasestruturasdeárvoreoc tree e quadtree é também possível o uso de uma notação sem ponteiros Uma notação de octree e quadtree sem ponteiros e na forma de um endereço até cada nó do objeto é chamada linear Na notação linear cada nó completamente cheio é representado como uma seqüência de dígitos que representam seus endere ços através da árvore Existem tantos dígitos quanto níveis de subdivisão da árvore Nós cheios que não estão no nível mais baixo podem ser representados por um dígi to adicional indicando o fim do endereço como X por exemplo Cada nó comple tamente cheio é representado como uma seqüência que identifica sua posição de 0 a 3 no caso das quadtrees ou de 0 a 7 para as octrees Cada endereço terá tantos dígi tos quantos forem os níveis usados na representação Nós que não necessitam de ní veis adicionais recebem o caractere especial A representação linear da Figura 411 tem no máximo 4 níveis de divisão de modo que os endereços terão no máximo quatro dígitos Se for considerada a nu meração dos quadrantes como 0 1 2 3 REPRESENTAÇÃO E MODELAGEM 137 O endereço 1 é vazio em todos os níveis de divisão de modo que não haverá nenhum endereço iniciado por 1 O oposto ocorre com o endereço 2 que já está completamente cheio na primeira divisão da figura em quatro quadrantes isso é indicado por 2XXX Já os endereços 0 e 3 têm maior nível de divisão A primeira posição totalmente cheia do endereço 0 é 0002 A figura inteira pode ser repre sentada como 0002 002X 0032 X 02X 0302 032X 0332 2X 3002 302X 3032 32X 3302 332X 3332 A representação linear da árvore octree da Figura 410 seria 0X X 20X X 4X X X X Nessa notação todas as operações realizadas com a forma usual podem também ser implementadas Outra notação linear é a DepthFirst ou DF que é obtida através de uma verifica ção prévia na árvore Noborio et al 1988 Nesta o símbolo representa um nó parcialmente cheio e um incremento de um nível na árvore e o símbolo repre senta o decremento de um nível na árvore Os símbolos 0 e 1 representam nós cheios e vazios ou viceversa Essa notação é útil para um armazenamento con densado da octree ou quadtree Para a Figura 411 essa notação seria 0010010010010010010010010010010010010010010010 138 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 411 Representação por Quadtrees do sólido da Figura 49 448 Quadtrees e Octrees Híbridas Diversos pesquisadores desenvolveram formas de combinar as octrees e as Breps de modo a manter a geometria e a consistência das representações Uma dessas for mas híbridas são as Polygonal Map octrees ou PM octrees onde os nós folhas finais podem ser de cinco tipos além dos dois normais cheio vazio são possíveis três outras classes de parcialmente cheio vértices arestas e faces 449 Representação por Partição Binária do Espaço Binary SpacePartitioning BSP As estruturas de árvores BSP que representam uma partição binária do espaço fo ram inicialmente propostas para solucionar os problemas de superfícies ocultas em aplicações onde o observador móvel deslocase por uma cena estática Um exemplo clássico dessa situação ocorre nos simuladores de vôo e games Watt e Policarpo 2003 As árvores BSP dividem o espaço em pares de subespaços cada um separado do outro por planos de orientação e posição arbitrária Figura 412 Cada nó não ter minal na árvore BSP representa um único plano que divide o espaço ocupado em dois Um nó terminal representa uma região que não será mais subdividida e con tém ponteiros para representações da estrutura de dados dos objetos cruzando aquela região Cada nó interno da árvore BSP é associado a um plano e tem dois fi lhos um para cada lado do plano Assumindo que as normais da Figura 412 apon tam para fora do objeto o filho da esquerda estará dentro do plano enquanto o da direita estará fora do plano Como as octrees e as quadtrees essa representação também pode ter uma forma linear de descrição dos objetos representados REPRESENTAÇÃO E MODELAGEM 139 C L D A H E fora G fora B F fora dentro fora dentro fora dentro fora I J dentro fora dentro A G F B C D E H I J L FIGURA 412 Uma figura 2D e sua representação em árvore binária 4410 Representação Implícita Em muitas situações as expressões matemáticas implícitas dos sólidos modelados podem ser armazenadas e usadas para a modelagem Podendo mesmo depois serem combinadas com outras formas de representação como por exemplo para gerar novos objetos por combinações por união de objetos CSG ou serem usadas em representação pelo contorno Brep Essa forma tira proveito do fato de que muitas formas Euclidianas têm equações perfeitamente conhecidas e simples veja capítulo 3 de superfícies e curvas Assim essa forma tira proveito do fato de que se sólidos forem esferas elipsoides cilindros elípticos e diversos outros usar as equações implícitas dessas formas é uma forma simples de armazenálos operálos e mesmo renderizálos eficientemente Assim para representar um cilindro elíptico podese usar sua equação x²a² y²b² 1 onde a e b são os raios nas direções x e y da base elíptica E para representar um elipsoide temse x x₀²a² y y₀²b² z z₀²c² 1 onde x₀ y₀ z₀ é a posição do centro a b e c são os raios nas direções x y e z do elipsoide Se abcr o sólido tornase uma esfera de raio r A modelagem manual é sem dúvida o método mais fácil barato e antigo que utili za basicamente as medidas de um modelo real e a intuição do modelador A forma manual foi inicialmente usada pela indústria automobilística e aeronáutica para a concepção e teste de novos modelos A seguir descrevemos uma série de técnicas de modelagem manual 451 Instanciamento de Primitivas Em instanciamento de primitivas o sistema de modelagem define um conjunto de formas sólidas primitivas que são relevantes à área de aplicação Esta técnica de mo delagem cria novos objetos através do posicionamento de objetos por transforma ções geométricas mudanças de escala rotação translação etc ou pelo uso de pri mitivas parametrizáveis No primeiro caso Figura 413 uma cadeira pode ser mo delada pela justaposição de paralelepípedos No segundo caso criase um conjunto de peças geralmente complexas e de uso comum para um determinado fim por exemplo engrenagens ou parafusos e a partir dessas primitivas podemos criar uma infinidade de variações desses objetos com apenas alguns comandos para alte ração de seus parâmetros Figura 414 como mudança de alturas e diâmetros REPRESENTAÇÃO E MODELAGEM 141 FIGURA 413 Modelagem pela justaposição de paralelepípedos d h d FIGURA 414 Alteração dos parâmetros de primitivas instanciadas 452 Combinação de Objetos A habilidade de combinar objetos para criar outros é sem dúvida o método mais intuitivo e popular Essa combinação é na sua forma mais simples feita por justaposição ou colagem de formas como mostrado na Figura 413 As operações booleanas de união soma interseção e diferença que são denotados por e são outra forma simples de combinar objetos Entretanto aplicar operações booleanas ordinárias entre duas representações de sólidos pode não gerar uma outra representação válida como sólido como podemos ver nos casos B C e D da Figura 415 onde a interseção ordinária entre dois cubos pode gerar A um sólido forma válida B um plano não válida C uma linha não válida D um ponto não válida ou E um conjunto vazio FIGURA 415 Resultados das operações booleanas em dois cubos 453 Operações Booleanas e Booleanas Regularizadas Aplicar um conjunto de operações booleanas comuns a dois objetos sólidos como já comentado nem sempre gera um objeto sólido Por exemplo a interseção entre dois cubos se eles se penetram mutuamente resulta um sólido se eles compartilham apenas uma face o resultado é um plano se compartilham apenas um dos vértices o resultado é uma reta se compartilham apenas um dos vértices o resultado é um ponto Na Figura 415B os vértices da interseção dos cubos ocupam a mesma posição no espaço resultando em um plano Para solucionar o problema foi criado o conceito de Operações Booleanas Regularizadas cuja notação é e As operações desse tipo são realizadas em um tipo de objeto chamado objeto regularizado utilizando operadores booleanos como união diferença e interseção para formar outros objetos também regularizados FIGURA 416 Regularizando um objeto A Objeto qualquer com pontos interiores em cinza pontos de contorno que fazem parte do objeto em preto e outros pontos em cinza e preto B Interior do objeto retirase todos os pontos de contorno C Regularização do objeto é o fechamento de seu interior Um objeto qualquer regularizado ou não pode ser definido como um conjunto de pontos divididos em pontos do interior e pontos do contorno Pontos do contorno são aqueles cuja distância entre o objeto e o seu complemento é zero enquanto pontos do interior são todos os outros pontos Um objeto regularizado é obtido pelo o fechamento do conjunto de seus pontos interiores Isto é são regularizados os objetos que sempre têm todos os pontos de seu contorno A Figura 416 mostra isso Novamente uma definição formal simples é encontrada em Mäntylä 1988 Definição A regularização de um conjunto de pontos A é denotada por rA e definida como o fechamento do interior de A Dizse que A é um conjunto regular se rAA As operações regularizadas são definidas pelos operadores booleanos usuais como mostrado na tabela a seguir onde A e B são dois objetos quaisquer o subscrito i indica os pontos do interior do conjunto c indica os pontos do contorno igual se refere ao caso dos interiores estarem no mesmo lado dos contornos em análise e difer o caso de estarem em lados opostos Set A B A B A B A B Ac Bi Bc Ai Ac B Bc A Ac Bc igual Ac Bc difer 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry O método de modelagem por CSG usa um esquema de representação de sólidos através de operações booleanas ou combinações de objetos sólidos a partir de operações de conjuntos união interseção e diferença Nesse caso o objeto é armazenado como uma árvore de operadores nós e primitivas simples Alguns nós representam operadores booleanos e outros representam translação rotação escala etc No exemplo da Figura 417 é possível observar a realização de duas operações para a construção de objetos ou superfícies Essa técnica é muito utilizada tanto por designers como por engenheiros para modelagem de objetos ou peças mecânicas FIGURA 417 Construção de objetos por operações booleanas 455 Connect Connect é uma forma de criar novos sólidos a partir de sólidos já existentes combinados por uma conexão A operação de combinação Connect deixa você conectar dois ou mais objetos preenchendo espaços em suas superfícies Para fazer isso você apaga faces em cada objeto para criar um ou mais vazios em suas superfícies posicionandoos de forma que as faces dos vazios fiquem de frente uma para outra A criação por connect não funciona bem com objetos criados por NURBs pois eles se convertem em muitas superfícies separadas em vez de uma superfície única No exemplo da Figura 418 o encosto da cadeira é criado a partir da Figura 413 usando connect 456 Modelagem por Varredura Sweep ou Deslizamento A representação por varredura cria objetos baseados na noção de que uma curva C1 quando deslocada no espaço ao longo de uma trajetória dada por uma outra curva C2 descreve uma superfície que pode ser usada para definir um sólido A cur va C1recebeonomedeContornoouGeratrizeaC2temonomede Caminho ou Dire triz Na forma mais geral é possível ainda variar a orientação relativa entre as curvas durante o processo Watt e Policorpo 1988 4561 Varredura Translacional Extrusão Um objeto O definido por varredura translacional é obtido pela translação por uma distância D de uma superfície C ao longo de um vetor V A Figura 419 exemplifica a criação de um objeto com essa técnica veja também a seção 322 A varredura translacional de um retângulo gera um paralelepípedo de uma circunferência gera um cilindro Podemos ainda aplicar a varredura translacional em faces de um objeto REPRESENTAÇÃO E MODELAGEM 145 FIGURA 418 Encosto da cadeira recriado com o objeto de combinação Connect GERATRIZ EXTRUSÃO FIGURA 419 Modelagem por varredura translacional 3D Apesar de ser considerada uma técnica de modelagem a varredura translacional é considerada por diversos autores e sistemas como um modificador seção 46 4562 Varredura Rotacional Neste tipo de modelagem por varredura a superfície do objeto é descrita por uma supercificie ou curva que gira em torno de um eixo seção 321 Na Figura 420 te mos à esquerda uma curva C e à direita dois objetos gerados pela rotação de C em torno de dois eixos verticais diferentes Diversas são as formas possíveis de criação usando esse método Alguns sistemas de modelagem atribuem o nome Lathe torno mecânico a esse método 457 Modelagem por Seções Transversais Esta técnica permite gerar sólidos por reconstrução através de cortes A idéia básica é interpolar os dados seção 323 das seções transversais do objeto que se deseja modelar As fatias podem ser obtidas pelas leituras de cortes do objeto ou por scan ners em processos como tomografia ultrasom e resonância magnética Duncan e Ayache 2000 Essa técnica de modelagem foi utilizada no maior projeto de mode lagem do corpo humano o projeto Visible Human Para realizar esse projeto o cor po de um homem real foi fatiado e digitalizado A partir das imagens o modelo tri dimensional foi reconstituído e atlas 3D de anatomia foram gerados httpwww splharvardedu Treinish e Silver 1996 458 Modelagem pela Geração de Superfícies O princípio deste processo é mostrado na Figura 421 Iniciamos colocando alguns pontos no espaço A O próximo passo será colocar uma curva ligando os pontos nas direções x e y de um espaço bidimensional B As curvas são então particiona 146 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 420 Modelagem por Varredura Rotacional das em seções de quadriláteros curvilíneos patches C e preenchidas Podemos então alterar a forma do objeto com simples deslocamentos dos pontos A Esse método que não deixa de ser uma forma de Brep é muito utilizado quando desejamos modelar objetos com formas arredondadas e complexas como partes do corpo humano ou animal veículos ou peças Obviamente a relação entre o número de pontos necessários para definir e controlar a superfície gerada depende da for mulação de geração de superfície usada seção 325 46 MODIFICADORES Modificadores como o próprio nome diz modificam a estrutura geométrica do ob jeto Todos os sistemas de modelagem utilizam esses recursos para facilitar e agili zar a modelagem e a animação Sobre eles é importante saber que É possível aplicar um número ilimitado de modificadores para um objeto ou parte de um objeto É possível alterar os parâmetros de modificação para realizar uma animação Os modificadores podem ser retirados e todas as suas mudanças para o objeto desaparecem É possível reposicionar e copiar modificadores para outros objetos usando controles específicos A seqüência em que você faz modificações é importante Cada modificação afeta aquela que vem depois Duas modificações em um mesmo objeto aplica das em ordem inversa geram resultados diferentes Todos os sistemas de modelagem possuem modificadores para auxiliar na tarefa de modelagem e animação Seria quase impossível ou muito custoso tempo é di nheiro realizar determinadas alterações na geometria do objeto sem o uso deles Os modificadores que iremos mencionar podem ser considerados como genéricos para todos os sistemas 3D REPRESENTAÇÃO E MODELAGEM 147 A B C FIGURA 421 Operador de Malha Lattice 461 Bend O modificador Bend deixa você curvar ou fletir a seleção corrente até 360 graus so bre um eixo único e em várias direções Figura 422 produzindo uma curva uni forme na geometria do objeto 462 Lattice O modificador Lattice converte os segmentos ou extremidades de um objeto em uma estruturas de barras É usado para criar geometria estrutural baseada na topo logia ou como um método alternativo para alcançar um efeito de wireframe do con torno Figura 423 148 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 422 O modificador de curvatura Bend FIGURA 423 O modificador Lattice 463 MeshSmooth Um dos modificadores mais interessantes o meshsmooth é baseado nas regras de subdivisão que suavizam a geometria do objeto adicionando faces em cantos e ao longo de extremidades Em alguns sistemas esse modificador é também chamado de NURMs onde recebe recursos adicionais para facilitar a modelagem orgânica ou de objetos com extremidades suaves seção 3213 como a bola da Figura 424 a bola à direita recebeu o modificador Quanto maior for o número de faces maior será o efeito de suavização Esse modificador pode não ser recomendável para mo delagem de objetos que serão usados em sistemas realtime rendering como os jo gos ou aplicações em realidade virtual pois aumentam o número de polígonos uma alternativa neste caso pode ser o uso de Bump Map seção 74 464 Optimize O modificador Optimize deixa você reduzir progressivamente em regiões de pou ca curvatura por exemplo o número de faces e vértices em um objeto buscando re duzir o tempo de render uma vez que o número de polígonos será menor Figura 425 Esse modificador é quase obrigatório para modelagem de objetos que serão usados em sistemas realtime rendering 465 Bevel Este modificador realiza a extrusão de objetos 2D para 3D e aplica um arredonda mento nos cantos das extremidades Pode ser considerado como uma extensão da REPRESENTAÇÃO E MODELAGEM 149 FIGURA 424 Suavização da geometria com o modificador MeshSmooth técnica de extrusão O uso comum desse modificador é para criar texto 3D e logos mas você pode aplicar este modificador em qualquer forma Figura 426 466 Melt O modificador Melt deixa você aplicar um efeito de derretimento realista a todos os tipos de objetos inclusive objetos NURBS Os efeitos de derretimento podem ser feitos de várias formas que por serem transparentes aos usuários são referênciadas como seguir a forma de gelo plástico vidro ou geléia Figura 427 467 Skew O modificador Skew em objetos 3D tem o mesmo efeito do operador skew 2D se ção 255 Deixa você produzir um deslocamento uniforme em qualquer parte da geometria do objeto Você pode controlar a quantidade e direção da distorção em quaisquer dos três eixos Figura 428 150 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Antes Depois Vértices 530 369 Faces 1024 670 FIGURA 425 Resultado da aplicação do modificador Optimize Extrude Bevel FIGURA 426 Comparação entre os modificadores Extrude e Bevel 468 Squeeze e Stretch O modificador Squeeze deixa você aplicar um efeito de apertar ou espremer de modo que os vértices mais próximos do ponto de pivô do objeto são reposicionados para dentro O Stretch produz um estiramento no objeto simula o tradicional efeito de espremeeestica em animação Figura 429 469 Taper O modificador Taper produz um contorno mais ou menos afilado ajustando as es calas dos pontos terminais da geometria do objeto Figura 430 REPRESENTAÇÃO E MODELAGEM 151 FIGURA 428 O modificador de cisalhamento Skew Original Squeeze Strech FIGURA 429 O efeito de espremeeestica com os modificadores Squeeze e Stretch FIGURA 427 Operador Melt aplicado em um objeto 4610 Twist O modificador Twist produz uma torção ou retorcido na geometria do objeto Você pode controlar o ângulo da torção em quaisquer das três direções Você também pode limitar a torção para uma seção da geometria Figura 431 4611 Displace Essemodificadoratuacomoumcampodeforçaparaempurrarealterarageometriado objetoPodemosutilizarumbitmapparamoldarumasuperfícieFigura432ouajustar osparâmetrosdomodificadorparaproduzirimagensparecidascompegadasnossolos 152 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 431 Torção na geometria do objeto com o modificador Twist FIGURA 432 O modificador Displace desloca uma superfície utilizando um bitmap FIGURA 430 Redução e aumento de espessura com o modificador Taper 4612 Space Warps Space Warps são objetos não renderizáveis que afetam a aparência de outros obje tos Eles criam campos de força que deformam outros objetos criando o efeito de empenamento ondulações explosões vento colisões e assim por diante Quando você cria um objeto Space Warps nos sistemas de modelagem visores mostram uma representação em wireframe para que o usuário possa ter controle Os sistemas de modelagem disponibilizam uma grande variedade desses objetos que são muito úteis na animação Os Space Warps podem trabalhar em conjunto com os sistemas de partículas e servir para propósitos especiais em simulações dinâmicas 47 INTERFACES PARA MODELAGEM GEOMÉTRICA As interfaces dos sistemas de modelagem são independentes da representação in terna utilizada Você pode alternar entre as diferentes formas de representação bus cando o resultado pretendido A interface pode fornecer diversas maneiras de defi nir o objeto dentro da mesma representação Por exemplo você pode definir um cubo arrastando o mouse para definir a largura o comprimento e a altura ou por te clado informando a largura e o comprimento e em seguida aplicar uma extrusão para definir a altura A primeira maneira pode ser mais rápida enquanto a segunda pode ser mais precisa ou fácil de posicionar na cena Um dos problemas está na limitação tecnológica que nos fará usuários por ainda muito tempo de telas de computador que mesmo colocadas lado a lado para possibi litarumavisãoestéreoseráaprojeçãodeduasimagensbidimensionaisMuitossiste mas combatem alguns desses problemas fornecendo várias janelas de exibição que permitemaousuárioveroobjetosimultaneamentedeváriasposiçõeseperspectivas Um bom sistema de modelagem deve possuir ferramentas básicas de auxílio a ge ração de objetos Essas ferramentas são geralmente chamadas de Helpers e fornecem informaçõesrelevantesparaumamodelagemprecisaouauxiliamnacriaçãoeficiente de objetos Um bom sistema deve conter no mínimo as seguintes ferramentas 471 Tape Fita de Medida A fita provê na tela uma régua auxiliar no sistema métrico desejado metro polega da etc para determinar e configurar distâncias 472 Protractor Transferidor O transferidor permite medir o ângulo entre dois objetos em uma cena 473 Compass Bússola AbússolaéumobjetoqueindicaoNorteSulLesteeOestedacenaUmabússolaéparte de um sistema de luz solar Em um sistema de luz solar a orientação da bússola indica a orientação da cena relativa ao caminho do sol sendo importante para o seu realismo REPRESENTAÇÃO E MODELAGEM 153 474 ArrayArranjo O array cria um arranjo vetor ou matriz de objetos com uma duas ou três dimen sões a partir de um objeto selecionado Nesse caso o termo dimensão se refere à or denação dos objetos Por exemplo uma linha de cinco objetos é um vetor de di mensão um embora saibamos que ocupará um espaço tridimensional na cena Um vetor de objetos que tem cinco linhas por três colunas é um array bidimensional e um vetor de objetos que tem cinco linhas por três colunas por dois níveis é um ar ray tridimensional O array é uma poderosa ferramenta que auxilia na criação e po sição de objetos complexos Dentre os exemplos de seu uso podemos citar a criação de escadas pétalas de flores ou hélices Figura 433 48 MODELAGEM GEOMÉTRICA COM OPENGL 481 Desenhando Pontos Os pontos podem ter tamanhos específicos baseados no número de pixels tendo como padrão o valor 1 void glPointSizeGlfloat tamanho Sendo definido pelas suas coordenadas glBeginGLPOINTS glVertex3d00 00 00 glVertex3d1000 00 00 glVertex3d1000 1000 00 glVertex3d00 1000 00 glVertex3d500 500 1000 glEnd 154 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 1D 2D 3D FIGURA 433 Arrays de várias dimensões 482 Desenhando uma Linha As linhas podem ser apresentadas como setas tracejadas pontos e outras varia ções destas GLLINES 483 Desenhando um Polígono Os polígonos podem ser representados por pontos segmentos de retas sólidos texturas entre outras GLPOLYGON 484 Primitivas Além das anteriores as seguintes primitivas estão disponíveis em OpenGL GLLINES exibe uma linha a cada dois comandos glVertex GLLINESTRIP exibe uma seqüência de linhas conectando os pontos defi nidos por glVertex GLLINELOOP exibe uma seqüência de linhas conectando os pontos defi nidos por glVertex e ao final liga o primeiro ao último ponto GLPOLYGON exibe um polígono convexo preenchido definido por uma seqüência de chamadas a glVertex GLTRIANGLES exibe um triângulo preenchido a cada três pontos defini dos por glVertex GLTRIANGLESTRIP exibe uma seqüência de triângulos baseados no trio de vértices v0 v1 v2 depois v2 v1 v3 então v2 v3 v4 e assim por diante GLTRIANGLEFAN exibe uma seqüência de triângulos conectados basea dos no trio de vértices v0 v1 v2 depois v0 v2 v3 então v0 v3 v4 e assim por diante GLQUADS exibe um quadrado preenchido conectando cada quatro pontos definidos por glVertex GLQUADSTRIP exibe uma seqüência de quadriláteros conectados a cada quatro vértices primeiro v0 v1 v3 v2 depois v2 v3 v5 v4 então v4 v5 v7 v6 e assim por diante 485 Objetos Sólidos A biblioteca OpenGL possui uma série de sólidos que podem ser criados diretamen te através dos seguintes comandos REPRESENTAÇÃO E MODELAGEM 155 glutSolidTeapotGLdouble size Desenha uma Chaleira da Figura 429 glutSolidCubeGLdouble size Desenha um Cubo glutSolidSphereGLdouble radius GLint slices GLint stacks Desenha uma Esfera glutSolidConeGLdouble radius GLdouble height GLint slices GLint stacks glutSolidTorusGLdouble innerRadius GLdouble outerRadius GLint nsides GLint rings glutSolidIcosahedronvoid glutSolidOctahedronvoid glutSolidTetrahedronvoid glutSolidDodecahedronGLdouble radius Os parâmetros slices e stacks que aparecem no protótipo de algumas funções representam os números de subdivisões em torno do eixo z como se fossem linhas longitudinaiseonúmerodesubdivisõesaolongodoeixozcomosefossemlinhasde latitude Os parâmetros rings e nsides correspondem respectivamente ao número de seções que serão usadas para formar o torus e ao número de subdivisões para cada seção O parâmetro size indica um diâmetro aproximado 486 Wireframe Os objetos das primitivas podem ser desenhados também em wireframe substituin do a palavra Solid por Wire no nome dos comandos por exemplo glutWireTeapotGLdouble size Desenha uma Chaleira em wireframe 49 MODELAGEM PELO NÚMERO DE OURO A modelagem pelo número de ouro nos remete à Grécia antiga mais precisamente ao século V aC Nas ruas dessa avançada civilização eram discutidos conceitos de filosofia matemática e ciência Os gregos adoravam o teatro as esculturas a arqui tetura e qualquer forma de manifestação da arte Um exemplo dessa adoração foi a construção no centro de Athenas do Partenon mais conhecido como Templo das Virgens Figura 434 Na época o líder do partido democrático Péricles contratou o maior escultor da Grécia para desenvolver e acompanhar a construção em louvor à deusa da cidade Atena Partenos O escultor utilizou em sua fachada um modelo de medida onde o lado maior dividido pelo lado menor é igual à divisão entre o lado menor e a diferença entre o lado maior e o menor Figura 434 Os gregos conside ravam essa proporção a forma ideal de beleza e harmonia e deram a ela o nome de proporção áurea ou proporção de ouro No século XV o movimento renascentista buscou retomar os valores estéticos da Grécia antiga Na época Leonardo Da Vinci 15421519 apresentou o famoso O Homem Vitruviano Figura 435 onde podemos ver a proporção de ouro relacio nada com a estrutura ideal do corpo humano Segundo ele o umbigo deve dividir o corpo segundo a seção áurea ou seja o resultado da divisão da altura total pela altu 156 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA ra do umbigo deve ser o número de ouro O estudo de Da Vinci recebeu este nome por ser baseado no tratado De architecture do arquiteto romando do século I aC Marcus Vitruvius Pollio o único tratado de arquitetura que restou da antiguidade que considerava em 10 livros de métodos de construção e decoração a planificação de cidades e suprimento de água nas proporções do que chamava de segmento áu reo que seria o retângulo perfeito Ainda hoje artistas de todo o mundo utilizam essa proporção em suas obras na maioria das vezes intuitivamente porém podemos perceber o número de ouro em uma infinidade de obras de arte e monumentos arquitetônicos No Brasil pintores REPRESENTAÇÃO E MODELAGEM 157 FIGURA 435 As proporções do corpo humano segundo o cânon Vitruviano desenho de Da Vinci Academina Veneza A A B A B AB B B FIGURA 434 Partenon na acrópole de Athenas e a proporção áurea como Portinari fizeram grande uso dessa proporção intencionalmente Na obra O Café Portinari utilizou a proporção para atrair a atenção do observador para um ponto desejado da cena A proporção áurea ou número de ouro é ensinada nas escolas de arte porém é difícil explicar o que a faz tão atraente e harmoniosa Na verdade a proporção trouxe uma forma do artista controlar e garantir a harmonia e perfeição de sua criação De forma surpreendente esse número aparece no arranjo de diversas formas de plantas Maor 1988 Curiosos em como obter a proporção áurea Ela é dada pela relação mostrada na Figura 434 Se você substituir A por 1 e B por x terá a equação 1x x1 x que também pode ser escrita como x² x 1 0 e cuja raiz positiva é x 5 12 Assim a razão áurea ou número de ouro é 1x Este número como 2 ou π é um número irracional ou seja um número cuja expansão decimal é infinita e nunca se repete Como 2 Ø é um irracional algébrico originário de um polinômio com coeficientes inteiros Outros irracionais como π e são chamados de transcedentais O número de ouro foi batizado com a letra grega Ø e vale aproximadamente 161803 491 A Sequência de Fibonacci Há muito tempo que as manifestações geométricas na natureza vêm intrigando muitas pessoas Na regularidade do crescimento das árvores nas proporções do corpo humano e dos animais na frequência do nascimento de animais na forma de conchas na regularidade do girassol na constituição hexagonal dos favos de abelhas Leonardo Fibonacci ou Leonardo de Pisa 11801250 entre muitos outros feitos escreveu o Liber Abaci Livro do Ábaco onde apresentava a forma indoarábica de números que permitia maior rapidez nas operações feitas através da numeração decimal quando comparadas às operações com números romanos utilizados na época pela sociedade europeia Fibonacci filho de negociantes aprendeu matemática no norte da África e assimilou em suas viagens os conhecimentos árabes escreveu Impossível algo subsistir se não for devidamente proporcional à sua necessidade Fibonacci enunciou o seguinte problema Se eu tiver um casal de coelhos gera um novo casal ao fim de dois meses e depois um novo casal todos os meses os quais geram novos casais nas mesmas condições quantos casais de coelhos terei ao fim de n meses A resposta é dada pela série 1 2 3 5 8 13 21 34 55 89 144 233 Figura 436 designada geralmente como Números de Fibonacci ou Sequência de Fibonacci Essa série tem a particularidade de à medida que se avança no número de casais a razão entre um valor e seu antecessor se aproxima do número de ouro Ex 2113 16153 na natureza As descobertas permitem hoje que biólogos utilizem os padrões para organizar e reconhecer espécies Dentre as descobertas relacionadas com o número de ouro estão exemplos como a da concha do Nautilus Figura 437 À medida que o molusco vai crescendo ele vai construindo uma nova câmara para morar e cada nova câmara é maior que a anterior na proporção do número de ouro Podemos citar diversos outros exemplos como a disposição das sementes de um girassol das escamas de peixe da distribuição de galhos em árvores ou das cores na natureza O número de ouro pode aparecer ainda nas poesias em pirâmides no Egi to no artesanato indígena ou onde mais você desejar Tratase de uma poderosa chave para modelagem de objetos naturais e como se disse anteriormente uma for ma segura de o artista controlar e garantir a harmonia e a perfeição de sua criação 410 MODELAGEM FRACTAL No decurso da história humana a nossa crescente percepção do mundo natural foi atribuída a um universo com um número cada vez maior de dimensões seção 121 Há dois mil anos os Gregos mostraram que o universo tinha três dimensões com REPRESENTAÇÃO E MODELAGEM 159 FIGURA 437 À medida que o Nautilus cresce uma nova câmara é construída em rela ção a anterior na proporção do número de ouro 3º Mês 2º Mês 4º Mês 5º Mês FIGURA 436 A solução do problema de Fibonacci base nos sentidos e nos princípios básicos da geometria Euclidiana formalizada por Euclides a partir de axiomas onde todos os objetos são dotados de comprimento lar gura e altura Na geometria Euclidiana uma linha como um fio de lã tem principalmente comprimento portanto é um objeto unidimensional Um plano como a folha de papel que possui dois comprimentos é um objeto bidimensional e um sólido como um cubo ou livro tem comprimento largura e altura sendo definido como tridimensional Figura 438 Desse modo os matemáticos do tempo de Euclides concordavam com a noção do senso comum de que o universo possui três dimensões A geometria Cartesiana de René Descartes auxiliou a Euclidiana nessa definição passando a definir a dimensio nalidadedeumobjetopelonúmerodecoordenadasnecessáriasparaasuadescrição No ano de 1854 um jovem matemático alemão Bernhard Riemann 18261866 aluno de Gauss anunciou uma nova extensão da geometria de Euclides e da Geo metria Analítica de Descartes Ele defendia que as retas paralelas se encontram em um ponto o pólo Ao criar essa nova definição de dimensão Riemann conseguiu descrever melhor as coisas relacionadas à latitude e à longitude que ocorrem nas coordenadas geográficas de nosso planeta Struik 1967 Benoit Mandelbrot 1924 em 1975 consolidou e interpretou os trabalhos dispersos de muitos matemáticos que o antecederam no estudo das dimensões nãointeiras Mandelbrot mostra que é possível definir uma dimensão fracionária tal como dimensão 13 ou dimensão 34 por exemplo Mandelbrot também afirmou que as dimensões fracionárias típicas da paisagem terrestre diferem das de Marte Esse estudo foi feito com base em fotos do planeta vermelho obtidas através da NASA Daqui concluise que a Terra ronda a dimensão 160 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 2D 1D 3D FIGURA 438 Objetos de 1 2 ou 3 dimensões 21 enquanto Marte atinge cerca de 24 o que significa que a paisagem de Marte é muito mais dentada do que a da Terra Voss 1988 As indústrias cinematográficas utilizaram essas informações e o auxílio dos com putadores para conseguirem criar paisagens com qualquer dimensão fracionária particular o que facilitou a criação de paisagens com aspectos estranhos tão utili zadas em filmes de ficção científica como em Star Treck Mondelbrot 1988 Os trabalhos de Mandelbrot tiveram como ponto de partida a definição de di mensão apresentada em 1919 por Felix Hausdorff cerca de sessenta anos após ter sido apresentada a definição de Riemann Falconar 1990 A geometria dos fractais palavra derivada do Latim fractus ou do adjetivo fran gere que significa quebrar apresenta estruturas geométricas de grande complexi dade e beleza ligadas às formas da natureza ao desenvolvimento da vida à própria compreensão do universo ou às simples expressões matemáticas São imagens de obje tosabstratosquepossuemocaráterdeonipresençaporteremascaracterísticasdotodo infinitamente multiplicadas dentro de cada parte Peitgen e Richter 1986 Os fractais podem apresentar uma infinidade de formas diferentes contudo existem duas características muito freqüentes nesta geometria autosemelhança e complexidade em qualquer escala de observação Mondelbrot 1977 Essa geometria nada convencional tem raízes remontando ao século XIX e al gumas indicações nesse sentido vêm de muito antes na Índia China e Grécia quando Pitágoras fracionou aritmeticamente uma corda para produzir as notas e suas variações musicais Capítulo 1 Porém somente há poucos anos essa geometria vem se consolidando com o desenvolvimento dos computadores e o auxílio de novas teorias nas áreas da física biologia astronomia matemática e outras ciências Os fractais constituíram certamente uma surpresa e até mesmo um abalo para muitos De repente viramse confrontados com técnicas e imagens que se por um lado eram altamente sugestivas por outro não conseguiam ser justificadas nem en globadas em situações anteriormente conhecidas Assim ao mesmo tempo em que uns com a ajuda do computador tentavam encontrar sentido nos resultados que obtinham outros esforçavamse por produzir definições e demonstrações em ter mos matemáticos tradicionais Distante do rigor e do formalismo matemático é possível definir Fractais como nos ensinam alguns estudiosos da área Objetos que apresentam autosemelhança e complexidade infinita ou seja têm sempre cópias aproximadas de si mesmo em seu interior Figura 439 A propriedade de autosimilaridade é o ponto central da geometria fractal e está associada ao conceito de dimensão Na Figura 439 a curva de flocos de neve de Kock é construida a partir de uma reta dividida em 3 partes iguais cuja parte cen tra é substituido por 2 outros pedaços de mesmo comprimento em um procedi mento repetido infinitamente REPRESENTAÇÃO E MODELAGEM 161 A Geometria Fractal pode ser utilizada para descrever diversos fenômenos da na tureza onde não podem ser utilizadas as geometrias tradicionais Nuvens não são esferas montanhas não são cones continentes não são círculos um latido não é contínuo e nem o raio viaja em linha reta Mandelbrot 1977 Outros exemplos são gelo neve cinzas flores plantas tecidos ou frutas Pruxinkiwicz 1990 A Fi gura 440 ilustra o uso de fractais na concepção de água e nuvens O processo de gerar montanhas fractais é semelhante ao processo de geração da curva de Kock Figura 439 com um fator adicional randômico que realiza as irre gularidades da superfície Nesse caso as superfícies com uma dimensão D maior aparentam ser mais rugosas Saupe 1988 162 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 440 Água e nuvens criadas com fractais FIGURA 439 Os fractais têm sempre cópias aproximadas de si O fenômeno de autosimilaridade pode ser observado na natureza onde pedras parecem com cascalhos galhos com troncos e assim por diante 4101 O Conjunto de Mandelbrot Considerados como um dos objetos mais complexos da matemática o conjunto de Mandelbrot possui a particularidade de combinar os aspectos de autosimilaridade em qualquer escala do resultado do processo iterativo Figura 441 Esse conjunto é gerado pelo estudo das iterações xk1 x² k c onde x e c são números complexos Um número complexo é um número que tem duas partes uma real e outra imaginária ou seja tem a forma x xr xi i onde i 1 são exemplos de números complexos c 2 3i ou d 4 1 Através da variação dos números complexos c podemos gerar os diversos conjuntos de Julia Assim os conjuntos de Julia dependem do valor de c Peigen 1988 FIGURA 441 Os conjuntos de Mandelbrot Podemos encontrar a aplicação dos fratais na música no reconhecimento de padrões na medicina na engenharia na meteorologia na geociência e muito mais A aplicação dos fratais é cada vez maior principalmente pela sua associação com os sistemas dinâmicos e caóticos constituindo uma ferramenta científica de enorme alcance que ainda está em seus primeiros passos No entanto muito contribuiu para a sua divulgação suas imagens que no mínimo podem ser consideradas intrigantes e bizarras Peitgen Richter 1986 411 RECONSTRUÇÃO TRIDIMENSIONAL A representação do espaço tridimensional 3D no plano bidimensional 2D introduziu realismo nas pinturas e desenhos e foi uma das mais importantes desco bertas no mundo das artes a perspectiva seção 274 Quando a fotografia foi in ventada a possibilidade de registro em 2D de cenas 3D foi popularizada passando a ser feita por máquinas e não mais por dons artísticos ou estudos de técnicas de de senho A imagem de uma máquina fotográfica assim como a projeção perspectiva pos sibilita o registro de uma cena 3D em 2D com o realismo da visão humana Uma imagem fotográfica e uma projeção perspectiva contêm informações análogas O que se espera da imagem fotográfica de objetos é que ela corresponde à imagem dos objetos vista por olhos humanos Fotografias e vídeo constituem meios tradicionais e amplamente difundidos de registrar uma cena de forma instantânea No entanto no processo de projeção do mundo 3D em imagens 2D parte da informação contida na cena como a informa ção de profundidade é perdida Uma única imagem representando as mudanças de intensidade de luz e geometria local de uma cena não contém por si só informação suficiente para reconstrução da cena Assim uma questão importante é a recupera ção a partir de imagens de intensidade bidimensionais das propriedades tridimen sionais geométricas e físicas das superfícies representadas nessas imagens Pen tland 1990 A perda de informação que ocorre ao se projetar em um plano a cena tridimen sional geralmente faz com que a solução do problema inverso não seja única ambi güidade ou seja inexistente devido à oclusão de informações Como conseqüên cia precisa contar com suposições restrições sobre o mundo físico para eliminar a ambigüidade na sua reconstrução Essas suposições de acordo com o número de vistas usadas na análise da cena podem se basear em técnicas monoculares bino culares ou de múltiplas vistas Noborio et al 1988 Visão monocular é o termo usado para técnicas de visão computacional que utili zam apenas um ponto de vista Os métodos de aquisição de forma dependem da in formação disponível Uma só imagem não é suficiente para fornecer informação completa de profundidade mas distâncias a objetos ou profundidades podem ser percebidas monoscopicamente com base no tamanho relativo de objetos ou de suas texturas seção 15 Pessoas com visão normal têm visão binocular e é a partir desta visão estereoscó pica que o ser humano inconscientemente avalia profundidades ou julga distâncias Hadgs 1992 A reconstrução tridimensional através de técnicas de computação visual e computação gráfica pode recriar espaços virtusos VE a partir de imagens pla nas e ser um ponto de partida para um número enorme de aplicações reconstru ção de edificações planejamento de estratégias militares cenários para jogos tri dimensionais sistemas interativos de realidade virtual em tempo real sistemas para visão de robôs transformação de desenhos 2D ou filmes para 3D e muitas outras ainda por se criar Stytz et al 1996 Atualmente os maiores usuários das 164 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA técnicas de reconstrução as utilizam para processamento de imagens médicas microscopia geologia e indústria aeroespacial Rhods 1997 Para reconstrução do objeto é importante conhecer as coordenadas tridimensio nais 3D de seus pontos ou pelo menos dos pontos mais importantes do objeto e recuperar dados perdidos no processo de projeçãofotografia que transforma os dados 3D em 2D Diferentes técnicas empregadas nos sistemas de visão computa cional tentam obter esta terceira coordenada Os sistemas de shape from stereo usam duas ou mais imagens de um ponto de vis ta com uma pequena diferença de iluminação para calcular a profundidade Pode mos ainda utilizar duas ou mais imagens tiradas de uma câmera em movimento Giachetti e Torre 1996 A teoria geométrica da visão estéreo que utiliza a obtenção de coordenadas tridi mensionais de objetos a partir de pares de imagens depende da capacidade de se re solver o problema da correspondência ou seja determinar os elementos do par de imagens que são projeções ao mesmo elemento no mundo 3D Não existe solução ge ral para o problema da correspondência devido à existência de candidatos ambíguos para combinação ou mesmo da inexistência de correspondentes devido à oclusão Conseqüentemente todo método estéreo usa várias suposições sobre a geometria da imagem eou os objetos na cena para reduzir o número de ambigüidades Na busca de soluções para dificuldades encontradas nos métodos estéreos tam bém foram desenvolvidas técnicas de múltiplas vistas O multiplebaseline stereo foi desenvolvido por Okutomi e Kanade em 1991 e é base de diversas variações O estéreo fotométrico baseado em disparidades agrega características dos processos de estéreo fotométrico e de estereoscopia Nos sistemas shape from motion um objeto em movimento pode produzir as dis paridades de iluminação em uma seqüência de imagens capturadas por uma câmera estática Nos sistemas shape from texture propostos inicialmente por Kender em 1979 as variações no tamanho na forma e na densidade das texturas da imagem 2D forne cem pistas para a recuperação das informações 3D Os sistemas shape from focus exploram as propriedades das câmeras onde obje tos em uma determinada distância aparecem focados e outros em distâncias mai ores ficam mais embaçados quanto maior sua distância do ponto focal Nos sistemas shape from shading introduzidos em 1977 por Horn a idéia básica se concentra na variação da intensidade no plano da imagem para calcular a profun didade considerando o modelo de iluminação de Phong e Gouraud As técnicas de shape from shading têm sido alvo de muitos estudos mas sua inte gração com outras técnicas de reconstrução 3D como motion textura e estéreo por exemplo é recente A importância da fusão de técnicas está na possibilidade de explorar os pontos fortes de cada uma das técnicas envolvidas Sistemas que utili zam a fusão de técnicas de reconstrução de superfícies ainda não estão disponíveis REPRESENTAÇÃO E MODELAGEM 165 comercialmente no mercado dado que essas tentativas são recentes e portanto com poucos resultados práticos disponíveis A habilidade de representar um objeto no espaço tridimensional é fundamental para visualizar compreender e analisar detalhes do objeto Wanger et al 1992 Gi rar transladar e projetar o objeto é fundamental para diversas aplicações da simples compressão de sua forma a mais sofisticada aplicação de realidade virtual A técnica Shape from Boxes é o resultado de um estudo realizado junto a Secreta ria de Segurança Pública do Estado do Rio de JaneiroSSPRJ Para a SSPRJ a inclu são de um sistema de treinamento em realidade virtual deveria acompanhar as ne cessidades imediatistas de planejamento das operações do Comando de Operações Especiais o COPE Essa metodologia foi então publicada no Simpósio Brasileiro de Computação Gráfica SIBGRAPHI 2002 onde apresentamos um método para retirar as informa ções 3D do objeto a partir de uma foto Figura 442 e pontos marcados na imagem como mostram as linhas na Figura 443 A Figura 444 mostra a reconstituição vista de um outro ângulo A reconstituição permitirá visualizar espaços entre as constru ções determinar campos e alcances visuais distâncias medidas inclusão de ícones e objetos para planejamento estratégico O sistema trabalha em conjunto com a engrenagem Fly3D permitindo simulações de colisão passeios virtuais treinamento em redes perseguições com armas de fogo e todososoutrosrecursosdesimulaçãofísicadaengrenagemOmodelo3Dpodeserex portadoparaoMaxondeajustesfinosdeiluminaçãoemodelagempodemserfeitos 166 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 442 Imagem aérea original O sistema permite ainda a escolha da textura do solo iluminação virtual inclu são de qualquer objeto 3DS na cena empilhamento de objetos reconstruídos e vôos virtuais pelas construções através de um observador móvel 412 SISTEMAS DE PARTÍCULAS A história dos sistemas de partículas iniciou em 1983 quando William T Reeves publicou seu paper Particle Systems A Technique for Modeling a Class of Fuzzy Objects Nesse paper Reeves explica como chegou ao paradigma de um sistema de partícula para um projeto de efeitos especiais do filme Star Trek II A Ira de Khan Ele monstrou que aplicando algumas das leis fundamentais da mecânica de New ton para uma coleção virtual de partículas no computador era possível criar ele mentos Até então a computação gráfica consistia principalmente de formas cria REPRESENTAÇÃO E MODELAGEM 167 FIGURA 444 Reconstituição vista de um outro ângulo FIGURA 443 Determinação de pontos estratégicos para a reconstrução das por polígonos e vértices fixos A metodologia de Reeves permitiu a criação de objetos que não tinham extremidades discretas Esse novo paradigma permitiu à criação de efeitos como neve chuva fogo fogos de artifício e nuvens Loke et al 1992 Antes de Reeves os sistemas de partículas foram estudados pela mecânica das colisões Na segunda metade do século XVII o estudo das colisões sofreu um gran de desenvolvimento Nomes como os de Robert Hooke Christian Huyghens e Chris topher Wren contribuíram para esse desenvolvimento levando a cabo trabalhos de pesquisas baseados em experimentações cujo objetivo era interpretar correta mente o mecanismo das colisões O segundo avanço importante em sistemas de partículas veio mais uma vez de Reeves em um paper intitulado Approximate and Probabilistic Algorithms for Sha ding and Rendering Structured Particle Systems Reeves melhorou o algoritmo do sis tema de partícula para criar objetos mais complexos como árvores gramas e arbus tos Para modelar esses objetos o comportamento dos sistemas de partículas preci sava ser expandido A maior mudança foi a implementação de um processo de mo delagem estocástico Os trabalhos posteriores em sistemas de partículas consistem em restringir ou modificar o comportamento geral das partículas de Reeves Por exemplo TengSee Loke usou os sistemas de partículas junto com as leis de Newton para produzir fogos de artifício Craig Reynolds usou os sistemas de partículas para modelar o comportamento de bandos de pássaros Richard Szeliski achou um ca minho para criar sistemas de partícula que têm uma superfície de orientação A partir dessa técnica foi possível criar objetos que eram originados dos sistemas de partículas Alex Pang usou os sistemas para pintar dissecar e modificar objetos tridimensionais Os sistemas de partículas são poderosas ferramentas usadas para modelar água nuvens fogo fumaça explosões fluidos em geral neve árvores etc Figura 445 Na animação contribuem na modelagem de multidões exércitos manadas etc A Figura 446 exemplifica o uso dos sistemas de partículas para criar e controlar o comportamento de cardumes Na Figura 447 foram utilizados dois emissores um para dar o efeito explosão fumaça e fogo e o outro para simular o lançamento dos destroços do tanque 4121 Distribuição de Partículas no Sistema Nos sistemas de partículas distinguise duas formas diferentes de distribuição de um ponto de vista macroscópico contínuos e discretos A primeira caracterizase por apresentar uma distribuição contínua de porções de matéria que é representada por um volume elementar dv e uma massa elementar dm Essa distribuição caracte rizase pela sua massa específica em cada ponto r dmdv O desgaste de um lápis e uma borracha são dois exemplos de uma distribuição contínua de partículas A dis 168 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tribuição descontínua é o caso por exemplo de duas bolas de bilhar que se chocam sobre a mesa Essa distribuição é caracterizada em cada instante pelas massas e po sições das partículas que as constituem É nela que vamos centrar a nossa atenção Figura 448 Esta caracterização é muito semelhante à forma como se considera o modelo físico dos corpos em estudo Modelos contínuos ou discretos aqui como na física são semelhantes ao lápis e à borracha Eles poderiam ser considerados mode los discretos se o objetivo da análise for por exemplo representar não o seu desgas te com o uso e sim modelar a trajetória de colisão de ambos ao serem jogados sobre uma mesa REPRESENTAÇÃO E MODELAGEM 169 FIGURA 445 Sistema de Partículas simulando água em colisão com as pedras FIGURA 446 Modelagem de cardumes com partículas FIGURA 447 Dois emissores com simulação de fumaça fogo explosão e lançamento de destroços 4122 Centro de Massa O centro de massa é o ponto onde se supõe concentrada toda a massa M do sistema e cujo vetor posicional em relação a uma origem fixa e arbitrária é R cm Figura 448 R cm m k r k M m k onde m k é a massa de cada partícula do sistema e r k é o seu vetor posicional em relação a uma origem fixa e arbitrária 4123 Velocidade do Centro de Massa A velocidade do centro de massa é obtida derivando em relação ao tempo a expressão do vetor posicional do centro de massa R cm dR cm dt 1 M m k dr k dt 1 M m k v k V cm 1 M m k v k 4124 Quantidade de Movimento A quantidade de movimento de uma partícula de massa m k que se move com velocidade v k é P k m k v k modo que V cm 1 M m k v k P k M P M A quantidade de movimento do sistema é a quantidade de movimento do seu centro de massa 4125 Aceleração do Centro de Massa Derivando V cm em relação ao tempo obtémse a aceleração do centro de massa do sistema de partículas dV cm dt 1 M Σm k d v k dt Σm k a k M considerando que f k m k a k representa a resultante de todas as forças que atuam sobre a partícula k e que Σf k representa a resultante de todas as forças que atuam sobre todas as partículas do sistema temse Σ f k M A cm Essas forças podem ser de dois tipos Forças exteriores f e exercidas por partículas que não pertencem ao sistema sobre as partículas do sistema e Forças interiores f i aquelas que as partículas do sistema exercem umas sobre as outras e cuja resultante é sempre nula lei da ação e reação Seja F e a resultante de todas as forças exteriores que atuam sobre todas as partículas do sistema a equação anterior reduzse a F e M A cm Recordando que a quantidade de movimento de uma partícula de massa m k que se move com velocidade v k é P k m k v k podemos escrever M A cm Σm k dv k dt Σ dP k dt dP dt F e A derivada em relação ao tempo da quantidade de movimento de um sistema de partículas é igual à resultante das forças exteriores que atuam sobre o sistema Considerando as equações F e M A cm e F e dPdt podemos concluir que para cada sistema de partículas pode se encontrar um ponto o seu centro de massa que se move como se fosse um ponto material onde estivesse concentrada toda a massa do sistema e sobre o qual atuassem todas as forças exteriores que exercem a sua ação sobre o sistema Se a resultante das forças exteriores que atuam sobre o sistema for nula a sua quantidade de movimento permanece inalterada isso é F e dPdt 0 ou seja P constante Assim é constante a quantidade de movimento de um sistema de partículas isolado sobre o qual não atuam forças exteriores ou atuam forças de resultante nula 4126 Movimento em Relação ao Centro de Massa Considerando a Figura 448 onde r k é vetor posicional da partícula k em relação ao referencial S r kcm o vetor posicional da partícula k em relação ao centro de massa do sistema e R cm o vetor posicional do centro de massa do sistema em relação ao referencial S Podemos observar que r k r kcm R cm dr k dt dr kcm dt dR cm dt 4128 Quantidade de Movimento de um Sistema de Duas Partículas Se durante o choque apenas interveem forças interiores a quantidade de movimento do sistema mantémse inalterada antes e depois do choque Se p1 m1v1 p2 m2v2 forem as quantidades de movimento de duas partículas antes do choque e p1 m1v1 p2 m2v2 as quantidades de movimento das duas partículas depois do choque pelo teorema de conservação da quantidade de movimento temse p1 p2 p1 p2 m1v1 m2v2 m1v1 m2v2 4129 Energia de um Sistema de Duas Partículas Se durante o choque apenas atuarem sobre cada partícula forças interiores a conservação da energia do sistema considerado traduzse pela igualdade m1v1²2 m2v2²2 m1v1²2 m2v2²2 Ep12 Ep12 onde 12 m1v1² 12 m2v2² e 12 m1v1² 12 m2v2² representam respectivamente as energias cinéticas das duas partículas antes e depois do choque e Ep12 e Ep12 designam as energias potenciais internas do sistema constituído pelas duas partículas antes e depois do choque Essas energias poderão ser diferentes já que dependem da configuração do sistema que pode alterarse durante o choque chamando de a esta variação temse Q 12 m1v1² 12 m2v2² 12 m1v1² 12 m2v2² Se Q 0 o choque é perfeitamente elástico neste caso a energia cinética do sistema é a mesma antes e depois do choque 41210 Conceituando Sistemas de Partículas O termo sistemas de partículas pode ser usado para descrever técnicas de modelagem rendering e animação De fato a definição de um sistema de partículas parece depender da aplicação para a qual se destina porém os sistemas de partículas devem obedecer aos seguintes critérios Coleção de Partículas Um sistema de partículas é composto de uma ou mais partículas individuais Cada uma dessas partículas tem atributos que direta ou indiretamente afetam o comportamento da partícula ou em última instância como e onde a partícula é posicionada Frequentemente partículas são primitivas gráficas como pontos ou linhas Os sistemas de partículas tam bém são usados para representar uma dinâmica de grupo complexa como um aglomerado de pássaros Atributos Estocásticos Uma outra característica comum de todos os siste mas de partículas é a introdução de algum tipo de efeito randômico Esses efei tos podem ser usados para controlar os atributos das partículas como posi ção velocidade e cor Normalmente o efeito randômico é controlado por um tipodelimiteestocásticopredefinidocomovariaçõesou tipo de distribuição Os sistemas de partículas são um exemplo de modelagem procedural estocástica e possuem algumas características os sistemas complexos podem ser criados com pequeno esforço humano e o nível de detalhe pode estar facilmente ajustado Por exemplo se um objeto emissor de partículas está longe da câmera então ele pode ser modelado com poucos detalhes poucas partículas mas se estiver perto da câmera então ele pode ser modelado com riqueza de detalhes muitas partículas As partículas não têm superfícies bem definidas e nem são objetos rígidos isto é podem ser dinâmicas e fluidas Os sistemas de partículas diferem em três modos da representação usual em para síntese de imagem Um objeto não é representado por um conjunto de primitivas de superfície nem por polígonos ou malhas mas como primitivas de partículas que defi nem seu volume Um sistema de partícula não é uma entidade estática suas partículas mudam de forma e movimento Novas partículas podem ser criadas e antigas destruídas Um objeto representado por um sistema de partícula não tem sua forma e as pecto completamente especificados Processos estocásticos podem ser usa dos para criar e mudar a forma e aparência do objeto Cada partícula tem como atributos sua posição velocidade cor transparência tamanho forma e tempo de vida Um sistema de partícula possui uma série de parâmetros que controla a posição inicial da partícula Esses são 1 A origem da partícula x y e z 2 Dois ângulos de rotação que definem sua orientação 3 Um gerador de formas shape que define a forma da região em torno da ori gem da partícula com que novas partículas são gerados por exemplo uma esfera de raio R O gerador de formas descreve a direção inicial das novas par tículas por exemplo para uma esfera as partículas sairiam da origem em to 174 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA das as direções Para uma forma plana por exemplo um círculo no plano xy as partículas subiriam e se afastariam do plano A velocidade de uma partícula pode ser dada por Velocidade VelocidadeMédia Rand X VariaçãodaVelocidade onde a função Rond é responsável pela introdução de uma aleatoriedade no siste ma A cor e o brilho são dos atributos mais importantes representáveis por Cor CorMédiaRGB Rand X VariaçãodaCorRGB A transparência pode ser dada por Transparência TransparênciaMédiaRGB Rand X VariaçãodaTransparênciaRGB O tamanho representa quanto maior ou menor a partícula será quando compara da a um tramanho médio Tamanho TamanhoMédio Rand X VariaçãodoTamanho Esse parâmetro também se relaciona com a forma de cada partícula Tempo de Vida Cada partícula segue três fases distintas geração dinâmica e extinção Geração As partículas no sistema são geradas randomicamente dentro de um local predeterminado chamado objeto emissor O objeto emissor pode ter sua forma alterada com o passar do tempo Cada um dos parâmetros mencio nados anteriormente recebe um valor inicial Esses valores iniciais podem ser fixos ou podem ser determinados por um processo estocástico Dinâmica de partícula Os atributos de cada uma das partículas podem variar com o passar do tempo Por exemplo a cor de uma partícula em uma explo são pode ficar mais escura conforme ela se afasta do centro da explosão indi cando que está se apagando Em geral cada um dos atributos de uma partícu la pode ser especificado por uma equação paramétrica considerando o tempo como parâmetro Os atributos da partícula podem ser funções do tempo ou de outros atributos da partícula Por exemplo a posição que partícula vai es tar dependente da posição prévia da partícula da sua velocidade e do tempo REPRESENTAÇÃO E MODELAGEM 175 ExtinçãoCadapartículatemdoisatributosquelidamcomoseutempodeexis tência idade e tempo de vida A idade é o tempo que a partícula tem de existên cia medida em quadros esse valor será sempre inicializado com 0 quando a partícula for criada O tempo de vida é a quantia máxima de tempo que a par tícula pode viver medida em quadros Quando a partícula atinge sua idade máxima ela é destruída Além desse fator outros critérios podem contribuir para a destruição prematura da partícula Fora dos limites Se uma partícula sair da área de visualização e não reen trar então não existe nenhuma razão para manter a partícula ativa Atingindo o Solo Podemos assumir que as partículas que atingem o solo resfriamse e não podem ser mais vistas Algum atributo alcança um limite Por exemplo se a cor da partícula está tão próxima do preto que não possa mais ser vista então ela pode ser considerada destruída 41211 Renderizando as Partículas Quando temos de renderizar milhares de partículas algumas suposições têm de ser feitas para simplificar o processo Primeiro cada partícula é renderizada por uma primitiva gráfica Partículas que ocupam os mesmos pixels na imagem são aditivas a cor de um pixel é simplesmente a soma dos valores de cor de todas as outras Por causa dessa suposição não será necessária a utilização de algoritmos de superfícies escondidas as partículas são simplesmente renderizadas em or dem Além disso partículas podem obscurecer outras partículas podem ser transparentes e podem lançar sombras em outras partículas ou primitivas con vencionais Uma segunda aproximação é que as partículas são fontes de luz que se combi nam de acordo com sua cor e valores de opacidade propriedade que também elimi na o problema de superfícies escondidas 41212 Características dos Sistemas de Partículas Os sistemas de partículas podem resultar em grandes quantidades de código e uma diminuição na velocidade de render frame rate Grande parte desse problema é causado por estruturas de dados complexas e o conseqüente gerenciamento da me mória Uma das coisas mais importantes é que os sistemas de partículas aumentam o número de polígonos visíveis por quadros frames Cada partícula provavelmente necessita de quatro vértices e dois triângulos Desse modo por exemplo com 2000 partículas de floco de neve visíveis em uma cena estamos adicionando 4000 triân gulos visíveis isso não quer dizer que os sistemas de partículas não possam ser usa 176 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dos para aplicações em realtime Como a maioria das partículas se movimenta não há como précalcular o buffer dos vértices devendo ser atualizado a cada qua dro Para otimizar esse processo será necessário evitar uma série de processos Por exemplo se uma partícula morre em vez de retirála da memória podemos sim plesmente mudar o indicador que passará a indicar sua morte Esse procedimento além de ser mais rápido poderá manter o sistema de partículas vivo Outra característica comum dos sistemas de partículas é a capacidade de estabe lecer um elo com objetos da cena por exemplo utilizando um emissor de partícu las na ponta de um cigarro esse emissor deve acompanhar o cigarro caso a cabeça do fumante se movimente RESUMO Neste capítulo viuse diversas formas de modelagens sintéticas Este é um campo onde muitas pesquisas ainda são necessárias em especial das formas que não tem geometria definida REPRESENTAÇÃO E MODELAGEM 177 178 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 5 Cores 51 Sistema Visual Humano 52 Descrição da Cor da Luz 53 As Ondas Eletromagnéticas 54 Sistemas de Cores Primárias 55 Sistemas de Cores Aditivas 56 Sistemas de Cores Subtrativas 57 Famílias de Espaços de Cor 571 Modelo fisiológico 572 Modelo baseado em medidas físicas 573 Modelo de sensações oponentes 574 Modelo psicofísico 58 O Modelo RGB 59 O Modelo CMYK 510 Espaço de percepção subjetiva 511 O Modelo HSV 512 O Modelo HLS 513 O Modelo YIQ 514 Transformação dos Espaços de Cor 5141 De RGB para XYZ 5142 De RGB para EixosOponentes 5143 De RGB para HSV 515 Uso de Cores nas Imagens 516 Descrição das Cores 517 Histograma de Cores 518 Espaço de Cores Oponentes 519 Ilusões Relacionadas às Cores 520 Problemas com Cores na Computação 521 Cores em OpenGL 5211 Transparência A cor exerce uma ação tríplice a de impressionar a de expressar e a de construir A cor é vista quando impressiona a retina É sentida e transmitida como uma emoção É construtiva pois tendo um significado próprio possui valor de símbolo poden do assim construir uma linguagem que comunique uma idéia O uso da cor na computação gráfica apresenta vários aspectos interessantes me lhora a legibilidade da informação possibilita gerar imagens realistas permite indi car mecanismos de segurança permite focar a atenção do observador permite pas sar emoções e muitos mais Enfim o uso de cores torna o processo de comunicação mais eficiente O conjunto de técnicas que permite definir e comparar cores é chamado de colo rimetria Esta técnica estuda e quantifica como o sistema visual humano percebe a cor Também chamamos colorimetria os métodos de análise espectrofotométricos de absorção da luz As técnicas de colorimetria têm como referência o chamado observador padrão ou observador médio que é determinado a partir de experimentos A colorimetria baseiase na premissa de que qualquer cor pode sempre ser definida por três parâ metros a intensidade a tonalidade cromática e a saturação O primeiro parâmetro mede a luminância intensidade luminosa da superfície examinada se a superfície for emissora ou refletora de luz podemos também o chamar de brilho ou claridade A tonalidade cromática caracteriza o comprimento de onda dominante da cor sen do também chamado matiz O último parâmetro saturação mede a pureza da cor isso é o quanto ela é saturada de um só tom No caso de cores originárias de objetos emitentes luzes como a mistura de todas as cores puras resulta em uma luz bran ca é possível dizer que a saturação caracteriza a quantidade de branco da cor Os aparelhos que permitem a determinação das componentes ou coordenadas tricromáticas de um estímulo de cor sob condições de iluminação e observação de finidas são chamados colorímetros 51 SISTEMA VISUAL HUMANO A retina do olho humano contém dois tipos de células que detectam a luz e a transfor mam em impulsos nervosos Devido à sua forma elas são chamadas de cones e basto netesFigura51Osconessãoaproximadamenteseisasetemilhõeseestãoconcen trados principalmente no centro da retina na região chamada fóvea Figura 52 Eles são sensíveis a alto nível de iluminação e responsáveis pela percepção das cores A re tina é a área do olho que recebe a luz transforma em sinais nervosos e transmite para o cérebro através dos nervos óticos Os bastonetes são aproximadamente 125 mi lhões em cada olho e estão concentrados na periferia da retina São sensíveis a baixo nível de iluminação distinguem os tons de cinza e são responsáveis pela visão perifé ricaOsbastonetessãocercade100vezesmaissensíveisàluzqueosconesistoépo dem ser sensibilizados por uma pequena quantidade de energia luminosa mas não CORES 181 têm a capacidade de distinguir cores Os animais em geral possuem uma quantidade muito maior do que os humanos dandolhes uma visão noturna maior A retina possui um tempo de saturação assim os fenômenos visuais observados dependem do tempo de exposição da retina e da intensidade luminosa Figura 52 No fundo do olho existe uma região denominada de ponto cego onde as células nervosas da retina se ligam ao nervo ótico É por esse nervo que as impressões visu ais são transmitidas ao cérebro Na parte externa da retina existe uma fina camada de cor vermelha escura chamada coróide cujos vasos sanguíneos alimentam as di versas camadas do olho A coróide apresenta células de pigmento escuro cuja fun ção é enfraquecer a intensidade de luz que chega aos cones e bastonetes O olho usa substâncias químicas fotossensíveis existentes nas células da retina para transformar a luz em impulsos nervosos enviados ao cérebro Cada bastonete contém milhões de moléculas de um pigmento sensível à luz chamado rodopsina ou púrpura visual Quando a luz incide sobre uma molécula de rodopsina ela gera um minúsculo sinal elétrico Esses sinais são acumulados até serem suficientes para desencadear uma mensagem nas células nervosas da retina A rodopsina é pro duzida à noite num processo que utiliza a vitamina A Durante o dia a rodopsina é gradualmente consumida pela visão Por isso a falta de vitamina A pode levar a de ficiência visual em condições de pouca luz conhecida como cegueira noturna Uma luz brilhante incidindo durante muito tempo como na neve ou deserto nas células fotossensíveis da retina gastam os pigmentos visuais fazendoos deixar de reagir à luz após algum tempo a pessoa não consegue enxergar a chamada ce gueira da neve Os cones são menores mais espessos e reagem à luz produzindo pigmentos quatro vezes mais rápido do que os bastonetes A adaptação gradativa do olho à escuridão devese à lenta passagem do pigmento escuro para o fundo da reti na Quando passamos imediatamente de um ambiente escuro para o claro nossa visão também necessitará de um tempo até que possamos ver todas as cores porém esse tempo será menor do que a reação dos bastonetes 182 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 51 As células cone e bastonete A cegueira às cores que ocorre em 1 a cada 40 mil pessoas e mais especificamen te em cerca de 8 dos homens e apenas 05 das mulheres é devido ao não funcio namento ou falta de um tipo de cone A forma mais comum de deficiência à visão colorida é chamada daltonismo O daltonismo pode se manifestar em um dois ou três tipos de receptores Os tricomatas são daltônicos que possuem os três tipos de pigmentos mas que os utilizam em proporções diferentes das pessoas normais e das outras pessoas com o mesmo defeito Os dicromatas percebem as cores defei tuosamente porque combinam apenas dois tipos Os monocromatas percebem ape nas graduações de claro e de escuro pois sua estimulação visual se baseia em um único tipo de célula A ausência dos cones responsáveis pelo registro das cores ver melha e verde leva a uma forma de daltonismo chamada anomalopia Para detectar a forma de um objeto colorido o observador deve fixar o conjun to de receptores de seu olho nos contornos do objeto O contorno é o elemento bá sico na percepção da forma e pode ser criado a partir de áreas adjacentes que dife rem em brilho cor ou ambos Na Figura 53A o topo do cilindro possui uma ex tremidade que se confunde com a faixa Na Figura 53B os elementos da extremi dade foram retirados impossibilitando a compreensão dos elementos que com põem a cena De acordo com a teoria tricromática ou dos três estímulos de Thomas Young 17731829 a retina é formada por três tipos de fotopigmentos capazes de receber e transmitir três sensações distintas Um dos grupos de fotopigmentos é mais sensí vel aos comprimentos de onda curtos esses pigmentos não se sensibilizam por comprimentos de onda que excedam o valor de 529 x 107m possuem pico de res posta próximo a 445 x 107m motivo pelo qual são popularmente conhecidos como fotopigmentos azuis Eles permitem ver azuis e violetas Os outros dois grupos são mais sensíveis aos comprimentos de onda de 535 x 107m e 575 x 107m mas esses ao contrário dos azuis são sensíveis também a to dos os demais comprimentos Assim há uma complementação das cores que ve mos Devido a sua maior sensibilidade para os comprimentos citados eles são cha CORES 183 Retina Fóvea Lente Pupila Nervo Ótico Córnea Íris FIGURA 52 O sistema visual humano mados de fotopigmentos verdes e vermelhos respectivamente a denominação de vermelho não é muito apropriada já que 575 x 107m se aproxima mais do amarelo A área que enxergamos é chamada campo visual Em cada olho existem campos visuais separados para os vários tipos de cones e bastonetes pois essas células têm disposição diferente na retina O campo visual dos bastonetes é maior ainda que fraco no centro da visão pois no centro da retina existem poucas células desse tipo O campo visual dos cones verdes é o menor de todos porque eles se localizam mui to próximos e no centro da retina Assim só temos visão exata das cores quando olhamos de frente para um objeto e a sua imagem incide na região central da retina fóvea Os bastonetes espalhados pelo resto da retina vêem principalmente movi mentos em forma de cinza Essa é a chamada visão periférica Young no século XIX através de seus experimentos com superposição de luzes mostrou que todas as cores do espectro visível podiam ser representadas como uma soma de três cores primárias Ele concluiu que isso era conseqüência não das ca racterísticas do raio luminoso mas da composição do sistema visual humano Ele pressupôs que o raio luminoso era transportado para o cérebro através de três di ferentes tipos de impulsos nervosos que transportavam respectivamente o ver melho o verde e o azulvioleta O físico alemão Hermann von Helmholtz 18211894 prosseguiu nos estudos da teoria de Young e propôs que o olho continha apenas três tipos de receptores de cor que respondiam mais fortemente aos comprimentos de onda vermelho R verde G e azulvioleta B Ele deduziu ainda que cada tipo de receptor deveria possuir gran de sensibilidade à incidência luminosa porém com diferentes pontos máximos A 480 nm a média da resposta RGB seria 159 dando uma sensação azulciano En quanto a 570 nm a média seria 772 que daria uma sensação de amarelo A percepção da cor portanto seria determinada pela média das três respostas Figura 54 184 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 53 A extremidade como elemento básico na percepção da forma 52 DESCRIÇÃO DA COR DE UMA LUZ O que vemos como cores em uma luz são na verdade diferenças de comprimento de onda Muitas cores podem ser geradas por um único comprimento de onda como as luzes vermelha e verde puras Outras cores só podem ser produzidas por luzes com vários comprimentos de onda como roxo ou rosa É possível descrever os compri mentos de onda contidos numa cor através de sua curva espectral que é um gráfico onde os comprimentos de onda estão no eixo horizontal e a intensidade de luz no eixo vertical A luz que tem toda sua energia concentrada em um único comprimento deondaéchamadadepuraÉocasodaluznaFigura55ACoresquesãoproduzidas por um único comprimento de onda têm toda sua intensidade concentrada num úni co ponto do eixo horizontal Figura 55A enquanto as outras cores possuem uma mistura de comprimentos de onda como mostra a Figura 55B Um problema na descrição das cores é que muitas densidades espectrais podem ser vistas como a mesma cor pelo olho humano Distribuições espectrais diferen tes que produzem a mesma sensação de cor são chamadas metâmeros Isso torna di fícil a descrição de cores através de curvas espectrais Para contornar esse proble CORES 185 10 8 6 4 2 400 500 600 700 Comprimento de Onda Resposta Relativa B G R FIGURA 54 A percepção da cor pode ser determinada pela média das três respostas RGB Intensidade Intensidade Comprimento de onda Comprimento de onda A B FIGURA 55 Comprimento de onda da luz pura em A e comprimento de uma luz misturada em B ma uma forma mais concisa de especificar cada cor é a caracterização na curva es pectral dos três parâmetros da colorimetria já comentados matiz saturação e bri lho O matiz de uma cor comprimento de luz predominante aparece como a posi ção do eixo horizontal onde a curva de densidade espectral tem mais intensidade A saturação é a proporção da cor que não se manifesta como uma constante em todos os comprimentos de onda Para dessaturar a cor é necessário apenas adicionar luz branca que é composta de todos os comprimentos de onda Uma cor dessaturada como o rosaclaro é descrita com matiz vermelho misturado com uma certa por centagem de branco Finalmente o brilho é a área embaixo da curva de densidade espectral que determina o quão brilhante a cor resultante será A Figura 56 mostra uma curva fictícia onde esses elementos podem ser caracterizados Neste gráfico quanto menor o ib mais saturada a cor A matiz corresponde ao ponto do eixo ho rizontal onde ocorre a intensidade máxima em im As diferentes cores ou espectros luminosos que podem ser percebidos pelo sistema visual humano correspondem a uma pequena faixa de freqüências do es pectro eletromagnético que inclui as ondas de rádio microondas os raios infra vermelhos os raios ultravioleta os raios X e os raios gama como mostrado na Fi gura 57 186 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Comprimento de onda im ib Intensidade FIGURA 56 A área embaixo da curva de densidade espectral determinando o quão bri lhante a cor resultante será Rádio Microondas Infravermelho Raio X Hertz 10 20 10 18 10 16 10 14 10 12 10 10 10 8 10 6 10 4 Ultravioleta Região Visível Vermelho Alaranjado Amarelo Verde Azul Violeta 400 nm 500 600 700 FIGURA 57 Freqüências do espectro eletromagnético A freqüência mais baixa do espectro visível corresponde à cor vermelha 43x1014 Hertz e a mais alta à cor violeta 75x1014Hertz Os valores de freqüên cia intermediários correspondem às cores que passam pelo alaranjado e amarelo e por todas as outras cores até chegar nos verdes e azuis Os comprimentos de onda maiores possuem distâncias focais maiores e conse qüentemente requerem maior curvatura da lente do olho para serem focalizados a cor vermelha possui a maior distância focal e a azul a menor As utilizações simul tâneas de cores localizadas em extremos opostos do espectro fazem com que a lente altere o seu formato constantemente causando cansaço no olho 53 ONDAS ELETROMAGNÉTICAS A luz é uma onda eletromagnética que permite ver o mundo ao redor As ondas ele tromagnéticas cobrem um intervalo bem amplo de freqüência Figura 57 ou comprimentos de onda Chamase freqüência o número de ciclos da onda por se gundo Comprimento de onda é a distância percorrida entre dois ciclos Assim o comprimento de uma onda é igual à sua velocidade de propagação em um meio no ar 300000 kms na água 225000 kms dividido pela sua freqüência Dependendo de suas freqüências são classificadas como ondas de rádio microondas infraver melho luz visível raios ultravioletas raios X e raios Gama Desde a antigüidade a luz vem sendo investigada porém fenômenos luminosos inexplicados ainda existem Na verdade a luz é uma das diversas formas que a energia se manifesta Até o século XVII a luz era definida como a radiação que pode ser percebida pelos olhos humanos Halliday e Resnick 1976 Após experiências sobre as propriedades dos raios infravermelhos e ultravioletas invisíveis a ciência passou a conside rálos como luz em virtude da semelhança do comportamento de suas regiões do espectro com a faixa visível Os babilônios já sabiam muito sobre a propagação da luz mas foi a Escola de Pla tão que primeiro teorizou esse conhecimento criando a base da Ótica Geométrica parte da Física que estuda a luz se deslocando em linha reta podendo ser represen tável por raios Modificações substanciais no estudo da luz somente ocorreram dois mil anos mais tarde com os trabalhos de René Descartes e principalmente de Isaac Newton no século XVIII quando então surgiu a Ótica Física ou Ondulatória Os modelos clássicos usados para descrever os fenômenos luminosos são denominados corpus cular e ondulatório O modelo corpuscular considera que a luz é formada por pequenos corpúsculos fótons que se propagam em grande velocidade e em linha reta em todas as dire ções Essa teoria explica fenômenos como o da propagação e da reflexão da luz mas deixa outros sem explicação CORES 187 No modelo ondulatório a luz parte de uma fonte luminosa em movimento on dulatório e não precisa de nenhum meio material para se propagar ou seja tratase de uma onda eletromagnética Essa teoria permite explicar a propagação a refle xão a refração e a difração entre outros fenômenos luminosos Atualmente o mo delo ondacorpúsculo é o mais aceito Ele engloba os dois modelos clássicos e foi apresentado nas primeiras décadas do século XX pelo cientista Francis Louis Bro glie 18921987 Segundo Broglie a luz tem ambos os comportamentos conforme se observa o fenômeno A teoria de Newton também está baseada na emissão corpuscular Newton fez in cidir a luz do sol sobre um prisma e observou que ela se decompunha em um ar coíris de cores que ia do azul ao vermelho Ele foi capaz de combinar cores para formar outras cores distintas concluindo que eram necessárias sete cores para re presentar todas as cores visíveis Posteriormente ao levantaremse os princípios da teoria ondulatória de Huy gens Young e Fresnel acreditouse ser falha aquela teoria fato acentuado quando Maxwell e Hertz demonstraram ser a luz uma radiação eletromagnética Feynman et al 1967 No entanto os trabalhos do físico alemão Max Planck realizados no início do século mostraram evidências de que a luz é emitida e absorvida em por ções de energia perfeitamente definidas denominadas de fótons partículas que apresentam um quanta de energia Novos aspectos do fenômeno foram revelados conciliando as teorias de Newton e Planck com as teorias de Maxwell e Hertz Surgiu uma nova visão a luz pode assu mir tanto um comportamento ondulatório como um comportamento corpuscular As diferentes sensações que uma luz pura produz no olho humano e que pro duzem as cores dependem da freqüência ou comprimento de onda dessa luz O olho humano é sensível à radiação eletromagnética na faixa de 400 a 700 nanôme tros Figura 54 chamada espectro visível dentro da qual estão localizadas as chamadas sete cores visíveis distinguidas por seus respectivos comprimentos de onda Espectro Visível Violeta Azul Ciano Verde Amarelo Laranja Vermelho 380450 540480 480490 490560 560580 580600 600700 Comprimentos de onda em nanômetros As cores mostradas na tabela acima correspondem ao leque de cores que aparece no arcoíris A cor vermelha é a que possui o maior comprimento de onda e a viole ta o menor Essas cores aparecem sempre nessa ordem também quando uma luz branca é decomposta ao atravessar um prisma de cristal Esse fenômeno é conheci do com dispersão da luz e foi descoberto por Isaac Newton em 1666 Ele mostrou 188 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA que a luz branca é a mistura de todas as luzes coloridas do espectro A cor dos obje tos que não emitem luz é percebida pela energia que ela reflete ou seja quando a luz incide sobre um objeto uma parte é absorvida pela própria superfície e a outra é refletida chegando aos nossos olhos 54 CORES PRIMÁRIAS As cores primárias são as cores básicas que podem ser usadas para produzir outras cores As cores podem ser produzidas a partir de uma combinação das primárias ou então da composição de suas combinações Não existe um conjunto finito de cores primárias visíveis que produza realmente todas as cores mas sabese que uma gran de parte delas pode ser produzida realmente a partir de três primárias escolhidas das extremidades e centro do espectro de luzes visíveis como por exemplo as luzes vermelha azul e verde conhecidas como primárias RGB A razão pela qual se usam três primárias é pelo fato de os olhos humanos possuí rem três tipos de sensores coloridos diferentes sensíveis a diferentes partes do es pectro de luz visível como já foi comentado Eles são os chamados fotopigmentos azul vermelho e verde Os picos das respostas desses fotopigmentos se localizam nos comprimentos de onda das luzes azul verde e amarelo e respondem às sensa ções luminosas em todo o resto do espectro das radiações visíveis Figura 56 Um sistema de cores é um modelo que explica as propriedades ou o comporta mento das cores num contexto particular Não existe um sistema que explique to dos os aspectos relacionados à cor Por isso são utilizados sistemas diferentes para ajudar a descrever as diferentes características das cores e sua percepção pelo ser humano Existem vários sistemas de cores sendo aqui apresentados apenas alguns dos principais o XYZ o RGB o HSV e o HLS O universo de cores que podem ser reproduzidas por um sistema é chamado de espaço de cores color space ou color gamut Um espaço de cor é um método formal necessário para se quantificar as sensações visuais das cores que podem assim ser precisamente especificadas A introdução de uma representação mate mática no processo de especificação de cor gera muitos benefícios já que permi te a especificação de uma cor através de um sistema de coordenadas geralmente cartesiano Para definir todas as cores visíveis através de radiações primárias a Commissi on Internationale de lÉclairageCIE Comissão Internacional de Iluminação defi niu três primárias supersaturadas que podem ser combinadas para formarem to das as cores Embora essas primárias supersaturadas não possuam representação física elas podem ser usadas para produzir um gráfico com todas as outras cores Alguns instrumentos que podem medir as especificações de cores CIE a partir do mundo real foram desenvolvidos Uma cópia do gráfico de cores CIE aparece na Figura 58 CORES 189 No gráfico CIE duas cores com iguais distâncias no gráfico nem sempre represen tem iguais distâncias na percepção Hill et al 1997 Apesar disso esse gráfico auxilia a vários cálculos Cada um dos pontos ao longo da borda externa da curva excluin do os da parte reta é composto de luzes formadas de um único comprimento de onda Os dois pontos nomeados próximos ao centro do diagrama c e d represen tam dois tipos muito parecidos de branco Criandose uma reta que comece em um dos pontos brancos escolhidos passe por um outro ponto que represente uma cor e cruze a borda do gráfico é possível determinar o comprimento de onda primário matiz da cor que se localiza neste ponto A saturação da cor é a razão entre a dis tância do ponto à borda do gráfico e a distância do ponto à cor branca E também se uma linha é desenhada entre quaisquer duas cores do gráfico todas as cores da li nha entre elas podem ser criadas combinandose essas duas cores na proporção da distância ao ponto desejado Os sistemas de cores podem ser aditivos ou subtrativos Wyszecki Stiles 1982 190 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA R B G Y O P Pk Vermelho Azul Verde Alaranjado Amarelo Roxo Rosa G 500 540 520 480 470 450 650 620 590 580 560 yG YG bG BG gB B pB P rP RP pR R rO O yO Y gy c d bp pPk Pk OPk FIGURA 58 Gráfico cores da CIE Comissão Internacional de Iluminação 55 SISTEMAS DE CORES ADITIVAS É o sistema usado nos monitores de vídeo e televisões no qual a cor é gerada pela mistura de vários comprimentos de onda luminosa provocando uma sensação de cor quando atinge e sensibiliza o olho As cores primárias aditivas são vermelho verde e azul No processo aditivo o preto é gerado pela ausência de qualquer cor indicando que nenhuma luz está sen do transmitida o branco é a mistura de todas elas o que indica que uma quantidade máxima de vermelho verde e azul está sendo transmitida Figura 59 Em uma imagem colorida a representação da cor C de cada pixel da imagem pode ser obtida matematicamente por C rR gG bB Onde R G e B são as três cores primárias e r g e b são os coeficientes de mistura correspondentes a cada uma das intensidades associadas a cada um dos canais RGB Esses coeficientes de mistura podem ser números reais ou inteiros A primeira for ma é mais utilizada para transformação entre espaços de cor ou consultas em tabe las A segunda valores inteiros é utilizada nas aquisições de imagens digitais e em sua armazenagem na forma de arquivos de imagens Dessa forma a cor C de cada pixel da imagem pode ser plotada no espaço de cores RGB usandose os coeficientes de mistura r g b como coordenadas Uma cor portanto pode ser considerada como um ponto em um espaço tridimensional modelada como um subconjunto do espaço R3 ou N3 onde cada cor possui uma coordenada r g b CORES 191 Vermelho Magenta Azul Amarelo Verde Ciano FIGURA 59 Processo aditivo das cores primárias veja também nas ilustrações colori das 56 SISTEMAS DE CORES SUBTRATIVAS É o processo usado nas impressoras e pinturas Uma pintura é diferente de um mo nitor que por ser uma fonte de luz pode criar cores As cores primárias para objetos sem luz própria são magenta amarelo e ciano são cores primárias subtrativas pois seu efeito é subtrair isto é absorver alguma cor da luz branca Quando a luz branca atinge um objeto ela é parcialmente absorvida pelo objeto A parte que não é absor vida é refletida e eventualmente atinge o olho humano determinando assim a cor do refletida O processo subtrativo altera a cor através de uma diminuição da luz in cidente dos comprimentos que são absorvidos No processo subtrativo o branco corresponde a ausência de qualquer cor e o preto é a presença de todas Figura 510 Neste processo uma cor é vista como Ciano se absorve a componente vermelha da luz branca refletida a luz branca é a soma das cores azul verde e vermelho assim em termos de cores aditivas ciano é a soma de verde e azul Magenta se retira a componente verde da luz branca sendo assim a soma das cores aditivas vermelho e azul Amarelo se subtrai a componente azul da luz branca refletida é a soma das cores aditivas verde e vermelho Podemos ainda obter outros tipos de cores através da combinação das cores pri márias As cores secundárias por exemplo são obtidas pela combinação das primá 192 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Magenta Vermelho Azul Amarelo Verde Ciano FIGURA 510 Processo subtrativo das cores secundárias veja também nas ilustrações à cores deste livro rias duas a duas em proporções iguais Figura 511 As terciárias podem ser obti das pela combinação de duas primárias em proporções diferentes A cor marrom por exemplo é uma cor terciária obtida da mistura das três primárias podendo ser obtida com a mistura do amarelo ou vermelho alaranjado com um pouco de preto 57 FAMÍLIAS DE ESPAÇOS DE COR Na literatura sobre visão da cor quatro famílias de modelos podem ser identifica das modelo fisiológico modelo baseado em medidas físicas modelo de sensações oponentes e o modelo psicofísico 571 Modelo Fisiológico Os modelos baseados nos estudos fisiológicos da visão humana têm como funda mento a existência de três tipos de sensores cones encontrados nas células da reti na humana com sensibilidades máximas correspondentes às cores vermelho ver de e azul Exemplo desses são os modelos RGB usados em monitores de vídeo CRT colorido 572 Modelo Baseado em Medidas Físicas Os modelos baseados nas medidas físicas da reflectância espectral são chamados modelos colorimétricos Utilizam filtros das três cores primárias vermelho verde e azul para composição das cores avaliadas por um observador padrão médio e me didas fotométricas Exemplo desse modelo é o XYZ usado no diagrama de cromati cidade do CIE CORES 193 Amarelo Ciano Magenta Amarelo Ciano Magenta Verde Vermelho Azul FIGURA 511 Processodeobtençãodascoressecundáriasvejanaspáginasemcores 573 Modelo de Sensações Oponentes O modelo de sensações de cores oponentes foi descoberto a partir de experiências sobre o processo de percepção visual nas camadas mais altas do cérebro resultante da interação de pares de células oponentes vermelhoverde azulamarelo e pre tobranco redgreen blueyellow blackwhite 574 Modelo Psicofísico Modelos de cores fundamentados em reações psicológicas e psicofísicas são oriun dos de informações obtidas pelo ponto de vista impressionista da cor modelos de Munsell e Ostwald ou de modo experimental família dos modelos de cor HSB ou de espaço uniforme OSA 58 O MODELO RGB O modelo RGB possui como primárias as cores aditivas vermelhas R verdes G e azuis B este modelo baseiase na sensibilidade do olho e usa um sistema de coor denadas cartesianas R G B cujo subespaço de interesse é o cubo unitário mostrado na Figura 512 As cores primárias RGB são aditivas A diagonal principal do cubo que vai do preto ao branco possui quantidades iguais de cores primárias e representa a escala de cinza Cada ponto colorido dentro dos limites do cubo pode ser representado por R G B onde os valores de R G e B variam entre zero e um valor máximo A resposta do olho aos estímulos espectrais não é linear e por isso algumas cores não podem ser reproduzidas pela sobreposição das três primárias Isso significa que algumas cores existentes na natureza não podem ser mostradas nesse sistema Por isso um fenômeno natural colorido como por exemplo formação de rochas não pode ser reproduzido com precisão 194 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Azul Turquesa Verde Magenta Vermelho Amarelo FIGURA 512 Subespaço do modelo RGB a partir dos eixos XYZ 59 O MODELO CMYK O modelo CMYK é um modelo complementar ao modelo RGB porém destinado a produtos e dispositivos não emissores de luz tais como impressoras A composição da cor ocorre similarmente ao modelo RGB porém emprega as cores complementa res Ciano C Magenta M Amarelo Y e Preto K As cores complementares atuam na luz incidente subtraindo desta as componentes RGB criando assim cores equivalentes às produzidas por dispositivos emissores de luz Por esse motivo o modelo CMYK é conhecido como um modelo subtrativo onde além das subtrações efetuadas pelas cores ciano magenta e amarelo comentadas na seção 56 temse o Preto que subtrai todos os componentes Embora complementares os modelos RGB e CMYK não produzem os mesmos resultados visuais ou seja não existe a transposição exata e precisa de cores de um modelo para outro Existem cores de um modelo que simplesmente não podem ser expressas pelo modelo complementar enquanto algumas cores encontradas na na tureza simplesmente não podem ser expressas por nenhum dos dois modelos co res metálicas cores fluorescentes etc Apesar de suas limitações o par RGBCMYK é o modelo de cores atualmente mais popular para processamento digital de imagens principalmente em função da tecnologia dos tubos de imagens atuais que utilizam três canhões de elétrons RGB para a composição de imagens coloridas no vídeo e das impressoras a jato de tinta laser ou térmicas que utilizam tecnologia CMYK herdada da indústria fo tográfica 510 ESPAÇOS DE PERCEPÇÃO SUBJETIVA Esta forma de modelagem de um espaço de cor é conhecida dos estudos de Mun sell e Ostwald O sistema de Munsell é baseado na concepção de intervalos iguais de percepção visual onde qualquer cor pode ser definida como um ponto em um espaço de cor tridimensional Os atributos desse sistema são o matiz H Hue o brilho V Value e a saturação C Chroma percebidos cuja notação simbólica é H V C O matiz Hue é representado Figura 513 em uma ordem natural de cores na forma circular vermelho amarelo verde azul e púrpura consideradas por Mun sell como as principais Misturandose cores adjacentes nessa série obtémse uma variação contínua entre as cores A saturação Chroma é o grau de distância de uma cor qualquer a cor neutra localizada no centro do círculo O brilho Va lue representado pelo eixo perpendicular ao círculo indica a intensidade de luz refletida de uma cor O sólido de cor representando o espaço de Munsell é mostra do na Figura 514 CORES 195 Os sistemas de cor de Munsell e Ostwald representam as primeiras tentativas 1915 de organizar a percepção da cor em um espaço São baseados mais na subjeti vidade da observação do que em medidas diretas ou em experiências controladas da percepção O sistema de ordenação de cor de Munsell e derivados como o sistema Pantone e Scottch continuam sendo muito usados na indústria não obstante as tentativas de substituílos pelos modelos colorimétricos 196 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 513 Cores circulares de Munsell veja nas páginas coloridas FIGURA 514 O espaço de Munsell veja nas páginas em cores Os sistemas Munsell e Ostwald são baseados na reflexão subtrativos das cores Embora existam métodos de conversão para outros espaços de cores estes sistemas não costumam ser usados em trabalhos que utilizem adição de cores A forma geral desses espaços é a representação por coordenadas cilíndricas com três dimensões correspondendo aproximadamente às variáveis brilho eixo vertical matiz des locamento angular em relação a uma determinada cor e saturação distância ao eixo vertical semelhantes ao esquema do sólido de cor de Munsell Figura 514 Outros modelos resultantes de medidas experimentais com características di mensionais semelhantes ao espaço Munsell mas com configurações diferentes são muito utilizados em trabalhos de computação visual e gráfica como os sistemas HSV H cor S saturação V intensidade e HLS H cor L quantidade de luz S saturação Dubuisson e Gupta 2000 511 O MODELO HSV O modelo HSV Hue Saturation Value orientado ao usuário foi desenvolvido em 1978 por Alvey Ray Smith que se baseou na maneira com que o artista descreve e mistura as cores O sistema de coordenadas é um cilindro e o subconjunto dentro do qual o modelo é definido é um hexágono ou uma pirâmide de seis lados como mostrado na Figura 515 O eixo V representa a escala de tons de cinza onde o ponto V 0 e S 0 corres ponde ao preto e o ponto V 1 e S 0 ao branco No topo do hexágono encon tramse as cores de maior intensidade O matiz ou H é dado pelo ângulo ao redor do eixo vertical sendo o vermelho igual a 0o o verde 120o e assim por diante O valor da saturação varia de 0 na linha central eixo V até 1 nos lados do hexágono As cores cujos valores de V e S são igualmente 1 assemelhamse aos pigmentos primitivos usados por artistas CORES 197 240 00 120 0 10 V H S Preto Valor Tonalidade Saturação Amarelo 60 Vermelho Verde Cyan 180 Branco Magenta 300 Azul FIGURA 515 O modelo HSV veja também em cores O sistema HSV utiliza descrições de cor que são mais intuitivas do que as combi nações de um conjunto de cores primárias e por isso é mais adequado para ser usa do na especificação de cores em nível de interface com o usuário Os parâmetros de cor utilizados nesse sistema são a tonalidade hue a saturação saturation e a luminância value As várias tonalidades estão representadas na parte superior do cone a saturação é medida ao longo do eixo horizontal e a lumi nância é medida ao longo do eixo vertical que passa pelo centro do cone 512 O MODELO HSL O modelo HLS Hue Lightness Saturation é um modelo alternativo para o HSV desenvolvido por Gerald Murch da Tektronix mais ou menos na mesma época É fácil de ser utilizado sendo definido por um hexágono duplo conforme mostrado na Figura 516 A escala de cinzas encontrase em S 0 nesse modelo os matizes com máxima saturação possuem L 05 e como no modelo HSV são definidos na extremidade do hexágono Vantagens dos Modelos HSV e HLS Os dois últimos modelos tem as características de Simplicidade e facilidade de implementação e Popularidade entre os programadores de computação gráfica 198 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 05 10 H S 00 Preto Brilho Tonalidade Saturação Amarelo 0 Vermelho 120 Verde Branco Magenta 240 Azul FIGURA 516 O modelo HLS veja páginas em cores Desvantagens dos Modelos HSV e HLS Quando representados na tela as coordenadas são definidas diretamente em termos dos sinais do monitor RGB o que faz com que a cor produzida dependa das caracte rísticas do fósforo do monitor Ao se trocar de equipamento é possível obter resul tados indesejados uma vez que uma cor não é exatamente a mesma em diferentes dispositivos Além desta característica presente em qualquer representação em ví deos CRT seção 17 para os sistemas HSV e HSL observase ainda que Nenhum dos eixos é uniforme uma alteração em qualquer coordenada resul ta em uma mudança aparentemente variável de acordo com a localização no espaço de cor O ângulo de matiz é notavelmente o menos uniforme com mu danças lentas próximas aos ângulos referentes às primárias RGB e mudanças rápidas entre eles Isso dificulta a tarefa do operador em precisar o efeito na cor devido a um ajuste dos controles HSV ou HLS Os três eixos não são de fato independentes um do outro Por exemplo à me dida que se locomove ao redor do plano de cor HS a claridade lightness aparente no monitor sofrerá mudanças mesmo que os valores das compo nentes V ou L permaneçam constantes A maior discrepância ocorre entre o verde e o azul que tipicamente difere na luminância por um fator próximo a cinco Já uma mudança em V ou L produz normalmente uma alteração na saturação aparente mesmo que o componente S permaneça numericamente constante 513 O MODELO YIQ O modelo YIQ é usado na transmissão de televisão a cores nos Estados Unidos Esse modelo foi projetado para separar a crominância da luminância Ele foi implemen tado como solução para compatibilizar os sinais das televisões coloridas com os das preto e branco O canal Y contém informações de luminância suficiente para tele visões preto e branca enquanto os canais I e Q transmitem informações de cor Uma televisão colorida utiliza esses três canais e converte as informações de volta para R G e B Essa conversão acarreta uma variação de cor por tipo de fósforo do monitor isso significa que diferentes monitores podem apresentar uma variação nas cores O espaço YIQ é utilizado pelo padrão americano NTSC National Televi son Standard Committee 514 ESPAÇO DE CORES OPONENTES O modelo de cor mais conhecido por pares de cores oponentes é originário da teo ria do processo oponente descrito nos trabalhos de Hurvich e Jameson Kayser e Bayton 1996 Essa teoria remonta aos estudos da teoria de visão da cor de Hering CORES 199 1878 na qual cores oponentes opponent hues se cancelam quando superpostas O modelo usa para representação um sistema cartesiano onde o amarelo e o azul são diametralmente opostos em um eixo e o verde e o vermelho opostos em outro eixo formando um plano com o eixo branco e preto perpendicular a esse plano Os sinais visuais tricromáticos enviados pelos cones alcançam um estágio neural subseqüente LGN onde se desenvolvem principalmente dois tipos de processa mento da cor 1 processos espectralmente oponentes no qual vermelho versus ver de e amarelo versus azul ocorrem e 2 processos espectralmente nãooponentes branco versus negro As experiências demonstram vários fenômenos visuais que não são adequada mente explicados pela teoria tricromática Exemplos de tais fenômenos são os efei tos notados pela visão após uma observação prolongada de uma das cores oponen tes A retirada do estímulo amarelo após a sua observação durante algum tempo provoca o aparecimento de uma sensação visual da cor azul Hurvish e Jamenson elaboraram um método experimental de cancelamento de cores hue cancellation com a finalidade de avaliar psicofisicamente a natureza dos processos oponentes da visão colorida Feymman et al 1967 A teoria de cores oponentes considera que os sinais provindos dos três tipos de cones RGB são combinados em um segundo estágio do processamento neural da visão da cor para alimentar três canais de cores oponentes Um canal brancopreto BW ou acromá tico é obtido pela soma dos sinais vindos dos cones R G e B Um canal vermelho verde RG RG é excitado com sinais vindos dos cones R e inibido pelos sinais vindos do cones G e o terceiro canal amareloazul YBBRG que é excitado pelos sinais vindos dos cones B e inibido por uma combinação de sinais vindos dos cones R e G Hurvich e Jameson conseguiram com esse método registrar as quantidades rela tivas de cada uma das quatro cores básicas presentes em qualquer estímulo espec tral Verificaram que o vermelho e o verde não são vistos simultaneamente no mes mo lugar ao mesmo tempo quando misturados produzem o amarelo não há o ver deavermelhado reddish green Analogamente também o azul e o amarelo não são vistos simultaneamente quando misturados produzem o branco não há azul amarelado yellowish blue O vermelho e o verde se cancelam mutuamente da mesma forma o amarelo e o azul Se a partir de uma mistura verdeazulada bluish green por exemplo se quiser obter o verde é necessário adicionarse o amarelo puro de modo a cancelar o azul A quantidade necessária da cor para cancelamento foi considerada como um in dicador do grau da cor cancelada Estes dados foram usados para produzir as curvas de processamento das cores oponentes a Figura 517 ilustra essas curvas Para se obter o vermelho puro é necessário misturar um pouco de azul em um comprimento de onda por exemplo 700 nm de modo a cancelar o amarelo que ocorre nessa faixa Uma cor só é perfeitamente pura quando somente ela é percebi 200 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA da Uma cor pura somente ocorre onde o valor cromático das outras duas é zero No gráfico da Figura 517 os valores positivos e negativos são arbitrariamente assinala dos para representar a natureza do processo das cores oponentes Os valores cromáticos representam as quantidades de cores vistas em diferentes comprimentos de ondas Por exemplo no comprimento de onda 450 nm o valor cromático azul é aproximadamente 10 e o valor da cor vermelha próximo a 02 Esses valores indicam que a cor percebida seria azul com um pouco de vermelho Essa cor é conhecida como violeta ou púrpura Já em 550nm há uma grande quan tidade de amarelo e verde indicando que na faixa em torno dessa cor apareceria um amareloverdeclaro que é o que a maioria das pessoas vê 515 TRANSFORMAÇÃO ENTRE ESPAÇOS DE COR Há uma grande variedade de espaços de cor cada um deles com vantagens e des vantagens quanto à capacidade de representação de cores distintas e suas compo sições Geralmente as imagens coloridas são capturadas por scanners ou câmeras que as armazenam em forma de pontos com a informação das cores representadas pelos canais RGB Esse espaço seria o candidato natural por ser completo para ser usado em pesquisas por similaridade caso fosse perceptualmente uniforme Como espaço completo o RGB é ponto de partida para transformações para outros espaços com pletos que serão sujeitos a avaliação quanto ao processamento por semelhança Conci e Castro 2002 Sendo o RGB um espaço contínuo em trabalhos computa cionais pode ser amostrado em um grande número de valores discretos imagens CORES 201 x Observador J comprimento de onda nm 400 500 600 700 15 10 05 00 05 10 15 valores cromáticos Vermelho Vermelho Amarelo Azul Verde FIGURA 517 Curvas de processamento das cores oponentes 5151 De RGB para XYZ Com o desenvolvimento de vários estudos sobre a percepção das cores seção 51 constatouse que o olho humano é sensível a três cores primárias vermelho verde e azul que combinadas formam todas as cores do espectro visível A CIE Commission Internationale de lÉclairage estabeleceu um padrão para representar as cores visíveis denominado XYZ formado por três coeficientes que representam as porcentagens de vermelho verde e azul existentes em uma cor A partir dessa padronização vários sistemas de cores foram criados para representar os subconjuntos de cores color gamut pertencentes ao espaço de cores XYZ Esses sistemas utilizam pelo menos três componentes para representar uma cor Ex Sistema HSB matiz saturação e brilho tomando como base as componentes das três cores primárias e transformandoas em um novo sistema de coordenadas de cores Dois sistemas padrão foram criados para definir as componentes das cores vermelho verde e azul O primeiro padrão foi criado pelo NTSC National Television Standards Committee para utilização em sistemas de televisão e o outro padrão foi definido pelo CIE Os dois se relacionam através da equação RN GN BN 0842 0156 0091 0129 1319 0203 0006 0069 0897 RCIE GCIE BCIE onde RCIE GCIE e BCIE são as componentes das cores vermelho verde e azul do padrão CIE e RN GN e BN são correspondentes do padrão NTSC O padrão NTSC deu origem ao sistema RGB utilizado para representar o color gamut dos monitores de vídeo cuja distribuição no espaço XYZ é apresentada na Figura 518 A conversão do sistema RGB para o sistema XYZ é obtida aplicando a equação X Y Z 0607 0174 0201 0299 0587 0114 0000 0066 1117 R G B Como o sistema RGB está diretamente relacionado ao sistema XYZ os demais sistemas de cores possuem suas conversões para o sistema XYZ através de uma versão intermediária para o sistema RGB 5152 De RGB para EixosOponentes OPP O modelo de cores oponentes explica uma grande quantidade dos fenômenos psicofísicos de percepção da cor Conforme já mencionado há evidências de que o sistema de visão dos seres humanos usa um modelo de espaço no qual as respostas aos estímulos das células cones RGB existentes na retina sejam convertidas num estágio cerebral mais avançado para uma combinação de cores oponentes em um sistema cartesiano onde as novas coordenadas são chamadas de rg by e wb Esse espaço não é uniforme Kaiser e Bayton 1996 O espaço OPP é obtido pela seguinte transformação linear do RGB rg by wb 1 1 0 1 1 2 1 1 1 R G B O eixo wb representa o canal de luminância e os outros dois as crominâncias 5153 De RGB para HSV O espaço de cor HSV é uma forma natural e intuitiva para formação das cores assim como o CIELAB e CIELUV A transformação do RGB para o HSV é geralmente feita na forma não é linear mas tem a vantagem de que o processo de reversão ao RGB é facilmente realizado Para fazer a transformação usase o seguinte algoritmo Primeiro calculase os valores máximo e mínimo max máximoRGB min mínimoRGB depois os valores de saturação e brilho V max S max min max aí passase a calcular as cores ou H if S 0 H irrelevante else R1 maxR maxmin G1 maxG maxmin B1 maxB maxmin If R1 max and G1 min H 5 B1 else if R1 max and G1 not min H 1 G1 else if G1 max and B1 min H 1 R1 else if G1 max and B1 not min H 3 B1 else if B1 max and R1 min H 3 G1 else H 5 R1 convertese H em graus H H60 usase H variando de 0 a 360 S e V variando entre 0 e 1 516 USO DE CORES NAS IMAGENS A cor elemento fundamental em qualquer processo de comunicação merece uma atenção especial É um componente com grande influência no dia a dia de uma pes soa interferindo nos sentidos emoções e intelecto pode portanto ser usada deli beradamente para atingir objetivos específicos O uso apropriado de cores pode re sultar em uma rápida e correta assimilação da informação Como muitas vezes age no inconsciente de uma pessoa é um parâmetro que deve ser muito bem compreendido seu uso incorreto pode trazer resultados inde sejáveis que nem chegam a ser notados Levkowitz e Herman 1992 204 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA O uso de cores em imagens permite Mostrar as coisas conforme são vistas na natureza Representar associações simbólicas Chamar e direcionar a atenção Enfatizar alguns aspectos sociais Determinar um estado de espírito Tornar uma imagem mais fácil de ser memorizada Por se tratar de um recurso tão poderoso o uso de cor deve ser feito com cau tela Ao preparar um trabalho devemos observar que Umaescolhanãoadequadadecorespodeinterferirnalegibilidadedaimagem As cores podem apresentar características distintas em condições diferentes As cores devem ser selecionadas de modo a não causarem fadiga nos olhos do usuário e nem deixálo confuso Se elementos da imagem são agrupados com as mesmas cores devese tomar um cuidado para não agrupar elementos que não possuem nenhuma relação entre si de modo a não induzir o usuário a conclusões erradas No que diz respeito aos fatores humanos associações climáticas podem facil mente ser identificadas na preferência por certas cores De um modo geral as pes soas de lugares tropicais gostam mais de cores saturadas e com brilho já os mo radores de regiões mais temperadas possuem uma tendência ao uso de cores som brias Isso se deve ao fato de serem essas as cores que elas estão mais acostumadas a ver no seu habitat natural Outro exemplo de associação que reflete aspectos cultu rais é a cor branca no ocidente ela é associada à pureza e à alegria sendo muito usa da por noivas no dia de seu casamento No oriente é a cor da morte e da dor sendo o vermelho a cor convencional para o vestido de noiva 5161 Branco A cor branca é a chave para a comparação de cores é usada para determinar o con teúdo espectral de uma luz É a cor que possui a maior leveza e atrair a atenção em um fundo escuro Uma imagem com o fundo branco fornece a máxima legibilidade para um objeto escuro mas seu intenso brilho pode causar problemas ao se olhar para ela por um período prolongado áreas extensas de branco geralmente resultam em um brilho que dilui as cores exibidas Devemos evitála também nos cantos das CORES 205 imagens devido à grande sensibilidade do olho a intensidade de luz no campo vi sual periférico Para a reprodução de imagens recomendase uma margem estreita com uma largura próxima a 5 mm de modo a estabelecer a referência branca para um melhor julgamento da aparência da cor Em nossa cultura a cor branca está as sociada a neve pureza inocência paz leveza limpeza frio hospital vulnerabili dade palidez fúnebre rendição e esterilidade 5162 Preto A cor preta age como um estimulante para as demais cores e se harmoniza bem com todas elas Apesar de muitas conotações emocionais negativas sua conformidade faz dela um padrão para várias situações traje para noite roupa de nazistas e fascis tas grupo de adolescentes Objetos brilhantes aparentam ser mais escuros do que objetos foscos e as superfí cies pretas geralmente se tornam mais negras à medida que o nível de iluminação aumenta Contrastes simultâneos fazem com que um contorno preto torne áreas coloridas mais claras e amplas Nos dispositivos de vídeo o preto é a cor natural de fundo nenhum sinal no mo nitor ou cor no pixel Ela fornece um bom contraste com as cores brilhantes e tor nase mais legível quando em contraste com fundos claros A cor preta está associada a noite carvão poder estabilidade formalidade soli dez medo vazio morte segredos anonimato e maldição 5163 Cinza O cinza é uma cor que reduz as conotações emocionais Combina bem com todas as cores as quais por sua vez apresentam seu colorido máximo quando contrastando com cinza escuro Pode ser obtida através da mistura de branco e preto ou de cores complementa res pode também ser gerada através da mistura de pontos adjacentes pretos e bran cos como no caso de um monitor de vídeo o que provoca um tom de cinza mais vi brante do que quando se trata de um cinza uniforme Por ser uma resultante da mistura entre o preto e o branco a cor cinza não possui uma associação específica 5164 Vermelho É a cor com o maior impacto emocional universal provavelmente devido à sua as sociação com o sangue e o fogo portanto com a guerra Seu significado simbólico varia com diferentes culturas na Inglaterra simboliza a realeza nos Estados Unidos denota perigo na China representa revolução na Índia casamento 206 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A cor vermelha é uma das três cores primárias usadas nos dispositivos de vídeo RGB Mostrase muito eficiente quando usada nas imagens para sinalizar algum pe rigo ou chamar a atenção como por exemplo bordas vermelhas nos sinais de ad vertência são rapidamente percebidas Mas seu uso deve ser evitado em áreas am plas ou para a cor de fundo tratase de uma cor dominante e agressiva que chama muito a atenção A cor vermelha está associada a vitória paixão amor força energia sexualida de sangue guerra fogo perigo raiva e satã 5165 Amarelo O amarelo é uma cor incandescente com grande qualidade acolhedora Sua associa ção imediata com o sol faz com que ela simbolize a vida e o calor Nos terminais RGB essa cor é produzida pela combinação de vermelho e verde e em geral preferencialmente de baixa saturação Por ser a mais clara de todas as mati zeséumbomindicadordeatividadedaíoseuusoemfaixasdeobstruçãopolicial Não deve ser usada como cor de texto a não ser com fundo preto ou azul escuro A cor amarela está associada a sol verão serenidade ouro colheita inovação covardia traição ciúmes risco doença e loucura 5166 Verde O verde é uma cor intimamente ligada à natureza é a cor da vegetação e se tornou a marca dos movimentos ambientalistas A idéia tradicional de que a plantação significa uma certa estabilidade resultou na associação do verde com o sentimento de se gurança Acreditase que ambientes com um tom de verdeclaro promovam um esta dodepaznamentemasverdeemexcessopoderesultaremumaaparênciadoentia O olho humano é mais sensível aos comprimentos de onda próximos ao amare loverde Assim essa é a cor mais visível das três cores primárias dos terminais RGB sendo muito propícia quando se deseja passar rapidamente uma informação A cor verde está associada a vegetação natureza primavera fertilidade espe rança segurança decadência inexperiência inveja ganância fuga da realidade e má sorte 5167 Azul Por seracordocéuedomaroazulsugerearespaçoeprofundidadeÉumacor fria e suave a mais tranqüila de todas tem uma grande capacidade de relaxar e tranqüili zar as pessoas Fornece um bom fundo para cores vívidas É a cor preferida pela moda em qualquer circunstância social Simboliza autoridade e espiritualidade sendo a cor mais amplamente usada nas bandeiras nacionais mostrando assim o desejo de unidade e estabilidade CORES 207 É uma das três cores primárias dos terminais de vídeo Como o olho humano é menos sensível aos comprimentos de onda do azul o azul é uma cor difícil de ser focalizada e de se obter um bom contraste não deve assim ser usado para texto nem detalhes finos É uma excelente cor para o fundo principalmente porque podese tirar proveito de sua qualidade de expansão e profundidade infinita A cor azul está associada a céu mar espiritualidade estabilidade paz unidade frio depressão melancolia obscenidade mistério conservadorismo 517 HISTOGRAMA DE CORES A partir de um espaço de cor determinamos as características de cor de uma imagem com o auxílio de histogramas Conci e Castro 1999 Um histograma de cor de uma imagem caracteriza a sua distribuição de cores Cada ponto da imagem pode ser representado como um vetor 3D no espaço de cor usado o RGB por exemplo Nesse caso a imagem terá três histogramas um para cada canal de cor E definir esses histogramas consiste em primeiro capturar na imagem em cada pixel a intensidade de cor no formato RGB onde o valor de cada ponto da imagem Ixy é expresso por um vetor Vc Irxy Igxy Ibxy x1X y1Y onde X e Y são a largura e a altura da imagem Depois contase o número de ocorrências de cada intensidade para cada canal o gráfico desses números será o histograma do canal Han Ma 2002 Na forma mais simples esses histogramas podem ser 1D Neste caso o processo para se obter um histograma de cor consiste em definir as diversas cores presentes na imagem e contar quantos pixels há de cada uma delas Para isso primeiro devese conhecer a quantidade n de cores presentes na imagem Esse mesmo valor n será o número de elementos do histograma Depois contabilizase o número de pontos de cada cor O gráfico desses números será um histograma 1D com n células onde cada uma representa uma proporção dos pontos com aquela cor presentes na imagem hm i 1 XY X x1 Y y1 fxy fxy 1 se a cor de xy m i 0 se a cor de xy m i i 12 n onde XY são a largura e a altura da imagem em pixels m i é uma coordenada horizontal do histograma correspondendo à céula de contagem dos pontos de cor m i e hm i corresponde ao número de pontos de cada cor m i dividido pelo número total de pixels da imagem 518 ILUSÕES RELACIONADAS ÀS CORES Aberrações cromáticas fazem com que comprimentos de onda distintos sejam fo calizados em diferentes planos dentro do olho Para a maior parte das pessoas as cores vermelhas parecem se encontrar mais próximas do observador do que as co res azuis Em pintura existe uma técnica chamada perspectiva aerial na qual se pinta obje tos distantes como montanhas de azulado devido à absorção da cor amarela ou ver melha pela umidade atmosférica Tal técnica pode ser aplicada a interfaces o uso de um azul nãosaturado mostrase uma boa escolha para uma cor de fundo de tela em decoração tal cor provoca uma impressão da maior altura ou profundidade de uma sala permitindo que os demais elementos da tela apareçam com mais destaque 519 PROBLEMAS COM CORES NA COMPUTAÇÃO Observando o formato do gráfico de cores CIE Figura 58 é evidente que não é possível representar todas as cores do gráfico através da combinação das três cores básicas dos monitores vermelho verde e azul Se as 3 cores aditivas utilizadas como base para combinação de cor forem marcadas neste gráfico temse um triân gulo cujo interior define todas as cores que podem ser reproduzidas a partir destas Essa forma que define as cores possíveis de serem reproduzidas é chamada gamut Ocorre variação das cores representáveis por duas impressoras diferentes e entre monitores diferentes devido às diferenças na seleção das cores primárias usados e dos métodos de reprodução de cores Até mesmo em um mesmo dispositivos as co res podem parecer diferentes devido aos erros de calibragem desgate do fósforo di ferenças entre as tintas qualidade dos papéis e a iluminação do ambiente Para reduzir esses problemas existem sistemas de cores que usam amostras swatches calibradas para definir cores Um desses é o sistema Pantone Quando usam esses tipos de sistema as aplicações têm a necessidade de saber o número es pecífico de cada amostra swatch e a impressora é responsável em reproduzir a cor do swatch da melhor maneira possível Observandose o swatch é mais fácil deter minar a cor final do que olhando na tela Alguns sistemas tentam produzir cores Pantone que parecem melhores nos monitores usando uma tabela de consulta que define características como marca e modelo do monitor juntamente com especifi cações das condições de iluminação local Embora isso funcione bem para o design gráfico de objetos não acontece o mes mo com imagens bitmap que foram escaneadas ou renderizadas por programas 3D pois ainda não existe uma maneira realmente eficiente de mapear cores no formato Pantone Apesar disso alguns sistemas como o ColorSync da Apple possuem per fis de configuração para monitores scanners e impressoras O sistema então tenta simular e corrigir as cores em cada passo da melhor maneira possível modifican do os dados que são recebidos de scanners que são enviados para impressoras ou CORES 209 que são mostrados nos monitores Esses sistemas são um avanço na área de produ ções com alta definição de cores e estão agora se tornando mais acessíveis para ou tros usuários o ColorSync é gratuito para computadores Apple Power Macintosh e Macintosh 520 CORES EM OPENGL O OpenGL permite também representar informações de transparência o que é cha mado de canal alfa seção 65 Cores são definidas através do comando glColor e seus parâmetros são as intensidades das cores RGBA vermelho verde azul e o canal alfa As cores variam entre 00 e 10 Sendo para o branco todos os valores iguais a 1 e para o preto todos os valores iguais a 0 A linha que segue produz uma combinação de amarelo vivo com 25 da cor do fundo GlColor4f10 10 00075 Exemplos de outras cores usando RGB são Vermelho glColor3f10f00f00f Verde glColor3f00f10f00f Azul glColor3f00f00f10f Branco glColor3f10f10f10f Preto glColor3f00f00f00f 5201 Transparência Para exibir objetos transparentes em OpenGL devese utilizar as Funções de Blend ou de mistura Essas funções misturam a cor do objeto que já está na tela com a cor do objeto que está sendo desenhado num dado momento Em primeiro lugar é necessário ativar as funções de BLEND Para tanto em OpenGL usase glEnableGLBLEND Utilizando a quarta componente de cor o canal alfa podemos modificar a trans parência de um objeto Esse quarto parâmetro pode variar entre 0 e 1 sendo 0 um objeto totalmente transparente e 1 um objeto opaco Para habilitar o processamen to dessa quarta componente usamos glEnableGLALFATEST 210 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA As funções de BLEND definem como é feita a mistura entre as cores do objeto que está sendo desenhado e as imagens que já estão na tela Essa mistura é feita a partir de uma média ponderada entre o ponto da tela e o ponto do objeto que está sendo desenhado A função OpenGl para definir esses pesos é glBlendFunc Essa função recebe dois parâmetros o primeiro define o peso da cor do novo ponto e o segundo o peso da cor do ponto que já está na tela Esses pesos em OpenGL serão sempre uma função do nível de transparência do objeto ou seja de seu valor alfa Por exemplo a chamada glBlendFuncGLSRCALPHA GLONEMINUSSRCALPHA Define que a nova cor do ponto na tela será NovaCorNaTela CorDoObjeto AlfaDoObjeto CorAntigaNaTela 1AlfaDoObjeto Nesse caso as constantes têm o seguinte significado GLSRCALPHA define que o peso da cor do objeto que está sendo desenhado é o próprio valor alfa de sua cor GLONEMINUSSRCALPHA define que o peso da cor que já está na tela é de 1 alfa onde alfa é o nível de transparência do objeto que está sendo desenhado Exemplo void display void glClear GLCOLORBUFFERBIT GLDEPTHBUFFERBIT Desabilita o BLEND para o primeiro objeto glDisableGLBLEND glPushMatrix glTranslatef001 glRotatef xrot 10 00 00 glRotatef yrot 00 10 00 glRotatef zrot 00 00 10 habilita remoção de faces traseiras glEnableGLCULLFACE glCullFaceGLBACK DrawCube05 glPopMatrix Habilita o BLEND para o segundo objeto glEnableGLBLEND glBlendFuncGLSRCALPHA GLONEMINUSSRCALPHA CORES 211 NovaCorNaTela CorDoObjeto AlfaDoObjeto CorAntigaNaTele 1AlfaDoObjeto DesenhaVidroAlfaVidro xrot03f yrot02f zrot04f glutSwapBuffers RESUMO O mecanismo da visão colorida e da sensação de cores é muito complexo Em com putação gráfica a reprodução precisa das cores e diversos outros aspectos a elas re lacionados representa um vasto campo de pesquisas Ao assunto esse capítulo ape nas fornece uma leve introdução Como leitura adicional veja Color Correction for an Image Sequence de P Pham e G Pringle IEEE Comp Graph and Appl vol 15 no 3 1995 pp 3842 Para um facinante estudo dos problemas de percepção e distinção entre cor como uma característica da luz e como uma propriedade percebida nos objetos leia Color and Perception the work of Edwinhand in the light of current concepts de M H Wilson e R W Brocklebank Comtemporary Physics dezembro de 1961 212 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 6 Animação 61 Histórico 62 Aplicações da Animação 63 Animação por Computador 64 Formas de Animação 641 Animação por QuadroChave Keyframe 642 Animação por Script 643 Animação Procedural 644 Animação Representacional 645 Animação Estocástica 646 Animação Straight Ahead 647 Animação PosetoPose 648 Animação por Comportamento ou Comportamental 649 Animação Track Based 65 Canal Alpha 66 Composição 661 Filmagem da Cena Real 662 Reconstrução da Cena em 3D 67 Captura de Movimento 671 Rotoscopia 672 Sistemas de Captura 6721 Ótico 6722 Mecânico 6723 Magnético 6724 Acústico 673 Cartoon Motion Capture 68 Animação de Personagens 3D 681 Cinemática 6811 Cinemática Direta 6812 Cinemática Inversa 682 Ossos 683 Articulações 6831 Junta de Revolução 6832 Junta Esférica 6833 Grau de Liberdade 684 Esqueleto 6841 Controladores IK 6842 Ciclo de Animação 6843 Sistemas de Animação IK 685 Músculo Flexor 686 Cabelos e Pêlos 687 Animação Facial 6871 Sincronização Labial 6872 Seqüência de Texturas 6873 Morphing 6874 Esqueleto 6875 Free Form Deformation 6876 Weighted Morphing 69 Animação de Superfícies Deformáveis 610 Produção de Animação 611 Princípios da Animação 612 Cena de Animação 613 A Animação no Processo de Aprendizado Animação do Latim Animare dar vida movimento coragem entusiasmo alma A transcrição de um dicionário acima não só define como também descreve os passos para produção de animação em computação gráfica Primeiro tentamos de senhar ou esculpir depois capturar os movimentos e por último retratar o espírito da criatura ou cena a ser animada 61 HISTÓRICO Os primeiros registros de animação datam de 2000 aC quando os egípcios pinta vam nas paredes seqüências de lutas e cenas de adoração Somente em 1828 a animação pôde ser explicada pelo entendimento do princí pio fundamental do olho humano a persistência da visão Esse princípio foi de monstrado por Paul Roget Frenchman com a invenção do thaumatrope um disco colocado em uma haste Thauma é uma palavra grega que significa magia e deu ori gem a thaumaturgy a arte de fazer mágica ou arte miraculosa No português tau maturgo é aquele que faz milagres De um lado do disco do thaumatrope Fren chman pintou um pássaro e do outro uma gaiola vazia Quando o disco girava o pássaro aparecia dentro da gaiola Isso deu origem a diversos dispositivos rotativos como o Zoetrope e os abajures que giram movidos pelo ar quente das lâmpadas projetando sombras animadas na parede Um dos artefatos mais curiosos e em uso até hoje são os Flipbooks Os flipbooks são pequenos livros ou cantos de livros que são usados para simular uma animação desenhando folha a folha A animação ganha vida ao se folhar com rapidez essas pá ginas Parece uma brincadeira de criança mas em alguns países existe uma legião de fãs e compradores de histórias complexas neste tipo de animação A maior invenção no ramo da animação foi a câmera fotográfica Quando inven tadas essas câmeras eram utilizadas somente para imagens estáticas Pouco ou qua se nada se sabia sobre como representar uma história a partir de imagens No final de 1890 Meleis introduziu os primeiros conceitos e truques para contar histórias e dar vida a coisas inanimadas hoje conhecida como animação antropomórfica Di versos outros fatos marcaram a evolução da animação em camadas e cores mas nin guém marcou mais a história da animação do que Walter Elias Disney 19011966 Walt Disney como gostava de ser chamado não só construiu novas técnicas e es túdios como transformou a animação em uma forma de arte Disney foi premiado com 31 vezes com o Oscar criou os storyboards os animatics pilotos de anima ção planos de câmera desenvolveu o uso de cores e som Ele também promoveu a idéia que a mente do personagem era a força motriz da ação e que uma chave para movimento animado era a análise do movimento real A animação hoje possui um mercado bem delineado com um público de faixa etária bem diversificada Segundo o canal Cartoon Network um terço dos seus te lespectadores estão na faixa de 1834 anos Parece curioso mas o mercado de ani mações para adultos segue em pleno desenvolvimento ANIMAÇÃO 215 62 APLICAÇÕES DA ANIMAÇÃO A animação está presente em praticamente todas as aplicações da computação grá fica Geralmente estamos acostumados a associar a animação com filmes ou propa gandas mas ela está em todos os segmentos Na engenharia por exemplo é utiliza da para diferentes tipos de verificações e visualizações Na medicina permite visua lizar e entender os movimentos e órgãos do corpo humano No ensino auxilia na criação de multimidias didáticos 63 ANIMAÇÃO POR COMPUTADOR Embora Mondelbrat descreva clips gerados por galaxias fractais em 1972 Mondel brat 1988 é mais usual se dizer que a história da animação por computador ini ciouse em 1974 por René Jodoin com o primeiro filme Hungh Esse filme foi concebido utilizando a técnica de interpolação de objetos Filmes de circuito co mercial que marcaram a história são Star Treck II 1977 que usou em poucos mi nutos Tron 1982 que usou como parte integrante do filme o Exterminador do Futuro II Jurassic Park O Segredo do Abismo e mais recentemente a série Matrix e os desenhos animados 3D de Toy Story da Pixor aos novos produtos resultantes da união PixorDisney Os cartoons podem ser produzidos a partir de desenhos ou modelos físicos No primeiro tipo os artistas criam uma sucessão de quadros de desenhos que são en tão combinados em um filme No segundo método é usado um modelo físico por exemplo um boneco de massa onde cada movimento é registrado como uma foto grafia quadro a quadro A animação por computador pode ser produzida por uma grande diversidade de métodos Uma das maiores dificuldades do animador é escolher qual desses méto dos aplicará Neste momento a experiência e intimidade com a ferramenta podem ser decisivas Enquanto em alguns casos os sistemas funcionam em outros não Na falta de experiência testar será sua única saída Basicamente podemos dividir a animação por computador em duas categorias computerassisted animation animação assistida por computador e computer ge nerated animation animação gerada por computador No primeiro caso o anima dor faz os quadroschave e o computador se encarrega de gerar os quadros interme diários O segundo apresenta um grupo maior de técnicas subdivididas nos seguin tes grupos técnicas de baixo nível low level techniques técnicas que ajudam o animador na especificação precisa do movimento e técnicas de alto nível high le vel techniques técnicas usadas para descrever como se comporta o personagem durante a animação Nesse caso alto e baixo níveis estão associados ao nível de abstração Por exemplo se tiver um sistema que permita o controle do movimento de um personagem como uma macrofunção que se resuma no comando caminhe cuidadosamente observando cada detalhe você tem um sistema de alto nível De 216 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA forma oposta se você tiver de gerar todos os quadros correspondentes a cada movi mento do andar do personagem temos um sistema de baixo nível As de baixo nível usam técnicas como as do algoritmo de interpolação inbetwee ning que ajudam o animador a detalhar os movimentos sempre que este possuir claramente as idéias do movimento pretendido Para alguns pode parecer óbvio e até mesmo obrigatório o controle de uma ani mação mas isso não é verdade O número de variantes em uma animação pode ser tão grande que seria impossível imaginar a seqüência exata do movimento Um bom exemplo ocorre quando jogamos uma bola de borracha entre quatro paredes Seria impossível imaginar a trajetória dessa bola As técnicas de alto nível são geralmente algoritmos ou modelos usados para ge rar um movimento a partir de regras Esses modelosalgoritmos são sofisticados programas computacionais capazes de simular forças físicas e realizar animações complexas Qualquer que seja a opção da técnica sempre demandará um bom esforço por parte do animador Porém como via de regra as técnicas de baixo nível sempre de mandarão um maior esforço do que as alto nível Na prática os animadores usarão ambas as técnicas ou seja sempre que as técnicas de alto nível não produzirem o movimento esperado será necessário recuar para as técnicas de baixo nível 64 FORMAS DE ANIMAÇÃO A classificação das formas de animação varia de acordo com os aspectos considera dos Além da que aqui usamos métodos de controle do movimento ou a interface com os atores podem ser usados na classificação das técnicas de animação Magne natThalmann e Thalmann 1991 641 Animação por QuadroChave Keyframe A animação por quadrochave é um processo para criação de animações pelo qual os objetos são posicionados nos quadros críticos Um quadrochave keyframe é qual quer quadro de uma animação onde supostamente ocorre um evento específico im portante Os quadros localizados entre os quadroschave são chamados de interme diários Esse processo derivado da animação tradicional foi implementado em todos os sistemas de animação por computador Os quadros intermediários são gerados au tomaticamente a partir dos quadroschave por interpolação Faley et al 1993 642 Animação por Script Uma das mais poderosas ferramentas de animação é sem dúvida a animação por script Um script é uma seqüência de instruções em uma linguagem interpretável pelo sistema para controle dos objetos e suas respectivas propriedades de anima ção textura e comportamento Um fato interessante e ao mesmo tempo polêmico é ANIMAÇÃO 217 que muitas das recentes animações foram produzidas por pessoas da computação e não por artistas Esse fato devese a intimidade que o pessoal da ciência da compu tação têm com as linguagens de programação O sistema de Scripting é a forma mais antiga de controle do movimento Uma destas é conhecida como ASAS Actor Script Animation Language que tem uma sin taxe semelhante ao LISP A ASAS introduziu o conceito de ator isto é um elemento complexo que tem suas próprias regras de animação Os atores podem comunicarse entre si através de mensagens e então sincronizar seus movimentos Isso é seme lhante ao comportamento de objetos em linguagens orientadas ao objeto Vamos então ilustrar um pequeno script para o Max b GeoSphere s sphere animate on at time 0 move b 100 0 0 scale s 1 1 025 at time 35 move b 0 100 0 at time 100 move b 200 0 0 scale s 1 1 3 Essescriptanimaumageoesferaemtornodeumaesferaalterandoaescaladaesfera 643 Animação Procedural As linguagens de script são linguagens de programação que não necessitam de com pilação e geralmente são hospedeiras de determinados sistemas Isso quer dizer que cada sistema pode e geralmente utiliza a sua própria linguagem A animação procedural utiliza o modelo de linguagem de programação por pro cedimentos incluindo a orientação por objetos e não possui uma relação direta com um determinado sistema As linguagens procedurais são aquelas em que os operadores são executados em uma certa ordem para atender a uma solicitação ou atualização de dados Um bom exemplo desse tipo de animação são os jogos Wott Policorpo 2003 Na verdade a animação procedural pode ser um pouco mais complexa mas cer tamente muito mais poderosa Alguns cientistas encaram esse tipo de animação como uma forma científica de animação Existe uma infinidade de movimentos físicos como o fogo ou as ondas que po dem ser representados por uma equação ou fórmula assim como os físicos e mate máticos o fariam Até então a representação do movimento tem sido quase que to talmente realizada pela mão de artistas Se pensarmos no fogo veremos que será impossível para um artista descrever a seqüência de animação de milhões de partí culas incandescentes Na verdade não só será difícil desenhar ou modelar como também o observar 218 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A animação procedural consiste basicamente em modelos matemáticos imple mentados em linguagens de programação para simulação de forças físicas gravida de por exemplo As melhores aplicações desse tipo implementam soluções para a simulação da dinâmica de fluidos movimento de roupas cor dos modos Barzel 1977 e de alguns animais 644 Animação Representacional Esta técnica permite um objeto mudar sua forma se movimentar e andar duran te a animação Koe Badler 1996 Existem três subcategorias A primeira é a animação de objetos articulados isto é objetos complexos compostos de seg mentos rígidos conectados Van de Panne 1996 O segundo é a animação de objetos suaves usada para deformar e animar a deformação de objetos por exemplo pele acima de um corpo músculos faciais tecidos e formas elásticas Wilhelms 1997 O terceiro é o morphing que é a transformação de uma forma em outra bastante diferente Zhong 1996 645 Animação Estocástica Este tipo de animação utiliza o processo estocástico ou randômico para controlar grupos de objetos como nos sistemas de partículas 646 Animação Straight Ahead Straight Ahead é uma forma de animação convencional na qual o animador literal mente desenha quadro a quadro na forma seqüencial partindo de um quadro ini cial Esse tipo de animação permite que novas idéias sejam aplicadas conforme a se qüência se desenvolve Geralmente é usado para seqüências de espontaneidade e descontração 647 Animação PosetoPose Na animação posetopose o animador define alguns quadroschave que definem a animação e desenha depois os quadros intermediários Esse tipo de técnica é me lhor empregada onde a posição e o tempo são importantes 648 Animação Comportamental A animação comportamental ou por comportamento é aquela em que o animador descreve um conjunto de regras para a maneira como um ou mais objetos da cena reagirão com o ambiente Um exemplo desse tipo é o sistema de partículas quando usado para multidões bandos ou grupos de animais ANIMAÇÃO 219 649 Animação Track Based Track Based é uma generalização da animação por quadroschave Enquanto nos sistemas de quadroschave todos os parâmetros devem ser especificados nos siste mas track based somente os parâmetros que controlam as interpolações devem ser especificados e em qualquer ponto do tempo 65 CANAL ALPHA Em computação gráfica uma parte de cada pixel é reservada para informação refe rente à transparência Uma imagem de um canal alpha é essencialmente uma silhu eta em preto e branco dos objetos na cena Figura 61 onde o preto representa as partes totalmente transparentes da imagem e o branco as partes totalmente opacas Os tons de cinza intermediários indicam transparência parcial Sistemas de 32bits contêm quatro canais ou seja são formados por quatro tipos de imagens Sendo três canais de 8bits 24bits ou seja um canal para os tons vermelhos Red um para os tons verdes Green e 1 para os tons azuis Blue formando assim o siste ma RGB Cada um dos canais RGB pode ser entendido como imagens em tons de cinza indicando o quanto de cada cor tem na imagem Quanto mais alto o tom mais daquela cor terá o pixel O quarto canal também tem 8bits e é chamado de ca nal alpha indicando a transparência da imagem em relação a um fundo O canal alpha é na verdade um tipo de máscara especificando como as cores de cada pixel devem ser mescladas com outros pixels quando estes estiverem sobre postos É possível alterar o canal alpha de maneira a indicar as partes que você dese ja que sejam transparentes ou não Quando você estiver criando uma imagem de um objeto em um programa 3D e optar pelo formato de 32bits o programa cria au tomaticamente o canal alpha do objeto em 3D 220 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 61 A imagem e o seu canal alpha em relação ao fundo Se quiser mesclar a imagem de uma pessoa real com a de um cenário real você tem de criar um canal alpha que defina como esta pessoa vai ser inserida na imagem Para isto será necessário filmar a pessoa em frente a uma tela azul verde ou mesmo um fundo preto Com programas de edição de imagem ou de composição como Photoshop Paint Shop Adobe After Effects etc é possível retirar a cor definida como chave cromakey do fundo e criar um canal alpha 66 COMPOSIÇÃO A composição é um conjunto de técnicas para unir os diferentes elementos renderi zados em computador com elementos reais obtidos no set de filmagem Tudo isso é possível através do canal alpha como foi explicado Na composição é possível ajustar cores das imagens adicionar a granulação típica de filme film grain trocar texturas dos objetos 3D ajustar a iluminação virtual etc Esse processo pode ser dividido em duas etapas que representam a captura da cena e sua posterior reconstrução 661 Filmagem da Cena Real Durante a filmagem da cena real devese proceder como se o personagem 3D esti vesse no local Devese simular todas as interações do personagem virtual com o ambiente real É preciso coletar o máximo de informações do ambiente de filma gem para que seja possível encaixar o personagem 3D no ambiente real Assim 3 as pectos devem ser considerados Coletar todas as informações do ambiente quanto a iluminação posição da câ mera altura da câmera tipo e tamanho da lente da câmera distância focal A Figura 62B mostra uma bola branca que servirá para o animador estimar a in tensidade cor e direção da luz no ambiente de filmagem Isso servirá para aju dar a criar e posicionar as luzes virtuais no ambiente 3D Adicionar marcadores no ambiente de filmagem Figura 62 Esses marca dores permitem a inserção correta dos personagens 3D na cena A Figura 62A mostra uma vara com faixas alternadas de cores diferentes apresentan do medidas definidas de comprimento por exemplo de 15 em 15 cm Assim o animador pode usar esta cena como referência para saber quão alto o personagem deverá aparecer No filme Parque dos Dinossauros foram usadas bolas de golfe e de pingpong para marcar o chão durante a filmagem As bo las eram enterradas parcialmente no chão de forma a aparecer somente a sua metade Interação dos elementos 3D virtuais com o elemento real Nas cenas em que os personagens 3D interagem com objetos reais devemos ter os elementos de ANIMAÇÃO 221 interações previamente filmados Por exemplo se um dinossauro vai a um lago beber água devemos gravar a cena real de forma que a água comece a mexer assim que a boca dele chega a ela Essas interações podem ser feitas no próprio ambiente de filmagem ou em estúdio com uso de croma key Neste ponto a criatividade será sua grande aliada 662 Reconstrução da Cena em 3D De posse das filmagens reais será preciso então criar uma versão em 3D sintética deste cenário e daqueles objetos com os quais o personagem 3D interage direta mente Os elementos da cena real serviram de base para criação dos corresponden tes sintéticos Com o conhecimento do tamanho e da distância da bola em relação à câmera Figura 62 é possível criar bolas em 3D do mesmo tamanho das reais e posi cionálas de acordo com a cena real e assim definir os planos 3D Para a inserção dos personagens na proporção correta usamse os marcadores de vara com medida conhecida Assim se o objeto de referência tem dois me tros e o personagem 3D tem quatro metros o personagem precisa parecer es tar duas vezes maior que a vara Para isso a vara é recriada em 3D e posiciona da de acordo os dados da cena filmada com a vara Simular a iluminação da cena real todas as fontes de luz do ambiente de fil magem devem receber marcadores O sol ou qualquer outra fonte de ilumina ção principal aquela que representa a sombra predominante pode ser simu lada com auxílio da bola da Figura 62B As lâmpadas virtuais devem ter pro priedades similares às das lâmpadas reais simulando as cores as intensida des os focos etc 222 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Referência para Luz Referência para altura FIGURA 62 Exemplo de marcadores para composição 67 CAPTURA DE MOVIMENTO A análise de movimento por meios automáticos é de grande importância para diver sas áreas da medicina desporto e reconhecimento de atividades humanas No iní cio do século XX técnicas de captura de movimento foram usadas na animação tra dicional em 2D celulóide pela Disney para adequada representação dos desenhos animados Um sistema de captura de movimento é aquele em que se permite levar os movi mentos de um ator real para um ator virtual Os motivos para o uso desses processos são a busca do realismo redução de risco em cenas perigosas barateamento da pro dução e análise de movimento e produtos 671 Rotoscopia Derivada da técnica de animação tradicional a rotoscopia consiste na utilização de um filme ou vídeo de um personagem real como base para a animação Essa técnica foi usada tradicionalmente para elaborar desenhos animados baseados nos movi mentos de animais ou pessoas Disney por exemplo utilizou essa técnica para cap turar os movimentos do personagem Pluto Na época um televisor era fixado ao tampo de uma mesa e o desenhista capturava o movimento quadro a quadro dese nhando em papel manteiga Hoje os principais sistemas de animação possuem di versos recursos para automação da captura do movimento por rotoscopia Apesar de existirem técnicas melhores e de estar sendo utilizada há várias déca das a rotoscopia também foi utilizada para captura de movimento em grandes su cessos recentes do cinema como o Exterminador do Futuro II Figura 63 Na década de 1980 o tipo de captura de movimento usado era uma extensão da rotoscopia em que os movimentos dos atores eram filmados ao mesmo tempo em mais de um ponto de vista Marcadores eram colocados na pessoa e então manual mente codificados nos correspondentes pontos do espaço 3D Esse processo ficou conhecido como fotogrametria 672 Sistemas de Captura No fim da década de 1980 a captura de movimento que hoje conhecemos começou a aparecer Os sistemas de captura de movimento evoluíram muito nas últimas déca das com algoritmos capazes de reconhecer os marcadores no corpo da pessoa Atual mente existem basicamente quatro tipos ótico mecânico magnético e acústico 6721 Ótico É o tipo mais usado atualmente Esses sistemas podem oferecer ao ator mais liber dade de movimentos uma vez que não precisam de cabos ligados ao corpo Eles uti lizam pequenas bolas ou discos refletivos que são fixadas ao corpo do ator Podem ANIMAÇÃO 223 ser fixados nas articulações ou nos membros mas não nas juntas Precisam de pelo menos três câmeras de vídeo cada uma equipada com uma fonte de luz geralmente infravermelha dirigida para iluminar a área de visão da câmera As bolas ou discos refletem a luz na direção da câmera e um computador capta e sincroniza a imagem Os dados das posições x y z de cada marcador são aplicados a um sistema de cine mática inversa para animar um esqueleto 3D Uma desvantagem desse sistema é a facilidade com que o corpo do ator obstrui a reflexão das bolas Esse problema pode ser contornado usandose mais câmeras 6722 Mecânico É um dos tipos mais antigos de captura de movimento e ainda hoje é o segundo mais usado Possui alavancas que transformam movimentos rotacionais em dados de computador em tempo real É baseado em um conjunto de armações que devem ser aderidas ao corpo do ator As armações são conectadas entre si usando uma série de codificadores rotacionais e lineares potenciômetros Esses codificadores são conectados a uma interface que lê todos os codificadores ao mesmo tempo Para captura facial os tipos mais usados são os mecânicos e ópticos 6723 Magnético O terceiro tipo mais em uso captura o movimento por um transmissor magnético central e um conjunto de receptores que são colocados em várias partes do corpo 224 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 63 Captura de movimento com a técnica de rotoscopia Tem a vantagem de não sobrepor os marcadores mas a desvantagem de utilizar vá rios cabos fixados ao corpo do ator atrapalhando sua atuação e podendo ser afeta dos por qualquer objeto de metal na área de captura 6724 Acústico Este tipo utiliza marcadores que são transmissores de áudio capazes de calcular a distância pelo tempo de resposta do sinal Não é muito utilizado e apresenta as mes mas vantagens e desvantagens do magnético A captura de movimento não se limita a capturar apenas os movimentos huma nos Para algumas cenas de filmes como Parque dos Dinossauros foram usados bo necos na forma de dinossauros 673 Cartoon Motion Capture Essa técnica de captura de movimento de desenhos animados 2D foi recentemente proposta pela Universidade de Stanford Basicamente a técnica se parece com a de morphing Utilizando as técnicas de rotoscopia e composição o animador posiciona alguns pontos de controle no entorno do personagem 2D A partir dos pontos de controle o sistema cria uma animação com o canal alpha que contém a silhueta do persona gem O animador então define uma série de quadroschave para a animação como os criados na animação posetopose reposicionando os pontos de controle com referência a posição inicial Para o sistema a variação da posição dos pontos será a informação transformada em dados de captura de movimento que poderá ser usa da futuramente para animar outros personagens Essa técnica ainda não está dispo nível comercialmente mas com certeza será introduzida como fonte de captura de movimentos 68 ANIMAÇÃO DE PERSONAGENS 3D Durante a fase de animação os animadores criam a animação primária e depois a se cundária A animação primária consiste em animar as articulações e movimentos principais como o caminhar A animação secundária consiste em animar os peque nos movimentos que dão realismo como movimento de músculos e gordura respi ração piscar de olhos etc Para representar criaturas animadas é conveniente armazenar as relações entre cada porção móvel diferente dos elementos geométricos que compõem o persona gem Tomando como exemplo o homem as partes responsáveis pela deformação e movimento da malha do personagem 3D recebem o nome de seus correspondentes com a estrutura real do corpo humano Os ossos bones são elementos individuais de estruturação definidos a partir do comprimento e vetor de direção estabelecen do a ligação entre duas articulações As articulações joint são os pontos pivôs de ANIMAÇÃO 225 rotação que estabelecem a conexão entre os ossos podendo apresentar até três eixos de rotação O esqueleto é o conjunto formado por todos os ossos e articulações componentes da estrutura de deformação Além da parte óssea temos os músculos flexores que além de limitar o movimento do esqueleto deformam a malha O aspecto mais importante a ser levado em consideração para a síntese de movi mento em computador é o domínio do software a ser utilizado Independente do programa de síntese de movimento empregado um software de animação tridimensional gerencia as relações entre as diversas camadas que compõem um personagem sendo o mediador da interação entre o animador e o personagem virtual criado possibilitando o controle e o refino dos movimentos dos gestos e das ações realizadas pelos personagens e objetos animados Para o controle de movimento em personagens tridimensionais criados em com putador podemos identificar três camadas primárias para a sua construção Uma primeira camada composta pela estrutura formada pelos ossos respon sável por receber a entrada de dados sobre rotação e translação da estrutura do personagem Uma segunda camada que define a distorção do modelo geométrico que apresenta os controles de deformações quando o personagem por exemplo senta ou fala Uma terceira camada que descreve a superfície e a aparência da geometria que compõem o personagem ou objeto skin ou malha Ao contrário das de mais esta será vista como a forma final do personagem Na prática o processo de animação 3D ocorre na seguinte seqüência Baseado na história é feito o desenho em 2D do personagem demonstrando suas expressões Em seguida ocorrem simultaneamente a modelagem 3D do personagem e a cons trução do esqueleto A malha do personagem é então fixada no esqueleto e a anima ção é desenvolvida 681 Cinemática Diversas aplicações precisam representar o complexo movimento humano e ani mal Métodos tradicionais de animação baseados em quadroschave não trazem a realidade desses movimentos o que proporcionou a criação de inúmeras técnicas para a resolução desse problema Dentre as mais conhecidas estão a Scripting Ani mation Procedural Animation Forward Kinematics cinemática direta e Inverse Kinematics cinemática inversa A captura de movimento é atualmente a melhor fonte de dados de movimentos para a cinemática As funções cinemáticas são usadas para diferentes fins Na robótica elas são usadas para calcular a trajetória de um braço mecânico baseado na posição de um objeto nos jogossãousadasparadarrealidadeaosmovimentoseparaguiarporexemploobraço 226 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA de um jogador a um objeto e por fim nos trajes de captura de movimento são utiliza das para minimizar o uso de dispositivos de posição e orientação fixados à roupa Um corpo humano pode ser modelado com um conjunto de 19 articulações co nectadas por membros Figura 64 e dispostas numa estrutura hierárquica Figura 65 Se o grau de liberdade dessas articulações for conhecido ou especificado a po sição final do membro pode ser facilmente computada ANIMAÇÃO 227 1Cintura 2Virilha Direita 3Virilha Esquerda 4Joelho Direito 5Joelho Esquerdo 6Tornozelo Direito 7Tornozelo Esquerdo 8Ponta do Pé Direita 9 Ponta do Pé Esquerda 10Espinha Dorsal 1 11Espinha Dorsal 2 12Espinha Dorsal 3 13Ombro Direito 14Ombro Esquerdo 15Cotovelo Direito 16Cotovelo Esquerdo 17Pulso Direito 18Pulso Esquerdo 19Pescoço 19 13 14 12 11 16 10 15 17 18 3 2 1 4 5 6 7 8 9 FIGURA 64 Conjunto das articulações humanas 1Cintura 2Virilha Direita 3Virilha Esquerda 4Joelho Direito 5Joelho Esquerdo 6Tornozelo Direito 7Tornozelo Esquerdo 8Ponta do Pé Direita 9Ponta do Pé Esquerda 10Espinha Dorsal 1 11Espinha Dorsal 2 12Espinha Dorsal 3 13Ombro Direito 14Ombro Esquerdo 15Cotovelo Direito 16Cotovelo Esquerdo 17Pulso Direito 18Pulso Esquerdo 19Pescoço FIGURA 65 Estrutura hierárquica do conjunto das articulações humanas 6811 Cinemática Direta A estrutura da Cinemática Direta Foward KinematcsFK é a mais básica de todas as estruturas Quando é criada uma árvore de ossos ou objetos vinculados define se uma hierarquia FK Os ossos FK são filhos do anterior e assumem as proprie dades de posicionamento translação e rotação do osso anterior FK usa a metodologia de hierarquia topdown onde a posição das articulações pais interfere nas articulações filhas A função que descreve a forward kinematics se torna cada vez mais complexa com o aumento de articulações podendo ser impos sível revertêla FK é uma boa introdução para o entendimento de uma estrutura básica de árvore e como ela funciona mas se torna muito difícil para o animador executar o traba lho porque todos os ossos filhos ficam dependentes de qualquer animação que se for fazer no osso pai Uma vantagem no uso de FK é que você poderá fazer uso de arcos para o controle de quebras nos movimentos das juntas Quando se trabalha com FK geralmente são usadas malhas segmentadas como uma marionete por exemplo Uma malha segmentada é um grupo de peças conecta das nas juntas ligadas formando uma hierarquia Os esqueletos FK são geralmente usados em cenas com pouco movimento como uma narrativa por exemplo ou uma cena em que o personagem está falando e não se movimentando Isso na verdade não é uma regra A escolha entre as estruturas FK ou IK depende é claro do animador e de como ele imagina na sua criação os movimentos dos personagens 6812 Cinemática Inversa Já a Cinemática Inversa Inverse Kinematics utiliza a metodologia de hierarquia inversa na qual as posições das articulações filhas interferem nas articulações pais A função que a descreve calculará a posição e orientação das articulações e mem bros pais a partir da posição final da articulação filha da hierarquia ou seja com a estrutura IK um osso do pé na sua posição final definirá como os outros ossos do joelho e quadril diverão girar e se posicionar tornando a animação de um andar bem mais convincente A estrutura IK tem uma difícil configuração mas pode ser compensadora se cria da e observada corretamente Em um ciclo de um andar por exemplo o animador poderá poupar um bom tempo do trabalho pois essa estrutura facilitará esse tipo de movimento Comparandose as duas técnicas podemos perceber que a IK possibilita a utili zação de movimentos mais complexos com mais facilidade do que a FK Porém em contrapartida a IK faz com que o movimento seja definido por uma função o que pode resultar em movimentos indesejados Concluímos então que em muitos ca sos a solução ideal poderá ser a utilização de ambas as técnicas para o mesmo per sonagem 228 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 682 Ossos A estrutura de ossos criada para ser a base de deformação do personagem articulado é utilizada para o estabelecimento de vínculo geométrico entre os diferentes ele mentos possíveis de serem animados Essa estrutura composta por segmentos co nectados por articulações de forma hierárquica é a base para todas as deformações que serão aplicadas para a alteração do aspecto visual das superfícies Fisiologicamente não podemos fixar um eixo ou centro de rotação para uma ar ticulação pois são executados simultaneamente movimentos de rotação e desliza mento nas áreas de contato dos ossos Para a animação voltada para o entreteni mento podemos ignorar as pequenas translações ocorridas e criar um modelo de articulação ideal que faça uso apenas de coordenadas angulares para registrar o movimento dos parâmetros de rotação Os ossos podem ser também elásticos ou seja variar de tamanho durante a ani mação permitindo simular movimentos de criaturas que na verdade não possuem um esqueleto como minhocas ou criaturas típicas de desenho animado 683 Articulações São muito importantes para possibilitar posturas e gestos Lee e Kunii apresentam um interessante estudo sobre as mãos em Lee Kunii 1995 As articulações mais utilizadas na criação de personagens animados são as juntas de revolução e esférica descritas a seguir 6831 Junta de Revolução É o tipo de junção mais utilizada e o termo revolução se deve ao fato de que o ex tremo de um osso é rotacionado no extremo do outro osso componente da cadeia cinemática Por obter rotações apenas em um simples eixo a junta de revolução tem apenas um grau de liberdade Existem três formas de juntas de revolução R1 Dobradiça hinge é a forma mais comum e simples de articulação onde um osso A gira em um eixo perpendicular a outro osso B como as articulações encontradas no cotovelo e no joelho O ponto localizado no extremo final do osso A realiza um movimento circular com centro de rotação no extremo final do osso B R2 O eixo de rotação é paralelo aos dois ossos A e B O ponto extremo de B não pode mudar sua posição no espaço mas pode girar longitudinalmente em relação ao osso A Podemos criar um modelo simplificado para o movimento do pulso ao girar a palma da mão para cima e para baixo com esse tipo de junta ANIMAÇÃO 229 R3 É uma variação de R2 o eixo de rotação permanece como na forma anterior mas o osso B muda de posição e é colocado perpendicularmente em relação ao osso A Dessa forma o extremo final de B rotaciona ao redor do ponto final do osso A como ao realizar todos os movimentos possíveis do pulso 6832 Junta Esférica Este tipo de articulação implementa o conceito de junção ballandsocket onde uma esfera está livre para executar qualquer movimento de rotação enquanto esti ver segura por um encaixe 6833 Grau de Liberdade As possibilidades de movimento do mecanismo de articulação no espaço tridimen sional correspondem ao número de parâmetros cinemáticos independentes permi tidos e são chamados de grau de liberdade DOF Degree of Freedom Quanto maior o número de DOFs maior a liberdade de movimentação da estrutura e confi gurações possíveis para o estabelecimento de poses O grau de liberdade está diretamente relacionado aos ângulos de rotação em tor no dos eixos x y e z Capítulo 2 Podemos limitar o grau de liberdade para um ou dois eixos O pulso humano é um bom exemplo de grau de liberdade em dois eixos se observarmos os movimentos de nosso pulso podemos rotacionálo de cima para baixo e viceversa e de um lado para o outro ou seja em dois eixos Nosso joelho é um bom exemplo de grau de liberdade em um eixo ou seja de cima para baixo Podemos também limitar o movimento pelo ângulo máximo possível entre as ar ticulações Se movimentarmos nosso joelho para trás veremos que ele percorre um ângulo máximo de 180º Observando qualquer criatura viva vemos que quando a articulação se rotaciona próxima ao limite máximo há uma redução da velocidade isso tem o nome de amortecimento Esse fenômeno é ao mesmo tempo a representação do limite da musculatura e da capacidade de rotação em um determinado eixo de uma junta Neste caso podemos controlar os atributos de amortecimento de duas formas alcance e resistência Figura 66 O alcance referese aos limites máximos e mínimos das articulações e pode ser controlado pelo ângulo máximo de rotação A resistência está relacionada à capacidade elástica dos músculos e pode ser con trolada por um atributo de resistência que determina o alcance 684 Esqueleto O conjunto formado pela ligação entre os ossos e articulações é denominado esque leto O esqueleto é organizado também segundo um modelo hierárquico onde as 230 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA transformações ocorridas no topo da hierarquia são herdadas pelos segmentos infe riores O nível mais alto de uma estrutura hierárquica é chamado origem ou raiz root cada origem de uma composição pode ter um ou mais filhos child Nesse arranjo o pai parent de um osso é o segmento imediatamente acima na cadeia cinemática que controlará o movimento de todos os ossos localizados abaixo Des sa forma apenas o acúmulo das transformações geométricas entre os sistemas de coordenadas das articulações ou seja ao movimentar o osso do braço toda a estru tura inferior antebraço punho mão e dedos acompanhará esse movimento Simulando uma estrutura biomecânica real o esqueleto tem a função de receber as informações de translação e rotação simples para que sejam posteriormente aplicadas na geometria original Outros parâmetros também armazenados pelo esqueleto são A estrutura hierárquica de toda a ramificação dos ossos descrição do estado de cada osso em relação aos segmentos estabelecidos pela vinculação hierár quica através da definição dos manipuladores Os parâmetros das articulações matrizes de transformação com os parâme tros cinemáticos relativos ao comprimento posição orientação distância re lativa ângulo formado entre os segmentos adjacentes e rotação longitudinal twist ANIMAÇÃO 231 Início da Resistência Limite de Alcance FIGURA 66 Atributos de amortecimento da articulação da mão Os limites de rotação e atributos físicos restrições arbitrárias concedidas às articulações para restringir o movimento nos eixos de rotação Podem ser atribuídos valores de resistência oferecida pela articulação ao movimento e aos limites para o ângulo de rotação possível para uma junta Um esqueleto para animação não precisa ser a cópia exata do esqueleto real do personagem Um esqueleto pode ser composto por uma ferramenta especial de ani mação Monheit e Badler 1991 Geralmente iniciamos a construção do esqueleto a partir das pernas dando as proporções dos ossos à malha do personagem Quando pensamos em um esqueleto real pensamos primeiro nos ossos e depois nas articulações que permitirão o mo vimento Na animação por computador precisamos primeiro focar nas articula ções e depois no relacionamento hierárquico indicado pelos ossos Figura 67 Observe que o osso tem um formato cônico com lados de polígonos triangulares cujas extremidades são usadas para definir as hierarquias Logo a junta na parte grossa estará hierarquicamente superior a junta na parte fina ou seja será o pai da mais fina Quando o pai se move o filho também se move o inverso não é verdadei ro Qualquer série simples de articulações conectadas por ossos é chamada de ca deia de articulação A articulação mais alta na hierarquia da cadeia de articulação é chamada de articulação pai Um membro consiste em uma ou mais cadeias de articulação que ramificamse em uma árvore de estrutura Figura 68 A articulação mais alta na hierarquia desse esqueleto é chamada de articulação raiz quando a articulação raiz se move ou gira tudo deve mover ou girar com ela Existem dois caminhos básicos para posicionar uma cadeia de articulação as já comentadas cinemática direta e cinemática inversa Com a cinemática direta temos de especificar as rotações de cada articulação indi vidualmente a partir da articulação pai e em todas as articulações hierarquicamente abaixo Essa abordagem é excelente para criar movimentos detalhados de arco 232 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Articulação Pai Osso Articulação Filho FIGURA 67 Relacionamento hierárquico indicado pela forma triangular do osso Com a cinemática inversa tudo o que você terá de fazer é dizer à articulação mais baixa na hierarquia da cadeia de articulação onde será sua nova posição todas as articulações acima automaticamente girarão A cinemática inversa oferece um ca minho muito intuitivo para posicionar uma cadeia de articulação porque habilita uma meta dirigida de posicionamento 6841 Controladores IK Para posicionar uma cadeia de articulação com a cinemática inversa será necessá rio adicionar uma ferramenta especial para o esqueleto Essa ferramenta não possui um nome específico chamaremos de Controladores IK Um controlador começa na articulação pai e pode terminar em qualquer articu lação abaixo dela Por exemplo para cada braço você pode criar um controlador que controle a cadeia de articulação que começa na articulação do ombro e finaliza na articulação do pulso Figura 69 ANIMAÇÃO 233 Controlador FIGURA 69 Controlador IK iniciando na articulação do ombro e finalizando na articu lação do pulso FIGURA 68 Árvore de estrutura de uma cadeia de articulação Os controladores não só facilitam o processo de posicionamento como também desenvolvem um importante papel na solução dos movimentos entre os qua droschave A arquitetura de um controlador é composta por uma série de elementos e defi nições como mostra a Figura 610 Articulação Inicial Start Joint é onde começa o controlador IK Deve ser a primei ra articulação na hierarquia da cadeia de articulação por exemplo a articulação raiz Articulação Final End Joint é onde termina o controlador IK Deve ser a última ar ticulação na hierarquia da cadeia de articulações Fio Controlador Handle Wire é uma linha que percorre todos os ossos indo da arti culação inicial até a final End Effector é o fim do controlador IK e está localizado na articulação final Objetivo Goal indica onde o controlador deve estar Você pode movêlo para qualquer ponto da cena O controlador usará essa posição para determinar o movi mento Disco de Rotação Rotation Disc está localizado na articulação inicial e indica como a cadeia de articulações pode rotacionar 234 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Disco de Rotação Indicador de Plano Fio Controlador Articulação Inicial Vetor de Controle Disco de Deformação Articulação Final Vetor Pólo FIGURA 610 Elementos da arquitetura de um controlador IK Disco de Deformação Twist Disc está localizado na articulação final e é usado como ferramenta para trançar a cadeia de articulações Indicador de Plano Plane Indicator indica a orientação do plano da cadeia de arti culações que é o grau de deformação na cadeia de articulação em relação ao plano de referência Pode ser imaginado como a reflexão do plano da cadeia de articulação no disco de rotação Plano de Referência Reference Plane quando há a rotação e a deformação da ca deia de articulações o plano deve rotacionar em relação a algum outro plano para que o grau de deformação possa ser medido Para isso o plano da cadeia de articula ção rotaciona em relação ao plano de referência O plano de referência é definido pelo Vetor de Controle e pelo Vetor Pólo Vetor de Controle Handle Vector é a linha que vai da articulação inicial até o End Effector É usado para indicar em qual articulação o controlador IK deve iniciar e acabar Vetor Pólo Pole Vector o vetor pólo inicia na articulação inicial e pode ter minar em qualquer articulação O propósito do vetor pólo é definir o plano de referência 6842 Ciclo de Animação O ciclo de animação é uma poderosa técnica derivada da animação tradicional Essa técnica é baseada na observação do movimento contínuo no processo de caminhar correr ou qualquer movimento que se repita Desenvolver um ciclo de animação nãolinear envolve duas poseschave onde a primeira e a última poses do ciclo são iguais No caso da caminhada por exemplo as poseschave intermediárias do ciclo são quando um dos dois pés está plantado no chão para corrida quando os dois estão no ar e quando um pé está acima do outro 6843 Sistemas de Animação IK Uma das formas mais fáceis de controlar uma animação de personagem é usando um sistema de animação IK Esses sistemas permitem a inserção automática de modelos de controladores IK préfabricados com formas variáveis por exem plo bípede quadrúpede com ou sem rabo etc Esses modelos podem ser facil mente deformados para adaptaremse à escala da malha do personagem Figura 611 As diferenças entre o sistema de animação IK e as estruturas ósseas são descritas na tabela que segue ANIMAÇÃO 235 Estrutura Óssea Sistemas de Animação IK você cria a sua estrutura de ossos o sistema cria uma estrutura para você controle de transformações ilimitadas o sistema limita o movimento e as rotações acesso a todas as funções do sistema de modelagem interface limitada pelo sistema de modelagem difícil de aplicar arquivos de movimentos motion capture fácil de aplicar arquivos de movimentos permite animar qualquer tipo de objeto permite somente animar objetos com aspecto humano ou animal animação manual animação automática com funções avançadas para multidões Como podemos ver a estrutura óssea é mais versátil do que os sistemas de ani mação IK Em compensação o sistema IK disponibiliza em seus arquivos uma va riedade enorme de ciclos de animação captados em sofisticados equipamentos de motion capture com controles dos limites de movimento predefinidos 685 Músculo Flexor Para animar as deformações de pele será necessário usar ferramentas de deforma ção especiais chamadas flexores Os flexores são ferramentas de alto nível para usar com peles malha e esqueletos O efeito provocado na malha dependerá da posição do esqueleto Os flexores podem ser divididos em reticulados lattice esculturais sculpt ou de grupo cluster 236 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 611 Um salto para trás usando o sistema de animação IK Umflexorreticuladoinfluenciaamalhaemvoltadasarticulaçõesouosossosdasar ticulaçõesEsseflexorenrugaealisaamalhaedádefiniçãomuscularemvoltadoosso Um flexor escultural influencia a malha em volta das articulações ou os ossos das articulações criando saliências e inclinações A Figura 612 demonstra a formação da junta do antebraço e do bíceps utilizando o flexor As deformações anatômicas provocadas pelos flexores podem ainda simular o efeito de juntas do joelho ou co tovelo Um flexor de grupo controla os pontos da malha em volta das articulações com variações percentuais de influência O tempo que você gasta para construir um esqueleto e criar os flexores é bem gasto Uma boa construção será recompensada na hora de animar No exemplo da Figura 613 a imagem à direita mostra o número de controladores para animar o di nossauro da imagem à esquerda A estrutura de animação desse dinossauro usou 138 ossos 34 músculos 84 dummys ou helpers 10 controladores IK e 18 pontos de referência 686 Cabelos e Pêlos A animação de pêlos é importante na geração realista de personagens humanos ou animais Hzinen e Walter 2001 O mesmo processo pode ser aplicado na anima ção de gramas ou qualquer outro tipo de objeto parecido Contudo existem diver sos problemas relacionados à quantidade de pêlos que não raramente ultrapassam a casa dos duzentos mil Para o filme Um Lobisomem Americano em Paris foram renderizados cerca de 35 milhões de pêlos no corpo do Lobisomem As técnicas de renderização de cabelospêlos são bem recentes Em 1988 por exemplo Miller propôs a geração de cabelos pela modelagem de triângulos No ano ANIMAÇÃO 237 FIGURA 612 Formação da junta do antebraço e do bíceps utilizando o flexor seguinte Kajiya e Kay propuseram a utilização de mapeamento tridimensional Em 1992 Watanabe e Suenaga apresentam um modelo considerando cada fio formado por seqüência de prismos triangulares Watanabe e Suenago 1992 Atualmente os sistemas de animação de pêloscabelos são geralmente baseados na interpolação entre cabelos guias Os cabelos guias são splines ou seja o anima dor pode posicionar dois pontos para definir as curvas que serão o cabelo guia Os cabelos relacionados com esses tomarão a forma dessa curva Devido ao formato va riado da pele um bom modelo deverá ter cerca de 200 cabelos guias no corpo Outras questões relevantes são os parâmetros relacionados ao cabelo como es pessura comprimento cor da raiz a ponta forma liso encaracolado especulari dade influência da gravidade inércia etc Para um maior realismo cada cabelo deve ser capaz de receber e projetar sombras e ainda interagir com outros cabelos ao se movimentar com o vento ou como personagem o que dá volume e determina a direção na colisão entre fios 687 Animação Facial Animação facial referese à criação de objetos tridimensionais assemelhados a fa ces capazes de simular expressões fala e movimentos característicos da face Esse campo tem sido objeto de pesquisa constante nos últimos tempos e pode ser en contrado em interfaces sofisticadas de homemcomputador jogos interativos mul timídias realidade virtual etc As tecnologias de suporte incluem síntese da fala e inteligência artificial Hong et al 2002 A expressão facial humana foi assunto de investigação científica por mais de 100 anos Os esforços em relação à expressão facial por computador começaram há aproximadamente 25 anos É interessante que a maioria das técnicas atualmente empregadas envolvam os princípios desenvolvidos na comunidade científica em alguns casos várias décadas atrás 238 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 613 A complexa estrutura de animação de um dinossauro O mais antigo trabalho com computadores baseado em expressões faciais data do início da década de 1970 Em 1971 Chernoff propôs o uso de faces bidi mensionais como forma de representar dados dimensionais A primeira anima ção tridimensional foi criada por Parke em 1972 Em 1973 Gilleson desenvol veu um sistema interativo para montar e editar imagens faciais a partir do dese nho de linha E em 1974 Parke desenvolveu um modelo facial tridimensional parametrizado Na década de 1980 foram desenvolvidos os primeiros modelos de controle de músculo da face e técnicas de caricatura facial Em 1985 a película animada do cur ta Tony de Peltrie foi um marco para a animação facial Pela primeira vez foi mos trado que a expressão facial e a animação da fala eram fundamentais para se contar uma história Nesse período também foram desenvolvidos modelos de novos mús culos por Waters e um modelo abstrato da ação do músculo por Magnenat Thalmann Na década de 1990 a animação facial atingiu o realismo com o filme Toy Story desenvolvido pelo estúdio Pixar Quando falamos em animação facial não podemos deixar de mencionar o filme Sherk no qual os personagens são capazes de expressar os diálogos e as emoções através de um complexo sistema de animação facial desenvolvido na PDIDream Works Utilizando ferramentas especiais chamadas shapers basicamente um pro cesso de camadas que deforma a superfície a partir do seu interior os animadores puderam realizar sofisticados movimentos aplicando camadas de ossos músculos gordura pele cabelos e roupas que interagem entre si Essencialmente o crânio do personagem é formado no computador e coberto com uma camada de músculos que simulam os verdadeiros da face Depois tudo é coberto com a pele e programa do para responder às manipulações dos músculos como aconteceria num rosto hu mano completado por rugas marcas de expressão e outras imperfeições Centenas de controles estão ligados no rosto como se fossem nervos humanos permitindo aos animadores simularem os fonemas da fala para uma perfeita sincronia labial No fil me há também avanços na criação de ambientes complexos e orgânicos de roupas que se movimentam dobram e reagem à luz como tecidos de verdade do fogo e flui dos com viscosidades diferentes obtidas através do uso do premiado Fluid Anima tion System FLU da PDIDreamWorks Existem diversos métodos de animação facial dentre os quais podemos citar 6871 Sincronização Labial O processo de animação facial em 3D segue a linha do modelo de animação 2D onde o animador deve desenhar todas as posições labiais da cena e modificálas ten tando uma sincronização labial Lip Sink da fala ANIMAÇÃO 239 6872 Seqüência de Texturas Neste método a animação é conseguida através da troca do mapeamento para cada posição da boca Para isso é necessário um arquivo de posição ou textura para cada mudança de fonema Matheus et al 2002 6873 Morphing Neste método são modeladas faces para cada fonema e expressão O software en tão faz a interpolação das faces criando a sincronização A técnica também é muito útil para caracterizar o envelhecimento do personagem Rowland e Perrett 1995 6874 Esqueleto Como descrevemos anteriormente a idéia de articulações simulando esqueleto pode ser usado para animar qualquer coisa inclusive a face 6875 Free Form Deformation Para criar as diversas posições da boca utilizamos uma ferramenta de deformação so breamalhadorostoquefuncionabasicamentedamesmamaneiraqueoesqueleto 6876 Weighted Morphing Da mesma maneira que o Morphing são modeladas as posições da face para cada grupo de músculos faciais fonemas ou expressões Essas posições chamados VISEMES são aplicadas como deformação à face inicial neutra e podem ser mixa das em diferentes proporções propiciando uma diversidade de poses Normalmen te esse é o método predileto dos animadores devido à sua rapidez e facilidade de criação de novas posições Independente da escolha do método os fonemas da língua portuguesa podem ser formados por no mínimo doze posições onde teremos cinco para as vogais A E I O e U e mais sete para o grupo de sons BPM CKGQ DNTL FV R SZ JXCH Para isso temos de quebrar o áudio das frases identificando os picos de fonemas e seu tempo em quadros Além da definição da quantidade de posições dos fonemas devemos definir faces para os sentimentos que o personagem terá durante a animação felicidade triste za surpresa medo ódio desgosto etc Em alguns casos dependendo do realismo desejado você poderá optar pela reti rada de alguns fonemas deixando somente aqueles que apresentam uma variação maior entre os picos É importante observar alguns aspectos da fala humana por exemplo a coarticu lação ou seja sempre que iniciamos uma fala nossa boca antecipa a forma de emis 240 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA são do próximo fonema Procure estudar e observar os sotaques e expressões regio nais Animadores freqüentemente utilizam espelhos e demonstrações com o pró prio corpo para captar a essência do movimento Zahng e Cohen 2002 69 ANIMAÇÃO DE SUPERFÍCIES DEFORMÁVEIS Nos últimos anos temos percebido um crescente interesse no desenvolvimento de modelos de animação baseados na física Engrenagens capazes de simular colisões gravidade entre outros fenômenos passaram a ser distribuídas em conjunto com os browsers mais usados de navegação na Internet Inicialmente a animação era rea lizada apenas com objetos rígidos mais tarde surgiram os objetos articulados e re centemente aqueles ditos flexíveis ou deformáveis A animação de personagens ou objetos deformáveis exige que se possua um mo delo geométrico que permita a mudança de forma ao longo do tempo Em computa ção gráfica isso pode ser definido através de modelos físicos de curvas superfícies ou mesmo sólidos deformáveis O objetivo principal na simulação de modelos deformáveis é produzir movimen tos fisicamente realistas Exemplos incluem a simulação da musculatura do corpo humano a fim de representar realisticamente a pele de um personagem falando a simulação do fluxo de líquidos viscosos como por exemplo derramamento de óleos ou ainda a simulação de tecidos parte essencial de qualquer personagem e produto para a indústria de vestuário Ng e Grimsdale 1996 O modelo geométrico para simular uma superfície deformável consiste em uma malha representada por uma matriz de pontos M Cada elemento Mij dessa matriz contém uma posição xyz correspondente a um ponto da superfície em um espaço tridimensional Considerase ainda r como a distância entre os elementos da matriz M já definida Para simular fisicamente uma malha flexível podemos usar o conceito de mola elásticas ou que obedecem a lei de Hooke Esse modelo baseiase fundamental mente na aplicação de forças sobre os diversos pontos de massa da malha gerando novas posições para o equilíbrio dos mesmos Considerando a aplicação de apenas três forças distintas da gravidade de elasti cidade e de curvatura ou torção obtemos uma força resultante em cada ponto da malha que pode ser calculada da seguinte forma Fresultante Fgravidade Felasticidade Fcurvatura Frestrição Isso no entanto não quer dizer que não possam aplicar outras forças ao modelo Por exemplo para incluir a simulação da força do vento ou qualquer restrição bas ta acrescentar este elemento na soma acima ANIMAÇÃO 241 A produção de uma animação tipicamente segue os seguintes passos 1 Uma história é inventada 2 Os personagens da história são criados ganhando personalidades e compor tamentos 3 Desenvolvese um storyboard No storyboard desenhase cada tomada de cena na ordem que o filme ocorre O storyboard fornece uma estrutura e um plano global para a animação ou filme permitindo ao diretor e sua equipe ter uma idéia clara de onde cada tomada se encaixa no filme Incluise uma breve explicação da tomada 4 Com base no storyboard são criados os quadroschave 5 ParatestarosmovimentosfazseoanimaticOanimaticéumrascunhoanima doquevemsendolargamenteusadoporgrandesprodutorasgraçasapopulari zação dos softwares de animação que agilizam e barateiam o processo 6 Finalmente são criados os chamados inbetweening quadros entre os qua droschave A animação por computador segue todos esses passos com a diferença que algu mas etapas não são mais desenhados a mão 611 PRINCÍPIOS DA ANIMAÇÃO As animações realistas devem seguir alguns princípios básicos Esses princípios alertam para observações dos fenômenos físicos e propriedades dos materiais en volvidos na animação Seguem sete princípios mas suas observações podem contri buir para novos itens nesta lista Achatar e Esticar todo objeto possui sua rigidez elasticidade amortecimento e massa que devem ser consideradas no processo de animação Esticar e achatar aju da a acentuar o movimento Antecipação os movimentos devem ser antecipados por exemplo se você vai dar um soco o braço deve ir para trás e só então para frente Momento as ações devem estar de acordo com o peso tamanho e personalidade do personagem Ações secundárias as ações secundárias fornecem um suporte para a ação principal fornecendo reações de efeito físico Slow in Slow out as ações iniciamse e terminam lentamente Esse conceito é de vido às leis da inércia e gravidade e pode ser observado no ciclo de uma bola pulan do Esse conceito também é válido para animações de esqueletos 244 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Arco quase nada se movimenta em linha reta Se você observar atentamente notará que terá de fazer um grande esforço para andar em linha reta Direção a direção é a noção que a audiência deve ter para não se perder na história Este ponto pode se complicar quando voltamos ou avançamos no tempo em uma história 612 ANIMAÇÃO DE CENA Uma cena é um evento ou interação única entre personagens acontecendo durante um período de tempo e em um lugar único que move a história adiante na direção de um clímax e resolução um evento um período de tempo um lugar Quando elaboramos uma cena precisamos considerar Ficar fora de clichês e soluções fáceis Fazer o inesperado Usar obstáculos para complicar e fazer reversões inesperadas O que esta cena realizará As cenas podem ter um ponto principal e diversos pontos secundários Cada informação realmente importante de enredo em seu roteiro provavelmente exige uma cena separada Quem está na cena Onde e quando será realizada a cena Quem é o protagonista da cena Normalmente é uma pessoa ou animal mas pode ser um objeto inanimado ou até um ato de natureza O que os personagens querem Qual será sua atitude Quem está colocando obstáculos Por quê O que este personagem quer Os personagens estão conhecendo o problema ou ele é desconhecido Os personagens estão se referindo direta ou indiretamente ao que querem Onde está a tensão ou o conflito O que acontece nesta cena Os personagens estão mais próximos ou mais dis tantes do seu objetivo inicial da cena Como a cena revela o caráter e a motivação pelo comportamento dos prota gonista A cena tem um catalisador ou incidente estimulador no princípio A cena está criando um clímax Como será o clímax mais engraçado ou mais dramático ANIMAÇÃO 245 Uma cena geralmente possui um começo um meio e um fim Retire qualquer ex posição desnecessária Adicione alguma comédia Se o público for criança opte por cenas rápidas com muitas ações Lembrese de que as crianças perdem a atenção ra pidamente 613 ANIMAÇÃO NO PROCESSO DE APRENDIZADO A habilidade de concepção criação e a abstração tem papel fundamental na solução de problemas reais Muitas pessoas são capazes de resolver problemas se estes fo rem apresentados em uma forma mais concreta mas quando estes lhe são apresen tados de forma abstrata sentem enorme dificuldade Esta deficiência muitas vezes indica que o processo de aprendizagem aconteceu apenas em nível mecânico no qual o aluno é capaz de aplicar construções e procedimentos porém sem domínio conceitual dos mesmos Essa situação o impedirá de resolver problemas que exijam adaptação das técnicas aprendidas ou sua aplicação em outro contexto Pior ainda por serem resultado de memorização temporária esses conhecimentos serão perdi dos em prazo muito curto Animações que transformem gradualmente imagens realistas de objetos em representações mais abstratas e viceversa são meios auxiliares poderosos para o aprendizado Essas animações devem fazer parte de metodologias específicas para auxiliar a compreensão de conceitos sejam abstratos que difíceis de serem entendidos A transferência de um contexto para o outro é também melhorada pelo uso de animações que ajude os alunos a representar os problemas em níveis mais altos de abstração Como é o caso da representação de formas de objetos reais por modelos geométricos Assim é interessante usar a capacidade da animação parafixos e transferir o co nhecimento de um contexto para outro fazendo com que os alunos percebam que o conhecimento adquirido pode ser útil em novas situações isto é para auxiliar a ge neralizar e abstrair RESUMO A animação é em muitos casos o objetivo final dos estudos da computação gráfica Este capítulo não tem a pretenção de ser mais do que uma introdução inicial ao as sunto Dependendo de seu interesse específico na área pode ser muito difícil ou bastante fácil encontrar trabalhos que o auxiliem Talvez a melhor dica que pode ríamos fornecer neste sentido seria visitar os sistes dos 13 mais atuantes grupos de animação que cujos endereços se encontram nas referências bibliográficas no final do livro CAPÍTULO 7 Realismo Visual e Iluminação 71 Rendering 711 Fases do Processo de Realismo Visual 712 Realismo por Passadas 713 Acabamentos nãofotográficos 72 Rasterização 721 Algoritmo de Bresenham para traçado de linhas 722 Rasterização de Polígonos 723 Preenchimento de polígonos por scanline 724 Remoção de Linhas e Superfícies Escondidas 73 Iluminação 731 Tipo de Emissores 732 Reflexões 733 Refração 734 Transparência 735 Sombreamento Shading 736 Sombras 737 Modelo de Iluminação Global 738 Técnicas de Iluminação 74 Texturas 741 Mapas Procedurais 742 UVW Map 743 Texture Map 744 Environment Map ou Mapa de Reflexão 745 Bump Map 746 Light Map 747 MipMapping 75 HiperRealismo 751 High Dynamic Range Images HDRI 752 Atenuação Atmosférica 753 Area Light e Soft Shadow 754 SubSurface Light Scattering 755 Depth of Field DOF ou Profundidade de Campo 756 Motion Blur Desfoque por Movimento 757 Film Grain 758 Lens Flare 759 Glow 76 Realismo e Iluminação em OpenGL 761 Zbuffer 762 HiddenSurface Removal 763 Algoritmo de Recorte Culling 764 Iluminação 765 Texturas Criar imagens sintéticas realistas é o objetivo final da computação gráfica Basicamen te podemos definir o realismo visual como as técnicas de tratamento computa cional aplicadas aos objetos sintéticos gerados por modelagem de sólidos partículas fractais ou qualquer técnica de geração com objetivo de criarlhes uma imagem sin téticaomaispróximodarealidadequeseteriaseelesfossemconstruídosefilmados O realismo é fundamental nas simulações no entretenimento na educação e muitas outras aplicações Como exemplo de aplicação prática temos a utilização do realismo pelas construtoras para mostrar aos compradores de um apartamento por exemplo como será o ambiente de uma sala sua iluminação a vista que se terá de suas janelas o seu exterior as possibilidades de decoração ou seja para que se conheça a realidade que se poderá ter antes de ela ser realmente construída Você já deve ter se deparado com esse exemplo ao entrar em uma página de classificados para comprar um imóvel ou nos sites de construtoras Noentretenimentosãomuitoscitadospelasmídiasoscenáriosdefilmeseprogra mas Certamente você já sentiu nos jogos a importância de um cenário ou de um per sonagem mais real Na educação um ótimo exemplo são suas utilizações nas escolas de medicina e nos grandes hospitais Atualmente a reconstrução realística tridimen sional do corpo humano auxilia no planejamento de procedimentos cirúrgicos PLS ou Labs Surgical Planning e no ensino de anatomia Ela possibilita a visualização dos órgãos seu interior exterior vistas em fatias e interrelações o estudo dos diversos sistemas por exemplo digestivo circulatório nervoso a visualização em cortes ou camadas estruturais como ossos músculos órgãos Uma ótima idéia aqui é visitar as páginas da Internet onde podem ser vistos usados e até obtidos gratuitamente os atlas de anatomia resultantes do projeto Visible Man and Woman e os diversos soft wares como o 3DSlicer visualicuffbr biomedicalphtml Podemos considerar o realismo em duas etapas a estática e a dinâmica A dinâ mica está relacionada ao movimento da cena e seus personagens Sendo introduzi da no capítulo referente à animação Neste capítulo descreveremos as técnicas e teorias necessárias para gerar objetos e cenas estáticas com realismo fotográfico 71 RENDERING A computação gráfica trata da síntese de imagens através do computador Sintetizar uma imagem não é mostrála no computador digitalmente a partir da captura de algo existente Isso é tratado no Processamento de Imagens Sintetizar uma imagem uma cena ou um objeto é criála em termos da definição dos dados dos objetos que a compõem Isso se faz a partir da geometria da cena das informações sobre os materiais de que são feitos os objetos suas cores e suas texturas das condições de iluminação ambiente e da posição de observação da cena Nesse processo de criação sintética é denominado rendering a fase de Introdução nas cenas do realismo foto gráfico REALISMO VISUAL E ILUMINAÇÃO 249 Se você procurar uma tradução no dicionário para rendering achará 1 uma in terpretação de um drama ou uma composição musical 2 uma tradução ou 3 uma representação de um edifício interior etc executado em perspectiva Ou seja não existe uma tradução fora de nossa área adequada para essa palavra como não existe uma tradução literal para diversos outros termos técnicos que nos contextos onde são usados têm significado próprio Basicamente podemos descrevêla por realismo visual Podemos interpretar o processo de rendering como o de conver ter dados em uma imagem realística ou simplesmente sintetizar um objeto ou cena até terse deles uma aparência de algo real e não de formas inteiramente criadas no computador 711 Fases do Processo de Realismo Visual Este processo envolve sete fases distintas Nem todas usadas em todas as aplicações O mais usual é que um trabalho seja apresentado em um nível de realismo adequa do ao seu uso Principalmente porque ao aumentarse o realismo de uma cena au mentase também seu tempo de processamento e custo de geração Na primeira fase temse a construção do modelo que conterá todas as informa ções necessárias para o processo de realismo visual Essa primeira fase consiste na utilização de alguma técnica de modelagem A segunda fase consiste em aplicar transformações lineares ao modelo de modo que ele tenha aparência tridimensio nal nos diversos dispositivos de visualização geralmente bidimensionais Essa fase consiste então na utilização de projeções e perspectivas adequadas A fase se guinte considera a eliminação de polígonos ou faces escondidas devido à posição relativa entre os objetos da cena e o observador culling backfaces São com essas técnicas que iniciaremos nosso estudo de realismo visual nas próximas seções Mui tas delas usam os dados tridimensionais dos objetos e devem ser refeitas a cada mu dança de ponto de observação ou forma de projeção Na quarta fase são desconsideradas as partes das cenas que não serão mostradas são os chamados recortes Essa fase até o fim do capítulo ficará bem entendida mas agora talvez fique melhor explicada por uma analogia Imagine que você esteja vendo uma paisagem de sua janela Mesmo que você tenha uma infinidade de coisas para ver algumas para sua visão será limitada Por exemplo o que estiver atrás de paredes e não de vidros transparentes detalhes muito longe para serem bem per cebidos ou coisas muito pequenas que não merecem ou conseguem chamar sua atenção Assim para que a cena fique parecendo real muitos dados presentes no modelo vão deixar de ser mostrados embora estejam descritos pelos dados da cena Isso é chamado de clipping e nem se dê ao trabalho de procurar uma tradu ção no dicionário para isso como rendering o importante é o seu sentido no con texto de nossa área A quinta fase se preocupa em converter a representação tridimensional para pi xels Seja lá qual for o sistema de coordenadas que se esteja usando os dados serão 250 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA levados para um conjunto de coordenadas do dispositivo em que será mostrado Essa conversão de coordenadas leva os dados do modelo para o mundo digital Li nhas e áreas contínuas serão transformadas em conjuntos de pixels Esse processo é denominado de rasterization e iremos aqui denominálo usando um anglicismo rasterização Usamos isso no sentido de usar um termo técnico global que você identificará facilmente ao ler trabalhos escritos em qualquer língua A sexta fase é de certa maneira uma continuação da terceira pois trata também da eliminação de partes de um objeto que devem ser removidas Só que agora essas partes são devidas à interferência dos diversos objetos presentes na cena onde de vido à sua posição relativa pode ocorrer que uns fiquem na frente de partes de ou tros Muitos autores englobam essas duas partes no que se chama tratamento de partes escondidashiddenPreferimosseguiralinhadosqueusamseparálaspoisa maioria das eliminações de partes de objetos é feita em coordenadas do dispositivo depois de o processo passar pela quinta fase enquanto a eliminação de faces intei ras culling usa as coordenadas tridimensionais do objeto A última fase trata de colorir cada pixel individualmente usando um esquema incremental ou interpolador de sombreamento Nessa fase o realismo fotográfi co começa a ser realmente tratado e percebido E para que seja feito adequadamen te devese levar em conta as luzes presentes na cena suas intensidades e direções em relação aos objetos Também devem ser consideradas todas as características das superfícies representadas transparência brilho reflexão e textura Ainda de vem ser consideradas as sombras que os diversos objetos fazem entre si e nas super fícies em que se apóiam O nível de realismo dessa fase pode ser tão sofisticado quanto a aplicação precisar sendo necessário o uso de modelos físicos de repre sentação da luz e sua interação com os materiais para um tratamento adequado 712 Realismo por Passadas Pelo já comentado deve ter ficado claro que a construção de uma cena realística é um processo incremental Isso ocorre tanto no nível conceitual discutido anterior mente quanto no nível das técnicas e softwares disponíveis para a realização das di versas fases do processo Essa forma de criação de cenas realísticas é denominada de realismo por passadas Assim a renderização por passadas é a forma utilizada pela grande maioria dos sistemas para geração de cenas realísticas Esse processo permite que os atributos de uma cena sejam renderizados separadamente da sua geração ou modelagem e em muitos casos que diversas técnicas e softwares participem do processo de inclu são do grau de realismo desejado à cena Uma série de bons motivos tornou a renderização por passadas o padrão da com putação gráfica atual Um desses é a economia de memória pois com essa técnica não precisam ser colocados todos os objetos de uma vez para o render Isso torna possível a renderização de cenas complexas em um PC comum Outro é a facilida REALISMO VISUAL E ILUMINAÇÃO 251 de da introdução de modificações isso é se precisarmos alterar somente alguns elementos de uma cena como letras sombras ou cores não será necessário perder ou refazer todo o processo de renderização anterior Ele pode ser reiniciado ou alte rado a partir do ponto desejado Um outro motivo que torna mais eficiente essa forma de renderização é a possibi lidade de maior utilização das imagens estáticas Por exemplo se já temos em uma animação uma cena observada a partir de um ponto estático como um filme com câmera fixa por exemplo um quarto com um personagem andando não será ne cessário renderizar todo o quarto a cada passo do personagem só o personagem será modificado a cada quadro Essa técnica permite também a mixagem com objetos ou texturas reais obtidas por captura ou seja o render por passadas permite uma integração com imagens fotográficas acrescentando sombras texturas complexas ou elementos do mundo real como rostos à cena É possível a reciclagem de objetos e cenas geradas anteri ormente Uma boa técnica é a reutilização de objetos em diferentes momentos ou em cenas complexas Esses objetos não necessitarão ser completamente renderiza dos na renderização por passadas poderão apenas ter suas formas de iluminação alteradas para se integrarem ao ambiente da nova cena O render por passadas às vezes elimina a necessidade do cálculo de antialia sing substituindoo por um leve blur borramento Os sistemas de partículas também utilizam as passadas para inclusão de efeitos especiais Além dos citados poderíamos citar ainda diversos outros efeitos como por exemplo bumpmapdepthoffield simulação do foco das máquinas fotográficas e fil madoras ou glows incandescência que são introduzidos na última passada e ge ralmente são inclusões 2D na imagem final Agora que já entendemos a importância desta forma de criação de realismo em computação gráfica vamos entender como o processo é feito em nível de criação da cena ou seja como são os tipos de passada nos diversos sistemas disponíveis A primeira passada ou passada principal também chamada de difusse pass ou co lor pass corresponde ao momento em que se atribui cores aos objetos ou seja nela estão incluídos o modelo a iluminação ambiente e o mapa de cores Não estão incluí das formas de realismo mais complexas como as reflexões em superfícies espelhadas os brilhos e as sombras que se projetam dos objetos devido às luzes direcionais A passada seguinte inclui a luminosidade direcional o brilho e as ênfases da ce na Denominada de highlight pass ou também chamada de specular pass ela consi dera os brilhos especulares dos objetos Essa passada ocorre devido aos efeitos de pelo menos uma luz direcional na cena O resultado é uma imagem com os objetos bem iluminados sobre um fundo sem sombra A passada da reflexão inclui as reflexões dos objetos podendo substituir ou comple mentar a passada anterior Nela serão considerados os espelhos do cenário os assoa lhos encerados os espelhos dágua e outras superfícies que refletem as imagens 252 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A passada de iluminação inclui os pontos de luz lâmpadas velas e suas intera ções na cena Em vez de utilizarmos a passada principal para renderizar toda a ilu minação de uma só vez podemos utilizar esse processo para mostrar a influência de uma luz ou grupo em um determinado elemento Isso permite a inclusão de di versos efeitos interessantes à cena como a idéia de luzes sendo progressivamente acendidas ou apagadas a inclusão do efeito de faróis passando de feixes de raios sendo disparados de fogos de artifício entre outros A passada seguinte inclui as sombras ou seja mostra a localização das sombras projetadas pelos objetos no solo ou nos outros objetos da cena A passada de efeitos especiais inclui efeitos como explosões curvaturas de len tes de aumento ou distorção nuvens de fumaça a visão através de água ou exaustão de turbinas Esses efeitos nem sempre presentes em uma cena são renderizados em separado nesta fase A passada de profundidade inclui na imagem informações para incluir a noção de profundidade à cena Diferente de uma imagem real onde os detalhes mais longe vão perdendo a nitidez pois se tornam fora de foco em uma imagem sintética gerada pela computação gráfica todos os dados permaneceram em cena a menos que essa noção seja introduzida artificialmente Isso é tratado nesta passada e pode ser feito através da inclusão de um filtro de bluring por exemplo 713 Acabamentos Nãofotográficos Os renders realísticos comentados na seção anterior tentam fazer uma imagem sintética indistinguível de uma fotografia Mas em contrapartida os acabamentos nãorealísticos ou nonphotorealistic rendering NPR também chamados de es tilizados stylistic rendering possuem uma variedade muito grande de aplicações Um exemplo é a simulação das pinceladas de pinturas reais Figura 71 efeitos criativos imitando serigrafias ou o estilo de expressão de um artista REALISMO VISUAL E ILUMINAÇÃO 253 FIGURA 71 RenderNPRsimulaçãodaspinceladasdepinturasvejatambémemcores Outra aplicação dos renders NPRs é a criação de imagens similares as do desenho tradicional onde somente os detalhes significantes para a particularidade da apli cação da imagem são mostrados Por exemplo uma fotografia perfeita do motor de um carro pode ser excelente para realizar a venda para o consumidor Porém se fôs semos utilizar essa imagem para ilustrar uma mudança significativa no modelo ela seria muito complexa e de impressão cara E ainda poderia não deixar claro algum detalhe específico que se desejasse salientar Dentre as técnicas dos renders NPRs que mais chamam a atenção podemos citar a Toon Shading mostrada na Figura 72 Essa técnica tenta simular as imagens de de senhos animados menos complexas e por isso de mais fácil entendimento pelas crianças assumindo um clima de fantasia O estilo toon shading vem sendo usado pela computação gráfica desde o início da década de 1990 para integrar modelos tridimensionais com células de animação bi dimensional O toon render ou cartoon render ganhou vários adeptos pelo mundo devido a sua potencialidade em comunicar emoções e à facilidade para geração de suas imagens comparada a outros estilos de NPR 72 RASTERIZAÇÃO Rasterização é o processo de conversão da representação vetorial para a matricial Ela permite realizar a conversão de um desenho tridimensional qualquer em uma representação inteira possível de ser armazenada na memória de vídeo ou impres são de um dispositivo raster A Figura 73 ilustra a rasterização de uma reta Grande parte dos dispositivos de entrada e saída tal como filmadoras digitais scanners vídeos e impressoras usam uma tecnologia matricial também denomi nada tecnologia raster Esses dispositivos possuem uma memória na qual é com posta a imagem a ser posteriormente exibida no dispositivo 254 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 72 Render NPR Toon Shading veja também em cores Um vídeo raster é composto de uma memória Figura 12 onde estão armazena das as informações que descrevem a imagem Essa memória de vídeo é uma área de armazenamento onde cada posição indica quando um determinado pixel na tela deve estar apagado ou aceso e em qual cor A Figura 74 mostra um exemplo no qual a cor é especificada na memória de ví deo na forma conhecida como tabela de cores Um circuito de hardware especial faz a leitura dessa memória e aciona a forma usada pelo hardware para acender o pixel Se o vídeo usar a tecnologia de tubo de raios catódicos CRT por exemplo o ca nhão de elétrons será sensibilizado de forma a compor na tela o mesmo desenho composto na memória de vídeo Figura 13 721 Rasterização de retas Normalmente gráficos são definidos através de primitivas geométricas como pontos retas círculos textos etc Pode parecer simples traçar uma reta no vídeo REALISMO VISUAL E ILUMINAÇÃO 255 A B FIGURA 73 Conversão da representação de uma reta na forma vetorial para a matri cial Em B é incluído um tratamento de antialiasing Memória de Vídeo Valor do PIxel Tabela de Cores 1 2 3 4 5 6 7 Blue Green Red Cor 253 30 2 255 123 178 25 40 2 0 203 43 23 2 253 253 209 69 3 FIGURA 74 Memória de vídeo e uso de tabela paleta de cores A determinação dos pontos de interseção não é feita necessariamente da esquer da para a direita Caso o polígono seja definido pela lista de vértices P1 P2 P3 P4 e P5 a seqüência das interseções será 8 6 4 1 Será necessário então ordenar a lista obtida ou seja 1 4 6 8 As interseções podem ser consideradas em pares Pixels contidos no intervalo formado por esses pares são desenhados na cor do polígono 724 Remoção de Linhas e Superfícies Escondidas A solução eficiente de problemas de visibilidade é o principal passo do processo de criação de cenas realísticas Esse problema lida freqüentemente com a determi nação da visibilidade de linhas e superfícies Na descrição das fases do processo de realismo visual no início deste capítulo essa fase foi denominada de eliminação de polígonos ou faces escondidas culling backfaces A Figura 42A exibe um cubo com todas as linhas e faces visíveis Embora exis tam doze arestas no objeto apenas nove deveriam ser exibidas para criar a impres são de um objeto sólido Figura 42B e C O problema também pode ser expresso em termos de superfícies ocultas considerando as faces do cubo Figura 450 Quando apresentamos um objeto em perspectiva nem todas as suas faces estarão visíveis Por exemplo sabemos que um cubo tem seis faces mas dependendo do ponto de vista do observador ele poderá ter uma duas ou no máximo três faces visíveis Fi gura 77 O uso apropriado de técnicas de projeção e de eliminação de superfícies e linhas nãovisíveis auxilia no objetivo de criar resultados mais realistas É preciso consi derar a posição relativa entre os objetos da cena e o observador tridimensional mente para essa consideração de que partes serão invisíveis por ele Para exibir objetos complexos é necessário descrevêlos internamente no siste ma Comumente são empregadas duas soluções uma primeira opção é a represen REALISMO VISUAL E ILUMINAÇÃO 259 H D F G C E A B FIGURA 77 Um cubo dependendo do ponto de vista pode ter 2 faces visíveis tação por um subconjunto de retas e curvas extraídas dos contornos do objeto de maneira a representálo A descrição matemática dessas retas e curvas é normal mente usada para gerar o objeto na memória do sistema e sua exibição Quando o objeto é gerado por essa representação interna a fase de realismo considerado é o tratamento das linhas sejam elas retas os curvas escondidas Uma segunda solução propõe a representação do sólido através de uma série de faces ou superfícies conectadas apropriadamente Uma aproximação interna sim ples pode ser utilizada para descrever cada face ou superfície e a exibição do objeto é produzida como o agregado dessas faces ou superfícies Quando o objeto é gerado por essa representação interna a fase de realismo considerada é a eliminação das superfícies sejam elas planares ou não escondidas Freqüentemente na descrição de superfícies utilizamos faces planas triangulares porque a triangulação de uma superfície qualquer é um processo relativamente sim ples A principal desvantagem dessa representação é a necessidade de um grande nú merodeplanosparaproduzirnavisualizaçãoaimpressãodeumasuperfíciesuave Se o objeto for representado na tela pelas suas linhas na forma chamada de re presentação em wireframe Figura 42 usualmente há três formas de se represen tar as linhas nãovisíveis tracejadas e da mesma cor das visíveis Figura 78 trace jadas com cor diferente das visíveis ou simplesmente não traçálas Figura 79 Normalmente não são traçadas as linhas nãovisíveis visto que o traçado delas pode prejudicar a visualização do objeto na sua forma final São consideradas visíveis todas as linhas de contorno das faces do objeto que possam ser vistas a partir de um determinado ponto de vista ou seja quando não houver barreiras entre o observador e a linha de contorno do objeto As linhas invi 260 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 78 Representação dos objetos em wireframe onde x y z representam as coordenadas do centróide da face Se o observador não es tiver na origem dos sistemas de coordenadas é possível usar a mesma expressão desde que x y z representem as diferenças entre as coordenadas do ponto onde está o observador e as coordenadas correspondentes do centróide da face em análise Como operações envolvendo raízes demandam maior quantidade de cálculos para serem realizados e o importante nesta análise são as posições relativas e não a dis tância real a forma que usa a soma das diferenças das coordenadas em módulo é normalmente usada D x y z Aqui e em outros pontos deste capítulo faremos menção a polígonos convexos e nãoconvexos Vejamos então qual seu significado Considerando um único polí gono este é dito ser convexo se em qualquer posição que se trace um segmento de reta por dois pontos distintos dele não houver interseção com o seu contorno Caso contrário havendo interseção é chamado de nãoconvexo ou seja se um segmento de reta unindo pontos do polígono estiver sempre no seu interior ele será convexo e se isso não acontecer será nãoconvexo A Figura 711 exemplifica essas duas defi nições A Figura 712 apresenta polígonos com formas simples que tornam complexa a identificação de qual estará na frente Como a visibilidade por prioridades baseiase na suposição de que uma superfície qualquer sempre domina o seu plano de visibi lidade ou seja se A bloqueia B então B não pode bloquear A o que só é sempre verdadeiro para polígonos convexos algumas incorreções podem ocorrer Polígonos nãoconvexos ou disposições exóticas podem bloquear uns aos outros A utilização de um polígono de contorno pouco usual pode acarretar erro no algo ritmo de determinação de visibilidade Na Figura 712B fica difícil determinar qual superfície aparecerá mas nesse caso é devido ao uso apenas do centróide das áreas para identificação das distâncias 264 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Polígono convexo Polígono nãoconvexo FIGURA 711 Exemplo de polígonos convexos e nãoconvexos A solução para o problema da determinação de visibilidade nos casos de polígo nos nãoconvexos é usar vários pontos dos polígonos na comparação das distân cias Ou seja dividilos em muitos polígonos convexos Já no caso de disposições exóticos apesar da aparente simplicidade as dificuldades que aparecem na reso lução das ambigüidades são maiores Isso geralmente ocorre quando as faces não têmtodososseuspontoscommesmadistânciaaoobservadoreestãodispostasdemo do que partes de alguma superfície sejam obscurecidas por partes de outra Isto é pro blemas podem ocorrer quando partes de objetos mais distantes obscurecem partes de objetos mais próximos Nesse caso será necessário uma série de testes para de terminar como os dois polígonos necessitam ser subdivididos e reordenados Essa bateria de testes para a resolução das ambigüidades torna esse algoritmo difícil de ser implementado e muito lento conforme o número de polígonos aumentar 7242 Algoritmo de Eliminação de Faces Ocultas pelo Cálculo da Normal Uma outra característica das superfícies que não a distância ao observador pode ser usada para determinar a sua visibilidade o ângulo que a sua normal faz com a di reção de observação Se observarmos diretamente uma superfície plana um cartão por exemplo verificaremos que não podemos observar o seu lado oposto Apenas vêse a face do plano da frente não importa qual sua distância ao observador Se você girar essa superfície de modo a ver a outra face alguma hora ela será visível apenas como um segmento de reta Nessa posição em que a superfície é vista como uma reta sua normal estará perpendicular 90º à direção dos seus olhos Assim podemos dizer através dessa experiência simples que uma superfície só é visível se sua normal estiver fazendo um ângulo entre 90º e 90º com o observador Essa característica é particularmente aplicável nas representações de superfícies visíveis de poliedros convexos fechados sendo a base do teste de visibilidade da REALISMO VISUAL E ILUMINAÇÃO 265 B A FIGURA 712 Polígonos com formas simples mas que dificultam identificação de qual estará na frente que as normais das suas diversas faces fazem com a direção de observação Para a determinação da normal de cada face primeiro devese obter dois vetores u e v do plano Esses podem ser obtidos a partir de três pontos quaisquer não alinhados contidos no plano A ordem em que esses pontos são utilizados no cálculo da nor mal do plano é relevante Neste exemplo usaremos a regra de orientar esses pontos sempre no sentido antihorário conforme ilustrado pela Figura 713 para determi nação da normal do plano definido por P1 P2 e P3 para fora do objeto 3D Assim o vetor u é definido ligandose P2 a P3 o vetor v é definido ligandose P2 a P3 Figura 710 e o vetor l é definido ligandose P2 a P posição onde está o obser vador A normal é obtida do produto vetorial de u e v e a resposta da fase ser visível ou não está associada ao produto interno da normal e l que é então dado pela ex pressão a seguir em termos das coordenadas de P P1 P2 e P3 A equação da normal de um plano definido por três pontos P1 P2 P3 pode ser obtida pelas seguintes expressões nx P3yP2yP1zP2zP1yP2yP3zP2z ny P3zP2zP1xP2xP1zP2zP3xP2x nzP3xP2xP1yP2yP1xP2xP3yP2y Onde nx ny nz representa a normal do plano Usando as coordenadas do observador definidas por Px Py Pz as coordenadas do vetor l serão lx Px P2x ly Py P2y lz Pz P2z de modo que o produto interno será definido como n l nx Px P2x ny Py P2y nz Pz P2z E o teste de visibilidade se reduz a verificar o resultado dessa expressão De modo que se n l 0 então o observador é está perpendicular ao plano Se n l 0 então o plano é visível ao observador Se nl 0 então o plano é invisível ao observador REALISMO VISUAL E ILUMINAÇÃO 267 P2 P1 P3 FIGURA 713 Determinação da ordem de definição no sentido antihorário dos pontos P1 P2 e P3 para a definição da normal à superfície A partir dessas informações básicas é possível identificar as faces visíveis e nãovisíveis de um objeto considerando o ponto de vista e tomar decisões quanto a traçálas ou não No caso de linhas escondidas e não faces a idéia é são consideradas visíveis as arestas das faces que forem visíveis De modo que o problema de identifica çãodelinhasinvisíveiséumasimplesextensãodoproblemadeidentificaçãodefaces Assim o algoritmo de definição de visibilidade pela normal pode ser descrito pe las seguintes tarefas Ler as coordenadas do objeto no espaço tridimensional considerando um ponto de referência e armazenálas em forma de matriz Localizar no espaço a posição do observador através da qual definirá os parâ metros de visibilidade Calcular o vetor normal de cada face do objeto Calcular o vetor da linha de visibilidade para cada face do objeto Realizar o teste de visibilidade calculando o produto escalar entre os dois ve tores Se n l 0 a face estará visível Se n l 0 a face estará invisível Definir os cantos das faces do objeto e armazenálos de forma matricial Verificar os cantos visíveis com seus respectivos posicionamentos Traçar as arestas das faces visíveis que revelarão o objeto como observado de um determinado ponto de vista Se desejável é possível traçar também as li nhas nãovisíveis naquele ponto de vista A eliminação de faces ocultas pelo método definido nesta seção por si só não constitui uma técnica completa para determinação de superfícies ocultas uma vez que sua aplicação é limitada como já dissemos apenas aos poliedros convexos fe chados No entanto a aplicação dessa técnica tem a capacidade de em muitos ca sos eliminar grande parte das superfícies a serem consideradas para cálculos de sombreamento e definição da cor das superfícies como veremos a seguir Como o tempo de processamento de muitas rotinas de determinação de faces ocultas cresce exponencialmente em função do número de faces principalmente devido às roti nas de ordenação a aplicação dessa técnica como um préfiltro costuma trazer uma redução no tempo de processamento de aproximadamente 75 em muitos processos de criação de cenas com realismo 7243 Algoritmo ZBuffer O algoritmo zbuffer desenvolvido inicialmente por Catmull Catmull 74 é um dos algoritmos de determinação de visibilidade de superfícies mais simples de se implementar tanto em software como em hardware e hoje é o mais popular dentre 268 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA os algoritmos de HSR Porém apresenta alto custo de memória e processamento Requer a alocação de até dois buffers ou matrizes em memória com dimensões idênticas à tela de apresentação normalmente denominados buffers de Imagem e de Profundidade O uso do buffer de Imagem é opcional devendo possuir a mesma profundidade de cor da tela de apresentação final Utilizase o buffer de Imagem como rascunho durante os cálculos de visibilidade dos objetos O buffer de Profundidade destinase a armazenar a distância de cada pixel da tela rascunho fictícia inicial ao plano de projeção sendo também chamado de zBuffer Daí o nome do método Os zBuffers são geralmente implementados em hardware com inteiros de 16 a 32bits mas as implementações por softwares devem usar valores de ponto flutuante para evitar problemas de aliasing Antes do cálculo e da projeção dos objetos do espaço no plano de projeção ini cializase o buffer de Profundidade ou zBuffer com os mais altos valores possíveis representando o valor de distância máxima todos os demais serão menores de um ponto ao plano de projeção O buffer de Imagem ou de rascunho deve ser iniciali zado com o valor das cores de fundo da imagem Os polígonos que compõem ou representam os objetos no espaço 3D são então projetados na tela de rascunho pixel a pixel Para cada novo pixel projetado na tela de rascunho é efetuado o cálculo de distância em relação ao plano de projeção Se essa distância for inferior à distância armazenada no zBuffer para aquela coorde nada então os valores de cor desse pixel substituem os valores anteriormente arma zenados na tela de rascunho e essa nova profundidade é armazenada no zBuffer para aquela posição Se os valores de distância forem maiores que os presentes no zBuffer então esse pixel está sendo bloqueado por um ponto previamente cal culado que já se encontra mais próximo do plano de projeção ZBuffer consiste em usar as coordenadas raster de todos os pontos Devemos manter a coordenada z de todos os pontos que colocarmos na tela raster em um enorme array Quando formos colocar outro ponto na tela no mesmo lugar em co ordenadas raster verificamos se ele está mais perto do observador do que o atual se não estiver descartamos o ponto Como você pode ver a única ação necessária é computar o valor de z para cada ponto A idéia básica é Criar e inicializar com a cor de fundo um array bidimensional que conterá a informação de cada pixel da tela Inicializar o array com o valor da máxima profundidade Achar a coordenada z para cada ponto do polígono Testar a profundidade z de ponto de cada superfície para determinar a mais próxima do observador Atualizar o valor nos arrays se z estiver mais próximo do observador REALISMO VISUAL E ILUMINAÇÃO 269 respectiva profundidade Para isso é necessário o cálculo inverso do ponto projeta do em função da equação da reta que a originou com o objetivo de determinar preci samente qual o ponto da reta no espaço que gerou a projeção Para as extremidades da reta esses pontos são evidentemente os seus pontos delimitadores no entanto em função da distorção imposta pela projeção em perspectiva a determinação dos pontos intermediários segue uma complicada regra de proporções de triângulos em função dos ângulos de visada É recomendável que superfícies complexas sejam de compostas em triângulos e que estes sejam preenchidos com o uso de scan lines Assim sendo todos os objetos serão descritos como uma sucessão de scan lines para as quais se efetua o cálculo da profundidade de seus pixels componentes A aplicação da scan line segue com o cálculo da projeção inversa a partir das coordenadas proje tadas na tela e da equação de reta para a determinação do ponto no espaço 3D que originou aquela projeção na tela De posse do ponto de origem no espaço aplicase en tão a equação padrão para cálculo de profundidade conforme abordado anterior mente e procedese à determinação de visibilidade pelo conteúdo de zBuffer O cál culo da projeção inversa é feito em função da evolução da scan line usando a coorde nada de x na tela e da esquerda para a direita com o objetivo de garantir que não ocorrerão brancos no preenchimento das linhas e para reduzir os efeitos de alia sing devidos à precisão finita das matrizes de profundidade 73 ILUMINAÇÃO A iluminação é um aspecto fundamental em qualquer composição Primeiramente vamos entender alguns aspectos técnicos da iluminação natural Ao nosso redor existe uma série de formas de energia física conhecidas em seu conjunto como ra diações eletromagnéticas Algumas características dessas formas de energia estão relacionadas a serem um fenômeno ondulatório Analisando um fenômeno ondulatório mais conhecido do nosso dia a dia como as ondas do mar podemos dizer que uma onda será completa quando estiver determi nada por uma crista positiva e uma crista negativa consecutiva também chamada pe ríodo A distância entre duas cristas iguais é denominada comprimento de onda e geralmente identificada pela letra grega Lambda como mostrado na Figura 715 Uma radiação onda eletromagnética consiste em um campo elétrico e um cam po magnético variáveis com o tempo e com a posição Um perpendicular ao outro e ambos perpendiculares à direção de propagação conforme ilustrado na Figura 715 A propagação dessas ondas no vácuo e no ar se faz com a velocidade de apro ximadamente 300000 kms As ondas eletromagnéticas são caracterizadas por di versas outras grandezas físicas além do já definido comprimento de onda As prin cipais são a freqüência e a energia A freqüência de uma onda é o número de vibrações por unidade de tempo O comprimento de onda também pode ser definido como a distância percorrida por 272 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA a inexistência de modelos completos e abrangentes levam os programadores a sim plificações do processo computacional Em conseqüência muitos modelos de ilu minação atualmente em uso em computação gráfica contêm simplificações sem ne nhum fundamento teórico mas que alcançam um bom resultado prático 731 Tipos de Emissores Retornando para o modelo de iluminação digital temos que neste modelo todo ob jeto em uma cena é potencialmente uma fonte de luz A luz pode ser emitida ou re fletida de objetos Geralmente fazemos uma distinção entre emissores de luz e re fletores de luz Os emissores são as fontes de luz lâmpadas velas fogo sol estre las e os refletores são normalmente os objetos que serão coloridos de maneira rea lística renderizados As fontes de luz são caracterizadas por suas intensidades e freqüências ou comprimento de onda enquanto os refletores são caracterizados pelas propriedades de suas superfícies como cor material e polimento A escolha do tipo a ser usado para representar uma fonte ou um emissor de luz de pende diretamente do ambiente da cena Enquanto cenas externas utilizam uma fonte natural como fonte principal de iluminação sol estrelas ou lua cenas internas geral mente utilizam diversas luzes artificiais que podem ter ou não mesma intensidade Po demos então classificar os tipos de emissores como natural ambiente ou artificial 7311 Emissor Natural Os emissores naturais tentam simular as duas principais fontes de luz da natureza o Sol e a Lua Para propósitos práticos a luz solar tem raios paralelos vindo de uma direção única A direção e o ângulo desses raios variam dependendo da hora do dia da latitude da região e da estação do ano A luz solar combina diversos comprimentos de onda de modo que geralmente é definida como branca mas pode ter algumas variações Em dia de céu claro a cor da luz solar é um amarelopálido com valores em RGB em torno de 250 255 175 Em dia nublado a luz solar pode atingir uma coloração azulada tendendo para cin za em dias tempestuosos No amanhecer e no pôrdosol a cor pode tender para la ranja ou vermelha Outra alteração ocorre pela presença de partículas no ar que po dem alterar a cor da luz solar para laranja ou marrom A luz solar ou da Lua é uma luz direcional Se for necessário para determinada aplicação por exemplo para mostrar a sombra produzida pelo sol do amanhecer ao entardecer pode ser animada com razoável precisão seguindo as coordenadas geográficas do local o movimento do sol em torno da Terra e o ângulo que faz com a posição dada Você deve considerar se todo realismo for necessário além da posi ção a data o horário e a orientação em relação aos pontos cardinais norte sul les te oeste sudoeste noroeste etc As sombras projetadas assim podem representar com precisão o passar das horas 274 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 7312 Luz Ambiente Uma luz é considerada como ambiente quando não tem uma direção possível de ser observável Esse modelo simula a iluminação geral vinda da reflexão da luz em mui tas superfícies difusas Essa luz determina o nível de iluminação das superfícies no ambiente É usada para cenas de exterior quando a iluminação do céu produz uma distribuição da luz refletida céu nublado Uma técnica muito comum para melho rar o realismo em cenas externas é alterar a cor da luz ambiente para complementar a luz principal 7313 Emissores de Luz Artificiais As luzes artificiais são todas aquelas que não são naturais Em computação gráfica geralmente simulam as lâmpadas convencionais Dentre as quais podemos citar as Luzes Fotométricas Luz Omni Luz Direcional e os Refletores 73131 Luzes Fotométricas Com as luzes fotométricas a atuação da iluminação depende diretamente da inten sidade de energia estando relacionada diretamente com as unidades fotométricas Nesse tipo de iluminação a fonte de energia pode ser direcionada para um ponto e ser representada nas formas pontual uma única lâmpada linear lâmpadas com determinado comprimento como as fluorescentes convencionais ou áreas ilumi nadas painéis luminosos A Figura 716 usada também para demonstrar a som bra nesse tipo de luz exemplifica uma luz fotométrica linear Essas luzes devem re presentar de forma realista a intensidade de energia e a influência do tipo de lâmpa da As lâmpadas podem ser do tipo incandescente fluorescente alógena mercúrio sódio ou um tipo definido pelo usuário A intensidade da iluminação é medida pela quantidade de Lumens ou Candelas e podem ser obtidas através de tabelas ou espe cificações dos fabricantes de lâmpadas reais As especificações podem ser utilizadas para simulações e teste de iluminação devendo seguir os padrões IES Illuminating Engineering Society CIBSE ou LTLI 73132 Luz Omni Uma luz omni lança os raios em todas as direções de uma origem única podendo criar sombras e projeções Figura 717 73133 Luz Direcional Direct Light Raios de luzes direcionais paralelos iluminam em uma direção única como o sol faz na superfície da Terra Figura 718 As luzes direcionais são principalmente usadas parasimularluzsolarVocêpodeajustaracordaluzposiçãoegirarnoespaço3D REALISMO VISUAL E ILUMINAÇÃO 275 73134 Luz Refletora Spot Light Um refletor lança um raio de luz focado levemente como uma lanterna ou um farol Figura 719 Esse tipo de emissor pode ser mapeado para produzir o efeito da luz como o utilizado no filme Batman Figura 720 276 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 717 Trajetória dos raios de luz de uma lâmpada Omni FIGURA 718 Trajetória dos raios de luz de uma lâmpada Direcional FIGURA 716 Exemplo de uma luz fotométrica e seu sombreamento REALISMO VISUAL E ILUMINAÇÃO 277 FIGURA 719 Trajetória dos raios de luz de uma lâmpada Refletora FIGURA 720 Mapeamento de um bitmap na lâmpada Refletora spot light FIGURA 721 Reflexão Ambiente aplicada em uma cena 732 Reflexões Em computação gráfica a manipulação da luz assume um papel fundamental no as pecto realístico da apresentação Os efeitos da luz sobre as superfícies e seus mate riais o obscurecimento de superfícies em função de sua posição orientação e carac terísticas da luz são portanto peçaschave A maioria dos objetos ao nosso redor não emite luz própria pelo contrário refle te a radiação neles incidente em diferentes comprimentos de onda A reflexão se deve à interação molecular entre a radiação incidente e o material que compõe a su perfície dos objetos 7321 Reflexão Ambiente A reflexão ambiente atinge as superfícies igualmente em todas as direções a partir de uma fonte de luz difusa nãodirecional Em ambientes reais há superfícies que não são iluminadas diretamente mas também não são completamente escuras Lu zes geradas por reflexão em outras superfícies servem para iluminar essas áreas O modelo de iluminação mais simples que é utilizado na geração de imagens di gitais usa a própria cor do objeto atenuada por um fator de iluminação ambiental Figura 721 Esse fator é fruto do cálculo das reflexões múltiplas da luz nas muitas superfícies presentes no ambiente Estas múltiplas reflexões combinadas dão ori gem ao fenômeno definido como luz ambiente Ao assumirse que a luz ambiente afeta igualmente todas as superfícies de uma cena em todas as direções podese re presentála como I Ia ra onde I é a intensidade da componente de luz do ambiente na superfície em estudo Ia é a intensidade da luz ambiente assumida como constante para todos os objetos A quantidade de luz ambiente refletida pela superfície de um objeto é determinada através do parâmetro ra ou coeficiente de reflexão da iluminação ambiente da su perfície que varia de 0 a 1 O coeficiente de reflexão ambiente é uma propriedade do material que compõe a superfície do objeto que se está sombreando e dos pig mentos que a cobrem A Figura 722 mostra um objeto que é sombreado segundo esse modelo percebese que todos os pontos do objeto refletem a luz com a mesma intensidade É possível imaginar esse modelo como não contendo nenhuma fonte de luz pon tual O coeficiente de reflexão ambiente é uma conveniência empírica e não corres ponde diretamente a qualquer propriedade física real dos materiais Além disso a luz ambiente é apenas uma entre outras componentes luminosas a serem conside radas na composição de um modelo mais adequado de sombreamento 278 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Na reflexão difusa cada superfície tem uma reflexão característica que determi na quanto da luz será refletida A quantidade de luz refletida não depende do ângulo de visão da superfície mas sim de sua orientação em relação a direção de luz Se a fonte de luz direcional for pontual a intensidade da reflexão difusa varia de ponto para ponto e é melhor caracterizada pela variação do ângulo entre a normal da su perfície e a fonte de luz I I r u u d d e n onde I Id e rd têm os mesmos significados das expressões anteriores mas ue repre senta um vetor unitário na direção da fonte de luz e un o vetor normal unitário da superfície em estudo 7323 Reflexão Especular Superfícies brilhantes polidas ou lustras apresentam variações drásticas de intensi dade da luz refletida em determinados ângulos de observação Tal efeito é conheci do por reflexão especular e é um fator importante a ser considerado na geração de imagens sintéticas por computador A reflexão especular é a componente responsável pelo brilho highlight da luz no objeto Nesse tipo de reflexão o fóton não interage com os pigmentos da superfí cie deixando a cor da luz refletida igual à cor original da luz incidente Basicamente determinados pontos da superfície atuam como espelho refletindo a luz incidente sem atenuações Figuras 726 e 727 REALISMO VISUAL E ILUMINAÇÃO 281 FIGURA 725 Reflexão Difusa aplicada em uma cena Existem vários modelos de iluminação diferentes que expressam e controlam os fatores que determinam a cor de uma superfície em função de um determinado con junto de luzes Alguns modelos de iluminação controlam o efeito da luz para cada pi xel na imagem enquanto outros consideram um modelo de iluminação para alguns poucos pixels e aplicam interpoladores para o cálculo dos demais Dentre os modelos que calculam a contribuição da componente especular estão o de Phong baseado em um modelo de fonte de luz pontual e o modelo de CookTorrance que considera a energia incidente sobre o objeto Recentes melhoramentos no modelo de reflexão es pecular permitem refletir luzes em formas e superfícies variadas O modelo de Phong para luz especular é o mais usado Esse modelo considera a reflexão especular como uma função do ângulo que a direção de reflexão faz com o observador Ele é função da cor apenas da fonte de luz Os modelos anteriores para a luz ambiente e a luz direcional eram função da cor dos objetos a serem modela 282 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 726 Reflexão Especular aplicada em um objeto FIGURA 727 Reflexão Especular aplicada em uma cena pixel na imagem enquanto outros consideram um modelo de iluminação para al guns poucos pixels e aplicam interpoladores para o cálculo dos demais A Computação Gráfica referese freqüentemente às regras da física ótica e à física das radiações para explicar a interação da luz nos objetos No entanto a complexi dade ou a inexistência de modelos completos e abrangentes levam os programado res a simplificações do processo computacional Em conseqüência muitos mode los de iluminação atualmente em uso em computação gráfica contêm simplifica ções sem nenhum fundamento teórico mas que alcançam um bom resultado práti co A primeira técnica de sombreamento não constante para polígonos genéricos foi desenvolvido por Gouraud em 1971 Watt e Policarpo Em 1975 Phong BuiTuong melhorou a técnica de Gouraud e tornoua mais adequada para os siste mas de computação gráfica 3D Mesmo nas novas técnicas de iluminação global como ray tracing e radiosidade o modelo Phong ainda é o mais usado no render dos softwares atuais Existe aqui um ponto que geralmente causa uma confusão Modelo de som breamento não é o mesmo que modelo de iluminação O processo de se aplicar um modelo de iluminação para vários pontos de uma superfície é chamado sombrea mento Existem duas considerações separadas para o sombreamento dos polígonos Pri meiro temos de considerar como calcular a luz refletida em qualquer ponto da su perfície do objeto chamamos isso de modelo local de reflexão Depois temos de calcular a intensidade da luz no pixel para o qual o polígono se projeta chamamos isso de algoritmos de sombreamento 7351 Modelo de Sombreamento Constante No modelo de sombreamento constante aplicase o cálculo da componente de luz refletida apenas uma vez por superfície plana da imagem determinandose um úni co valor de cor e intensidade da luz refletida que é utilizado para o preenchimento de toda a superfície Essa técnica é chamada também de flat shading faceted shading ou constant shading e é usada mais freqüentemente em primitivas poligonais Essa aproximação somente é aceitável se for possível supor que 1 A fonte de luz localizase no infinito fazendo com que o ângulo de incidência de cada um dos raios de luz que compõem o feixe de luz incidente possua o mesmo ângulo ao longo de toda a superfície plana Figura 730 e 731 2 O observador localizase no infinito assim os raios de luz que compõem o fei xe de luz refletida da superfície plana e que atingem o observador têm o mes mo ângulo Figura 731 3 As superfícies são representações de objetos realmente formados por faces planas e não apenas aproximados por faces planas Figura 730 288 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA atenue grandemente esse efeito ela não o elimina completamente pois o efeito também está associado à mudança da direção do degradê como mostrado na Figura 736 Para obter maior eficiência no cálculo da luz refletida é possível usar uma equa ção incremental como a apresentada para projeções paralelas com zBuffer Quan do se utiliza a projeção em perspectiva ou quando a superfície representada pelo polígono plano não é no modelo real uma figura plana esse modelo não pode ser aplicado com resultados satisfatórios A solução de Gouraud também mostrase pouco eficiente na apresentação das reflexões especulares quando essas ocorrem distantes dos pontos selecionados para o cálculo efetivo da componente de luz re fletida 7353 O Modelo de Phong Outra técnica bastante difundida para o cálculo da componente de luz refletida foi proposta por BuiTuong Phong 19421975 PHONG 75 propôs a interpolação linear dos vetores normais para o cálculo do sombreamento com o posterior cálcu lo da iluminação Ao contrário do modelo de Gouraud que interpola as intensida des da luz refletida o modelo de Phong interpola a variação do ângulo de incidência do feixe de luz na superfície possibilitando a determinação de pontos de reflexão especular afastados das extremidades dos polígonos O Modelo de Phong conside 292 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 735 Efeito de Bandas de Mach com a variação da intensidade do tom Cada um dos 10 trechos tem exatamente o mesmo tom embora próximo a mudança da intensida de o lado mais claro pareça mais claro e o lado mais escuro pareça mais escuro do que no restante do trecho de mesmo tom FIGURA 736 Efeito de Bandas de Mach com a variação da direção do degradê do tom Cada um dos três trechos tem exatamente o mesmo nível de variação do tom de claro para escuro e inversamente do escuro para o claro embora próximo à mudança da re gião a intensidade da variação parece maior que no centro do trecho ra desse modo que a normal da superfície é interpolada linearmente ao longo dos pontos das fases Phong assume uma normal para cada vértice O modelo de ilumi nação é aplicado em todos os pontos da superfície que estiver sendo sombreada sendo a normal em cada ponto o resultado da interpolação linear das normais dos vértices A Figura 737 ilustra o uso das normais em n0 e n1 para fazer a interpola ção linear dos pontos interiores Pa Pb e Pc O método proposto por Phong como o método proposto por Gouraud ade quase muito bem aos algoritmos de scan line usados geralmente para determina ção da visibilidade por zBuffer A interpolação do ângulo de incidência da luz refle tida pode ser feita durante a geração da imagem no buffer ou na própria tela A Figu ra 738 ilustra a projeção de um poliedro 3D sendo criada no buffer de imagem onde o ângulo de incidência da luz em na é resultado da interpolação linear de n1 e n2 e o ângulo em nb é resultado da interpolação linear de n1 e n4 A intensidade ao longo da scan line ns pode ser calculada durante o cálculo do zBuffer sendo o resul tado da interpolação linear de na e nb Para obter maior eficiência no cálculo do ângulo de incidência do feixe de luz é possível usar uma equação incremental como a apresentada para projeções pa ralelas com zBuffer Quando se utiliza a projeção em perspectiva esse modelo pode ser aplicado com resultados satisfatórios Uma grande vantagem da solu ção de interpolação de Phong está na real redução do efeito de bandas de Mach já que não usa as intensidades de luz Os resultados obtidos são geralmente bem melhores que o de Gouraud devido à sua capacidade de apresentar com realismo pontos de grande variação da intensidade luminosa como os que ocorrem com o uso de luzes pontuais intensas spotlights e highlights na cena ou nos casos de reflexão especular mesmo quando afastados dos pontos de amostra utilizados na interpolação REALISMO VISUAL E ILUMINAÇÃO 293 n0 na nb nc n1 P1 PC PB PA P0 FIGURA 737 Interpolação dos ângulos de incidência dos pontos do interior através da consideração das normais das extremidades em P0 e P1 em uma superfície plana FOLEY 93 Esse modelo de interpolação é também conhecido como normalvector interpola tion shading E não deve ser confundido com o modelo de luz especular do mesmo autor No modelo de luz de Phong descrito anteriormente neste capítulo a luz é composta das três componentes reflexão difusa diffuse reflexão especular spe cular e ambiente ambient Essas três componentes são combinadas de modo a determinar a iluminação ou cor de um ponto ou de um polígono O algoritmo de Phong para interpolação apesar de menos implementado em hardware do que o modelo de Gouraud devido à sua maior complexidade permite a obtenção de ima gens mais realistas pois emula melhor os efeitos locais da luz como as reflexões que podemos observar em superfícies brilhantes 736 Sombras As sombras são de fundamental importância para aumentar o realismo das imagens Elas estabelecem diversos níveis de realismo em uma imagem evitando que os obje tos pareçam estar flutuando no ar A análise realística das sombras se caracteriza pela presença de duas regiões Uma região de sombra ou umbra em Latim onde a inten sidade luminosa devido a uma certa fonte é nula Figuras 717 a 719 e uma região de penumbra onde a intensidade luminosa varia de zero até a intensidade de luz do am bienteFigura716Senoambientesóhouverumaúnicaluzpontualaregiãodepe numbra pode ser anulada A seguir daremos dois exemplos de algoritmos de geração de sombra São eles o de Volume de Sombra e o de Sombra Projetada 294 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA na nb Ys X2Ys X1Y1 X3Ys n4 n3 n2 ns n7 FIGURA 737 Geometria do cálculo do ângulo da luz refletida pela técnica de Phong du rante o processo de scan line Xichun Jennifer Guo 1996 7361 Volume de Sombra É um algoritmo geométrico que foi introduzido por FRANK CROW 77 Chama mos de volume de sombra de um objeto em relação a uma fonte de luz L pontual o conjunto dos pontos do espaço da imagem que não são visíveis por um observa dor se ele estiver colocado na posição da fonte isso é em L Ele é obtido pela criação de uma pirâmide de não iluminação ou sombra Essa pirâmide tem ápice na fonte de luz e nos lados formados pelos prolonga mentos dos raios luminosos a partir da fonte até os contornos do objeto cujo volu me da sombra se está definindo Nesse algoritmo ao fazer o cálculo da intensidade luminosa em um ponto é verificado se o ponto está dentro do volume de sombra de cada objeto de modo a fazer a atenuação necessária no cálculo da intensidade 7362 Sombra Projetada É também um algoritmo geométrico Só que é mais amplamente difundido entre os usuários de sistemas gráficos Ele consiste em modelar a região de sombra a partir da projeção do objeto cuja sombra se deseja definir Nessa projeção o ponto de vis ta assume o lugar da fonte de luz e o plano de projeção é considerado como superfí cie plana onde se deseja conhecer a sombra do objeto Esse método funciona bem e é eficiente no caso em que a sombra se projeta em uma única superfície plana piso parede face plana de outro objeto mas se torna complexo à medida que o número de superfícies planas onde a sombra se estende aumenta 7363 Algoritmo de AthertonWeilerGreeberg Este algoritmo cria um modelo constituído por recortes dos objetos do cenário que não são visíveis da fonte de luz Ao rasterizar e tonalizar um polígono levase em consideração se ele produz sombra ou não A principal restrição desse algoritmo é que só se aplica em cenas constituídas por objetos poligonais ATHERTON WEILERGREEBERG 78 7364 Algoritmo de Mapeamento Proposto por Lance William em 1978 o algoritmo de mapeamento trata as sombras como um problema de visibilidade a partir das fontes de luz Essa visibilidade é re solvida usando um método semelhante ao ZBuffer Ao calcular a iluminação da cena os dados de ZBuffer são usados para determinar as sombras 7365 Algoritmo de Appel Proposto em 1968 por Appel e posteriormente por Bouknight e Kelley em 1970 este algoritmo traça um raio de sombra para cada fonte de luz durante o processo de REALISMO VISUAL E ILUMINAÇÃO 295 rasterização testando se há uma obstrução Em caso positivo é determinada a parte da linha de varredura afetada pela sombra e os relacionamentos entre polígonos que causam sombra um nos outros A implementação desse algoritmo só é utilizá vel para modelos poligonais 7366 Sombreamento Anisotrópico Os prefixos gregos iso e aniso querem dizer igual e desigual respectivamente Dizse que um objeto um material ou um modelo é isotrópico quando tem as mes mas propriedades ou características físicas em todas as direções Esse conceito já foi considerado na modelagem de sólidos onde geralmente supomos que os objetos a serem modelados têm as mesmas características em todas as direções Assim algo é anisotrópico se suas propriedades dependem da direção de observação O sombreamento anisotrópico é um tipo de shading que prolonga reflexões e brilhos em uma dada direção geralmente na direção perpendicular às fibras ou ra nhuras de uma superfície Figura 739 e não é uniforme em todas as direções como os sombreamentos isotrópicos usuais isto é todos os comentados até aqui Como há muito mais curvaturas ao redor dos fios que ao longo dos fios a luz é refle tida pelos cabelos anisotropicamente produzindo um brilho na direção perpendi cular ao comprimento dos fios Aço escovado discos de vinil CDs e madeiras tam bém possuem essa característica devendo ser renderizados com shading anisotró pico isso é com mais brilhos na direção perpendicular às ranhuras Esse recurso está implementado nas melhores placas gráficas do mercado e por isso pode ser usa do em realtime rendering 737 Modelos de Iluminação Global Cada uma das técnicas já abordadas para a geração de imagens realistas em compu tador possui o seu conjunto de vantagens e desvantagens No entanto entre as téc 296 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 739 Exemplos de sombreamento anisotrópico nicas abordadas até aqui os modelos de iluminação global oferecem melhores re sultados na simulação de uma cena real Podemos chamar de iluminação global as técnicas que consideram todos os feixes de luz emitidos por fontes indiretas O céu por exemplo reflete a luz do sol com uma cor azulada esses raios de luz azulados também contribuirão para modificar o restante da cena Essa consideração não pode ser feita nos modelos de iluminação anteriores que por considerarem todos os objetos da cena como possíveis emitentes de luz precisam executar muito mais de cálculos que as anteriores Com a melhora da velocidade de processamento das máquinas diminui o tempo de cálculo das técnicas de iluminação global que estão sendo cada dia mais usadas e por isso de domínio obrigatório para os profissionais de CG Essas técnicas não representam o fim das demais ficando a cargo dos artistas julgar qual o melhor mé todo de iluminação para determinado tipo de trabalho Atualmente temos no mer cado uma diversidade enorme de softwares habilitados a trabalhar com iluminação global Dentre eles podemos citar o Brazil Mental Ray Vray ou Final Render Nas seções que seguem descrevemos as principais idéias e os métodos que as usam 738 Ray Tracing A técnica de Ray tracing é também usada simplesmente como um algoritmo de de terminação da visibilidade dos elementos de cena Nesse caso é geralmente deno minada de Raycasting É principalmente conhecida pelas possibilidades de inclu são na cena de sombras reflexão refração texturas e não apenas o sombreamento das superfície visíveis Os primeiros estudos sobre Ray tracing são da década de 1960 O Ray tracing foi desenvolvido em 1968 como um algoritmo para simulação de trajetórias de projé teis balísticos e partículas nucleares A Apple foi a primeira a apresentálo como uma ferramenta para o cálculo de sombras em Computação Gráfica Na época os computadores eram lentos demais para possibilitar o uso dessa técnica e as aproxi mações descritas anteriormente eram mais usadas À medida que os computadores foram ficando mais poderosos notouse que se ria interessante voltar atrás e implementar os modelos de iluminação global A par tir daí o algoritmo de Ray Tracing foi estendido e implementado Sua implementa ção inicial ocorreu em 1980 quando já era possível criar imagens com sombras re flexões transparência e refrações Em 1984 o algoritmo de Ray Tracing sofreu mo dificações possibilitando efeitos de penumbra motion blur depth of field veja seção hiperrealismo entre outros Hoje em dia Ray tracing é uma das mais populares e poderosas técnicas de sín tese de imagens de fácil implementação Ray tracing possibilita a representação de cenas complexas com muitos objetos e muitos efeitos como sombras e vários ti pos de reflexões O princípio do Ray tracing é simular a geometria ótica envolvi da no trajeto de alguns raios de luz que viajam pelo espaço da cena Por motivos REALISMO VISUAL E ILUMINAÇÃO 297 computacionais o modelo utilizado é o contrário do que realmente acontece quando vemos uma cena Isto é normalmente um raio de luz originário no objeto chega aos nossos olhos Nessa técnica supõese que um raio originário de nossos olhos chegue até o objeto que se quer renderizar Figura 740 Pelas leis da ótica essa reversão não provoca alteração alguma na geometria envolvida Devido à essa inversão ser tão comum raramente se usa o adjetivo reverso para Ray tracing Se desejarmos podemos classificar o Ray tracing como reverso usado na compu tação ou direto o algoritmo que segue o modelo físico real Na realidade uma ou mais fontes de luz iluminam uma cena com um número in finito de raios de luz Apenas uma pequena parte desses raios é refletida dos objetos da cena e atinge o olho do observador Como apenas esses raios nos interessam po demos traçálos de volta para o objeto e deste para cada fonte de luz Inserindo uma tela em algum ponto entre o observador e a cena traçase um raio do olho do obser vador até cada pixel da tela e deste para qualquer objeto que a fonte de luz ilumine O resultado final será que as cores e intensidades que serão associadas à tela produ zirão uma imagem como uma fotografia O algoritmo de Ray tracing considera os seguintes pontos Os raios são disparados de forma sistemática de modo que cada um deles corresponda a um pixel na tela Após o disparo o raio percorre o espaço podendo atingir um objeto ou sair da cena Se atingir algum objeto o ponto de intersecção é calculado As contribuições das fontes de luz para cada ponto levando em conta a sombra de outros obje tos também são calculadas 298 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Observador Luz Centro de Projeção Janela de Visualização FIGURA 740 Geometria do ray tracing repare o ângulo de visão da cena pelo obser vador a região de influência de cada pixel simbolizada pela grade retangular o ponto da cena real que corresponde a esse pixel e a fonte de luz que originou o raio Se o objeto for opaco a soma dessas contribuições será a intensidade lumino sa total naquele ponto Caso contrário as contribuições devidas aos reflexos e refrações serão tam bém computadas O pixel correspondente pode então ser exibido Se não houver interseção o pixel terá a cor de fundo O cálculo do ray tracing clássico é bastante simples e é constituído das seguintes tarefas efetuadas para cada pixel da tela 1 Trace um raio a partir do observador até a cena a ser representada através de um pixel da tela 2 Determine qual o primeiro objeto a interceptar esse raio 3 Calcule a cor ambiente da superfície do objeto no ponto de interseção basea do nas características do objeto e na luz ambiente 4 Se a superfície do objeto for reflexiva calcule um novo raio a partir do ponto de interseção e na direção de reflexão 5 Se a superfície do objeto for transparente calcule um novo raio a partir do ponto de interseção 6 Considere a cor de todos os objetos interceptados pelo raio até sair da cena ou atingir uma fonte de luz e use esse valor para determinar a cor do pixel e se há sombras O algoritmo de Ray Tracing então pode ser descrito como Considerando um centro de projeção no plano de visão Para cada linha horizontal de varredura da imagem scan line Para cada pixel da linha de varredura determinar raio que vai do centro de projeção ao pixel Para cada objeto da cena Se objeto for interceptado pelo raio é a interseção mais próxima até agora registrar interseção e o objeto interceptado atribuir ao pixel a cor do objeto da interseção mais próxima O objetivo da técnica de ray tracing é simular a propagação da luz no ambiente avaliando a sua interação com os objetos que o compõem e considerando a intera ção da luz com as suas superfícies Com o objetivo de limitar a grande quantidade de feixes de luz necessária para compor uma cena com razoável grau de realismo o ray tracing tira proveito da característica física dos controladores gráficos de com REALISMO VISUAL E ILUMINAÇÃO 299 Sex0y0z0forconsideradoocentrodeprojeçãoouoolhodoobservadornaFi gura 740 e x1 y1 z1 for o centro de um pixel na janela da mesma Figura 740 en tão t varia de 0 a 1 entre esses pontos Valores negativos de t representam pontos atrás do centro de projeção enquanto valores de t maiores que 1 correspondem a pontos depois da janela isso é mais distante do centro de projeção Assim precisamos achar uma representação para cada tipo de objeto que nos possibilite determinar t isto é o valor do parâmetro que define o ponto de interseção do objeto real com o raio Necessitase assim de uma representação que permita determinar a interseção de um raio com os objetos da cena em função de t de forma eficiente A forma das superfícies do objeto é que determinará a maneira como o cálculo das interseções pode ser otimizado Uma das formas de superfície dos objetos mais simples para esse propósito é a esfera talvez por isso seja tão usada como exemplo de cenas ren derizadas por essa técnica A superfície da esfera é definida pela posição das coorde nadas do seu centro xc yc zc e pelo comprimento de seu raio r podendo ser repre sentada pelo conjunto de pontos cujas coordenadas x y e z satisfazem a expressão x xc2 y yc2 z zc2 r2 ou x2 2 xc x xc 2 y2 2 yc y yc 2 z2 2 zc z zc 2 r2 Aplicandose a equação paramétrica da reta anterior em substituição a x y e z temos x0 tx1 x02 2 xcx0 tx1 x0 xc 2 y0 ty1 y02 2 yc y0 ty1 y0 yc 2 z0 tz1 z02 2 zc z0 tz1 z0 zc 2 r2 Essa equação de segundo grau como qualquer outra deste grau pode ter um dois ou nenhum valor numérico pertencente ao conjunto dos números reais que a solucione o que é chamado de raiz da equação Caso não possua raízes então o raio não cruza a esfera caso possua apenas uma raiz então o raio tangencia a esfera no ponto definido pela raiz t caso possua duas raízes então o raio cruza a esfera e a raiz de menor valor determina o ponto de entrada se estiver originalmente fora na esfera e a raiz de maior valor determina o ponto de saída Outro elemento muito necessário na renderização é a normal à superfície do ob jeto em um certo ponto Determinar essa normal é também muito simples para as superfícies esféricas Para uma esfera de raio r e centro xc yc zc a normal em um ponto da esfera de coordenadas x y z é descrita pelo vetor REALISMO VISUAL E ILUMINAÇÃO 301 1r x xc y yc z zc A interseção com polígonos isto é objetos com faces poligonais também pode ser facilmente obtida embora alguns cálculos adicionais sejam necessários A equa ção genérica do plano que contém um polígono pode ser definida pela equação ge ral do plano como Ax By Cz D 0 Aplicandose a equação paramétrica da reta anterior em substituição a x y e z temos Ax0 tx1 x0 By0 ty1 y0 Cz0 tz1 z0 D 0 De modo que resolvendo a equação temse t A x0 B y0 C z0 D A x1 x0 By1 y0 Cz1 z0 Essa é uma expressão do primeiro grau e matematicamente tem uma ou nenhuma solução Se o denominador parte de baixo da divisão for igual a zero então a equa çãonãotemsoluçãoissofisicamentesignificaqueoraiodeluzéparaleloaoponto Determinar a normal à superfície do objeto plano para a renderização é também direto pois em qualquer ponto do plano ela será definida simplesmente pelo vetor ABC Resta saber se o ponto de interseção do raio com o plano que contém o po lígono está contido no polígono Isso pode ser facilmente obtido em duas dimen sões ou seja utilizase a projeção ortogonal do polígono em um dos plano de proje ção como mostra a Figura 741 Por razões de precisão recomendase a utilização do plano no qual a projeção ortogonal do polígono seja maior 302 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Os pontos interiores Os pontos exteriores Raio y z x P P FIGURA 741 Técnicas de determinação da posição de um ponto em relação a um polígo no qualquer e ponto de interseção de um raio com um plano un vetor unitário normal à superfície do objeto J númerodasfontesdeluzqueiluminamopontoconsideradasnosomatório rt coeficiente de transmissão do material It intensidade do raio transmitido por refração rr coeficiente de reflexão do material Ir intensidade do raio refretido rs coeficiente de reflexão especular do material uh j vetor unitário na direção de máxima intensidade de reflexão H da jési ma fonte de luz n expoente que representa o polimento da superfície A cor de cada pixel é determinada individualmente através do cálculo da luz I que chega até o ponto de observação Essa luz segundo o modelo de Whitted tem duas componentes local e global A componente local é constituída pela parcela de iluminação que partindo das fontes de luz do cenário atinge diretamente uma superfície visível ao observador É composta por duas parcelas difusa e especular representadas respectivamente pelo segundo e terceiro termos da equação anterior A componente global é representada pelos demais termos da equação e é o grande diferencial do ray tracing Essa componente é responsável pelos efeitos de reflexão e refração exibidos na imagem O cálculo da componente global é obtido através da luz quechegaaopontodeinterseçãodoraiopelasdireçõesdereflexãoIrerefraçãoIt O cálculo do parâmetro Iré feito através do lançamento de um raio na direção de reflexão dada pela equação r i 2nii Essa equação está baseada nas propriedades de que os raios incidentes e refleti dos formam com a normal da superfície do objeto ângulos de incidência e reflexão iguais Considera ainda que os vetores normais n e de incidência i tenham com primento unitário Fisicamente existem infinitos raios de luz partindo de cada fonte de luz em uma cena Simular todos os raios seria uma tarefa impossível para um PC Por outro lado apenas os raios que são refletidos por objetos contribuem para a formação da imagem vista pelo observador Logo somente estes deverão ser simulados 304 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA i r n i r Determinados todos os pontos de interseção do raio com os objetos da cena po demos determinar qual o objeto mais próximo que será usado no cálculo da normal à superfície deste para uso na equação de iluminação descrita anteriormente Essa equação contém somatórias que consideram apenas as fontes que iluminam o ponto de interseção e não provocam sombras Precisamos então determinar quais fontes iluminam o ponto interceptado Essa determinação é feita lançandose no vos raios raios de sombra que partam do ponto de interseção em direção às fontes de luz A interseção de qualquer objeto por um raio de sombra indica que a fonte de luz provoca sombra no ponto considerado Nesta etapa o algoritmo já pode calcular a componente local da luz que determi na a cor de um dado pixel Podemos observar que o algoritmo de ray tracing é bastante simples pois seu nú cleo é constituído por uma rotina recursiva de lançamento de raios que forma a chamada árvore de raios 73712 Ray Tracing Parametrizado A técnica de ray tracing parametrizado foi introduzida formalmente em 1989 por Séquim e Smyryl A idéia desse algoritmo é armazenar as árvores de raios de cada pi xel e fazer uma reavaliação da equação correspondente à cor de cada pixel para cada mudança nos parâmetros ópticos obtendose uma nova imagem ajustada 73713 Monte Carlo Forward Ray Tracing O algoritmo de ray tracing Monte Carlo ao contrário de todos os outros algoritmos é baseado no método direto forward Isso significa que os raios partem da fonte de luz Em poucas palavras o método pode ser descrito assim Inicialmente escolhe mos randomicamente uma fonte de luz usando maior probabilidade para as fontes de maior intensidade No caso de fontes tubulares como lâmpadas fluorescentes onde a luz parte de todo o seu extenso cilindro um ponto em sua superfície é es colhido randomicamente Uma direção de raio é então escolhida randomicamente de acordo como a distribuição espacial da intensidade da fonte de luz O raio é então seguido até a interseção com algum elemento da cena ou até ele deixar o espaço da cena Quando ocorre a interseção devemos verificar o tipo de evento provocado ou seja se foi uma luz especular uma reflexão difusa uma refra ção se a luz foi absorvida etc A probabilidade de cada evento pode ser relacionada pelos coeficientes de reflexão transmissão ou absorção da superfície Se a absorção total for escolhida o raio não precisa mais ser seguido Para os outros casos uma nova direção é escolhida deterministicamente no caso da luz refletida especular ou estocasticamente no caso de dispersão difusa REALISMO VISUAL E ILUMINAÇÃO 305 Nesse algoritmo a energia do raio não muda durante o processo de rastreamento do raio ray tracing Cada evento que poderia mudar as propriedades da energia como uma absorção parcial passa a ser tratado na forma probabilística Durante o processo se um raio intercepta um triângulo no caso dos objetos serem formados por conjuntos de triângulos ou a malha da superfície os elementos do mapeamen to de iluminação light map são modificados para somar a energia trazida pelo raio O algoritmo de Monte Carlo trata as interseções dos raios com os pontos da ma lha da superfície necessitando somente das propriedades da superfície para aquele ponto A radiosidade trata a interseção dos raios considerando cada elemento da malha como um todo Como resultado a radiosidade fica limitada no cálculo das variações das propriedades da superfície dentro dos elementos da malha Na práti ca observamos que os algoritmos determinísticos podem produzir erros na textura quando usados na reflexão de superfícies curvas especulares 7372 Trabalhando com Ray Tracing Com o ray tracing é possível fazer duas reproduções com excelentes resultados reflexos e refrações Quando você estiver recriando a aparência de metal ou vi dro a partir de um material padrão quase nenhuma outra técnica superará o ray tracing Os reflexos gerados pelo ray tracing são mais precisos que os criados usando o mapa de reflexão O ray tracing permite também gerar reflexos em superfícies onde os mapeamentos falham Também é possível gerar diversos reflexos na superfície de um objeto Toda essa capacidade tem um preço alto e poderá demorar mais do que você imaginaria 73721 Reflexos Quando você usar o ray tracing para capturar as qualidades reflexivas de uma su perfície geralmente será mais importante considerar os reflexos da superfície do que sua rugosidade Isso acontecerá ao criar materiais metálicos 73722 Refrações A segunda capacidade real do ray tracing é a habilidade de copiar a aparência de ma teriais transparentes Quando a luz passa por uma superfície transparente ela ge ralmente é distorcida Essa distorção é conhecida como refração e a quantidade de refração é proporcional ao índice de refração IR O IR resulta variação da veloci dade relativa da luz quando ela muda de meio Em geral quanto mais denso for o objeto mais alto será o IR 306 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 73723 Metais com Ray tracing Uma das razões básicas para querer usar o ray tracing é produzir melhor reflexos em metal e em outros materiais reflexivos A maioria dos materiais reflexivos tem algum grau de rugosidade Pequenas imperfeições ou sujeira na superfície de um objeto mancharão o reflexo Marcas de dedos oleosos no vidro ou no alumínio poli do de uma roda de automóvel são bons exemplos desse efeito Manchando leve mente o reflexo em um material com ray tracing você poderá acrescentar muito rea lismo à superfície 73724 Ray Tracing em RealTime Rendering Apesar da grande redução no tempo de processamento proporcionada pelas técni cas de aceleração de ray tracing processamento paralelo ainda é necessário para atingir taxas próximas às necessárias ao realtime render Na verdade não existe nenhum computador pelo menos no mercado capaz de trabalhar com os algorit mos em RT2 Real Time Ray Tracing Essa limitação será uma questão de tempo afinal o algoritmo de ray tracing é inerentemente paralelo o que torna essa aplica ção especialmente interessante para implementação em máquinas de mais de um processador Alguns algoritmos interessantes surgiram no início da década de 1990 como o ray tracing incremental proposto por Murakami e Hirota o algoritmo de Monte Carlo e as estruturas hierárquicas para manipulação interativa de Brière e Polin Por enquanto quase todas as engrenagens 3D utilizam os light maps mapa de luz uma solução em que após o desenvolvimento da fase e posicionamento de lu zes fixas da cena um programa é executado uma única vez para calcular o ray trace a partir de um ponto fixo e armazenar a informação no mapa de luz 73725 Caustic Caustic é uma adição aos métodos de iluminação ray trace para rendering 3D que aumenta o realismo de uma imagem para perto do fotorrealismo ou hiperrealismo encontrando diversas aplicações para iluminação de animações games ou imagens estáticas Outras aplicações de cáustica referemse à engenharia onde são utilizadas na análise de superfícies e testes de resistência de material Basicamente podemos entender esse método observando a Figura 742 Quando um feixe de luz atinge uma superfície plana ele é refletido com o mesmo ângulo Quando a superfície não é plana os feixes são refletidos para diferentes ângulos podendo convergir para um mesmo ponto Essa concentração de raios em um de terminado ponto cria um efeito luminoso chamado caustic Figura 743 Mas e se a superfície for transparente REALISMO VISUAL E ILUMINAÇÃO 307 Podemos então dividir o caustic em duas formas o catacaustic e o diacaustic O catacaustic é o efeito provocado pela reflexão dos raios de luz na superfície O diaca ustic é o efeito provocado pela refração dos raios de luz ou seja quando o raio atra vessa a superfície Esses fenômenos são muito comuns na natureza e podem ser ob servados quando expomos copos de vidro ou águas à luz do sol Esse mesmo fenô meno pode ser observado em piscinas ou riachos Os primeiros estudos da superfície cáustica iniciaramse por volta de 1678 por Huy gens e Tschirnhaus Eles observaram que quando os raios da luz do sol entravam em um copo de água ocorria um fenômeno de iluminação intenso dentro do copo e uma sombra luminosa na superfície da mesa Essa região de concentração dos raios dentro do copo recebeu o nome de superfície cáustica e a sombra de shadow spot 308 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 742 Quando a superfície não é plana os feixes são refletidos para diferentes ângulos podendo convergir para um mesmo ponto FIGURA 743 Concentração de raios em um determinado ponto criando o efeito lumino so chamado Caustic Em 1986 Arvo propôs o primeiro algoritmo para a simulação desse fenômeno Ele propôs uma implementação com ray tracing de duas passadas onde a informação da primeira se comunica com a segunda Na primeira passada os raios de luz atingem os objetos da cena depositando uma quantidade de energia em seus light maps texture map que estão associados somente aos objetos com índice de reflexãorefração alte rando assim suas propriedades Na segunda passada os raios que atingem os objetos utilizarão o valor depositado para gerar a iluminação indireta Diversos sistemas para rendering 3D suportam o caustic todos com resultados obtidos por análises das propriedades dos materiais com fácil aplicação e entendi mento Existem ainda algumas técnicas de simulação de caustic muito utilizadas por jogos 3D para realtime rendering ou por interessados em agilizar o processo de render em cenas complexas O fenômeno natural da superfície cáustica é percebido instintivamente por nos sa mente merecendo uma atenção especial de interessados no desenvolvimento de imagens hiperrealistas 739 Radiosidade A técnica radiosidade tem diversas aplicações para iluminação de animações ga mes ou imagens estáticas Radiosidade é uma adição aos métodos de redering 3D que aumenta o realismo de uma imagem As imagens que resultam dessa renderiza ção são caracterizadas por sombras suaves e graduais Métodos convencionais de iluminação baseiamse na reflexão do raio de luz nos objetos até o olho do observa dor A radiosidade considera a reflexão de luz se transmitindo objeto para o outro até o olho do observador A proposta básica da radiosidade não considera reflexões especulares mas existem muitos trabalhos para possibilitar a combinação entre ra diosidade e reflexão especular Em muitas cenas principalmente em cenas de interiores existem zonas que não são diretamente iluminadas pelas fontes de luz A iluminação de tais zonas é produ to da luz refletida uma ou mais vezes por superfícies refletoras nãoespeculares Para tratar esses casos os métodos de ray tracing empregam um termo de ilumina ção ambiente constante cujo cálculo nem sempre é suficientemente preciso O em prego dessa técnica faz com que as superfícies indiretamente iluminadas aparentem uma iluminação uniforme em vez de uma variação de sombreamento gradual e sua ve o que conduz a diferenças abruptas de iluminação entre zonas diretamente ilu minadas e zonas que lhes são contíguas e não são diretamente iluminadas O méto do da radiosidade tem por objetivo o cálculo da iluminação e do sombreamento em cenas em que predominam superfícies refletoras difusas é deriva do cálculo das trocas de radiação térmica entre superfícies empregada em Transmissão de Calor adaptado à computação gráfica Na Figura 744 podemos observar uma variação de sombreamento gradual de uma luz oriunda da parte superior descoberta clara bóia e que ilumina o interior da parte coberta REALISMO VISUAL E ILUMINAÇÃO 309 Contudo diversos programas para rendering 3D já possuem a opção para rende ring com radiosidade ajustada como padrão O Lightflow é um exemplo possuindo um método eficiente e rápido de cálculo da radiosidade Na verdade quase todos os programas tem disponível diferentes métodos de radiosidade porém por mais rá pido que esses métodos possam ser não serão rápidos o suficiente para uso em am biente realtime rendering No entanto aplicar a radiosidade em ambiente realtime devemos reduzir um pouco o seu realismo para obter uma melhor performance do algoritmo Essa técnica foi aplicada em alguns jogos mas foi substituida por uma so lução ainda melhor O método utilizado pelas melhores engrenagens 3D baseiase em light maps ou radiosity mapping uma solução onde após o desenvolvimento da fase e posicionamento de luzes fixas do jogo é executado uma única vez o cálculo da radiosidade total de um objeto a partir de um ponto fixo e depois para to dos os outros pontos do objeto O resultado será uma variação da iluminação depo sitada nos mapeamentos Esse método é realmente muito eficiente mas possui al gumas limitações quando trabalhando com luzes móveis objetos distantes ou grandes mapeamentos Outra possibilidade é a implementação do algoritmo no hardware das acelerado ras gráficas Essa possibilidade ainda está em estudo devido a existência de infinitos métodos disponíveis no mercado 7391 Radiosidade com Luzes Dinâmicas Como vimos anteriormente na maioria dos jogos ou sistemas realtime a radiosi dade é précalculada para a fase chão paredes céu ou qualquer coisa fixa e que isso funciona muito bem desde que não exista uma fonte de luz móvel Porém sempre que disparamos um projétil ou míssil estamos criando uma fonte de luz mó vel Recalcular toda a radiosidade de todos os objetos da fase seria impossível A so lução nesse caso é segmentação do que é ou não relevante para ser recalculado Todo objeto que tiver uma grande probabilidade de mudança na radiosidade deve rá ser recalculado Geralmente só é feito o recálculo dos light maps para os objetos que estiverem próximos da luz dinâmica ou dos cantos entre objetos diferentes 7392 Refinamento Progressivo Em 1988 Cohen Chen Wallace Greenberg publicaram o artigo chamado A Pro gressive Refinement Approach to Fast Radiosity Image Generation que descrevia uma nova solução para geração rápida de imagens com radiosidade A idéia básica do refinamento progressivo é encontrar na cena a superfície que pode contribuir com maior energia A energia dessa superfície é então misturada com todas as outras superfícies e em seguida é feito um render da cena Após finali zar o render o processo se dá novamente localizandose a nova superfície que pos sui maior energia nem sempre será a mesma misturandose a outras superfícies 312 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Então um novo render é feito até que o observador progressivamente possa avaliar o resultado e assim ficar ou não satisfeito Esse processo permite ainda em tempo de execução o ajuste de iluminação ou cor da superfície O processo de render com ra diosidade reduzindo a necessidade de memória e de processador 7310 Técnicas de Iluminação A iluminação é uma poderosa ferramenta capaz de atrair a atenção passar emoções ou iludir o espectador Grandes estúdios contratam especialistas em iluminação real para trabalhar em conjunto com equipes de computação gráfica Na verdade a iluminação é um dos pontos mais difíceis e demorados de um projeto Portanto não se sinta frustrado se após horas de modelagem perfeita com texturas maravi lhosas o seu projeto não ficar como imaginado Como dica recomendamos obser var como a luz se manifesta na natureza e nos ambientes utilizando sempre as dire trizes para iluminação usada por fotógrafos diretores e desenhistas durante o pro cesso de instalação da iluminação para as cenas Geralmente os sistemas possuem um modelo de iluminação padrão Esse mode lo também chamado de modo de trabalho consiste de duas lâmpadas omni posicio nadas uma como luz principal e outra como luz de preenchimento Essa ilumina ção padrão não atinge um nível de realismo satisfatório forçando o acréscimo de novas lâmpadas Acrescentar novas lâmpadas significa não só escolher o tipo de lâmpada mas também saber posicionálas 73101 Luz Principal Key Light Antes de iniciarmos o processo de iluminação devemos retirar a iluminação padrão dosistemaEsseprocessogeralmenteéautomáticoquandoinserimosumanovaluz A luz principal cria a iluminação principal da cena representando a fonte domi nante como o sol ou uma lâmpada no centro do quarto A luz chave é a mais intensa das lâmpadas e a responsável pela sombra Geralmente essa luz é do tipo direcional e posicionada de 15 a 45 graus em rela ção à câmera Figura 745 Embora essa posição forneça uma boa visão do objeto o resultado é uma imagem plana e sem vida com sombras marcadas e muito pronun ciadas Além disso a cena parecerá sempre escura demais porque não há uma luz ambiente natural para iluminar as áreas sombreadas 73102 Luz de Preenchimento Fill Light A luz de preenchimento suaviza e estende a iluminação provida pela luz principal torna o objeto alvo mais visível fornecendo a noção de profundidade e a sensação de realidade à cena Geralmente usamos uma ou mais lâmpadas posicionadas no ân gulo oposto ao ângulo da luz principal simulando uma iluminação indireta Figura REALISMO VISUAL E ILUMINAÇÃO 313 746 Para isso a lâmpada ou a soma delas deve ter seu brilho reduzido à metade do valor da luz principal 73103 Luz de Recuo Back Light Também conhecida como luz de fundo ou luz de borda Figura 747 O objetivo da luz de recuo é auxiliar a visualização do objeto alvo separandoo do fundo Essa luz é posicionada atrás do objeto e oposta a câmera 74 TEXTURAS Os modelos de iluminação não são apropriados para descrever todas as proprieda des da superfície de um objeto por exemplo rugosidade e padronagem Em princí pio é possível modelar esses detalhes com o acréscimo de detalhes na geometria da superfície ou usando materiais de propriedades óticas distintas Essa forma torna o processamento muito complexo de modo que na prática esses efeitos são modela dos com o uso de mapas de textura 314 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Key Imagem Resultante 1545 FIGURA 745 A luz principal responsável pelas sombras e pela iluminação da cena FIGURA 746 A luz de preenchimento suaviza e estende a iluminação provida pela luz principal A idéia básica é reproduzir sobre a superfície do objeto as propriedades de algu ma função ou mapeamento bidimensional Para trabalhar com mapas de texturas é fundamental e ter um bom programa de composição e tratamento de imagens Você poderá também usar bibliotecas de tex turas disponíveis na Internet 741 Mapas Procedurais Um bitmap é uma imagem produzida por uma matriz fixa de pixels coloridos Os ma pas procedurais por exemplo um tabuleiro de xadrez pode ser gerado por um algo ritmo Esses mapas dispensam a utilização de imagens e podem ser inclusive tridi mensionais por isso são muito usados para a síntese de cenas complexas ou aplicações em realtime Eles também são boas fontes para mapeamento de textura sintéticas Dentre os mapas procedurais o mapa de ruído tem recebido uma atenção espe cial Esses mapas têm produzido uma variedade de imagens bastante realistas com texturas geradas por algoritmos fractais Figura 748 742 UVW Map A maior parte dos mapas de materiais são planos 2D atribuídos à superfície de objetos 3D O sistema de coordenadas usado para descrever a colocação e trans formação de mapas é diferente do sistema de coordenada X Y e Z usado para des crever o objeto Especificamente os mapas de coordenadas usam as letras U V e W a três letras que precedem as X Y e Z no alfabeto empregadas no sistema de co ordenadas do objeto U é o equivalente de X e representa a direção horizontal do mapa V é o equivalen te de Y e representa a direção vertical do mapa W é o equivalente de Z e representa a direção perpendicular do plano UV O eixo W é geralmente usado para mapas proce durais tridimensionais ou para girar os mapas na superfície dos objetos o segundo caso ocorre quando trocamos os sistemas de coordenadas de VW para WU REALISMO VISUAL E ILUMINAÇÃO 315 FIGURA 747 Aluzderecuoauxiliaavisualizaçãodoobjetoalvoseparandoodofundo O mapeamento aplicado deve se deformar com o objeto Figura 749 Quando trabalhamos com objetos simples como cubos e esferas estes já possuem o seu mapa de coordenadas predefinido que pode ser utilizado no mapeamento do plano VV para a superfície dos objetos Porém objetos criados a partir de scanners ou ma lhas não possuem um mapa de coordenadas forçando a criar mapeamentos com plexos para que as texturas fiquem devidamente aplicadas ou usar mapeamentos em passados 743 Texture Map Texture Map foi tradicionalmente usado para adicionar realismo nas imagens gera das por computador Nos últimos anos essa técnica saiu do domínio de sistemas de render por software para hardwares de alta performance Essa técnica foi inicialmente proposta por CATMULL 74 Em sua forma bási ca o mapa de textura aplica uma imagem ou seja uma textura sobre um objeto na cena Por ser muito útil e simples passou a ser considerado como padrão para as in terfaces de softwares e hardwares gráficos Os mapas de texturas podem ser usados em cenas complexas com um baixo custo de processamento Quando mapeamos uma textura em um objeto a cor do objeto em cada pixel é modificada pela cor correspondente na textura Para aplicar a imagem nos objetos devemos antes seguir alguns passos 316 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 748 Exemplo de Mapas Procedurais FIGURA 749 UVW Map A textura deve ser armazenada como um array A textura deve ser mapeada para adaptarse a superfícies do objeto e a uma visão da cena em perspectiva A textura deve ser tratada para retirarse imperfeições devidas ao aliasing É importante considerar que as imagens de textura não precisam ser necessaria mente bidimensionais No caso tridimensional uma fatia bidimensional deve ser selecionada para descrever as propriedades da superfície usadas no cálculo da ilu minação e sombreamento Uma generalização da técnica chamada de projective textures propõe a proje ção da imagem sem coordenadas fixas O resultado é uma imagem deslizando sobre a superfície Essa técnica permite simular animações de água ou refletores Projecti ve texture é também muito útil na simulação de sombras Nesse caso uma imagem é construída representando a distância da fonte de luz em relação ao polígono Ao técnicas de mapeamento podem também representar objetos transparentes ou semitransparentes Essa técnica é muito usada na simulação de nuvens e árvores onde mapas 2D são inseridos na cena em retângulos 744 Environment Mapping ou Mapa de Reflexão Os environment maps são usados para fazer o render de objetos reflexivos Esse modelo foi inicialmente proposto por Blinn Newell em 1976 e é capaz de simular efeitos de ray tracing a baixo custo Environment mapping é o tipo de mapeamento que reflete na superfície dos objetos os elementos que compõem a cena Essa técnica pode ser alcançada de duas formas A primeira forma tomando um cubo como exemplo requer seis imagens de textura uma para cada direção conten do as informações dos objetos que compõem o ambiente Para cada vértice do polí gono um vetor de reflexão é calculado Esse vetor indica uma das seis imagens Esse método não é muito exato mas bem convincente O segundo método é gerar uma única imagem de uma esfera refletindo o ambiente Figura 750 Cada hemis fério da esfera representará um hemisfério do ambiente Um dos problemas dessa técnica é que o objeto não reflete a si mesmo o que pode resultar em erros na imagem de objetos não convexos 745 Bump Map Quando utilizamos uma fotografia de uma superfície áspera como mapa de textura a superfície renderizada não fica muito correta porque a direção da fonte de luz uti lizada para criar o mapeamento é diferente da direção da iluminação do sólido Blinn desenvolveu uma técnica para amenizar esse efeito dando uma perturbação nanor mal à superfície antes de aplicar o modelo de iluminação Essa perturbação produz um deslocamento virtual na posição dos pontos da superfície REALISMO VISUAL E ILUMINAÇÃO 317 Bump Map é uma técnica usada para adicionar realismo sem modificar a geome tria ao objeto Essa técnica adiciona um sombreamento nos pixels produzindo uma ilusão de relevo no objeto renderizado A cor de uma superfície está relaciona da com ângulo entre o vetor normal da superfície e a direção da luz Em uma super fície plana o vetor normal é o mesmo para toda a superfície logo a cor da superfície será sempre a mesma No bump map as propriedades de refração da luz são usadas para indicar quais partes são mais escuras ou mais claras Figura 751 Para isso a técnica irá perturbar o vetor normal em vários pontos da superfície criando uma ilusão de que algumas partes da superfície estariam elevadas ou rebaixadas Com a finalidade de uma perturbação adequada da normal para produzir deter minado efeito usamos um mapa de altura Height Map fazendo com que zonas de maior intensidade de cor branco pareçam em altorelevo e as de menor intensida de preto pareçam em baixorelevo ou viseversa Na Figura 752 é apresentado o mapa de textura com seu height map usada para o mapeamento maçã As superfíci es que aparentam ter uma rugosidade são boas candidatas para os bump maps Ótimo exemplo dessa técnica é o muro de tijolos da Figura 753 observe como o muro da direita apresenta os relevos entre os tijolos 318 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 750 Environment Mapping Em uma superfície plana todas as áreas são igualmente brilhantes Em uma superfície modificada com bump criase um falso relevo B B B B B E Brilhante Escuro Raio Incidente Raio Refletido E B B E FIGURA 751 As propriedades de refração da luz em Bump Map 7451 Emboss Bump Map O tipo mais comum de bump mapping é o emboss map Essa técnica usa os mapas de textura para gerar os efeitos de bump map sem precisar de um render específico Os passos desse algoritmo são os seguintes Figura 754 Renderiza a imagem com uma textura Deslocase as coordenadas da textura Rerenderizase a imagem com textura sobrepondose a primeira imagem REALISMO VISUAL E ILUMINAÇÃO 319 FIGURA 752 Mapa de Textura Bump Map e efeito sobre um objeto FIGURA 753 Paredes da esquerda sem Bump Map e da direita com Bump Map 746 Light Map Os light maps foram inicialmente usados em 1987 por Arco e Kirk para simular ray tracing em duas passadas Suas motivações se devem à aplicação do método de ar mazenamento da iluminação difusa para viabilizar a implementação de um modelo de iluminação global que pudesse ser executado em um tempo razoável Porém aplicações recentes utilizam esse recurso para iluminação e sombreamento em apli cações de tempo real Os light maps possibilitam um précálculo da luz para armazenamento em mapa de textura bidimensional e são usados para dar velocidade no render de objetos 3D com iluminação complexa Na teoria não existe nenhuma limitação para light maps tridimensionais mas na prática exigirá uma grande quantidade de memória Em vez de calcularmos o efeito provocado pela luz no objeto em realtime armaze namos uma amostra da contribuição da fonte de luz previamente calculada e aplica mos como textura no objeto 3D Figura 755 Uma das grandes vantagens é a pos sibilidade de se usar o resultado de métodos como radiosidade ou outros de ilumi nação global que poderiam demorar até 1 hora para serem calculados É importan te perceber que quando o observador ou o objeto muda sua posição as coordena das do mapeamento devem ser corrigidas De qualquer forma quando lidamos com uma iluminação complexa modificar as coordenadas será ainda muito mais rápido do que calcular o efeito da iluminação em cada superfície Outra importante carac terística do light map é a capacidade de prover um highlight shading mais realísti co sem sacrificar a velocidade de render Esse benefício é ainda mais acentuado quando lidamos com superfícies reflexivas ou muito brilhantes Apesar de todos os benefícios obtidos com os light maps existem algumas li mitações quanto ao seu uso Primeiro a fonte de luz deve ser estática Se deseja mos utilizar os light maps para uma luz móvel como por exemplo um projétil os light maps podem ser recalculados as coordenadas do mapeamentos altera das ou redimensionadas Recalculálos completamente para todos os objetos da cena seria impossível A solução neste caso é segmentar o que é ou não relevan REALISMO VISUAL E ILUMINAÇÃO 321 Textura Light Map Texture Light Map FIGURA 755 Amostra da contribuição da fonte de luz aplicada na textura te para ser recalculado Todo objeto que tiver uma grande probabilidade de mu dança na sua luz deverá ser recalculado geralmente os objetos que estiverem próximos da luz móvel ou cantos entre objetos diferentes Se sua placa gráfica não suporta multitexturing recurso desenvolvido para ace lerar o trabalho de misturar diversas texturas em um objeto o render representará muito custo de tempo Outra limitação pode ser constatada quando utilizamos os light maps em máquinas lentas podendo ocorrer um atraso na inicialização da cena Essa limitação pode ser contornada com a utilização de light maps customi zados Quase todas as engrenagens 3D utilizam os light maps Nelas os light maps são utilizados para simular os efeitos de luzes locais estacionárias e móveis produzindo um ótimo resultado final Um light map deve ser aplicado a uma superfície como o mapa de textura de uma cena modulando a intensidade da superfície para simular os efeitos de uma luz local Porém quando trabalhamos com realtime não podemos ficar mu dando a textura da memória o que consumiria um tempo valioso Nesse caso podemos criar um light map com características de intensidade e cor de algumas luzes e aplicálo em diferentes superfícies alterando somente as coordenadas e dimensões do mapeamento simulando diferentes tamanhos e distâncias da lu zes A Figura 756 cortesia da Paralelo Computação wwwfly3dcombr apre senta um light map de uma fase da engrenagem Fly3D Nesse light map todas as contribuições de iluminação da cena são armazenadas em uma única imagem guardando as respectivas coordenadas 322 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 756 Light Map de uma fase da engrenagem Fly3D Cortesia da Paralelo Com putação 747 MipMapping MipMapping é um tipo de mapeamento que propõe a solução de dois problemas no mapeamento de objetos em cenas de animação ou realtime rendering O pri meiro problema ocorre com o afastamento do observador em relação aos objetos Quando as texturas destes ficam maiores do que a quantidade de pixels disponí veis o render terá de aplicar o antialising realizando uma média final dos pixels da imagem produzindo como resultado final ruidos de fundo especialmente orien tado moiré Figura 757 Além desse indesejado ruído devemos somar o tem po de processamento para o cálculo da média Para se ter uma idéia imagine uma textura de 256x256 pixels 65536 pixels a ser renderizada em um cubo que ocu pa 8x8 pixels 64 pixels da tela Isso significará que cada pixel deverá conter a in formação de 65536641024 pixels O segundo problema ocorre com a aproximação do objeto alvo revelando deta lhes indesejados da textura geralmente por baixa resolução Esse problema pode ser contornado aumentando a resolução da imagem mas isso significaria mais me mória tempo de processamento e ruídos provocados pelo primeiro problema Para solucionar esses problemas o mipmapping propõe a utilização de mais de uma imagem como textura onde cada imagem possui um nível de resolução decrescente conforme o observador se afasta Por exemplo enquanto caminha através de uma galeria virtual os quadros ou obras de arte próximos ao observa dor teriam uma resolução alta que permitiria a visualização dos detalhes da obra enquanto isso as obras distantes receberiam uma imagem de baixa resolução Isso significará uma melhor qualidade do render com economia de memória e processador Vamos supor uma textura de tamanho 128x128 Se reduzirmos nossa textura por um fator 2 teremos no final uma textura igual menos detalhada com um ta manho 64x64 Nesse caso a perda do detalhe não será percebida porque você terá se afastado do objeto Seguese esta idéia até 2x2 onde a textura terá somente uma cor Figura 758 REALISMO VISUAL E ILUMINAÇÃO 323 Ruído FIGURA 757 Ruído provocado pela redução de pixels disponíveis Esse tipo de mipmapping é o que podemos chamar de mipmapping convencio nal e é usado pela maioria das engrenagens e placas 3D Um outro tipo de mip mapping é o mipmapping bidirecional Nesse tipo a textura não recebe uma re dução igual em ambas as direções mas uma redução diferente no sentido horizon tal U e outra na vertical V O mipmapping bidirecional apresenta um resultado melhor sempre que a redução for diferente em cada sentido Figura 759 75 HIPERREALISMO As técnicas de hiperrealismos são adições aos métodos de rendering que aumen tam o realismo de uma imagem para o fotorrealismo Os métodos de iluminação global ray tracing caustic e radiosidade são exemplos clássicos da síntese de imagens realistas Grande parte desses métodos ocorre na passada de iluminação ou efeito Esses recursos geralmente não estão disponíveis no render padrão dos sistemas forçando os artistas a buscar técnicas de simulação Porém você poderá incorporar esses recursos instalando plugins como o Final Render ou Render Brazil 324 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 128 x 128 64 x 64 32 x 32 16 x 16 8 x 8 4 x 4 2 x 2 FIGURA 758 Redução da textura pelo fator 2 FIGURA 759 Mipmapping bidirecional 751 High Dynamic Range Images HDRI Geralmente ao se criar uma cena 3D os objetos distantes como montanhas nu vens lagos árvores e todo cenário de fundo não são modelados para não sobrecar regar inutilmente o softwarehardware deixandoo lento e travado Nesses casos são usadas imagens como fundo backgrounds essas imagens são incorporadas a cena mas não interagem com os objetos ou seja não contribuem na iluminação Os arquivos de extensão hdr possuem propriedades de energia passando ao pro grama quais regiões da imagem são fontes de luz O que ocorre é que as imagens HDR possuem mais informações além dos canais de cores RGB Essas informa ções adicionais dizem quais são os pixels da imagem que contêm atributos de ener gia luminosa Sendo assim em uma foto convencional de um céu onde existe o Sol por exemplo a área que corresponde a ele seria no máximo branca com informa ções de RGB em 255255255 mas na verdade deveriam existir bem mais intensi dades e estas deveriam contribuir para a iluminação da cena O mapa de imagem com HDR corrige essa deficiência incluindo na imagem informações de intensidade de luz Uma das coisas mais interessantes deste método é que em muitos casos será desnecessária a utilização de qualquer tipo de lâmpadas na cena ficando a ilumina ção total a cargo do mapa HDR Objetos iluminados com HDR parecem realmente fazer parte de todo o cenário Isso possibilita um fotorealismo impressionante e quase sempre as cenas não pre cisam conter uma única fonte direta de luz A Figura 760 apresenta duas imagens com mapeameto HDR de diferentes intensidades Observe que nessa cena não exis te nenhuma lâmpada e que a luz parte da própria imagem 752 Atenuação Atmosférica Neste modelo os objetos que estão mais distantes do observador vão parecer estar mais foscos Isso ocorre no mundo físico por causa de materiais presentes na atmos REALISMO VISUAL E ILUMINAÇÃO 325 FIGURA 760 High Dynamic Range Images HDRI fera como poeira vapor dágua ou fumaça O que acontece é que a fonte de luz emite raios que quando se encontram com as camadas atmosféricas são em parte é refle tidos e em parte é dispersados Figura 761 753 Area Light e Soft Shadow Quando temos uma fonte de luz os raios emitidos na maioria dos casos não deri vam de um único ponto No caso de uma lâmpada fluorescente tubular a luz parte de todo o seu extenso cilindro Ao projetar sombras essas luzes chamadas de Áreas de Luz formam uma som bra suave que se dispersa à distância Figura 716 Isso permite um sombreamento mais convincente e verdadeiro Essas sombras são típicas de cenas que usaram ra diosidade ou iluminação global e por isso o uso simulado desse tipo de iluminação serve também para ajudar na produção de falsa radiosidade 754 SubSurface Light Scattering Sub Surface Light Scattering é um aprimoramento das técnicas de radiosidade que leva em conta o material utilizado no objeto Se colocarmos nossa mão próxima a uma lâmpada veremos que a luz atravessa a mão produzindo uma coloração aver melhada A essa propriedade damos o nome de translucidez cuidado para não con fundir com transparência A translucidez está presente em diversas obras de arte como estátuas e em uma infinidade de elementos na natureza Na Figura 762 uma das estátuas recebeu o tratamento enquanto a outra não 326 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 761 Efeito provocado pela atenuação atmosférica Neste contexto existem mais duas técnicas BRDF Bidirectional Reflectance Distri bution Function e BSSRDF Bidirectional Surface Scattering Distribution Function A BSSRDF descreve com maior precisão do que a BRDF a forma como a luz en tra e sai de um material BSSRDF pode descrever os movimentos da luz no momen to em que entra e sai do material enquanto BRDF assume que o raio de luz entra e sai do material no mesmo ponto Sub Surface Light Scattering utilizará BSSRDF para descrever a mudança do ân gulo da luz provocada pela particularidade do material A Figura 763 apresenta o detalhamento interno da superfície de uma folha REALISMO VISUAL E ILUMINAÇÃO 327 FIGURA 762 SubSurface Light Scattering aplicado em um objeto transparente FIGURA 763 Detalhamento interno da superfície de uma folha com Scattering 755 Depth of Field DOF ou Profundidade de Campo Ao fotografar ou filmar algo com uma câmera temos de ajustar o foco para o objeto alvo Figura 764 Esse ajuste faz com que todos os objetos que estiverem em ou tras profundidades na frente ou atrás apareçam borrados O efeito de DOF simula na iluminação esse efeito em 3D causado pela lente da câmera é um recurso muito útil para conseguir mais inteligibilidade em uma cena 756 Motion Blur Desfocagem por Movimento Quando fotografamos um objeto em movimento observamos que ele aparece desfocado embaçado em relação aos outros exceto quando aumentamos muito a velocidade do diafragma No processo físico o desfoque por movimento ocorre em conseqüência do tempo de exposição do filme à luz Os sistemas tentam simu lar esse efeito calculando a posição dos objetos nos quadros anteriores e nos pos teriores e misturando todas essas diferentes posições num único quadro Esse efei to é muito simples e fácil de ser usado podendo ser aplicado nos objetos ou na cena inteira 757 Film Grain Este efeito recria o efeito granulado das películas filmes Pouco utilizado pela maio ria dos usuários de computação gráfica é um dos efeitos mais importantes existen tes Um pequeno toque de ruído na cena pode tirar em grande parte aquele visual e limpo de imagens geradas por computador 328 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 764 Depth of Field DOF ou Profundidade de Campo 758 Lens Flare São pequenos círculos que você normalmente veria saindo da fonte de luz Eles são causados pela refração da luz nos diversos elementos de lente na máquina fotográfi ca ou vídeo Repare na Figura ColorPlate 4 o pequeno círculo ao lado do sol e o ar coíris formado pela lente 759 Glow Adiciona uma aura ao redor do objeto Por exemplo para sistema de partícula ou uma explosão adicionando o glow as partículas parecerem mais brilhantes e quentes O glow é muito usado para simular a exaustão em turbinas de avião mas se você observar esse efeito na natureza na forma de estrelas anéis listras ou outras formas Na maioria das vezes essas formas ocorrem em conjunto 76 REALISMO E ILUMINAÇÃO EM OPENGL 761 Zbuffer Buffers são áreas reservadas de memória utilizadas para determinados propósitos Em aplicações de animação por exemplo o doublebuffer permite que as sucessi vas renderizações sejam feitas de modo suave sem o efeito indesejável de piscar en tre cada atualização da janela de visualização Para isso o comando auxInitDisplayMode deve ser utilizado com o parâmetro AUXDOUBLE e o comando auxSwapBuffers deverá ser acrescentado ao final dos comandos de renderização O zbuffer também é bastante comum em aplicações gráficas e é utilizado para calcular a distância do observador e remover superfícies ou partes ocultas de obje tos sobrepostos Para ativar este recurso utilizamos o comando auxInitDisplay Mode com o parâmetro AUXDEPTH o comando glClear com o parâmetro GLDEPTHBUFFERBIT e acrescentamos o comando glEnable com o parâme tro GLDEPTHTEST antes dos comandos de renderização glDepthRangeznear zfar default 0 1 762 HiddenSurface Removal While 1 pegaropontodevistadaposiçãodomouse glClearGLCOLORBUFFERBIT draw3dobjectA draw3dobjectB REALISMO VISUAL E ILUMINAÇÃO 329 763 Algoritmo de Eliminação de Faces Culling O Comando glCullFaceGlenum mode indica se alguma face ou se todo o objeto deve ser descartado antes de serem convertidos para a coordenada de vídeo As op ções destecomandoincluemGLBACKparaexclusãodafaceposteriorGLFRONT para exclusão da face dianteira e GLFRONTANDBACK para exclusão de todo o objeto 764 Iluminação 7641 Modelo de Tonalização O modelo de tonalização pode ser estabelecido com o comando glShadeModelGLenum mode onde mode especifica o modelo de tonalização sendo o padrão GLSMOOTH modelo de Gouraud onde a cor de cada ponto da primitiva é interpolada a partir da cor calculada nos vértices O outro modelo é GLFLAT onde a cor não varia 7642 Propriedades de Iluminação do Material O comando glMaterial e suas variações estabelecem os parâmetros do material que serão usados pelo modelo de iluminação As variações desse comando são glMaterialfGlenum face GLenum pname GLfloat param glMaterialiGLenum face GLenum pname GLint param glMaterialfvGLenum face GLenum pname const GLfloat params glMaterialivGLenum face GLenum pname const GLint params onde face determina se as propriedades do material dos polígonos que estão sen do especificadas são front GLFRONT back GLBACK ou ambas GLFRONTANDBACK pname para as duas primeiras variações especifica o parâmetro de um úni co valor que está sendo determinado para as duas últimas variações que recebem um vetor como parâmetro pode determinar as seguintes pro priedades do material GLAMBIENT GLDIFFUSE GLSPECULAR GLEMISSION GLSHININESS GLAMBIENTANDDIFFUSE ou GLCOLORINDEXES param GLfloat ou GLint especifica o valor que será atribuído para o parâ metro determinado por pname params GLfloat ou GLint é um vetor de números reais ou inteiros que contém as componentes da propriedade que está sendo especificada 330 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Através dessa função é possível determinar as propriedades de reflexão do mate rial As propriedades GLAMBIENT GLDIFFUSE e GLSPECULAR afetam a ma neira na qual as componentes de luz incidente são refletidas GLEMISSION é usa do para materiais que possuem luz própria GLSHININESS pode variar de 0 a 128 quanto maior o valor maior é a área de highlight especular na superfície GLCOLORINDEXES é usado para as propriedades de refletância do material no modo de índice de cores 7643 Modelo de Iluminação O comando glLightModel com suas variações estabelece os parâmetros do modelo de iluminação usado por OpenGL É possível especificar quantos modelos desejar GLLIGHTMODELAMBIENT é usado para especificar a luz ambiente padrão para uma cena GLLIGHTMODELTWOSIDE é usado para indicar se ambos os lados de um polígono são iluminados O padrão ilumina somente o lado frontal GLLIGHTMODELLOCALVIEWER modifica o cálculo dos ângulos de refle xão especular As variações desse comando são glLightModelfGLenum pname GLfloat param glLightModeliGLenum pname GLint param glLightModelfvGLenum pname const GLfloat params glLightModelivGLenum pname const GLint params onde pname especifica o modelo de iluminação param GLfloat ou GLint para GLLIGHTMODELLOCALVIEWER um valor 00 indica que os ângulos da componente especular tomam a dire ção de visualização como sendo paralela ao eixo z e qualquer outro valor indica que a visualização ocorre a partir da origem do sistema de referência da câmera para GLLIGHTMODELTWOSIDE um valor 00 indica que somente os polígonos frontais são incluídos nos cálculos de ilumina ção e qualquer outro valor indica que todos os polígonos são incluídos nos cálculos de iluminação params GLfloat ou GLint para GLLIGHTMODELAMBIENT ou GLLIGHTMODELLOCALVIEWER aponta para um vetor de núme ros inteiros ou reais para GLLIGHTMODELAMBIENT o conteúdo do vetor indica os valores das componentes RGBA da luz ambiente REALISMO VISUAL E ILUMINAÇÃO 331 7644 Fonte de Luz O Comando glLight e suas variações estabelecem os parâmetros da fonte de luz para uma das oito fontes de luz disponíveis As variações desse comando são glLightfGLenum light GLenum pname GLfloat param glLightiGLenum light GLenum pname GLint param glLightfvGLenum light GLenum pname const GLfloat params glLightivGLenum light GLenum pname const GLint params onde light especifica qual fonte de luz está sendo alterada varia de 0 a GLMAXLIGHTS valores constantes de luz são enumerados de GLLIGHT0 a GLLIGHT7 pname especifica qual parâmetro de luz está sendo determinado pela chama da dessa função GLAMBIENT GLDIFFUSE GLSPECULAR GLPO SITION GLSPOTDIRECTION GLSPOTEXPONENT GLSPOTCUT OFF GLCONSTANTATTENUATION GLLINEARATTENUATION GLQUADRATICATTENUATION param GLfloat ou GLint para parâmetros que são especificados por um único valor param esses parâmetros válidos somente para spotlights são GLSPOTEXPONENT determina a concentração da luz GLSPOTCUT OFF especifica a largura do cone GLCONSTANTATTENUATION GLLINEARATTENUATION e GLQUADRATICATTENUATION ti pos de atenuações params GLfloat ou GLint um vetor de valores que descrevem os parâ metros que estão sendo especificados As duas primeiras variações requerem apenas um único valor para determinar uma das seguintes propriedades GLSPOTEXPONENT GLSPOTCUTOFF GLCONSTANTATTENUATIONGLLINEARATTENUATIONeGLQUADRA TICATTENUATION As duas últimas variações são usadas para parâmetros de luz que requerem um vetor com múltiplos valores GLAMBIENT GLDIFFUSE GLSPECULAR GLPOSITION e GLSPOTDIRECTION Para eliminar o brilho do objeto como se o material fosse opaco basta eliminar a componente especular Programa Exemplo de Iluminação float pos4 3331 float color4 1111 float sp4 1111 float matspecular 1111 glEnableGLDEPTHTEST glEnableGLCOLORMATERIAL 332 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA glEnableGLLIGHTING glEnableGLLIGHT3 glEnableGLLIGHT5 glEnableGLLIGHT6 glLightfvGLLIGHT3 GLSPECULAR sp glLightfvGLLIGHT5 GLSPECULAR sp glLightfvGLLIGHT6 GLSPECULAR sp color1color20 glLightfvGLLIGHT3 GLDIFFUSE color color00 color11 glLightfvGLLIGHT5 GLDIFFUSE color color10 color21 glLightfvGLLIGHT6 GLDIFFUSE color glLightfvGLLIGHT3 GLPOSITION pos pos0 3 glLightfvGLLIGHT5 GLPOSITION pos pos00pos13 glLightfvGLLIGHT6 GLPOSITION pos glMaterialfvGLFRONT GLSPECULAR matspecular glMaterialfGLFRONT GLSHININESS 1280 765 Texturas OpadrãoOpenGLexigequeasdimensõesdasimagensdetexturassejamempotências de 2 As imagens de textura podem também ter 1 ou dois pixels de borda sobre suas ex tremidades para definir a cor dos polígonos que estão fora da imagem de textura O uso de texturas requer a execução de dois passos distintos a carga e a aplica ção da textura Em OpenGL cada textura recebe um número de identificação atra vés da função glGenTextures que é usado para definir a textura corrente Sempre que for necessário trabalhar com uma textura para carga ou aplicação devese chamar a função glBindTexture que define a textura corrente através do número de identificação 7651 Carga de uma Textura Pararealizaratarefadecargadeumatexturaénecessárioseguirosseguintespassos Habilitar o uso de texturas glEnable GLTEXTURE2D GLTEXTURE2D define que será usada uma textura 2D REALISMO VISUAL E ILUMINAÇÃO 333 Definir a forma de armazenamento dos pixels na textura 1 alinhamento por byte glPixelStorei GLUNPACKALIGNMENT 1 Definir quantas texturas serão usadas no programa GLuint textureidMAXNOTEXTURES vetor com os números das texturas glGenTextures 1 textureid 1 uma textura textureid vetor que guarda os números das texturas Definir o número da textura do cubo textureid0 1001 Definir a textura corrente glBindTexture GLTEXTURE2D textureid0 carregar uma imagem TGA imaget tempimage tgaLoad TGAImagetga tempimage TGAFREE TGALOWQUALITY 7652 Aplicando uma Textura Para a aplicação da textura é preciso criar uma relação entre os vértices da textura e os vértices dos polígonos sobre os quais se deseja mapear a textura escolhida O processo de mapeamento de texturas em OpenGL consiste em aplicar a imagem 2D sobre o polígono 3D de forma que os pontos A B C e D Figura 765 sejam en caixados sobre os pontos A1 B1 C1 e D1 Para permitir a construção dessa corres pondência entre a imagem 2D e o polígono 3D usase a função glTexCoord2f antes da definição do ponto 3D Por exemplo glTexCoord2f00f 00f glVertex3f10f 10f 10f define que o ponto 00 00 da textura 2D corresponde ao ponto 10 10 10 do polígono 3D O Código para aplicação da textura segue como 334 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 765 Relação entre os vértices para aplicar texturas em OpenGL Define a textura corrente glBindTexture GLTEXTURE2D textureid0 associa cada vértice do polígono a um ponto da textura glTexCoord2f10f 00f glVertex3f10f 10f 10f glTexCoord2f10f 10f glVertex3f10f 10f 10f glTexCoord2f00f 10f glVertex3f10f 10f 10f glTexCoord2f00f 00f glVertex3f10f 10f 10f 7653 MipMapping A OpenGL e grande parte das placas de vídeo suportam texturas com múltiplas imagens A técnica mipmapping seleciona a imagem de textura para um polígono mais próximo da resolução da tela A carga da texturas mipmapped leva um pouco mais de tempo do que uma textura padrão mas os resultados visuais são melhores Além disso as texturas mipmapped podem melhorar a performance de exibição re duzindo a necessidade de filtros de imagem GLLINEAR As texturas mipmapped são definidas fornecendo um parâmetro específico de ní vel para cada imagem Os níveis de imagem são especificados no primeiro parâme tro da chamada glTexImage1D A imagem nível 0 é a primária com a maior reso lução para a textura A imagem nível 1 é metade do tamanho da imagem primária e assim por diante Quando polígonos com uma textura mipmapped são desenhados é necessário o uso de filtros redutores GLTEXTUREMINFILTER veja a se guinte tabela Filtro Descrição GLNEARESTMIPMAPNEAREST Usa a imagem mais próxima da resolução da tela polígono Usa o filtro GLNEAREST quando faz a texturização com essa imagem GLNEARESTMIPMAPLINEAR Usa a imagem mais próxima da resolução da tela polígono Usa o filtro GLLINEAR quan do faz a texturização com essa imagem GLLINEARMIPMAPNEAREST Interpola linearmente entre duas imagens mais próximas da resolução da tela polígono Usa o filtro GLNEAREST quando faz a texturiza ção com essa imagem GLLINEARMIPMAPLINEAR Interpola linearmente entre duas imagens mais próximas da resolução da tela polígono Usa o filtro GLLINEAR quando faz a texturização com essa imagem REALISMO VISUAL E ILUMINAÇÃO 335 766 Fog névoa O uso de névoa no OpenGL é bem simples bastando ativar através do comando glEnable GLFOG Os parâmetros de densidade início e fim são especificados com o comando GlFogGlenum pname TYPE param Exemplo glEnableGLFOG glFogiGLFOGMODE GLLINEAR especifica o fator da névoa podendo ser também GLEXP padrão ou GLEXP2 glFogiGLFOGINDEX 32 especifica a cor glFogfGLFOGSTART 10 especifica onde inicia a névoa glFogfGLFOGEND 40 especifica onde termina a névoa 336 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Índice Ábaco aceleraçã AIDS aliasing alpha amortecimento anatômicas animatic anisotrópico antialiasing antropomórfica aramada Arquitetura Arte astronomia autosimilaridade axiomas axométricas bastonetes Bernstein Bézier bicúbica bilinear biomecânica bípede blur booleanas Brep Bresenham BSP BSpline buffer bump cabinet câmeras captura cartoon Catmull cavaleira cena ciclo cinemática cinética cisalhamento colisão colorimetria cones cônicas coordenadas criaturas CRT culling DaVinci decomposição deficiência deformáveis Descarte desenho designers difusa dimensões dimétricas dinâmicos Disney disparidades DNA DOFs educação efeitos elástico eletromecânicos eletrostática elipsóide emissores engenharia escala espelhamento esqueleto estéreo estereoscópicas estímulo estocástico Euclides Euler extrusão fantasia fenômenos FK flexíveis flexores flipbooks fluidos fogo fonema fotografia fotométrico fotorealismo fractais fronteira fuzzy genus Gouraud gradiente Hermite highlight homogêneas HSR IK inbetweening incandescentes indústria inércia interação interface Interpolações invisível isométrica jogos keyframe kinematics lâmpadas laser lentes malha Mandelbrot manifold Mäntylä marcadores mecânica medicina memória meshSmooth meteorologia mola NASA natureza Newton NURBS NURMS observador oclusão octante octree olho opacidade óticos paisagismo paramétrica partícula patches pêlos percepção perspectiva Phong Pitágoras pivô pixel poliedros ponteiros popularização PosetoPose primitivas procedural programadores projeção projeto quadrúpedes quadtree QWERTY radiosidade raio raster rasterização raytracing Realidade Virtual realismo realizáveis realtime reciclagem reconstituição recorte Reeves reflexão refração resistência resolução respiração reticulado retina Riemann rigidez robótica rotação rotoscopia ruídos RV satélite scanline scanners script sensores serrilhamento shading shearing SIGGRAPH simulações sincronização síntese sintética slices solar sólidos sombra sombra sombreamento sons sotaques stacks Stereoscopic storyboard suavização subdivisão sweeping tecidos temporeal topologia track trajetória transparência triangulação tricromáticas trilineares unicidade varredura visão viscosos voxels Warps WingedEdge wireframe ZBuffer 338 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Preencha a ficha de cadastro no final deste livro e receba gratuitamente informações sobre os lançamentos e as promoções da Editora Campus Consulte também nosso catálogo completo e últimos lançamentos em wwwcampuscombr 2003 Editora Campus Ltda uma empresa Elsevier Todos os direitos reservados e protegidos pela Lei 9610 de 19021998 Nenhuma parte deste livro sem autorização prévia por escrito da editora poderá ser reproduzida ou transmitida sejam quais forem os meios empregados eletrônicos mecânicos fotográficos gravação ou quaisquer outros Copidesque Michele MacCulloch Editoração Eletrônica Estúdio Castellani Projeto Gráfico Editora Campus Ltda A Qualidade da Informação Rua Sete de Setembro 111 16º andar 20050006 Rio de Janeiro RJ Brasil Telefone 21 39709300 FAX 21 25071991 Email infocampuscombr Filial Campus Rua Elvira Ferraz 198 04552040 Vila Olímpia São Paulo SP Tel 11 38458555 ISBN 85352 CIPBrasil Catalogaçãonafonte Sindicato Nacional dos Editores de Livros RJ 03 04 05 06 07 5 4 3 2 1 A todos que foram meus alunos nos mais diversos cursos nestes anos de magisté rio principalmente aos mais curiosos e indagadores Dedico aos meus pais que sempre me ensinaram a buscar o valor da inteligência no trabalho e no que é importante além das superficialidades Aura Conci A computação gráfica salva vidas vê a vida de outras formas acha novas formas de vida recria a vida e emociona Mas ela pode iludir pode manipular e destruir Este livro é para as pessoas que querem imaginar e criar Dedicado aos meus avós o escritor Dióscoro Campos e o professor Ruy Azevedo Aos meus pais Mara Campos e Ruy Azevedo Agradecimentos aos meus tios primos e amigos ao Prof Ferraz e equipe Profa Marisa Ortegoza Profa Paula Maciel Sebastião Lago Jr e equipe Ronaldo Gueraldi irmãos Bonnet Fabio PolicarpoFrancisco Meirelles e equipe Sergio Canabrava Kimura Lee e Ana Cecília Azevedo Eduardo Azevedo Em memória de tios avós e amigos jovens vítimas da violência Sumário CAPÍTULO 1 VISÃO GERAL 1 11 Computação Gráfica Arte e Matemática 3 12 Origens da Computação Gráfica4 121 Escala Temporal 5 13 Áreas da Computação Gráfica8 14 O Mercado da Computação Gráfica 8 15 Percepção Tridimensional10 151 Informações monoculares 11 1511 Perspectiva 11 1512 Conhecimento prévio do objeto 11 1513 Oclusão12 1514 Densidade das texturas 12 1515 Variação da reflexão da luz 13 1516 Sombras e sombreamentos 13 152 Informações visuais óculomotoras13 1521 Acomodação 13 1522 Convergência 13 153 Informações visuais estereoscópicas 13 16 Representação Vetorial e Matricial de Imagens 14 17 Arquitetura de Hardware 15 171 Dispositivos Gráficos de Entrada16 Dispositivos de entrada 3D 17 172 Dispositivos Gráficos de Saída18 18 OpenGL25 Integração do OpenGL com Windows95982000XP 27 O Primeiro Programa 28 Sintaxe de Comando29 CAPÍTULO 2 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 31 21 Matrizes em Computação Gráfica 33 SUMÁRIO VII 22 Pontos Vetores e Matrizes 33 23 Aritmética de Vetores e Matrizes34 24 Sistemas de Coordenadas36 241 Sistema de Referência do Universo SRU 37 242 Sistema de Referência do Objeto SRO37 243 Sistema de Referência Normalizado SRN 37 244 Sistema de Referência do Dispositivo SRD 38 245 Transformações entre Sistemas de Coordenadas38 25 Transformações em Pontos e Objetos 38 251 Transformação de Translação 38 252 Transformação de Escala 40 253 Transformação de Rotação41 254 Transformação de Reflexão Espelhamento ou Flip47 255 Transformação de Cisalhamento49 26 Coordenadas Homogêneas 50 27 Projeções Geométricas 52 271Classificação das Projeções Geométricas 53 272 Projeções Paralelas Ortográficas56 273 Projeções Paralelas Axométricas58 274 Projeção Perspectiva ou Cônica59 28 Especificação dos pontos de fuga 63 29 Câmera Virtual 64 210 Transformações Geométricas com OpenGL 66 2101 Transformação de Translação 66 2102 Transformação de Escala 66 2103 Transformação de Rotação66 2104 Matrizes de transformação67 2105 Armazenando as transformações na matriz 67 2106 Alterando a matriz de transformação 68 2107 Montando transformações hierárquicas 68 2108 Desfazendo o vínculo de hierarquia 69 2109 Matriz genérica de projeção69 21010 Projeção paralela ortogonal 69 21011 Projeção em perspectiva 70 21012 Posição da câmera 70 CAPÍTULO 3 CURVAS E SUPERFÍCIES 73 31 Representação de Curvas 75 311 Conjunto de Pontos 75 312 Representação Analítica 76 313 Formas nãoParamétricas de Representar Curvas 77 314 Formas Paramétricas de Representar Curvas 79 315 Curvas Paramétricas de Terceira Ordem81 VIII COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 316 Hermite 81 317 Bézier87 318 Splines92 3181 Splines Uniformes e Periódicas 94 3182 Splines NãoPeriódicas 94 3183 Splines NãoUniformes 95 3184 Desenvolvimento da Formulação Genérica de BSplines96 3185 CatmullRom Splines97 319 Curvas Racionais 99 32 Superfícies 101 321 Superfícies de Revolução 101 322 Superfícies Geradas por Deslocamento102 323 Superfícies Geradas por Interpolação Bilinear 103 324 Interpolações Trilineares 105 325 Superfícies de Formas Livres106 326 Superfícies Paramétricas Bicúbicas 106 327 Superfícies de Hermite107 328 Superfícies de Bézier107 329 Superfícies de BSpline108 3210 Normais a Superfícies 109 3211 Superfícies Racionais 110 3212 NURBS 110 32121 NURBS em OpenGL113 3213 Subdivisão de Superfícies com CatmullClark e NURMS 114 CAPÍTULO 4 REPRESENTAÇÃO E MODELAGEM 119 41 Pivô 121 42Sólidos uni bi e tridimensionais 122 43 Sólidos realizáveis 123 44 Formas de representação de objetos124 441 Representação Aramada Wire Frame125 442 Representação por Faces ou Superfícies Limitantes 125 443 Representação por Faces Poligonais 127 444 Fórmula de Euler 129 445 Operadores de Euler130 446 Estrutura de dados baseada em vértices 131 447 Estrutura de dados baseada em arestas 132 448Estrutura de dados WingedEdge e Half WingedEdge 133 449Utilização de Operações Booleanas com Brep134 4410Representação por Enumeração da Ocupação Espacial 135 4411 Representação por Decomposição do Espaço em Octrees136 4412 Notação Linear 137 4413 Representação por Decomposição do Espaço em Quadtrees137 SUMÁRIO IX 4414 Quadtrees e Octrees Lineares 137 4415 Quadtrees e Octrees híbridas139 4416 Representação por Partição Binária do Espaço Binary SpacePartitioning BSP139 4417 Representação Implícita140 45 Técnicas de Modelagem Geométrica 140 451 Instanciamento de Primitivas 141 452 Objetos de Combinação142 453 Operações Booleanas e Booleanas Regularizadas 142 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry144 455 Connect144 456 Modelagem por Varredura Sweep ou Deslizamento 145 4561 Varredura Translacional Extrusão 145 4562 Varredura Rotacional146 457 Modelagem por Seções Transversais146 458 Modelagem por Superfícies 146 46 Modificadores 147 461 Bend ou Curvatura147 462 Lattice ou Malha148 463 MeshSmooth ou Suavização 148 464 Optimize 149 465 Bevel 149 466 Melt 149 467 Skew 150 468 Squeeze e Stretch 151 469 Taper151 4610 Twist 152 4611 Displace ou Deslocamento152 4612 Space Warps 152 47 Interfaces para Modelagem Geométrica153 471 Tape Fita de Medida 153 472 Protractor Transferidor153 473 Compass Bússola153 474 Array Vetor 153 48 Modelagem Geométrica com OpenGL154 481 Desenhando um Ponto154 482 Desenhando uma Linha 154 483 Desenhando um Polígono 155 484 Primitivas 155 485 Objetos Sólidos155 486 Wireframe156 49 Modelagem pelo Número de Ouro156 491 A Seqüência de Fibonacci 158 410 Modelagem Fractal 159 4101 Os Objetos de Mandelbrot162 X COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 411 Shape from X Reconstrução Tridimensional 163 4111 Implementação169 412 Sistemas de Partículas 171 4121 Distribuição de partículas no sistema 173 4122 Noção de centro de massa 174 4123 Velocidade do centro de massa 174 4124 Quantidade de movimento 174 4125 Aceleração do centro de massa 175 4126 Movimento de uma partícula em relação ao seu centro de massa176 4127 Choque 176 4128 Quantidade de movimento de um sistema de duas partículas 177 4129 Energia de um sistema de duas partículas 177 41210 Conceito de Sistemas de Partículas177 Posição 179 Velocidade 179 Cor 179 Transparência 179 Tamanho 179 Tempo de Vida180 41211 Renderizando as Partículas 180 41212 Características dos Sistemas de Partículas 181 CAPÍTULO 5 CORES 183 51 Sistema Visual Humano 185 52 Descrição da Cor da Luz 189 53 As Ondas Eletromagnéticas 191 54 Sistemas de Cores Primárias 193 55 Sistemas de Cores Aditivas 195 56 Sistemas de Cores Subtrativas196 57 Famílias de Espaços de Cor 197 571 Modelo fisiológico 197 572 Modelo baseado em medidas físicas 197 573 Modelo de sensações oponentes 198 574Modelo psicofísico198 58 O Modelo RGB198 59 O Modelo CMYK199 510 Espaço de percepção subjetiva 199 511 O modelo HSV201 512 O Modelo HSL202 Vantagens dos modelos HSV e HLS JACK 94 203 Desvantagens dos modelos HSV e HLS JACK 94203 513 O Modelo YIQ 203 514 Transformação dos Espaços de Cor 204 SUMÁRIO XI 5141 De RGB para XYZ204 5142 De RGB para EixosOponentes OPP 206 5143 De RGB para HSV206 515 Uso de Cores nas Imagens 207 516 Descrição das Cores 208 Branco 208 Preto 208 Cinza 208 Vermelho209 Amarelo209 Verde 209 Azul 210 517 Histograma de cores 210 518 Espaço de Cores Oponentes 211 519 Ilusões Relacionadas às Cores 213 520 Problemas com Cores na Computação 213 521 Cores em OpenGL214 5211 Transparência214 CAPÍTULO 6 ANIMAÇÃO 217 61 Histórico 219 62 Aplicações da Animação 220 63 Animação por Computador 220 64 Formas de Animação221 641 Animação por QuadroChave Keyframe 221 642 Animação por Script221 643 Animação Procedural222 644 Animação Representacional222 645 Animação Estocástica223 646 Animação Straight Ahead223 647 Animação PosetoPose 223 648 Animação por Comportamento ou Comportamental 223 649 Animação Track Based223 65 Canal Alpha 223 66 Composição 224 661 Filmagem da Cena Real 225 662 Reconstrução da Cena em 3D 226 67 Captura de Movimento 226 671 Rotoscopia 226 672 Sistemas de Captura227 6721 Ótico 228 6722 Mecânico 228 6723 Magnético228 XII COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 6724 Acústico 228 673 Cartoon Motion Capture 228 68 Animação de personagens 3D229 681 Cinemática 230 6811 Cinemática Direta 230 6812 Cinemática Inversa 232 682 Ossos232 683 Articulações 233 6831 Junta de Revolução 233 6832 Junta esférica 233 6833 Grau de Liberdade 233 684 Esqueleto 235 6841 Controladores IK 237 6842 Ciclo de Animação238 6843 Sistemas de Animação IK239 685 Músculo Flexor 240 686 Cabelos e Pêlos241 687 Animação Facial 242 6871 Sincronização Labial 243 6872 Seqüência de Texturas 243 6873 Morphing 243 6874 Esqueleto 243 6875 Free Form Deformation243 6876 Weighted Morphing243 69 Animação de Superfícies Deformáveis 244 610 Produção de Animação 246 611 Princípios da Animação 247 612 Cena de Animação248 613 A Animação no Processo de Aprendizado 249 CAPÍTULO 7 REALISMO VISUAL E ILUMINAÇÃO 251 71 Rendering253 711 Fases do Processo de Realismo Visual 254 712 Realismo por Passadas 255 713 Acabamentos nãofotográficos257 72 Rasterização 258 721 Algoritmo de Bresenham para traçado de linhas 260 722 Rasterização de Polígonos 261 723 Preenchimento de polígonos por scanline 262 724 Remoção de Linhas e Superfícies Escondidas263 7241 Algoritmo de Visibilidade por Prioridade ou Algoritmo do Pintor 267 SUMÁRIO XIII 7242 Algoritmo de Eliminação de Faces Ocultas pelo Cálculo da Normal 269 7243 Algoritmo ZBuffer272 73 Iluminação 276 731 Tipo de Emissores 278 7311 Emissor Natural 278 7312 Luz Ambiente278 7313 Emissores de Luz Artificiais 279 732 Reflexões280 7321 Reflexão Ambiente281 7322 Reflexão Difusa 283 7323 Reflexão Especular285 733 Refração 289 734 Transparência 291 735 Sombreamento Shading 292 7351 Modelo de Sombreamento Constante292 7352 Sombreamento de Gouraud294 7353 O Modelo de Phong 296 736 Sombras298 7361 Volume de Sombra298 7362 Sombra Projetada 298 7363 Algoritmo de AthertonWeilerGreeberg 299 7364 Algoritmo de Mapeamento 299 7365 Algoritmo de Appel 299 7366 Sombreamento Anisotrópico299 737 Modelo de Iluminação Global 300 7371 Ray Tracing 301 Reflexos310 Refrações 310 Metais com Ray tracing 311 7372 Caustic 311 7373 Radiosidade 313 738 Técnicas de Iluminação 317 7381 Luz Principal Key Light 318 7382 Luz de Preenchimento Fill Light 318 7383 Luz de Recuo Back Light 319 74 Texturas 319 741 Mapas Procedurais 320 742 UVW Map320 743 Texture Map 321 744 Environment Mapping ou Mapa de Reflexão 322 745 Bump Map323 7451 Emboss Bump Map 324 7452 Environment Mapped Bump Mapping 325 7453 PerPixel Shading325 XIV COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 746 Light Map 326 747MipMapping328 75 HiperRealismo 329 751 High Dynamic Range Images HDRI 330 752 Atenuação Atmosférica 330 753 Area Light e Soft Shadow331 754 SubSurface Light Scattering 331 755 Depth of Field DOF ou Profundidade de Campo 333 756 Motion Blur Desfoque por Movimento333 757 Film Grain 333 758 Lens Flare 334 759 Glow 334 76 Realismo e Iluminação em OpenGL334 761 Zbuffer334 762 HiddenSurface Removal 334 763 Algoritmo de Recorte Culling335 764 Iluminação 335 7641 Modelo de Tonalização 335 7642 Propriedades de Iluminação do Material 335 7643 Modelo de Iluminação 336 7644 Fonte de Luz337 Programa Exemplo de Iluminação337 765 Texturas 338 7651 Carga de uma textura338 7652 Aplicando uma Textura339 7653 MipMapping 340 766 FOG névoa341 SUMÁRIO XV FIGURA 1 Render NPR Toon Shading FIGURA 2 Render NPR simulação das pinceladas de pinturas FIGURA 3 Detalhe do sistema de elevação da escavadeira FIGURA 4 Água e nuvens criadas com fractais FIGURA 5 SistemadePartículassimulandoáguaemcolisãocomaspedras FIGURA 6 Processo aditivo das cores primárias FIGURA 7 Processo subtrativo das cores secundárias FIGURA 8 Processo de obtenção das cores secundárias Azul Magenta Vermelho Amarelo Verde Turquesa FIGURA 9 Subespaço do modelo RGB FIGURA 10 O sistema de Munsell FIGURA 11 O espaço de Munsell Tonalidade Saturação Valor FIGURA 12 O modelo HSV Tonalidade Brilho FIGURA 13 O modelo HLS Y Z RGB Todas as Cores X FIGURA 14 Distribuição no espaço XYZ do sistema RGB FIGURA 16 Cena com adição da iluminação e reflexões FIGURA 15 Cena com adição de texturas FIGURA 18 Light Map de uma fase da engrenagem Fly3D Cortesia da Paralelo Computação FIGURA 17 Radiosidade e sua variação de sombreamento gradual

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Comportamento Reprodutivo da Andorinha-Celeiro - Guia Completo

1

Comportamento Reprodutivo da Andorinha-Celeiro - Guia Completo

Organização de Computadores

UFES

Lista de Exercicios Circuitos Digitais - Multiplexadores e Deslocadores Programaveis

1

Lista de Exercicios Circuitos Digitais - Multiplexadores e Deslocadores Programaveis

Organização de Computadores

UFES

Plano de Ensino - Fundamentos de Organização e Arquitetura de Computadores - CSI211

6

Plano de Ensino - Fundamentos de Organização e Arquitetura de Computadores - CSI211

Organização de Computadores

UFOP

Memória Cache - Python

9

Memória Cache - Python

Organização de Computadores

UFMG

Exercícios de Organização de Computadores

9

Exercícios de Organização de Computadores

Organização de Computadores

USP

Lista de Exercicios Sistemas Operacionais UFMS - Questões e Conceitos Chave

3

Lista de Exercicios Sistemas Operacionais UFMS - Questões e Conceitos Chave

Organização de Computadores

UFMS

Texto de pré-visualização

CAPÍTULO 1 Visão Geral 11 Computação Gráfica Arte e Matemática 12 Origens da Computação Gráfica 121 Escala Temporal 13 Áreas da Computação Gráfica 131 O Mercado da Computação Gráfica 14 Percepção Tridimensional 141 Informações monoculares 1411 Perspectiva 1412 Conhecimento prévio do objeto 1413 Oclusão 1414 Densidade das texturas 1415 Variação da reflexão da luz 1416 Sombras e sombreamentos 142 Informações visuais óculomotoras 1421 Acomodação 1422 Convergência 143 Informações visuais estereoscópicas 15 Representação Vetorial e Matricial de imagens 16 Arquitetura de Hardware 161 Dispositivos Gráficos de Entrada 162 Dispositivos Gráficos de Saída 17 OpenGL a estereoscopia é útil na noção da distância de objetos colocados até 10 metros do observador Em 1960 Morton Heilig patenteou a invenção Stereoscopic TV Apparatus for Individual Use hoje mais conhecida como HeadMounted Display ou Virtual Reality Display Na época sua invenção destinavase apenas ao uso de imagens de televisão totalmente passivas nãoimersivas 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 1993 No momento possuímos uma diversidade grande 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 quanto nossa percepção de profundidade depende puramente das disparidades geométricas ou quanto isso está relacionado à familiaridade de objetos já conhecidos por nós 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 ra zões do comprimento da corda do instrumento musical que as produziam ao vibrar Maor 1987 Como matemática filosofia e música tinha a mesma importância no mundoGregonestadescobertaforamvistossinaisdequetudonouniversoobedece ria às mesmas leis da música ou seja a razão Assim os números racionais domina ram 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 11 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 movimento constitui a base desta que po deria ser classificada como uma arte tecnológica A computação gráfica pode ser en carada como uma ferramenta não convencional que permite ao artista transcender das técnicas tradicionais de desenho ou modelagem Imagens que exigiriam do ar tista o uso 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 extre mamente difíceis de serem desenhadas à mão Com o uso de software o artista pre cisa ter apenas a idéia e deixar a parte complexa por conta da máquina Contudo es ses softwares exigem um certo 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 artista 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 artista ou ela é res ponsá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 ohomemdepôrempráticaumaidéiavalendosedafaculdadededominaramatériaCa pacidade 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 artista res ponsável pela arte 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 va mos aproveitar para desmistificar uma questão A matemática pode parecer um monte 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 SpaceTime a matemática é a linguagem do homem com a natureza e é exatamente aí que entram os computadores A habilidade de si mular 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 é sim biótica uma interagindo com a outra fazendo com que as duas evoluam de forma conjunta A cada evolução da computação gráfica podem ser abertos novos cam pos para as artes e viceversa 12 ORIGENS DA COMPUTAÇÃO GRÁFICA Conhecer a origem é saber se posicionar na escala da evolução descobrindo as ne cessidades 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 computa dor a possuir recursos gráficos de visualização de dados numéricos foi o Whirlwind I desenvolvido pelo MIT Esse equipamento foi desenvolvido em 1950 com finali dades acadêmicas e militares Em 1955 o comando de defesa aérea dos Estados Unidos desenvolveu um sistema de monitoramento e controle de vôos SAGE Se miAutomatic 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 1959 surgiu o termo Computer Graphics criado por Verne Hudson enquan to o mesmo coordenava um projeto para a Boeing de simulação de fatores humanos em aviões Em 1962 surgiu uma das mais importantes publicações da computação gráfica de todos os tempos a tese de Ivan Sutherland Sketchpad A ManMachine Graphi cal Communication System introduzindo as estruturas de dados para o armazena mento 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 dese nhar apontar e escolher alternativas Essa publicação chamou a atenção das indús trias automobilísticas e aeroespaciais americanas Os conceitos de estruturação de 4 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dados bem como o núcleo da noção de computação gráfica interativa levaram a General Motors a desenvolver em 1965 o precursor dos programas de CAD Com puter Aided Design Logo depois diversas outras grandes corporações americanas seguiram esse exemplo sendo que no final da década de 1960 praticamente toda a indústria automobilística e aeroespacial utilizava softwares de CAD Na década de 1970 vários pesquisadores desenvolveram novas técnicas e algo ritmos que são utilizados até hoje tais como os métodos de sombreamento e o al goritmo de zbuffer Nessa mesma época surgiu a tecnologia dos circuitos integra dos permitindo o barateamento das máquinas e o lançamento em 1975 do primei ro computador com interface visual o predecessor do Macintosh Outros fatos im portantes 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 1977 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 com plexidade das equações fractais Em janeiro de 1980 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éc nicas 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éc nicas de processamento de imagem que numericamente manipulam os pixels das imagens para reduzir ruídos melhorar o contraste ou produzir um efeito desejado comoporexemplosalientarumaspectoemparticularquemereçamaioratenção A década de 1980 viu surgir diversas técnicas novas de iluminação global como o raytracing em 1980 e a radiosidade em 1984 aproximando as imagens geradas por computador do fotorrealismo Outro fato marcante dessa década foi a estranha criação em 1987 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 1990 marcou o amadurecimento da computação gráfica com ima gens impressionantes como no filme Jurassic Park em 1993 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 computa dorizado e Toy Story o primeiro longa metragem 3D em 1995 Na área de siste mas surge a linguagem de programação Open GL em 1992 e as primeiras placas gráficas para PC da NVIDIA em 1999 Com a virada para o ano 2000 a plataforma mais comum para atividades em computação deixa de ser as estações SGJ passando para PC Em 2001 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 per sonagens 3D também não poderíamos deixar de citar Matrix Reloaded com perso nagens virtuais sendo usados dentre outras coisas para cenas de risco 121 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 300250aC desenvolveu toda a geometria que norteou seu desenvol vimento até o século XVIII Brunelleschi 13771446 arquiteto e escultor italiano que usou de forma criativa a noção de percepção visual e criou em 1425 a perspectiva Descartes 15961650 matemático e filósofo francês que formulou a geometria analítica e os sistemas de coordenadas 2D e 3D Euler 17071783 o mais produtivo matemático do século XVIII que entre ou tros criou o conceito de senos tangentes a expressão que relaciona o número de vértices arestas e faces de poliedros etc Monge 17461818 matemático francês que desenvolveu a geometria descritiva como um ramo da geometria Sylvester 18141897 matemático inglês que inventou as matrizes e a notação matricial uma das ferramentas mais comuns da computação gráfica Hermite 18221901 matemático francês que provou a transcendência do nú mero e usado como base para os logaritmos naturais desenvolveu funções elípti cas 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 1885 iniciouse o desenvolvimento da tecnologia do tubo de raios cató dicos Em1927aindústriacinematográficadefineopadrãode24imagenssegundo Em1930PeWMauchlyconstroemoprimeirocomputadorchamadoENIAC Em 1938 Valensi propõe o tubo de raios catódicos colorido Em 1947 os Bell Labs inventam o transistor Em 1950 Laposky cria as primeiras obras de arte com bases tecnológicas usando um efeito de um osciloscópio 6 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Em 1955 surge o sistema Sage de monitoramento aéreo Em 1956 o MITconstrói o primeiro computador totalmente transistorizado Em 1959 surge o termo ComputerGraphics criado por L Hudson da Boeing No final da década de 1950 as universidades e empresas americanas como a Boeing começam a usar computadores para testar idéias e novas aplicações Em 1960 é lançado o primeiro computador comercial DEC PDP1 Em 1961 no MIT é criado o primeiro jogo de computador Spacewars para o computador DEC PDP1 Em 1963 Sutherland apresenta um sistema de desenho interativo de primiti vas gráficas 2D baseado em caneta luminosa Em 1963 Englebart inventa o dispositivo de interação mouse Em 1963 Zajac produz nos laboratórios da Bell o primeiro filme gerado por computador imagens formadas de linhas e texto Em 1963 surge o primeiro sistema comercial de CAD DAC1 Em 1963 Coons inventa a teoria de representação de superfícies curvas atra vés de retalhos baseados em aproximações polinomiais Em 1965 Roberts cria um algoritmo de remoção de partes invisíveis de seg mentos de reta e introduz a noção de coordenadas homogêneas na represen tação geométrica de objetos Em 1966 é lançado no mercado o primeiro console caseiro de jogos Odissey Em 1966 surge a primeira empresa de produção computacional de anima ções e efeitos especiais a MAGI Em 1967 Rougelet cria o primeiro simulador de vôo interativo da NASA Em 1968 é fundada a Intel Em 1969 a MAGI produz para a IBM o primeiro comercial baseado em técni cas de computação gráfica Em 1969 é criado entre os grupos da ACM o Special Interest Group on Grap hics SIGGRAPH Em 1969 nasce a ARPANET rede percussora da Internet Em 1969 nos laboratórios da Bell é construída a primeira matriz de pixels cada pixel representado por 3 bits Em 1972 A Kay no Xerox PARC produz o computador gráfico Alto Em 1972 Bushnell funda a empresa ATARI Em 1973 Metcalf desenvolve a tecnologia Ethernet e é editado o primeiro li vro que aborda detalhadamente os algoritmos e métodos da computação grá fica autores Newman e Sproull Em 1977 a Academia de Artes e Ciências Cinematográficas de Hollywood cria a categoria de Oscar de Efeitos Especiais VISÃO GERAL 7 Em 1979 G Lucas contrata Catmull Ray Smith e outros para uma nova em presa denominada Lucas Film Em 1974 Catmull desenvolve o algoritmo ZBuffer A partir do algoritmo de ZBuffer e com o lançamento do PC no início da década de 1980 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 tri dimensional que são utilizadas com uma freqüência cada vez maior pelas pessoas que trabalham com artes computação e visualização científica 13 Á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 Processamen to de Imagens e a Análise de Imagens A Síntese de Imagens considera a criação sintética das imagens ou seja as repre sentaçõ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 Visua lizaçã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 con juntos 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 forma digital e suas transformações por exemplo para melhorar ou realçar suas caracte rí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 14 MERCADO Se você puder imaginar algo isso pode ser gerado com a computação gráfica A computação gráfica está a um passo de um mundo novo repleto de aplicações ain da desconhecidas e muitas oportunidades de trabalho para designers modelado res 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 re cursos que podem ser criados por qualquer pessoa e acoplados à engrenagem do SDK sob a forma de plugin 8 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Algumas das aplicações mais evidentes no momento são os mercados em reali dade virtual e walkthrough para projetos arquitetônicos Na comunidade científi ca é consenso que em breve os ambientes 3D modificarão os atuais sistemas ope racionais 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 quanto 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 modela gem utilizandose poucos polígonos ou operações booleanas e mapeamento com li mitações no tamanho das imagens Diversos projetos já estão em desenvolvimento no Brasil onde a mãodeobra es pecializada é praticamente inexistente A teoria da computação gráfica pode impul sionar 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 tempo 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 prati VISÃ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écni cas e métodos computacionais vários desses fenômenos podem agora ser visualiza dos modelados e estudados Muito antes de se conseguir visualizar um segmento de DNA humano seu estu do já era possível através da computação gráfica Em 1983 foi possível visualizar o vírus da AIDS e simular o seu comportamento Através de dados científicos foi cria da uma imagem sintética que representava o vírus de forma adequada aos propósi tos 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 à quarta 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 inte rior dos profundos poços de petróleo A imagem sintética pode mesmo transfor mar qualquer dado em imagem como os sinais de radar ou calor dos corpos no in terior de um prédio Esse tipo 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 corpo humano e obter conclusões a partir disso Utilizando uma combi nação de dados como os de ressonância magnética ultrasom 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 tu fões deslocamentos de massas de ar além do estudo do aquecimento global e da ca mada de ozônio podem ser representados para estudos e previsões 15 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 relevan te para o entendimento está na limitação tecnológica que nos fará usuários por ain da 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 capacida de que o ser humano tem de distinguir a forma as cores a textura e a relação espa cial existente entre os objetos de uma porção do mundo real 10 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Segundo Stuart 1996 há três categorias de estímulos visuais usados pelo cére bro para formar uma imagem 3D informações monoculares informações óculo motoras e informações estereoscópicas 151 Informações Monoculares As informações monoculares são inerentes à imagem formada na retina são tam bém chamadas de static depth cues informações estáticas de profundidade Auks takalnis 1992 ou pictorial depth cues informações de profundidade na imagem Mckenna 1992 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 1511 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 é largamen te usado para expressar cenas tridimensionais em superfícies planas papel moni tor de vídeo etc Considerada como a mais importante descoberta no campo das artes a perspec tiva descoberta por Filippo Brunelleschi em 1425 foi amplamente utilizada no fi nal do século XV por artistas italianos do renascimento para a criação de obras rea lísticas Maor 1987 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 se melhança permitindo alterações sutis para reforçar conceitos filosóficos e religio sos Na época eram usadas máquinas de fazer perspectiva verdadeiras paraferná lias complexas para calcular as distâncias tentando aproximar ao máximo o dese nho 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 descobriuse que a representação gráfica da perspectiva é feita como se somente um olho estivesse vendo a cena Descobriuse então que os olhos não vêem em perspectiva mas por um fenômeno estereoscópico Foi novamente a arte 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 vo lume 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 grande 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 tornandoa popular e uma das maiores fontes de informação da socie dade moderna VISÃO GERAL 11 1512 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 ob jetos Além disso quando há dois ou mais objetos no mesmo campo de visão e o observador tem noção de seus tamanhos reais o tamanho aparente serve para de terminar qual deles está mais próximo ou mais distante Quando olhamos o cubo à esquerda na Figura 11 conseguimos de imediato es tabelecer uma noção da sua profundidade Quando olhamos a imagem à direita na Figura 11 um galho de árvore nosso cérebro não consegue perceber as profundi dades Essa limitação se deve ao fato de o objeto existir na natureza em uma infini dade de formas criando a ausência de uma referência para nos auxiliar na percep ção Esse problema pode causar uma grande limitação em sistemas de realidade vir tual ou jogos quando interagimos com objetos nunca vistos e pode causar percep ções errôneas de tamanho e posição de objetos na cena 1513 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á mais próximo do ob servador e sobre uma mesma direção de visão Assim quando um objeto A obscure ce um objeto B o cérebro sabe que o objeto A está mais próximo do que o objeto B 1514 Densidade das Texturas Conhecido também como gradiente de texturas este fenômeno visual baseiase no fato de que muitos objetos possuem em sua aparência algum tipo de padrão 12 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 11 Limite da percepção de profundidade com uma certa regularidade Nesse caso à medida que os padrões aparecem mais densos e menos detalhados mais distantes estarão do observador Stevens 1979 As texturas também auxiliam na percepção do movimento como por exemplo se girarmos uma esfera sem textura nosso sistema de visão terá algu ma dificuldade para perceber o seu movimento 1515 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 1516 Sombras e Sombreamentos Este efeito é útil na determinação da posição de um objeto em relação a um piso co locado abaixo deste ou na definição relativa entre objetos Gibson 1950 152 Informações Visuais Óculomotoras 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 forne cendo informações do grau de contração para o cérebro humano O segundo con junto é responsável por focar os raios luminosos na retina fundo do olho mudan do 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 1521 Acomodação No processo de acomodação os músculos ciliares dos olhos relaxam ou contraem para mudaroformatodocristalinoaslentesdosolhoscomoobjetivodealterarofocodos objetos projetados na retina em função da distância desses objetos do observador 1522 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 dis tância 153 Informações Visuais Estereoscópicas Como os olhos estão posicionados em lugares diferentes cada um vê uma imagem de forma diferente Essa diferença é chamada disparidade binocular O cérebro usa essas diferenças para obter a distância relativa dos objetos Segundo Mckenna 1992 VISÃO GERAL 13 16 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 xy tendo assim uma direção um sentido e um comprimento especificado Podemos então calcular o comprimento do vetor pela fórmula V x² y² Se pensarmos em um vetor 3D definido da origem ao ponto xyz seu comprimento seria V x² y² z² Uma matriz é um arranjo array de elementos em duas direções Quando 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 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 caracteri zados como vetoriais pela noção de vetores já discutida são os pontos e linhas retas A cada elemento de um conjunto de pontos associase 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 processa mento de imagens Em computação gráfica sintética surgem nos processos de fina lização ray tracing zbuffers Narepresentação matricialaimagemédescritaporumconjuntodecélulasemum arranjo espacial bidimensional uma matriz Cada célula representa os pixels ou pon tos da imagem matricial Os objetos são formados usando adequadamente esses pi xels A Figura 12 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 computadoresenamaioriadosdispositivosdesaídagráficosimpressorasevídeos 17 ARQUITETURA DE SISTEMAS Os sistemas para computação gráfica precisam de alguns dispositivos gráficos de entrada e saída InOut ou IO 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 VISÃO GERAL 15 memória de imagem imagem na tela FIGURA 12 Descrição de imagens matriciais por conjunto de pixels que encontra nas novas arquiteturas de CPUs e memórias um ambiente adequa do 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 ele vado custo de desenvolvimento que apesar de freqüentes quedas ainda está muito aquém da realidade do mercado consumidor Outro grande obstáculo está no peso e tamanho desses componentes que devem ser reduzidos para que possam ser facilmente utilizados 171 Dispositivos Gráficos de Entrada Os dispositivos de entrada são componentes eletrônicos que permitem a movimen taçã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 dis positivos de teclado foram inventados ao longo de décadas porém o mais usado é o teclado QWERTY É irônico pensar que esse teclado foi inventado para a re duçã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 mouse sem a bola de rolagem Enviam 1500 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 realida de 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 1024 níveis de sensibilidade à pressão Estes são traduzi dos em curvas suaves transições graduais e controles precisos do traço Um software incluso nos pacotes dos hardwares de tablet possibilita o reconheci mento da escrita Mesa Digitalizadora Dispositivo vetorial que consiste de uma mesa e de um aponta dor A cada vez que o usuário toca a mesa com o apontador é informado ao compu 16 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tador a coordenada deste ponto da mesa Existem diversos trabalhos em andamen to para a substituição deste periférico por sistemas mais baratos com câmeras digi tais 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 Ba sicamente esses dispositivos permitem a movimentação e interação dentro de um espaço 3D qualquer Digitalizador Tridimensional Tratase 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 sen sor 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 mais 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 ópti cos ou híbridos Capacetes Existem diversos tipos de capacetes para visualização de Realidade Vir tual disponíveis no mercado A principal característica desses equipamentos é que podem ser Estereoscópicos ou monoscópicos isto é usados com uma ou duas ce nas 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 cima 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 veloci dade e a força que estão sendo aplicadas pelo usuário VISÃO GERAL 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 movimento hu mano a partir daí surge uma infinidade de aplicações para animações esporte de senvolvimento de produtos medicina etc 172 Dispositivos Gráficos de Saída É possível classificar os dispositivos de saída em duas principais categorias segun do a forma pela qual as imagens são geradas veja seção anterior de descrição veto rial e matricial de imagens vetoriais e matriciais Os dispositivos vetoriais conse guem traçar segmentos de reta perfeitos entre dois pontos Os dispositivos matri ciais 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 de senhar áreas cheias e sombras onde os vetoriais mostram deficiência Impressoras de Jato de Tinta São equipamentos matriciais com cabeçote que eje tam 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 processo ótico parecido com o do cabeçote de uma impressora o bombardeio do feixe deixa a chapa carregada com uma carga eletrostática Por efei to da atração elétrica uma tintura toner adere à chapa e por pressão e aquecimen to é 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 termosensível especial Plotters São dispositivos vetoriais e eletromecânicos que de uma forma geral produzem o desenho pelo movimento 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 ou tro tipo o desenho é produzido pela combinação dos movimentos do papel e da caneta Monitores A maioria dos modelos atuais se baseia na tecnologia de tubos de raios catódicos CRT Catode Ray Tube já madura e capaz de oferecer uma boa relação custobenefício para produzir imagens de qualidade em computadores pessoais Mas dentro de poucos anos encontrar um monitor CRT em uma loja poderá ser 18 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 Dis plays 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 res peito ao brilho e à versatilidade em resolução Monitores CRT Até há pouco tempo 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 ha bilidade 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 13 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 tela o feixe é desligado para retornar à extrema es querda da linha inferior e quando atinge a extremidade de baixo também é desativa do para retornar novamente à primeira linha Esse processo é chamado de varredura Aumentando ou diminuindo a intensidade do feixe conseguese controlar o brilho dos pontos de fósforo da tela para gerar a imagem A velocidade com que o feixe per corretodaatelaéchamadadetaxaderenovaçãorefreshrateoufreqüênciadevarre dura 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 VISÃO GERAL 19 Feixe de elétrons Canhão de elétrons Máscara de sombra Máscara perfurada Tela de fósforo FIGURA 13 Tubo de Raio Catódico com resolução de 640 por 480 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 semqueocustodomonitorseelevassemuitofoicriadaatécnicadeentrelaç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 passo e no seguinte as linhas pares Como apenas parte 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 po dem oferecer a mesma resolução que um nãoentrelaçado mas a um custo menor A desvantagemdessatécnicaficaporcontadotempoderespostamenoroquepodeser 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 mais simples produzem imagens na cor verde 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 tornaramse populares no início da década de 1990 Esses modelos usam o padrão RGB Red Green e Blue um sistema de representação de todas as cores com base no verme lho 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 pare cer ao olho humano como um único ponto de luz OsmonitoresCRTcoloridosempregamumadastrêstécnicasdescritasaseguirpara 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 tela e o canhão de elétrons dessa forma miramse os respectivos feixes das três cores primá rias em um mesmo orifício na placa que direcionará a formação do ponto co lorido na tela 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 mais compri dos 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 ima gem 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 grande 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 mais pontos por polegada terá o monitor e maior 20 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA sua capacidade de resolução máxima O dot pitch é medido em milímetros e os va lores encontrados nos modelos de monitores mais comuns são de 028 mm ou me nores 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 en tre dois pontos de fósforo da mesma cor em tríades adjacentes na diagonal Diver sos 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 tela dos monitores é a resolução que descreve a quantidade de informação que o equipamento pode apre sentar em um determinado instante A resolução é medida em pixels palavra cria da 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ísi ca O tamanho físico de um pixel vai depender de como a resolução da tela foi confi gurada Assim se estiver sendo usada a resolução máxima um pixel será equivalen te a uma unidade física do monitor Porém para resoluções menores do que a máxi ma 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 tela de um monitor expressos nos eixos horizontal e verti cal 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 espa lhado por uma área maior da tela O padrão atual de resolução adotado por grande parte das páginas na Web é de 800 por 600 pontos para citar um exemplo conhecido pela maioria dos usuários de computador Já programas baseados em janelas win dows costumam adotar resoluções de 1024 por 768 pixels A principal vantagem de usar resoluções maiores é a redução da necessidade de ampliar a imagem usando re cursos 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 Re soluções muito altas em uma tela pequena podem resultar em problemas pois al guns pacotes de software usam texto limitado a um número fixo de pontos Desse modo 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 sempre é a solução indi cada Se a resolução não puder acompanhar o aumento da tela o resultado será ca racteres e imagens mais reticulados VISÃO GERAL 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 800 600 15 800 600 17 1024 768 19 1280 1024 21 1600 1200 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 sis tema de células contendo cristal líquido e filtros coloridos polarizados As molé culas do cristal líquido substância descoberta em 1888 expostas a campos elé tricos são alinhadas fenômeno da polarização Estas moléculas de cristal líqui do 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 campo 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 ima gem 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 fil tro gerando a imagem Em monitores LCD monocromáticos o pixel é formado por uma célula en quanto 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 ver de ou azul barrando a entrada da luz Passando pelas células com as cores filtra das 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 mais 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 provoca mos 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 tecnologia é empregada na fabricação de telas para celulares handhelds notepads etc Nessa tecnologia a tela é formada por uma grade de fios condutores Cada interseção desses fios forma um pixel e a corrente necessá ria para a polarização será transmitida por esses fios O controle do brilho dos pixels é obtido aplicandose uma corrente elétrica forçando os cristais a se realinharem ou sejahaveráalteraçãonadireçãodosraiosluminososEsseprocessoérepetidolinhaa linha de pixels da parte superior à inferior da tela do monitor LCD até a corrente es pecífica chegar à célula específica Essa técnica tem o inconveniente de produzir cin tilação o que levou à utilização de um tipo de cristal com baixo tempo de resposta às diferentes correntes aplicadas sobre os cristais Quer dizer que há uma demora maior queadesejadaparaorealinhamentodoscristaisEssademoracausamenornitidezna 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 tela é dividida em uma parte superior e outra inferior com varreduras independentes Para com pensar 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 tecnologiadematrizativanaqualumtransistorespecial TFTThinFilmTransistor alimenta cada célula individualmente Neste caso cada célula recebe uma cor rente 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êmse imagens mais nítidas com cores mais intensas e ausência da cintilação Ou tra vantagem é a possibilidade de fabricação de telas com mais de 20 Em compen saçã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 800 x 600 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 ati va tem defeitos e para descobrilos basta preenchêla com fundo branco ou preto Os pontos que mais se destacarem são os defeituosos VISÃO GERAL 23 Monitores Seethrough Os monitores ditos seethrough 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 viceversa É constitiuído de monitores do tipo LCD pois essa tecnologia permite que se veja através do monitor O maior problema desse tipo de monitor é a pouca in tensidade da imagem exibida o que muitas vezes prejudica a aplicação Recentemen te 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 alternativa à implementação desse monitor é utilizar um monitor convencional do tipo CRT filmar a imagem do ambi ente real com uma pequena câmera presa à cabeça do usuário e sobrepor esta ima gem à imagem gerada pelo computador Esse mecanismo permite uma melhoria sig nificativa na qualidade da imagem mostrada mas nem sempre será a solução depen dendo do tipo de aplicação Displays de Retina O Human Interface Tecnology Lab da Universidade de Washing ton 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 1000x1000 pontos monocromáti cos Esse equipamento tem despertado o interesse da comunidade científica por di ferentes 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 exibin do 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 volumo sos 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 Entretan to devido às limitações tecnológicas a resolução disponível em monitores peque nos 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 seethrough Ú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 par 24 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA ques de diversão estes dispositivos bem mais baratos do que os HMDs buscam ge rar 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 tela de cristal líquido a seguir fazse o contrário ou seja exibese a imagem do olho direito e bloqueiase 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 de monstrar às crianças e aos jovens como seria na prática Daí vem o nome Cave ca verna ou mais recentemente SurroundScreen ProjectBased 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 tela Para isso o processador existente na placa de vídeo precisa transformar os sinais digitais em analógicos antes de enviálos ao moni tor Nem todo o processamento de imagens é realizado pelo processador de vídeo Parte desse trabalho é realizada pelo processador principal mas quanto mais po deroso o processador de vídeo menos sobrecarregado fica o processador princi pal ficando disponível para efetuar outras tarefas Processar imagens é basica mente fazer cálculos Quanto mais complexa uma imagem maior o número de pontos que devem ser criados ocorrendo o mesmo se desejarmos melhores reso luções de imagem As placas aceleradoras 3D de uso profissional são normalmen te otimizadas para trabalhar com OpenGL DirectX e alguns softwares de modela gem A indicação para uso profissional desse tipo de placa também foi reforçada pela Microsoft que implementou a compatibilidade nativa para OpenGL desde o Windows NT e 2000 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 modo AGP permite que as placas gráficas se comuni quem 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 18 OPENGL OpenGL Open Graphical Library pode ser definida como uma interface de software API Aplication Program Interface para aceleração da programação de dispositi VISÃO GERAL 25 vos gráficos com aproximadamente 120 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 mode lagem 2D ou 3D extremamente portável e rápida possibilitando a criação de gráfi cos 3D com excelente qualidade visual e rapidez uma vez que usa algoritmos bem desenvolvidos e otimizados pela Silicon Graphics Justamente pela sua portabilida de não possui funções para gerenciamento de janelas interação com o usuário ou arquivos de entradasaída Cada ambiente como por exemplo o Microsoft Win dows possui suas próprias funções para esses propósitos OpenGL não é uma linguagem de programação como C C ou Java é uma po derosa e sofisticada API Application Programming Interface ou biblioteca de códigos para desenvolvimento de aplicações gráficas 3D em tempo real seguin do 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 con junto 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 lingua gens Ada C Fortran Python Perl Java Delphi visite o site httpwwwglsce neorg Visual Basic visite o site httpis6pacificnethkedx e outras No caso de Java existem várias bibliotecas de classes e plugins para browsers que li gam 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 mais de suas bibliotecas Os principais fabricantes de PC e supercomputadores como SGI Cray Research Compaq Fujitsu HewlettPackard Hitachi IBM Intel Microsoft Mitsubishi NEC Samsung SiemensNixdorf Sony e Sun Microsystems adotaram OpenGL como uma estratégia de padrão aberto para hardware gráfico Suas aplicações vari am 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 ou tros Dentre os jogos temos Quake HalfLife MDK2 Baldurs Gate Decent Mad den NFL 2001 etc A biblioteca OpenGL vai além do desenho de primitivas gráficas tais como li nhas e polígonos dando suporte a iluminação sombreamento mapeamento de textura transparência animação gerenciamento de eventos de entrada por te clado e mouse A biblioteca GLU que faz parte da implementação OpenGL possui várias funções para modelagem tais como superfícies quadráticas e cur vas e superfícies NURBS Non Uniform Rational BSplines Além disso a biblio 26 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 so bre as outras Apesar de OpenGL ser uma biblioteca de programação padrão existem mui tas implementações dessa biblioteca por exemplo para Windows e Linux Das implementações para PC as mais conhecidas são as da Silicon Graphics e da Mi crosoft No caso da implementação da Microsoft são fornecidas com suas ferra mentas de programação as bibliotecas opengl32lib OpenGL e glu32lib utili tários OpenGL Estas se não constarem em seu computador podem ser baixa das gratuitamente junto com sua excelente documentação no site oficial em httpwwwopenglorg A biblioteca glutlib e sua respectiva documentação que será usada neste livro pode ser baixada direta e gratuitamente do site do autor em httprealitysgicomopenglglut3glut3html Entre suas caracteristicas estão Aceleração de Hardware Aceleração do processamento geométrico luzes real time transformações e render Efeitos 3D em RealTime Realtime fog antialiasing volume shadows bump mapping motion blur transparência reflexões texturas 3D volume rende ring e outras Suporte a inovações futuras de software e hardware Um mecanismo de ex tensão permite configurações para novos hardwares e softwares Estabilidade Estações avançadas e supercomputadores vêm utilizando suas bibliotecas desde 1992 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 Windows95982000XP De forma semelhante a outras APIs do Windows os comandos do OpenGL são dis ponibilizados através de bibliotecas dinâmicas conhecidas como DLLs Dyna mic Link Library e seus respectivos arquivos header e library Os arquivos header são incluídos no códigofonte enquanto os arquivos library devem ser incluídos no projeto A tabela a seguir caracteriza esses arquivos VISÃO GERAL 27 OPENGL32DLL glh opengl32lib Contém as funções padrão do OpenGL definidas pelo OpenGL Architeture Re view Board e são caracterizadas pelo pre fixo gl GLU32DLL gluh glu32lib A biblioteca de utilitários contém fun ções com o prefixo glu para desenho de esferas cubos discos cilindros etc GLAUXDLL glauxh glauxlib Os comandos da chamada biblioteca au xiliar são caracterizados pelo prefixo aux e embora não sejam realmente parte da especificação OpenGL permitem de senvolver aplicações simples indepen dente de plataforma e sistema operacio nal GLUTDLL gluth glutlib OpenGL Utility Toolkit Conjunto de Ferramentas Utilitárias do OpenGL é um sistema de gerenciamento de janelas independente do sistema 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 GLgluth inclusão da biblioteca include stdlibh inclusão da biblioteca Declarações void initvoid void displayvoid void keyboardunsigned char key int x int y int mainint argc char argv glutInitargc argv Inicializa o GLUT e processa qualquer parâmetro passado pela linha de comandos Deve ser chamada antes de qualquer outra rotina GLUT glutInitDisplayMode GLUTSINGLE GLUTRGB 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 eou acumulador à janela que estamos usando 28 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA glutInitWindowSize 150 150 Especifica as dimensões da janela em pixels glutInitWindowPosition 100 100 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 glutDisplayFuncdisplay Toda vez que o GLUT determinar que a janela tem de ser desenhada ele chamará a função aqui determinada glutKeyboardFunckeyboard Determinam as funções que usaremos para ler o teclado e o mouse respectivamente glutMainLoop É o último comando que chamamos Ele faz com que todas as janelas criadas sejam mostradas Uma vez que entramos neste loop só saímos quando o programa se encerra return 0 void initvoid glClearColor10 10 10 10 Fornece os valores para limpeza do buffer de cor no modo RGBA glOrtho 0 256 0 256 1 1 Seleciona o modo de projeção Ortogonal void displayvoid int i glClearGLCOLORBUFFERBIT Limpa toda a Janela para a cor do comando glClearColor glColor3f 00 00 00 Seleciona a cor preta para a linha glBeginGLLINES glVertex2i20100 glVertex2i10020 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 keyboardunsigned char key int x int y switch key case 27 exit0 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 VISÃO GERAL 29 ponto flutuante como parâmetro Resumindo todas as funções OpenGL possuem o seguinte formato Sufixo Tipo de Dados Correspondente em C Tipo de dados OpenGL b 8bit integer signed char Glbyte s 16bit integer short Glshort i 32bit integer long GLint GLsizei f 32bit floatingpoint float GLfloat GLclampf d 64bit floatingpoint double GLdouble GLclampd ub 8bit unsigned integer unsigned char GLubyte GLboolean us 16bit unsigned integer unsigned short Glushort ui 32bit unsigned integer unsigned long GLuintGLenumGLbitfield RESUMO Neste capítulo apresentouse 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 biblioteca OpenGL 30 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 2 Transformações Geométricas no Plano e no Espaço 21 Matrizes em Computação Gráfica 22 Pontos Vetores e Matrizes 23 Aritmética de Vetores e Matrizes 24 Sistemas de Coordenadas 241 Sistema de Referência do Universo 242 Sistema de Referência do Objeto 243 Sistema de Referência Normalizado 244 Sistema de Referência do Dispositivo 245 Transformações entre Sistemas de Coordenadas 25 Transformações em Pontos e Objetos 251 Transformação de Translação 252 Transformação de Escala 253 Transformação de Rotação 254 Transformação de Reflexão Espelhamento ou Flip 255 Transformação de Cisalhamento 26 Coordenadas Homogêneas 27 Projeções Geométricas 271 Classificação das Projeções Geométricas 272 Projeções Paralelas Ortográficas 273 Projeções Paralelas Axométricas 274 Projeção Perspectiva ou Cônica 28 Especificação dos pontos de fuga 29 Câmera Virtual 210 Transformações Geométricas com OpenGL 2101 Transformação de Translação 2102 Transformação de Escala 2103 Transformação de Rotação 2104 Matrizes de transformação 2105 Armazenando as transformações na matriz 2106 Alterando a matriz de transformação 2107 Montando transformações hierárquicas 2108 Desfazendo o vínculo de hierarquia 2109 Matriz genérica de projeção 21010 Projeção paralela ortogonal 21011 Projeção em perspectiva 21012 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 21 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 16 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 geralmente adotado para representação de pontos no plano xy e no espaço tridimensional xyz pode ser conveniente manipular esses pontos em matrizes quadradas de 2x2 ou 3x3 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 22 PONTOS VETORES E MATRIZES Dado um sistema 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 A 23 e B 11 1 1 A convenção usada é que ao definir um ponto usase a sua distância em relação a cada um dos eixos do sistema de coordenadas Essas representações também podem ser chamadas de vetores linha ou vetores coluna respectivamente São ainda chamadas de arranjos arrays ou matrizes Assim a forma mais 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 34 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA semelhante 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 A transposta de um vetor ou matriz é o vetor ou matriz resultante da troca dos valores de suas linhas e colunas Assim 2 3 e 3 2 são vetores transpostos um do outro Para simbolizar o transposto de um vetor ou a transposta de uma matriz usase um T superescrito Assim 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 Figura 21 mostra três sistemas de coordenadas No sistema de coordenadas polares ao centro da figura as coordenadas são descritas por raio e ângulo rφ 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 244 Sistema de Referência do Dispositivo SRD Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositi vo de saída específico Por exemplo em um vídeo esses valores podem ser o núme ro máximo de pixels que podem ser acesos 640480 800600 etc ou podem in dicar a resolução especificada em determinada configuração do sistema operacio nal por exemplo 800600TrueColor32bits para vídeos ou no caso de um scan ner a resolução máxima estabelecida ou de captura Assim nos hardwares o siste ma 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 245 Transformações entre Sistemas de Coordenadas Aplicações gráficas freqüentemente requerem a transformação de descrições de obje tos de um sistema de coordenadas para outro Muitas vezes o objeto é descrito em um sistema de coordenadas nãocartesiano como as coordenadas polares mostradas na Figura 21 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 defi nidos em seu próprio sistema de coordenadas e as coordenadas locais devem ser transformadasparaposicionarosobjetosnosistemadecoordenadasglobaldacena 25 TRANSFORMAÇÕES EM PONTOS E OBJETOS A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua forma A possibilidade de submetêlo a diversas transforma ções é importante em diversas aplicações da computação gráfica Rogers 1990 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 251 Transformação de Translação Transladar significa movimentar o objeto Transladamos um objeto transladando todos os seus pontos como mostrado na Figura 22 É possível efetuar a translação de pontos no plano xy adicionando quantidades às suas coordenadas Assim cada ponto em xy pode ser movido por Tx unidades em relação ao eixo x e por Ty unidades em relação ao eixo y Logo a nova posição do ponto xy passa a ser xy que pode ser escrito como x x Tx y y Ty Repare que se o ponto for representado na forma de um vetor Pxy 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA O mesmo ocorre se o ponto P for definido em 3D pelas coordenadas xyz Pontos definidos em um espaço podem ser movimentados pela adição ou sub tração de valores de translação às suas coordenadas Assim por exemplo o pon to P definido por xyz 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 coor denadas Seutilizarmosanotaçãomatricialessatranslaçãoseapresentarádaseguinteforma 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 22 é de finido 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 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 39 Antes da Translação 45 75 y x Depois da Translação 71 101 y x FIGURA 22 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 252 Transformação de Escala Escalonar significa mudar as dimensões de escala A Figura 23 mostra essa transformação Para fazer com que uma imagem definida por um conjunto de pontos mude de tamanho teremos que 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 caso 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 253 Transformação de Rotação Rotacionar significa girar A Figura 25 mostra a rotação de um ponto P em torno da origem passando para a posição P FIGURA 25 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 θ no sistema de eixos XY A multiplicação das coordenadas por uma matriz de rotação pode resultar em uma tradução das de Tx Ty E modificar um objeto uniformemente por uma escala E equivale a multiplicar a escala do sistema de eixos por 1E A rotação de objetos tridimensionais permite que vejamos o objeto de diferentes posições e ângulos A rotação de um objeto 3D é mais simples de ser realizada indi vidualmente 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 for ma 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 pri meiro 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 28 é positivo e o da direita é negativo Se fo rem usados os eixos x como no sentido horizontal da tela e o y como vertical o eixo z deve apontar para fora da tela do computador para termos um sistema de eixos po sitivos como mostrado na Figura 29 Rotações são usadas de duas maneiras em computação gráfica Podese pensar em girar objetos no espaço em um certo ângulo ou rotacionar o próprio espaço com o ângulo Figura 210 Um exemplo clássico da segunda opção ocorre nos simula dores de vôo onde o piloto manipula a sua visão do espaço movimentando a cena Essa segunda forma também facilita a representação das rotações como uma combi naçã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 44 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA y P z x y P z x FIGURA 28 Sistemas de eixos positivos e negativos Definição dos três ângulos de Euler em relação aos eixos x y e z ângulo de Euler ou ângulo em torno de um eixo que estaremos implicitamente nos referindo A inversa de uma matriz M é a matriz denotada por M¹ que ao ser multiplicada por M produz uma matriz identidade de mesma dimensão Assim I M M¹ onde I representa a matriz identidade No caso de matrizes de rotação como as anteriores temos ainda que R¹ Rᵀ 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 90 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 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 x y z x y z 1 0 0 0 cos 10 sen 10 0 0 cos 10 sen 10 0 0 sen 10 cos 10 cos 20 sen 20 0 0 0 1 A concatenação também é muito útil para alterar a escala ao mesmo tempo em que roda objetos em torno de eixos específicos e pode ser usada sempre que as transformações forem descritas por matrizes FIGURA 211 Reflexão de um objeto em torno do eixo x vertical ou horizontal como mostrado na Figura 211 No caso 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 invertendo as coordenadas y ou usando a seguinte matriz de transformação 1 0 0 0 1 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 caso 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 0 1 0 0 0 1 A Figura 212 exemplifica o resultado de uma reflexão em torno dos eixos x e y para uma figura no espaço bidimensional FIGURA 212 Reflexão de um objeto em torno da origem dos eixos xy 255 Transformação de Cisalhamento Cisalhamento Shearing ou Skew é uma transformação que distorce o formato de um objeto Nela aplicase 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 à 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 modo que se um cubo unitário for transformado por essa operação passará a ter a forma mostrada na Figura 213 se S1 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 0 b 1 Efeito de cisalhamento skew em um cubo unitário 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 xyz que posicionam o ponto no espaço em relação ao centro de coordenadas O sistema de coordenadas homogêneas utiliza quatro valores para expressar um ponto P que será descrito por xyzM A transformação do sistema homogêneo para o cartesiano se dá pela seguinte relação xyzxM yM zM Dizemos que dois conjuntos de coordenadas homogêneas xyzM e xyzM representam o mesmo ponto se e somente se um é múltiplo do outro Assim 2346 e 46812 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 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 x y z 1 x y z 1 1 0 0 0 0 1 0 0 0 0 1 0 Tx Ty Tz 1 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 216 Os raios de projeção são as re tas que passam pelos pontos do objeto e pelo centro de projeção na Figura 216 é 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 216 Todos os pontos visíveis do objeto devem ser projetados no plano de projeção 271 Classificação das Projeções Geométricas As projeções geométricas são classificadas conforme o organograma da Figura 217 As classificações dependem das relações entre o centro projeção o plano de pro jeçã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 li nhas de projeção são paralelas entre si como é possível perceber nas Figuras 218 e 219Nasprojeçõesparalelasortográficasaslinhasdeprojeçãosãoparalelasentresi e perpendiculares ao plano de projeção como a mostrada na Figura 218 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 219 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 219 Quando as li nhas de projeção fazem um ângulo de 45 graus com o plano de projeção os pontos TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 53 y P z x Plano de Projeção Raio de Projeção P FIGURA 216 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 projetados preservam sua medida original nas direções nãoparalelas ao plano de projeção Essa projeção oblíqua é chamada de cavaleira ou cavalier Figura 220 Não é importante nesta classificação o ângulo com que a direção nãoparalela ao plano de projeção aparecerá na imagem projetada assim ambas as imagens da Figura 220 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 meta de do tamanho original Somente a face do objeto paralela ao plano de projeção per manece com o seu tamanho sem distorção ou com a verdadeira grandeza Esse ân guloétalquetenhatangente2ousejaédeaproximadamente634oFigura221 54 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Projeções planificadas Isométrica Dimétrica Trimétrica 3 pt Fuga Cavaleira Cabinet Axonométrica Múltiplas vistas ortográficas Oblíquas Ortográficas 1 pt Fuga 2 pt Fuga Paralelas Perspectivas FIGURA 217 Classificação das projeções geométricas Plano de Projeção FIGURA 218 Projeção paralela ortográfica de um cubo em um plano Projeção paralela oblíqua de um cubo em um plano 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 prin cipais que representam as faces do objeto Essas projeções mostram assim o obje to visto do topo planta baixa de frente e de lado elevação Nas projeções orto gráficas como mostra a Figura 218 se os planos principais do objeto forem para lelos 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 re cebem 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 iso mé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 120 Figura 222 As projeções definidas por raios de projeções paralelas são tradicionalmente usa das em Engenharia e desenhos técnicos Em alguns casos elas preservam as verda deiras dimensões do objeto mas não produzem uma imagem realista por não torna rem menores as medidas mais distantes do observador Seção 15 As perspectivas ou projeções cônicas são bastante mais realísticas na representação de objetos Nas perspectivastodososraiosdeprojeçãopartemdocentrodeprojeçãoeinterceptamo plano de projeção com diferentes ângulos Nessas os raios projetores não são parale los 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 272 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 princi 56 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 120º 120º 120º FIGURA 222 Projeção paralela isométrica com ângulos no plano de projeção iguais entre si Projeção paralela oblíqua cavelire onde o eixo nãoparalelo ao plano de projeção aparece com ângulos de 45º e 30º x y z 1 x y z 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 esses vetores devem ter todos as mesmas medidas depois de transformados pela definição básica de projeção isométrica igualando os valores de x y e x z obtémse sen²β 13 e sen²δ 12 O que resulta em ângulos β 3526 e δ 45 Assim a matriz de projeção isométrica é obtida substituindo estes valores na matriz anterior FIGURA 223 As coordenadas dos pontos projetados em perspectivas são obtidas pela interseção dos raios projetores com o plano de projeção Combinando essas expressões temos x x f z e y y f z A posição do ponto xyzf no plano da imagem é dada pelas seguintes equações As matrizes de projeção em perspectiva são obtidas usando a coluna da matriz genérica 4x4 correspondente às coordenadas homogêneas Quando um dos elementos dessa submatriz 3x1 for diferente de zero o objeto transformado sofre uma transformação perspectiva Nesse caso 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 x0 a matriz de projeção de perspectiva de um ponto será x y z 1 0 0 0 1fx 0 1 0 0 0 1 0 0 0 0 0 1 x y z 1 Do mesmo modo se o centro de projeção for localizado ao longo do eixo y e o plano de projeção for o plano y0 a matriz de projeção de perspectiva de um ponto será x y z 1 1 0 0 0 0 0 1fy 0 0 1 0 0 0 0 0 1 x y z 1 Para obter as matrizes de perspectivas de dois ou 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 1986 Desse modo uma matriz de perspectiva em três pontos é definida como 1 0 0 1fx 0 1 0 1fy 0 0 1 1fz 0 0 0 1 0 0 0 1fx 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1fx 0 0 0 0 0 1 0 1 0 0 0 1 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 1986 Desse modo uma matriz de perspectiva em três pontos é definida como 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 Figura 217 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 zero na posição da coordenada homogênea leva um ponto na forma cartesian x y z para o infinito Gardan 1986 Aplicando a transformação em perspectiva a este ponto teremos 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1fz 1 0 0 1 1fz Usando a transformação homogênea 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 274 temse três pontos de fuga fx 0 0 1 sobre o eixo x 0fy 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 ao ocorreram ao se visualizar a esquina de um prédio altíssimo quando até mesmo as linhas na direção de sua altura deixará de ter a aparência de paralelas çã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 podese 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 ca sos é considerado perpendicular ao vetor de direção de projeção A Figura 225 mostra esses elementos A orientação da câmera é controlada pela sua posição x y z seu ponto focal ponto D na Figura 225 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 pa ralelos e assumese 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 co mum denominado ponto de observação ou centro da projeção Nesse caso é im portante determinar o ângulo de visão da câmera Os planos de recorte anterior e posterior interceptam a direção de projeção Fi gura 225 e são geralmente perpendiculares a ela Os planos de recorte são usados para eliminar partes da cena que estão muito próximas ou muito distantes da câme ra de forma que as que estão na área interior aos planos de recorte serão visíveis TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 65 D Z C A B Y X FIGURA 225 Coordenadasdaposiçãodacâmeraeseus7grausdeliberdadelocalização noespaçoxyzângulosderotaçãoemtornodecadaumdoseixossetascurvasefoco 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 denomi nado geralmente de clipping range da câmera 210 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á verti cal orientado de baixo para cima 2101 Transformação de Translação O comando para a translação é glTranslateTYPE 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 usase glTranslatef00f00f50f 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 glTranslatef101010 DesenhaObjeto Desenha o objeto deslocado de 10 unidades em cada eixo 2102 Transformação de Escala O comando que permite a mudança das dimensões de um modelo é glScaleTYPE x TYPE y TYPE z e muda as escalas relativas a cada eixo principal O comando glScale é relativamente simples mas a utilização do fator de escala nãouniforme afetará os objetos desenhados Por exemplo para triplicar a altura de um objeto usase glScalef10f30f10f 2103 Transformação de Rotação O comando para a rotação é glRotateTYPE 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 ei xos principais devese 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 30oem torno do eixo x pode ser definida como glRotatef300f10f00f00f 66 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 2104 Matrizes de Transformação O OpenGL mantém três matrizes de transformação ModelView Projection e View Point que são usadas para transformar um ponto qualquer dado em um ponto da ja neladevisualizaçãoCadapontoespecificadoémultiplicadoporessastrêsmatrizes O comando glMatrixMode deverá ser utilizado antes dos comandos que especi ficam as formas de projeção que são definidas com os comandos glOrtho glFrus tum ou gluPerpective Essas matrizes podem ser modificadas por uma série de comandos como glTrans late glRotate ou glScale entre outros A matriz que será modificada é definida pelo comando glMatrixMode executado com uma das constantes GLMODELVIEW GLPROJECTION ou GLTEXTURE como mostra o seguinte exemplo glMatrixModeGLPROJECTION glLoadIdentity gluPerspective300widthheight10100 glMatrixModeGLMODELVIEW glLoadIdentity glTranslatef00f00f50f glRotatef300100000 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 ma triz MODELVIEW atual Por exemplo na chamada da função glTranslatef 3 2 8é criada a seguinte matriz 100 000 000 000 000 100 000 000 000 000 100 000 300 200 800 100 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 2105 Armazenando as Transformações na Matriz Para armazenar as transformações geométricas de um objeto em uma matriz de vese chamar a função glGetFloatv imediatamente após serem efetuadas todas as transformações do objeto TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 67 glPushMatrix glLoadIdentity glTranslatef PosObjX PosObjY PosObjZ a próxima linha guarda a matriz de transformação do objeto para um futuro uso glGetFloatvGLMODELVIEWMATRIX MatObj00 glPopMatrix 2106 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 multiplicandose essa matriz pela matriz atual Isso é feito antes de desenhar um objeto da seguinte forma glColor3f00f00f06f glPushMatrix glMultMatrixfMatObj00 DesenhaCubo glPopMatrix 2107 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 trans formações geométricas aplicadas a seu pai Para tanto devese apenas desenhar o objeto filho logo após o desenho do pai O exemplo a seguir ilustra esse procedi mento glPushMatrix glMultMatrixfMatPai00 aplica as transformações do pai DesenhaCubo GLfloat MatInv44 TemFilho true Se TemFilho se vínculo false DESFAZ TRANSFORMAÇÕES DO PAI calcula a inversa da matriz do Pai CopyMatrixMatInvPai MatPai MinvertMatInvPai Multiplica a Matriz do filho pela inversa da matriz do pai MmultMatObj MatInvPai MatObj MatObj MatInvPai vínculo true senão DesenhaObjeto desenha Filho glPopMatrix 68 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 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 momen to Para tanto devese 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 en tre 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 2108 Desfazendo o Vínculo de Hierarquia Para desfazer o vínculo de hierarquia e deixar o objeto no mesmo lugar devese 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 MmultMatObj MatPai MatObj MatObj MatPai 2109 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 44 da seguinte maneira GLfloat mprojecao 16 declaração de uma matriz 44 Parainserirosvaloresnamatrizdeveseutilizaroseguintecomandodeatribuição mprojecao posição valor a ser inserido Para inserir por exemplo os valores correspondentes a primeira coluna da ma triz valores que são constantes temos mprojecao0 1 inserindo 1 em A0 mprojecao1 0 inserindo 0 em A1 mprojecao2 0 inserindo 0 em A2 mprojecao3 0 inserindo 0 em A3 Depois de todos os valores inseridos na matriz ela já está pronta para ser utiliza da Para carregar essa matriz devese utilizar o seguinte método glLoadMatrizmprojecao 21010 Projeção Paralela Ortogonal A projeção ortogonal é selecionada pelo comando glOrtho e utiliza seis parâmetros que definem um volume de visão glOrtholeftrightbottomtopnearfar TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 69 onde near é a menor distância desejada para um objeto visível Se a distância en tre 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 21011 Projeção em Perspectiva A projeção em perspectiva é selecionada com o comando glFrustrum que também utiliza seis valores para definir o volume de visão em forma de tronco de pirâmide frustum glFrustrumleftrightbottomtopnearfar Pode ser usado também o comando gluPerspective da biblioteca de utilitários gluPerspectiveangleaspectnearfar 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 21012 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 GLdou ble 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 respectiva mente da posição da câmera ou observador Na Figura 225 x y e z cor respondem 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á olhan 70 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA do normalmente o centro da cena Na Figura 226 x y e z correspondem a centerx centery e centerz D é o ponto focal e C é a normal do plano de vi sã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 cena 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 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 71 Z D X Y C FIGURA 226 Coordenadas da posição do alvo CAPÍTULO 3 Curvas e Superfícies 31 Representação de Curvas 311 Conjunto de Pontos 312 Representação Analítica 313 Formas nãoParamétricas de Representar Curvas 314 Formas Paramétricas de Representar Curvas 315 Curvas Paramétricas de Terceira Ordem 316 Hermite 317 Bézier 318 Splines 3181 Splines Uniformes e Periódicas 3182 Splines NãoPeriódicas 3183 Splines NãoUniformes 3184 Desenvolvimento da Formulação Genérica de BSplines 3185 CatmullRom Splines 319 Curvas Racionais 32 Superfícies 321 Superfícies de Revolução 322 Superfícies Geradas por Deslocamento 323 Superfícies Geradas por Interpolação Bilinear 324 Interpolações Trilineares 325 Superfícies de Formas Livres 326 Superfícies Paramétricas Bicúbicas 327 Superfícies de Hermite 328 Superfícies de Bézier 329 Superfícies de BSpline 3210 Normais a Superfícies 3211 Superfícies Racionais 3212 NURBS 32121 NURBS em OpenGL 3213 Subdivisão de Superfícies com CatmullClark e NURMS Curvas e superfícies desempenham um papel importante em diversas áreas tanto na criação de objetos sintéticos quanto na visualização de fenômenos científicos Na modelagemgeométricaemcomputaçãográficaascurvassãoabasetantodageraçã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 mais eficiente de representação Definir uma curva que passe por um conjunto determinado de pontos é matema ticamente um problema 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 31 REPRESENTAÇÃO DE CURVAS 311 Conjunto de Pontos Segmentos de curva ou de retas mesmo que pequenos têm sempre geometrica mente infinitos pontos Representase uma curva por um conjunto finito de pon tos geralmente quando estes são medidos experimentalmente por exemplo 28130011203348 Nessa representação cada par xy representa um ponto no plano e o conjunto inteiro a curva Essa representação de pontos em um sistema de coordenadas foi proposta inicialmente em 1637 por René Descartes 15961650 Os grupos xy são chamados de coordenadas cartesianas do ponto e representam as distâncias do ponto até as duas linhas perpendiculares aos eixos Figura 31 Essa forma de representação é muito utilizada na visualiza ção de medições experimentais CURVAS E SUPERFÍCIES 75 Eixos y x FIGURA 31 Pontos na coordenada cartesiana Na representação por conjunto de pontos a curva pode ser gerada pelo uso 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 terse idéia de cur va contínua é possível então para melhorar a representação unilos por segmen tos de retas como mostrado na Figura 32A Para representação de curvas acentua das a aproximação por segmentos de reta pode não ser satisfatória Figura 32A Nesse caso temos de aumentar o número de pontos nessa região Figura 32B obtendo mais pontos ou se isso não for possível gerando mais pontos por interpo lação ou aproximação 312 Representação Analítica A representação analítica utiliza uma ou mais equações e apresenta várias vanta gens 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 incli naçã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 preci sam ser calculadas por métodos numéricos A representação analítica também apresenta mais simplicidade para ser redesenhada quando 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ãoparamétricas As for 76 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 32 Representações por conjunto de pontos mas nãoparamétricas podem ser ainda explícitas ou implícitas A seguir veremos em detalhes cada uma dessas formas 313 Formas Nãoparamétricas de Representar Curvas Na forma nãoparamétrica como diz o nome não são usados parâmetros e y é dado como uma função de x e viceversa y fxx ou x fyy Nesta representação a equação de um quarto de círculo de raio 10 é dada por y 10² x² ou x 10² y² e a equação de uma reta fica y 2x 1 ou x ½y1 para a representação de curvas 3D basta acrescentar a coordenada zy ou zx A forma nãoparamétrica explícita de representar uma curva é dada por uma equação do tipo y fx onde os pares xy fx representam os pontos da curva Por exemplo a equação genérica explícita de uma parábola é dada por y ax² bx c sendo a b e c números quaisquer Com a1 b2 e c0 essa equação pode gerar a curva da Figura 31 Nessa representação chamase 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 Px anxn an1xn1 a2x² a1x a0 onde n são inteiros positivos e a0a1an 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 forma nãoparamétrica obtémse um valor de y para cada valor de x dado Consequentemente 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 Por exemplo a equação implícita de uma curva do segundo grau ou ordem 2 genérica é ax² bxy cy² 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 33 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 atribuindose diferentes valores às constantes a b c d e e f O círculo e a elipse têm 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 A representação de uma curva 3D na forma implícita é descrita pela interseção de duas superfícies na forma F1xyz 0 F2xyz 0 que devem ser resolvidas simultaneamente para a determinação dos pontos da curva Esse processo é lento 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 à curva o que a faz útil para muitas aplicações de modelagem geométrica onde precisase conhecer pontos interiores exteriores e na fronteira dos objetos Chamase implicaçã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 é x² y² r² 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 foram 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 uso de representações paramétricas 314 Formas Paramétricas de Representar Curvas Na forma paramétrica usase um parâmetro t θ etc para definir as coordenadas dos pontos da curva Por exemplo a equação de um quarto de círculo de raio r10 pode ser descrita como x 10 cos θ fₓθ y 10 sen θ fᵧθ e a equação da reta da seção anterior pode ser representada por x t1 fₓt y 2t1 fᵧ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 xt y yt A posição do ponto na curva é portanto dada por Pt xt yt Notase então que é mais simples ter uma representação em intervalos de comprimentos constantes ao longo da curva É também muito mais fácil o cálculo de derivadas características úteis como por exemplo a derivada em relação ao parâmetro t ou o vetor tangente da curva Pt xt yt A inclinação da curva ou sua diferencial é dada por dydx dydt dxdt yt xt 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 forma paramétrica permite representar curvas fechadas 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 frequentemente 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 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 zt Sendo um ponto da curva espacial definido quando suas três coordenadas forem conhecidas Pt xt yt zt Mas como cada forma de representação é mais apropriada a determinada característica será muitas vezes necessário trocar as formas de representação A forma nãoparamétrica pode ser obtida eliminandose o parâmetro para obter uma única equação em x e y Determinar um ponto em uma curva ie determinar o valor de y dado x é trivial no caso da representação nãoparamétrica explícita No caso da paramétrica é necessário obter o valor do parâmetro t a partir de x e seguir usar este valor para obter y Para equações paramétricas mais complexas uma técnica iterativa pode ser mais conveniente Alguns exemplos de descrição de cônicas nas formas paramétrica e nãoparamé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 315 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 usamse geralmente descrições pela união de di versas curvas Para que diversas curvas sejam adequadamente transformadas em uma curva única muitas vezes será necessário que a curva resultante da união te nha 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 grande maioria dos usuários da computação gráfica as cur vas 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 316 Hermite O uso de polinômios de terceira ordem para ajuste de curvas foi extensamente des crito pelo matemático francês Charles Hermite 18221901 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 teoria geral das funções elípti cas 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 fato res 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 34 Esses quatro fatores de controle têm participação na composição da geometria da curva de Hermite con forme mostrado na Figura 35 CURVAS E SUPERFÍCIES 81 T2 P1 P2 T1 FIGURA 34 Elementos 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 con trole para a forma de chegada e saída da curva ele ampliou o controle em relação ao uso somente das tangentes pois assim teria no máximo a direção e o sentido O mó dulo dos vetores funciona como um peso que muda completamente a curva Essa definição confere à curva uma grande versatilidade permitindo em um dado momento 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 ve tores estão sobre a mesma reta ela assume a forma de uma linha reta Em um dado instante t qualquer as coordenadas dos pontos da curva de Her mite 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 or dem A forma geral desses são xt Px axt3 bxt2 cxt dx yt Py ayt3 byt2 cyt dy zt 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 x0 y0z0 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 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 1 1 R1 R1 R2 P2 P1 ft t FIGURA 35 Composição da geometria da curva de Hermite 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 mais elegante através da multiplicação de matrizes xt t3 t2 t1 1 a b c d x x x x T Cx yt t3 t2 t1 1 a b c d y y y y T Cy zt t3 t2 t1 1 a b c d z z z z 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 colu na 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 usase normalizar a curva ou seja supor que este será 1 Assim para t 1 a equação da curva xt deve resultar na coordenada x de P2 x1 ax bx cx dx ou forma matricial x1 1 1 1 1 Cx CURVAS E SUPERFÍCIES 83 o mesmo ocorrendo para as demais coordenadas y1 1 1 1 1 Cᵧ z1 1 1 1 1 C𝓏 Devemos agora satisfazer as condições vetoriais da curva Como a direção do vetor está ligada a tangente da curva usaremos xt Pᵡ 3aₓt² 2bₓt cₓ yt Pᵧ 3aᵧt² 2bᵧt cᵧ zt Pᵧ 3a𝓏t² 2b𝓏t c𝓏 que na forma matricial podem ser escritas como xt Pᵡ 3t² 2t 1 0Cₓ yt Pᵧ 3t² 2t 1 0Cᵧ zt Pᵏ 3t² 2t 1 0C𝓏 assim a condição de a curva em t0 ser o vetor T₁ resulta na definição dos parâmetros cₓ cᵧ e c𝓏 da curva Na forma matricial podemos escrever x0 T₁ₓ 0 0 1 0Cₓ cₓ y0 T₁y 0 0 1 0Cᵧ cᵧ z0 T₁z 0 0 1 0C𝓏 c𝓏 A última condição é que em t 1 o vetor T₂ define a tangente da curva Essa condição se expressa matricialmente como x1 T₂ₓ 3 2 1 0Cₓ y1 T₂y 3 2 1 0Cᵧ z1 T₂z 3 2 1 0C𝓏 Unindo as quatro condições P₁ P₂ T₁ e T₂ podemos unificar as expressões independentemente de representarem os eixos x y ou z 𝒫₁ 0 0 0 1 𝒫₂ 1 1 1 1 𝒯₁ 0 0 1 0 𝒯₂ 3 2 1 0 𝒞ₓ H¹Cₓ Como os valores de Cₓ Cᵧ e C𝓏 são desconhecidos podemos representar melhor a expressão anterior como CX HH1CX H beginbmatrix P1 P2 T1 T2 endbmatrixX onde H é a função que multiplicada por H1 produz a matriz identidade É fácil verificar que essa matriz é H beginbmatrix 2 2 1 1 3 3 2 1 0 0 1 0 1 0 0 0 endbmatrix como essa matriz independe da direção x y ou z temos xt TCX TH THGX yt TCY TH THGY zt TCZ TH THGZ As condições geométricas que definem uma dada curva de Hermite são frequentemente denominadas de vetores GX GY e GZ ou em uma forma única como matriz Gh Gh beginbmatrix P1x P1y P1z P2x P2y P2z T1x T1y T1z T2x T2y T2z endbmatrix Assim dada uma condição geométrica Gh a curva de Hermite definida por ela fica perfeitamente definida pela expressão Pt 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 Pt left 2t3 3t2 1 2t3 3t2 t3 2t2 t t t2 right beginbmatrix P1 P2 T1 T2 endbmatrix Estas funções produzem uma curva que é o resultado da combinação blending function das quatro propriedades geométricas mostradas na Figura 35 É interessante 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 Rodrigues Hnx 1n ex2 fracdndxn ex2 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 Figura 36 ilustra os diferentes resultados obtidos pela simples alteração na direção da tangente inicial da curva de Hermite 317 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 1960 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 Citroën mas como os trabalhos de Bézier foram publicados antes seu nome ficou mais conhecido Essa curva por não usar o conceito de vetor e apenas pontos é mais 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 37 onde n é o grau dos polinômios e Quando muitos pontos de controle são usados as expressões podem se tornar complexas pois resultarão em polinômios de graus maiores Uma alternativa simples quando forem necessários muitos pontos de controle é a conexão de vá rios segmentos de curvas de graus menores Nesse caso para que as duas curvas tenham a mesma inclinação no ponto de união ou seja derivadas contínuas de vese fazer com que tenham três pontos em linha reta Isto é o ponto imediata mente 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 311 Em geral uma forma complexa é mais 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 or dem 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 usase a notação C0 C1 C2 etc Essa simbologia usa a letra C maiús cula com um número superescrito A forma mais simples de continuidade C0 asse gura que uma curva ou a união de curvas não terá descontinuidade O nível seguin te 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 deri vada segunda da curva e assim por diante Figura 312 CURVAS E SUPERFÍCIES 89 B2 B1 B0 B6 B5 B4 B3 FIGURA 310 Adicionando pontos de controle a curva de Bézier B2 B2 B1 B0 B3 B7 B B 4 0 B4 B3 FIGURA 311 Conexão de vários segmentos de curvas de graus menores para simplifica ção da expressão Níveis de continuidade na união de duas curvas Pt T MB GB A curva de Bézier é invariante sob transformações afins Transformações afins estão disponíveis em qualquer sistema de CAD pois é essencial repositionar escalálos ou girar os objetos Essa propriedade garante que os dois procedimentos a seguir produzem os mesmos resultados a primeiro calculase um ponto na curva e depois aplicase uma transformação afim e b primeiro aplicase uma transformação afim ao polígono de definição e depois gerase a curva 318 Splines Existem diversas formas de introduzir a teoria dessas curvas e muito já se tem escrito sobre elas desde o seu desenvolvimento em 1967 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 C² 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 comportamento como já mencionado nas seções anteriores não é apropriado para aplicações de ajuste de curvas interativas A BSpline é uma versão da Spline Natural com controle local isto é as alterações nos pontos de controle da BSpline apenas se propagam para os vizinhos mais próximos A função BSpline não passa pelos pontos de controle Figura 313 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 e a continuidade Cᵢ dependem da ordem dos polinômios usados nas funções de base Pt i0n Bᵢ Nikt Nas aplicações que usam curvas de forma livre para o projeto de modelos curvatura contínua é geralmente um fator importante e por isso BSplines cúbicas são preferencialmente usadas A forma geral da curva BSpline é bastante semelhante à da curva de Bézier Um conjunto de funções Nikt combina o efeito dos pontos de controle Bᵢ para gerar a curva Pt i0n Bᵢ Nikt As diferenças fundamentais entre ambas são as funções Nikt i 01n 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 Nik representa as funções de grau k1ordem do polinômio e curvas de continuidade Ck2 Cada uma das funções Nikt é definida de maneira recursiva pelas equações Ni1t 1 para tᵢ t tᵢ₁ 0 nos demais intervalos Nikt left frac1 t titik1 ti right Nik1t left fract titik ti1 right Ni1k1t Como o denominador pode se tornar zero usase a convenção 00 0 Essa formulação requer a escolha de um conjunto de valores tᵢ chamados nós que 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 tᵢ devem satisfazer a relação tᵢ tᵢ₁ e 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 Nikt 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 i0n Nikt 1 Em uma curva BSpline o número de pontos de controle n1 o grau k1 e o número de nós estão relacionados Suponto que esses nós sejam t₀t₁t₂tₘ essas características se relacionam pela expressão m n k Os nós são geralmente apresentados como vetores ou matrizes linha t₀t₁t₂tₙ₁ e podem ser classificados como uniformes e periódicos uniformes e nãoperiódicos e nãouniformes Como os nós influenciam toda a forma da curva BSpline usase geralmente essa mesma classificação para a curva representada por eles 3184 Desenvolvimento da Formulação Genérica de BSplines A fórmula geral apresentada no início da descrição das curvas BSplines será usada aqui para demonstrar o desenvolvimento de qualquer tipo desejado dessas curvas segundo as classificações descritas nas seções anteriores Para gerar interpolações lineares temse k2 e a curva passa a ser descrita pelas funções N₁₂t t tᵢ tᵢ₂₁ tᵢ se tᵢ t tᵢ₁ e N₁₂t tᵢ₂ t tᵢ₂ tᵢ₁ se tᵢ₁ t tᵢ₂ Dependendo do vetor de nós escolhido é possível ter curvas uniformes e periódicas nãoperiódicas ou nãouniformes Se o desejado for uma BSpline periódica definida a intervalos iguais de 1 a partir de 0zero teremos N₁₂t t para 0 t 1 2 t se 1 t 2 Para gerar interpolações quadráticas temse k3 e as funções são definidas recursivamente como N₁₃t t tᵢ tᵢ₂ tᵢ N₁₂t tᵢ₃ t tᵢ₃ tᵢ₁ Nᵢ₁₂t onde o valor de Nᵢ₁₂t pode ser obtido da expressão anterior Assim se forem usados dos intervalos iguais de t a partir de zero para o vetor de nós temse N₁₄t 12 t² 0 t 1 34 12t 32² 1 t 2 123 t² 2 t 3 As funções de interpolação cúbica k4 para o mesmo conjunto de nós periódicos e uniformes serão N₁₄t 16 t³ 0 t 1 23 12t 2³ t 2² 1 t 2 23 12t 2³ t 2² 2 t 3 16 4 t³ 3 t 4 Do mesmo modo é possível recursivamente gerar qualquer tipo de BSpline nãoperiódica ou nãouniforme apenas escolhendo adequadamente os vetores nós Assim como Hermite e Bézier um ajustador BSpline utilizando a forma matricial com os parâmetros separados das matrizes BSpline descreve 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 Pt t³ t² t¹Mₛ no caso de t ser substituído por ti em cada intervalo sendo ainda Mₛ 16 1 3 3 1 3 6 3 0 3 0 3 0 1 4 1 0 Os ajustadores de BSpline 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 sequência de pontos de controle ponto em relação a sua distância dos outros dois Quanto mais próximo de zero mais próximo estará o novo ponto de P1 Quanto mais próximo de um mais próximo estará 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 qt 12 t³ 3t² t 1 1 3 3 1 2 5 4 1 1 0 1 0 0 2 0 0 P0 P1 P2 P3 uma Spline de CatmullRom tem as seguintes características a curva gerada passa por todos os pontos de controle a curva gerada é contínua de classe 1 C¹ ou seja não existe descontinuidades nas tangentes Figura 318 Além disso o vetor tangente em um ponto Pi é paralelo a linha que une os pontos Pi1 e Pi1 a curva gerada não é contínua de classe 2 C² 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 319 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 ideia 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 01 110 ou 098765 98765100000 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 às transformações de projeção Tanto as curvas de Bézier quanto as Bsplines possuem forma racional ou forma inteira A forma inteira foi vista nas seções anteriores A tabela seguinte mostra as expressões correspondentes na forma racional Forma Inteira Forma Racional Bézier i0 to n Bi Jnit i0 to n wi Bi Jnit i0 to n wi Jnit BSpline i0 to n Bi Nikt i0 to n wi Bi Nikt i0 to n wi Nikt 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 xyz como um elemento do espaço de quatro dimensões homogêneo wxwywzw sendo w um valor maior que zero Esse valor w é a coordenada homogênea e também denominado peso Capítulo 2 seção 26 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 PWt i0 to n Bi W Jnit 0 t 1 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 peso empurrará a curva na direção do ponto de controle Bi A Figura 319 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 quanto todas as formas de Splines uniformesperiódicos nãoperiódicos e nãouniformes A forma mais comumente encontrada são as BSplines nãouniformes racionais comumente chamadas pela forma abreviada NURB porque essa representação inclui todas as formas possíveis de Bézier e BSplines 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ãoparamé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 forma será revista no próximo capítulo A Figura 320 mostra algumas superfícies muito conhecidas e as equações que as geraram Essas superfícies não estão na forma paramétrica cada ponto sobre elas é uma função de suas coordenadas xyz Um segmento de reta girando 360 em torno do eixo z produz uma superfície cônica De maneira geral temse que um ponto da superfície de revolução é descrito como Pt θ Superfícies de revolução podem ser obtidas por qualquer tipo 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 323 Superfícies Geradas por Interpolação Bilinear A geração de superfícies a partir da expressão da curva ou dos pontos que descre vem seus limites é uma das formas mais úteis muito empregada nas construções navais aeroespaciais e na análise numérica onde há necessidade de discretização de domínios elementos finitos ou de contorno Essas formas são paramétricas e começam pela definição da forma como os parâ metros representarão a superfície A forma mais simples é considerar o espaço dos parâmetros representados por uma área unitária limitada pelos pontos 0001 10 e 11 Essa área pode ser vista como o produto cartesiano dos dois eixos nor malizados ortogonais mostrados na Figura 323 de modo que qualquer ponto do interior seja definido univocamente Se você deseja gerar uma superfície a partir de quatro pontos ABC e D deve associar esses pontos aos limites do espaço dos parâ metros 00 01 10 11 e gerar o interior empregando duas interpolações li neares sucessivas Na primeira interpolação serão geradas as retas AD e BC que correspondem aos limites com parâmetro u0 e u1 Qualquer ponto E sobre a reta AD será definido como E 1 v A v D de modo que se v0 E é o próprio ponto A e se v1 E corresponde ao ponto D Fi gura 323 Do mesmo modo os pontos F sobre a reta BC serão obtidos pela inter polação linear das coordenadas de B e C F 1 v B v C Com os pontos E e F é possível gerar o interior da superfície a partir de outra in terpolação linear usando agora o parâmetro u CURVAS E SUPERFÍCIES 103 D 01 11 10 v A C E P v F y z x u v B 00 FIGURA 323 Parâmetros u v e geração de superfícies por quatro pontos limites Puv 1 u E u F As expressões anteriores podem ser reunidas resultando em duas interpolações lineares ou uma interpolação bilinear Puv 1 u 1 v A 1 u v D u 1 v B u v C É fácil verificar que se a superfície gerada é um plano então os quatro pontos de vem ser coplanares estarem sobre um mesmo plano e as fronteiras devem estar sempre limitadas por segmentos de reta Se as fronteiras ou limites forem definidas por curvas e não por retas a forma mais simples de gerar o interior é usar a expressão dessas curvas para gerar os pontos E e F Essa é a idéia de geração de superfícies denominada lofting usada desde a antigüidade na construção de caravelas naus embarcações e navios Nela as curvas dos limites opostos nas direções u ou v dos parâmetros são usadas para a geração da superfície A Figura 324 mostra os chamados loftings verticaisv e horizontaisu A interpolação resultante é linear a partir das curvas das fronteiras Por isso as outras fronteiras limitantes serão retas No caso de o limite ser quatro curvas a interpolação de Coons1974 resolve esse problema O resultado obtido ou seja a superfície gerada é conhecida na lite ratura como retalho de Coon interpolação de Coon ou Coons Patches Esse méto do consiste na soma das superfícies geradas pelos loftings verticais e horizontais an teriores subtraídas da superfície gerada pela interpolação bilinear dos quatro pon tos expressos por A B C e D Sendo esses representados por qualquer uma das duas curvas limites que passam por eles isto é 104 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA B B C P y A V v 0 D V v 1 z u v C x x P A D y v u Puv1v U u v U u 0 1 Puv1u V v u V v 0 1 U u 0 U u 1 FIGURA 324 Loftings verticais e horizontais A U00 V00 B U01 V10 C U11 V11 D U10 V01 324 Interpolações Trilineares As interpolações trilineares são úteis no caso da definição da superfície por três cur vas de fronteira Nessa interpolação um ponto do interior é definido por três parâ metros uv e w cada um com valores entre 0 e 1 Figura 325 Como as superfícies são elementos 2D ou seja sempre podem ser descritas com apenas dois parâme tros obviamente há a restrição adicional de que w v u 1 em qualquer ponto A geração de superfícies a partir de suas fronteiras permite diversas possibilida des de restrições adicionais muito úteis às análises numéricas como a passagem por pontos ou curvas interiores específicas a combinação de duas curvas para a for mação de um contorno único a utilização de contornos definidos por curvas fecha das a Figura 326 mostra essa possibilidade a redução de uma das várias curvas a pontos para discretizar a malha gerada e diversos outros CURVAS E SUPERFÍCIES 105 w P uvw B 100 C 010 A 001 u v u espaço dos parâmetros superfície gerada pelas curvas de fronteira w v FIGURA 325 Interpolações trilineares u v FIGURA 326 Restrições adicionais úteis às análises numéricas A ideia básica dos retalhos patches usados para construir uma superfície gerada pelas interpolações da seção anterior pode ser generalizada para uso com qualquer uma das formas de descrição de superfícies por pontos de controle utilizadas nas seções iniciais deste capítulo quando a geração de curvas Hermite Bézier Splines ou Racionais foi desenvolvida Superfícies podem então ser geradas pela combinação de pedaços gerados por essas curvas como na confecção de uma colcha de retalhos Figura 327 Essa forma é conhecida como geração de superfícies por formas livres A superficie bicubica de Hermite e uma extensao da formulacia da curva de Hermite As curvas de contorno sao definidas pelas expressoes de Hermite e pelo interior gerado pelas funcoes de mistura blending function Dois parametros sao necessarios ambos variando entre 0 e 1 Se esses parametros forem chamados de s e t a superficie bicubica pode ser escrita como Pst S H Gh HT TT onde S s3 s2 s 1 T t3 t2 t 1 o índice T indica transposto das matrizes e vetores H é a matriz de Hermite usada na geração de curvas e Gh as condições geométricas que definirão a superfície de Hermite Essa matriz deve ser representada pelos quatro pontos limites suas derivadas em relação a s e t e suas derivadas cruzadas Isto é Gh beginpmatrix P00 P01 fracpartial Ppartial t00 fracpartial Ppartial t01 P10 P11 fracpartial Ppartial t10 fracpartial Ppartial t11 fracpartial Ppartial s00 fracpartial Ppartial s01 fracpartial2 Ppartial s partial t00 fracpartial2 Ppartial s partial t01 P10 P11 fracpartial Ppartial s10 fracpartial Ppartial s11 endpmatrix Variações da superficie sao obtidas trocando os pontos representados na submatriz superior esquerda os vetores tangentes ou as derivadas cruzadas submatriz inferior à direita A curva pode ser simplificada anulando as derivadas cruzadas Essa variação é chamada de superficie Ferguson patch ou Fpatch Faulx 1987 A equação para os patches de Bézier é como os de Hermite uma extensão direta das curvas de Bézier sendo mais simples de criar e mais intuitivamente modificáveis que aquelas da Seção 327 Um ponto qualquer da superficie pode ser obtido pela expressão Pst sumi0n sumj0m Bij Jins Jjmt quad 0 leq st leq 1 onde como no caso das curvas de Bézier Bij define o vértice de controle da superficie Jijns Jjmt sao as funções de Bernstein nas direções s e t respectivamente Seção 317 As funções não precisam ter o mesmo grau nas duas direções podendo ser cúbicas na direção s e quadráticas na direção t por exemplo Os pontos dos quatro cantos da superficie gerada coincidem com os quatro pontos de controle Na forma matricial a equação anterior pode ser escrita como Pst S MB GB MBT TT onde os vetores S e T têm o significado usual MB é a matriz de Bézier e GB os pontos de controle Se a superficie de Bézier a ser gerada for definida por dois polinômios de grau 3 teremos as chamadas bicúbicas de Bézier que podem ser escritas como Pst s3 s2 s 1 MB GB MBT beginpmatrix t3 t2 t 1 endpmatrix sendo MB beginpmatrix 1 3 3 1 3 6 3 0 3 3 0 0 1 0 0 0 endpmatrix e os pontos de controle representados pela matriz GB beginpmatrix P00 P01 P02 P03 P10 P11 P12 P13 P20 P21 P22 P23 P30 P31 P32 P33 endpmatrix Para representar uma superficie Bézier bicubica os dezesseis pontos de controle que definem mostrados na Figura 328 devem ser especificados onde Niks e Njlt sao as funções de BSpline definidas na seção 318 de curvas BSpline e Bij sao os pontos de controle Os vetores de nós nas duas direções de parametrização podem ser classificados como periódicos uniformes nãoperiódicos ou nãouniformes como no caso das curvas As superficies BSplines periódicas uniformes são geradas usando vetores de nós não uniformes Como no caso das curvas BSplines periódicas essas superficies também podem ser expressas em formulação matricial que no caso das bicúbicas torna a forma Pst S Ms Gs MsT TT onde os vetores S e T têm o significado usual Gs representa a matriz formada pelos dezesseis pontos de controle e as matrizes Ms são as mesmas já usadas para curvas Ms frac16 beginpmatrix 1 3 3 1 3 6 3 0 3 3 0 0 1 4 1 0 endpmatrix Normais a superficies sao importantes para a geração realista de sombreamentos capítulo 7 cálculo de trajetórias em jogos detecção de interferências em robótica e para diversos cálculos na modelagem de objetos Essas normais no caso de superficies bicubicas sao fáceis de se obter Todas as expressões na forma matricial têm tangentes na superficie Pst dadas pelas derivadas parciais fracpartial barPpartial sst 3s2 2s 1 0 MG MT TT e s s t S M G M T 3t² 2t 1 0 de modo que para calcular o valor do vetor tangente em um ponto basta substituir nas expressões anteriores as coordenadas s e t do ponto onde desejase conhecer a tangente e as matrizes do tipo da curva desejada Por exemplo para as cúbicas de Hermite as tangentes no ponto s 12 e t 1 serão definidas pelos vetores Ps 14 925 12 Pt 11375 1125 10 des das superfícies nãoracionais estendese à sua forma similar racional Por exem plo se rotações e translações forem aplicadas aos pontos de controle a superfície será interior ao convex hull do poliedro que a envolve 3212 NURBS O termo NURBS é a abreviatura de NonUniform Rational BSplines Surfaces ou seja é uma BSpline racional originária da razão de polinômios NonUniform significa que a influência da extensão de um controle de vértice não precisa ser a in tervalos iguais do parâmetro t podendo variar o que é muito bom na modelagem de superfícies irregulares Rational significa que a equação usada para representar a curva ou superfície é expressa pela razão de dois polinômios A forma Rational como comentado na seção anterior fornece um modelo melhor de algumas im portantes superfícies especialmente para formas cônicas e esféricas As superfícies NURBS não existem no mundo do desenho tradicional Elas foram criadas especialmente para a modelagem em três dimensões no computador As NURBS são construídas matematicamente e representam formas de um espaço 3D O uso de NURBS oferece uma forma matemática comum tanto para a análise quan to para a geração de formas livres Ela provê uma flexibilidade adicional para proje tar uma grande variedade de formas e pode ser avaliada de maneira razoavelmente rápida por algoritmos numericamente estáveis e precisos Essas superfícies são obtidas com o uso de matrizes Bij de nós nãouniformes e são uma das formas de representação mais usadas em projetos de engenharia prin cipalmente por englobar todas as outras formas de representação A forma geral das BSplines racionais descritas na seção anterior é também usada nas formas nãouniformes A única restrição é como o nome indica que os vetores de nós sejam nãouniformes Ela pode fazer com que todas as demais formas de re presentação sejam casos particulares dela bastando seguir as seguintes restrições Tipo De Curva Restrição BSpline nãoracional Fixar todos os pesos wij1 Bézier racional Se o número de pontos de controle é igual à ordem em cada di reção dos parâmetros e não existirem nós interiores duplicados Bézier nãoracional As mesmas das racionais além de fixar que o peso seja wij1 Além disso as NURBS têm a habilidade de representar superfícies quadráticas A característica nãouniforme das NURBS nos leva a um importante ponto Por se rem geradas matematicamente na forma homogênea NURBS possuem um parâmetro adicionalem3DEspecificamenteumarraydevaloreschamadosnósespecificaain fluência de sua extensão para cada vértice da curva ou superfície Os nós são invisíveis CURVAS E SUPERFÍCIES 111 Pt P w t n i0 w i B i N ni t n i0 w i N ni t Todos os polinômios possuem um grau Uma equação linear possui grau 1 uma quadrática grau 2 e as NURBs dependerão do grau das equações Por exemplo as cúbicas possuem grau 3 Graus mais elevados são possíveis porém muitas vezes desenháveis e complexos Uma curva pode possuir níveis de continuidade maiores que C² mas para modelagem em computadores curvaturas contínuas são satisfatórias Geralmente a distinção entre uma curva C² e uma outra de maior continuidade é imperceptível para usuário Os reparametrizadores mais úteis são os de comprimento de curva e os unifor mes No primeiro caso os espaços entre os nós são reparametrizados com base na raiz quadrada do comprimento de cada segmento da curva No segundo caso ocor re a reparametrização uniforme dos espaços entre os nós 32121 NURBS em OpenGL Antes de chamarmos qualquer função NURBS temos de dizer ao OpenGL que cria remos um NURB Isso pode ser feito pela chamada de função nurbSurface gluNewNurbsRenderer Cada chamada a essa função retorna um ponteiro para a GLUnurbsObj que deve ser usado com as demais funções NURBS Dessa maneira podemos criar quantos patches NURBS desejarmos ajustando suas propriedades individualmente Para ajustarmos as propriedades de um NURBS chamamos a função gluNur bsProperty gluNurbsProperty GLUnurbsObj nurb GLenum property GLfloat value As propriedades devem ser uma das que seguem GLUSAMPLINGTOLERANCE especifica o comprimento máximo em pixel dos polígonos que compõem a malha Quanto menor mais suave parecerá a malha po rém demandará mais tempo para o render O valor padrão é de 50 pixels GLUDISPLAYMODE define como um NURBS deve ser renderizado entre as seguin tes opções GLUFILL GLUOUTLINEPOLYGON ou GLUOUTLINE PATCH GLUCULLING este é um valor booleano GLTRUE significa que uma superfície NURBS deve ser descartada se os seus pontos de controle estiverem fora da janela de visualização O padrão é GLFALSE GLUAUTOLOADMATRIX este também é um valor booleano GLTRUE sig nifica que um NURBS utiliza as matrizes de projeção corrente modelview e view port GLFALSE requer a especificação de matrizes através da função gluLoadSam plingMatrices Agora que ajustamos as propriedades basta desenhar a curva através da função gluNurbsSurface GLUnurbsObj nurb GLint uKnotCount GLfloat uKnot GLint vKnotCount GLfloat vKnot GLint uStride GLint vStride GLfloat ctrlArray GLint uOrder GLint vOrder GLenum type CURVAS E SUPERFÍCIES 113 nurb é o ponteiro do objeto NURBS uKnotCount especifica o número de nós na direção paramétrica u uKnot especifica um array de nós crescente na direção u vKnotCount especifica o número de nós na direção paramétrica v vKnot especifica um array de nós crescente na direção v uStride especifica o equilíbrio entre pontos de controles sucessivos na direção paramétrica u em ctrlArray vStride especifica o equilíbrio entre pontos de controles sucessivos na direção paramétrica v em ctrlArray uOrder especifica a ordem da superfície NURBS na direção u vOrder especifica a ordem da superfície NURBS na direção v type especifica o tipo de superfície que poderá ser GLMAP2VERTEX3 or GLMAP2COLOR4 Sedesejardesenharumalinhacurvaemvezdeumasuperfícievocêpoderáchamar a função gluNurbsCurve que possui os mesmos parâmetros menos a direção v 3213 Superfícies NURMS Foram Catmull e Clark que primeiro notaram que as regras de subdivisão podiam ser estendidas para incluir malhas de topologia arbitrária Em 1978 através da publica ção de Recursively generated Bspline surfaces on arbitrary topological surfaces eles mostraram que a superfície limite é localmente uma Bspline bicúbica uniforme ex ceto em alguns pontos na superfície que eles chamaram pontos extraordinários Essa técnica de subdivisão fez surgir as ferramentas de modelagem NURMS NonUniform Rational Mesh Smooth As superfícies NURMS são mais fáceis e rá pidas de gerar e alterar do que as superfícies NURBS e por isso vêm ganhando adeptos quando o assunto é modelagem de personagens ou modelagem de objetos de contornos suaves A Figura 330 demonstra a aplicação de NURMS em um mo delo de face de poucos polígonos lowpoly model observe os contornos do quei xo Outro exemplo clássico para rápida e fácil geração de personagens é demonstra do na Figura 331 onde as NURMS são aplicadas a um modelo do corpo de um per sonagem com poucos polígonos Utilizando a subdivisão de superfícies Bspline bicúbicas uniformes Catmull e Clark seguiram a metodologia de Doo e Sabin e notaram que a regra de subdivisão expressa para a superfície Bspline cúbica não só trabalha para malhas retangulares mas também pode ser estendida para malhas de uma topologia arbitrária Essa ex tensão pode ser realizada generalizando a definição de um ponto da superfície mo 114 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dificando o método para calcular novos pontos nos lados da malha poligonal e es pecificando um método para reconectar os pontos da malha O procedimento de refinamento pode ser exemplificado com o uso de uma ma lha formada por quatro triângulos como mostra a Figura 332 Primeiro construímos os pontos médios das superfícies Esses pontos são cal culados com a média aritmética das coordenadas dos pontos que compõem os vértices de cada triângulo Esses pontos são mostrados na Figura 333 pela le tra F Podemos dizer que o cálculo de F1 por exemplo é obtido de F1G1 G2 G0 3 e do mesmo modo se obtém os demais F2 F3 F4 CURVAS E SUPERFÍCIES 115 FIGURA 331 NURMS aplicado a um modelo de corpo de poucos polígonos FIGURA 330 NURMS aplicado em um modelo de face de poucos polígonos Agora construímos os novos pontos para subdivisão da malha que são calculados pela média dos quatro pontos formados pelos dois novos pontos F de lados adjacentes e os dois pontos dos vértices G do triângulo original Os novos pontos são identificados pela letra E na Figura 334 Dessa maneira E1 será o resultado da média dos pontos F1 F4 G1 e G0 Do mesmo modo determinase os demais E2 E3 E4 Os novos pontos de vértice são calculados pela expressão Q n 2R n Sn 3 n onde Q é a média dos novos pontos F de todas as faces adjacentes à malha original R é a média dos pontos centrais E de todas as extremidades adja centes originais S é o ponto de vértice original e n é o número de vértices da face em consideração Este ponto pelo menos para esse exemplo em duas di mensões é idêntico ao centro do diamante Este ponto está representado na Figura 335 pela letra V CURVAS E SUPERFÍCIES 117 G4 G0 F4 E4 G1 F1 E1 G2 F2 E2 G3 F3 E3 FIGURA 334 Determinando os pontos de extremidade V FIGURA 335 Determinando os novos pontos de vértice Finalmente conectamos as extremidades aos pontos que geramos primeiro conectando os novos pontos das faces pontos E e F e então conectando os novos pontos de vértice aos pontos das faces originais neste caso conecta mos todos os pontos E ao G0 Figura 336 A Figura 337 exemplifica a inclusão de malhas na topologia de um objeto 3D com a técnica de refinamento de CatmullClark Outras implementações de modelagem de superfícies por subdivisão podem ter características diferentes Alguns produtos como o Pixar Render Man dão suporte a subdivisão de superfícies usando NURBS Algumas engrenagens 3D de jogos e visualizadores 3D para Internet suportam subdivisão de superfície em realtime 118 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA G0 F4 E4 F1 E1 F2 E2 F3 E3 FIGURA 336 Conectando as extremidades dos novos pontos FIGURA 337 Inclusão de malhas na topologia de um objeto 3D com a técnica de Cat mullClark CAPÍTULO 4 Representação e Modelagem 41 Pivô 42 Sólidos uni bi e tridimensionais 43 Sólidos realizáveis 44 Formas de representação de objetos 441 Representação Aramada Wire Frame 442 Representação por Faces ou Superfícies Limitantes 443 Representação por Faces Poligonais 444 Fórmula de Euler 445 Operadores de Euler 446 Estrutura de dados baseada em vértices 447 Estrutura de dados baseada em arestas 448 Estrutura de dados WingedEdge e Half WingedEdge 449 Utilização de Operações Booleanas com Brep 45 Técnicas de Modelagem Geométrica 451 Instanciamento de Primitivas 452 Objetos de Combinação 453 Operações Booleanas e Booleanas Regularizadas 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry 455 Connect 456 Modelagem por Varredura Sweep ou Deslizamento 457 Modelagem por Seções Transversais 458 Modelagem por Superfícies 46 Modificadores 461 Bend ou Curvatura 462 Lattice ou Malha 463 MeshSmooth ou Suavização 464 Optimize 465 Bevel 466 Melt 467 Skew 468 Squeeze ou Stretch 469 Taper 4610 Twist 4611 Diaplace ou Deslocamento 4612 Space Warps 47 Interfaces para Modelagem Geométrica 471 Tape Fita de Medida 472 Protractor Transferidor 473 Compass Bússola 474 Array Vetor 48 Modelagem Geométrica com OpenGL 481 Desenhando um Ponto 482 Desenhando uma Linha 483 Desenhando um Polígono 484 Primitivas 485 Objetos Sólidos 486 Wireframe 49 Modelagem pelo Número de Ouro 491 A Seqüência de Fibonacci 410 Modelagem Fractal 4101 Os Objetos de Mandelbrot 411 Shape from X Reconstrução Tridimensional 4111 Implementação 412 Sistemas de Partículas 4121 Distribuição de partículas no sistema 4122 Noção de centro de massa 4123 Velocidade do centro de massa 4124 Quantidade de movimento 4125 Aceleração do centro de massa 4126 Movimento de uma partícula em relação ao seu centro de massa 4127 Choque 4128 Quantidade de movimento de um sistema de duas partículas 4129 Energia de um sistema de duas partículas 41210 Conceito de Sistemas de Partículas 41211 Renderizando as Partículas 41212 Características dos Sistemas de Partículas Quando modelamos um objeto devemos sempre observar as limitações resul tantes das técnicas disponíveis As atuais técnicas de modelagem apesar de efi cientes para determinadas situações podem representar um problema para ou tras Se tomarmos um objeto complexo por exemplo uma cabeça humana ve remos que este poderá ser inviável para utilização em aplicações de tempo real como Games ou Realidade Virtual Uma cabeça com riqueza de detalhes terá no mínimo 300000 polígonos Podemos ainda citar diversas outras dificulda des relacionadas com a representação de um rosto como as expressões faciais realistas ou custo de renderização Tornarse um bom modelador poderá garantir o sucesso profissional de quem deseja trabalhar com computação gráfica Na verdade modelar é um assunto que exige muita intuição conhecimento e experiência A modelagem está presente em quase todas as aplicações da medicina para diagnósticos e ensino à indústria para garantir a precisão dos projetos no entretenimento para criar personagens e cenários virtuais e em uma infinidade de outras aplicações 41 PIVÔ Antes de iniciarmos os estudos sobre modelagem precisamos conhecer uma peça importante do assunto o Pivô ou usando a terminologia da seção 24 o sistema de referência do objeto Figura 41 REPRESENTAÇÃO E MODELAGEM 121 FIGURA 41 O ponto pivô Todos os objetos têm um pivô e um sistema de coordenadas próprio Você pode pensar sobre o pivô como o centro do objeto ou o centro de coordenadas lo cais Quando modelamos um objeto usando um software podemos observar que o pivô é criado automaticamente pelo sistema Nesse momento é importante verifi car se a escolha feita pelo sistema será adequada para as modificações que aplicare mos Muitas vezes será necessário alterar a posição padrão do sistema para realizar uma modificação qualquer no objeto O pivô de um objeto é usado em funções de transformação Seção 25 como centralizar rotacionar e dimensionar para deter minar a posição de atuação de um modificador como veremos mais à frente e para definir a relação de transformação para os elementos conectados Agora que conhe cemos o pivô podemos iniciar os estudos de modelagem pelos sólidos 42 SÓLIDOS UNI BI E TRIDIMENSIONAIS O termo modelagem de sólidos designa um conjunto de teorias técnicas e sistemas que permitem criar um sólido com suas propriedades geométricas Mas antes veja mos se está bem clara a idéia do que é um sólido Algo é considerado um sólido se tem uma forma própria A modelagem de líqui dos gazes materiais flexíveis ou de coisas que não tenham forma própria roupas tecidos plásticos gel e outros é também necessária e representável em computa ção gráfica Muitos modelos representativos desses comportamentos complexos ainda estão em estágio de desenvolvimento e pesquisa Uma definição mais precisa de sólido é encontrada em uma das ótimas referên cias sobre modelagem de sólidos o livro do pesquisador finlandês Martti Mäntylä Anintroductiontosolidmodeling publicado pela ComputerSciencePress em 1988 Definição Um sólido é um subconjunto fechado e limitado do espaço Euclidiano tridimensional E3 Essa definição esclarece alguns pontos muito importantes sobre um sólido O mais importante talvez é que associada à idéia de sólido está a idéia de ser algo es sencialmente tridimensional abreviadamente 3D Assim embora em muitos ca sos o objeto em estudo possa ser considerado unidimensional como um fio ou bi dimensional como folhas de metal ou papel será sempre algo essencialmente parte de nosso mundo físico palpável e portanto 3D Poderemos considerálo bidimen sional 2D se uma das dimensões não for considerada por nela nada ocorrer ou por ser desprezível for 100 vezes menor que qualquer uma das outras dimensões por exemplo que concentram todas as informações sobre o objeto Do mesmo modo o sólido pode ser considerado unidimensional 1D se só uma das dimen sões concentrar as informações ou as demais forem desprezíveis face a essa uma delas for 100 vezes maior que qualquer uma das outras dimensões por exemplo 122 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Outro ponto importante é ser um elemento Euclidiano Algo que obedece às re gras da geometria formulada pelo matemático grego Euclides que viveu na Alexan dria no século III AC ou seja obedece à geometria que estamos acostumados a tratar desde que entramos na escola e que é regida por todo um conceito de regras rigorosamente lógicas e bem definidas formuladas na obra de Euclides Elementos de Geometria Nessa obra é construído tudo o que é até hoje usado no ensino da geometria partindo de definições simples e do célebre postulado ou axioma de Eu clides por um ponto podese traçar uma única paralela a uma reta Essa afirmação nunca pôde ser provada como teorema embora isso tenha sido tentado por um grande número de matemáticos ilustres no decorrer dos séculos O próprio Carl Friedrich Gauss 1777 1855 voltou sua atenção a esse postulado e tentou pro válo falhando como todos os demais que o tentaram No entanto Gauss com a idade de 15 anos mostrou que trocando um ou mais dos axiomas euclidianos toda uma estrutura completamente diferente das lógicas de geometria surgiria ou seja como axioma a afirmação pode ser posta em dúvida e mesmo eliminada Pela sua substituição surgiram as geometrias nãoeuclidianas Maor 1987 Foi apenas no século XIX que a geometria de Euclides deixou de ser verdade ab soluta e surgiram as primeiras geometrias nãoeuclidianas desenvolvidas por Lo batchevski Nicolai Ivanovitch Lobachevski matemático russo 17931856 e Rie mann Georg Friedrich Bernhard Riemann matemático alemão 18261866 Atual mente existem diversas outras geometrias cada uma com aplicações específicas como por exemplo a geometria Fractal que é muito importante para a modelagem em computação gráfica de formas da natureza como plantas montanhas nuvens e outras como comentaremos no final deste capítulo Falconer 1990 Há ainda dois pontos a serem comentados na definição de sólido citada as pala vras fechado e limitado Vamos ficar com os conceitos intuitivos dessas afirmações embora pelo menos o conceito de fechado seja bem familiar se você tiver ainda lembrança da teoria de conjuntos Um conjunto um corpo ou qualquer objeto é fechado se tiver todos os seus pontos de contorno assim como uma pele que limita o interior do corpo humano do mundo exterior Limitado está associado à idéia de não ter alguma dimensão infinita Infinito no sentido de realmente não ter fim e não apenas de ser muito grande 43 SÓLIDOS REALIZÁVEIS Os modeladores de sólidos devem gerar objetos que mesmo que não sejam reais possam ser construídos ou virem a existir no nosso mundo euclidiano do dia a dia e não simples desenhos Um sólido é considerado realizável ou válido se satisfizer às seguintes propriedades Rigidez o objeto deve possuir forma invariante se for movido de um lugar para outro Mais rigorosamente isso é expresso dizendo que deve ser invari REPRESENTAÇÃO E MODELAGEM 123 ante sobre transformações de corpo rígido São elas a rotação a translação e a mudança dos sistemas de coordenadas usadas para descrever suas coorde nadas Ou seja ter a propriedade de rigidez significa que o sólido deve ser in dependente da sua localização e orientação no espaço Finitude o objeto deve ter dimensões finitas e ser contido em uma porção fi nita do espaço Essa propriedade está relacionada ao conceito de limitado descrito anteriormente na definição de sólido Homogeneidade o objeto deve ter as mesmas propriedades em todos os seus pontos interiores Determinismo dos limites deve ser possível descrever o limite o interior e o exterior do objeto Essa propriedade está relacionada ao conceito de fechado descrito anteriormente na definição de sólido Descritibilidade o objeto deve poder ser descrito através de um número fini to de propriedades físicas químicas biológicas etc Fechamento sobre operações o resultado de operações geométricas realiza das em objetos válidos deve ser ainda um objeto válido Os sólidos podem ser representados por diversas formulações As propriedades desejáveis das formas de representação são Validade o modelo deve representar somente sólidos válidos Unicidade cada sólido válido deve ter apenas um modelo Não ambigüidade cada modelo deve corresponder a apenas um sólido válido Completude o modelo deve ser completo ou seja conter uma variedade de informações sobre as quais as várias funções possam ser executadas Deve ser possível obter informações suficientes a partir do modelo mesmo após even tuais transformações por funções que operam sobre o mesmo Concisão o modelo deve ocupar o menor espaço de memória possível Simplicidade deve ser possível criar o modelo de uma forma simples e direta sem que nenhuma característica especial de hardware seja exigida Eficiência as operações devem ser de fácil aplicação e apresentar respostas rápidas Fechamento sobre operações as operações de descrição e manipulação de vem preservar a validade do modelo 44 FORMAS DE REPRESENTAÇÃO DE OBJETOS Cada método de representação tem suas vantagens e desvantagens Uma solução ideal poderá ser uma forma híbrida isto é uma mistura de alguns desses métodos 124 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 441 Representação Aramada Wire Frame Nesta representação os objetos são descritos por um conjunto de arestas que define as bordas do objeto O método nada mais é do que uma extensão 3D do método de representação de objetos 2D por contornos A principal vantagem dessa técnica é a sua velocidade na exibição dos modelos sendo necessário apenas exibir um conjunto de linhas Porém há sérios inconveni entes nos usos da representação aramada Um dos inconvenientes é o fato de gerar uma representação ambígua com margem para várias interpretações A Figura 42 exemplifica esse problema Em A temse a representação aramada e em B e C duas possíveis interpretações O problema não reside propriamente no fato de que a simples exibição das linhas gera ambigüidades mas na constatação de que o mode lo não fornece informações precisas para que estas sejam eliminadas no exemplo seria necessário remover as arestas da parte traseira ou dianteira do objeto Outra inconveniência está na dificuldade de realizar certas operações como a determina ção de massa ou volume No sentido restrito da modelagem de sólidos essa técnica não tem como garantir que o objeto desenhado seja um sólido válido e geralmente nem é considerada uma técnica de modelagem de sólidos 442 Representação por Faces ou Superfícies Limitantes Esta representação de sólidos usa suas superfícies limites para descrever seus con tornos Essas superfícies são supostas fechadas e orientáveis Orientáveis nesse caso significa que é possível distinguir entre dois lados da superfície de modo que um esteja no interior e o outro no exterior do sólido Essa técnica consiste em defi nir um modelo através de um conjunto de superfícies que delimita a região fechada do espaço que define o interior do modelo As superfícies que limitam a região rece bem o nome de faces Essa técnica é também denominada Boundary Representati on ou Brep consiste na descrição de objetos pelos seus contornos ou seja suas fa ces arestas e vértices Pode ser restrita a formas definidas cúbicas elipsóides esfé ricas aproximadas por superfícies planas ou pode ser descrita por faces represen tadas por retalhos de superfícies curvas A representação de sólidos por faces pode também ser vista como uma simples extensão da modelagem 2D por contornos Como no caso 2D onde há pelo menos duas formas de armazenamento das arestas em 3D as faces podem ser representa REPRESENTAÇÃO E MODELAGEM 125 A B C FIGURA 42 Representação aramada em A e suas possíveis interpretações em B e C das através de uma ou mais listas explícitas de vértices contendo a topologia e a geo metria da face A primeira se encarrega de fazer as relações entre os elementos por exemplo aresta ai é limitada pelos vértices Vl e Vm e faces Fn e Fo A segunda define as posições dos elementos no espaço pela determinação da sua forma geométrica a aresta ai é uma semireta ou um arco de círculo por exemplo e as coordenadas do vértice Vl do modelo são 102030 A representação pelos seus limites é a forma mais encontrada na modelagem de sólidos em geral Muitos sistemas que a usam se limitam no entanto a representa ção de sólidos que tenham contornos formados por superfícies que sejam varieda des de dimensão 2 ou 2manifold Manifold é uma palavra que em inglês arcaico quer dizer algo que tem muitas par tes muitos elementos ou formas Mas matematicamente é um termo que indica um conjunto de objetos que tem determinadas propriedades topológicas Por defini ção um objeto é um manifold de dimensão 2 ou uma variedade de dimensão 2 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um disco plano Uma definição formal simples é encontrada em Mäntylä 1988 Definição Um 2manifold é um espaço topológico onde cada ponto tem uma vi zinhança topologicamente equivalente a um disco do espaço Euclidiano bidi mensional E2 Um objeto é topologicamente equivalente a outro se é possível encontrar uma função biunívoca inversível e contínua que mapeie os pontos do contorno de um no outro Obviamente a melhor forma de entender a noção de equivalência topoló gica é por uma analogia física Supondo que o objeto seja feito de um material extre mamente elástico como as membranas das bolas de encher de aniversário todas as transformações que mantêm as vizinhanças das superfícies são modificações to pologicamente equivalentes Isso é se você mudar as formas da geometria construí da nesse material elástico puxando e esticando até conseguir transformálo em outra forma terá apenas transformações geométricas e não topológicas ou seja to das as transformações que você puder fazer em uma membrana elástica sem ras gála ou colar um ponto a outro podem ser entendidas como equivalentes físicos de transformações contínuas e biunívocas ou inversíveis Essas operações não mu dam as relações de vizinhança entre os pontos da região ou seja não mudam a topo logia da região Assim em um objeto com superfícies que sejam variedades de dimensão 2 2mani fold todos os seus pontos têm uma vizinhança topologicamente equivalente a um disco Uma forma de ter uma visualização disso é imaginar que você tem uma eti queta adesiva na forma de um círculo e deseja colála no objeto analogia da etique ta adesiva Se você puder colála em qualquer ponto da superfície desse objeto en 126 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tão ele pode ser considerado uma variedade de dimensão 2 A Figura 43 mostras al guns objetos simples que não são 2manifolds Outra forma talvez mais simples mas menos intuitiva de definir uma variedade de dimensão 2 seria dizer que são as formas que têm planos tangentes em todos os seus pontosoupelomenossónãotemplanotangenteemumnúmerofinitodepontos 443 Representação por Faces Poligonais Polígonos das palavras gregas polys que significa muitos e gonon que significa ângulo são figuras planas fechadas formadas por muitos segmentos de retas e mui tos ângulos O polígono mais simples é o triângulo Mas é possível construir polígo nos com qualquer número de lados Um polígono é chamado regular se tiver ângu los e portanto lados iguais A técnica de representação por faces poligonais pode ser considerada um caso particular da anterior Chamase tesselation a cobertura de uma área plana como um piso por repeti ções sem fim de uma forma sem deixar vazios como fazer calçadas com pedras por tuguesas Ela oferece grandes possibilidades de criação Glassner 1998 O artista holandes Maurits Cornelis Escher 18981972 soube usála com inteligência na criação de belas obras de arte seção 11 Uma questão interessante é se quisermos cobrir uma área com polígonos regula res quais são os polígonos que nos permitem fazer isso Você já pensou sobre isso Embora existam polígonos regulares com qualquer número de lados só poderemos usar triângulos equiláteros quadrados e hexágonos Figura 44 para fazer tessela tion ou tiling de um plano por formas regulares essas são as únicas formas cujos ângulos internos multiplicados por um número inteiro resulta em um múltiplo de 360 graus Quase todos os softwares de modelagem e realtime rendering jogos e realidade vir tual utilizam a representação por faces triangulares Essa representação é muito utili REPRESENTAÇÃO E MODELAGEM 127 FIGURA 43 Exemplo de 3 formas simples que não são variedades de dimensão 2 se fo rem consideradas como objetos únicos A da esquerda por ter arestas que limitam 4 fa ces de modo que para termos a vizinhança de um ponto precisaríamos de pelo menos duas etiquetas adesivas a do centro por ter uma aresta que limita três faces e a da di reita pelo vértice comum às duas formas dos cubos zadaporqueusamenosmemóriamenortempoderendereseadaptaaqualquertipode contorno Além de ser automaticamente implementada por funções de OpenGL ou Java 3D Uma classe importante de objetos usados na representação de sólidos são os poli edros das palavras gregas polys que significa muitos e hedra que significa lados ou seja objetos compostos por muitos lados Como os objetos da Figura 45 Mais precisamente um poliedro é um sólido que é limitado por um conjunto de polígonos cujos lados chamados arestas do poliedro pertencem a um número par de polígonos Para os poliedros um objeto ser uma variedade de dimensão 2 ou um 2manifold significa simplesmente que o número de polígonos que compartilham uma aresta deve ser 2 Ou em outras palavras se as arestas do objeto poliedral fo rem formadas pelos lados de dois polígonos então esse objeto é uma variedade de dimensão 2 ou um 2manifold Se o poliedro for topologicamente equivalente a uma esfera é classificado como um poliedro simples Assim um poliedro simples é o que pode ser deformável em uma esfera ou seja não é equivalente topologicamente a um toro ou outras figuras com furos E é composto de só um bloco componente ou uma única parte Se um 128 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 44 Tiling de uma superfície por triângulos quadrados e hexágonos D A B E C FIGURA 45 Os 5 tipos possíveis de poliédros regulares objeto tem um único componente o número dos furos que trespassam o objeto é denominado de genus G do objeto Assim um poliedro simples é um objeto de ge nus 0 A Figura 46 ilustra essa definição de genus 4431 Fórmula de Euler A Brep de poliedros simples sem furos satisfaz a fórmula proposta por Leonhard Euler em 1752 V A F 2 onde V representa o número de vértices do objeto A é o número de arestas e F o nú mero de faces Euler era um matemático suíço nasceu em 1707 na Basiléia e morreu em 1783 em São Petersburgo Foi aluno de Bernouilli e a despeito de uma cegueira progressiva produziu mais de 900 trabalhos de matemática mecânica astronomia ótica ciência naval e música Struik 1967 Essa fórmula expressa uma relação in variante entre os componentes topológicos de um sólido simples realizáveis que já era utilizada pelos gregos embora de maneira intuitiva sem uma prova definitiva A fórmula de Euler é facilmente verificada para objetos formados de faces planas É também com facilidade incorporada nas implementações da formulação por con tornos pois sempre é simples o conhecimento do número de componentes das lis tas de vértices arestas e faces Satisfazer a fórmula de Euler é uma condição necessária para um objeto ser um po liedro simples mas não suficiente Os poliedros são regulares se forem constituídos por faces e ângulos iguais Embora existam infinitos polígonos regulares há apenas cinco poliedros regulares ou seja só podem ser construídos poliedros regulares com 4 6 8 12 ou 20 faces o tetraedro o hexaedro cubo o octaedro o dodecaedro e o icosaedro Figura 45 Todos muito importantes em cristalografia pois os átomos dos cristais são arranjados segundo essas formas regulares Por exemplo os átomos do diamante ocupam os vértices de um tetraedro regular o que lhe confere o alto grau de dureza A possibilidade de existência de apenas cinco formas regulares já era conhecida desde a antigüidade grega onde poliedros regulares eram conhecidos como sólidos Platônicos e aos quais se atribuíam propriedades místicas REPRESENTAÇÃO E MODELAGEM 129 Geno 0 Geno 1 Geno 2 FIGURA 46 Exemplos de diversos genus A fórmula de Euler é aplicável mesmo a objetos que não tenham faces planas como o cilindro mostrado na Figura 47 Neste caso o conceito de faces deve ser estendido para considerar toda as superfícies as arestas devem ser entendidas como os limites entre as faces e os vértices definidos pelos limites das arestas Assim um cilindro pode ser considerado formado por dois vértices três arestas e três faces veja a Figura 47 Uma esfera pode ser entendida a partir de um caso limite do cilindro quando as faces planas e as arestas que as limitavam de saparecem e a aresta antes reta vai se deformando até formar uma semicircunfe rência limitada pelos dois vértices de modo que a figura passa a ser formada por uma única face só uma aresta e dois vértices Essa fórmula deve ser usada com cuidado também em outros casos simples Por exemplo como uma esfera é topologicamente equivalente a um elipsóide e esta a uma pirâmide e um cone todos esses objetos devem satisfazêla Para variedades de dimensão 2 que tenham furos a fórmula de Euler é generali zada para fórmula de EulerPoincaré V A F H 2 C G onde os primeiros três elementos têm os mesmos significados anteriores e H é o número de loops internos fechados ou quaisquer buracos nas faces C é o número de partes ou componentes separáveis do objeto e G é o número de furos que tres passam o objeto ou genus 4432 Operadores de Euler As informações topológicas e geométricas devem ser armazenadas na estrutura de dados usada pelas Brep Ao se criar um objeto devese a partir de sua geometria 130 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Vértice 1 Face 3 Vértice 2 Face 2 Face 1 Aresta 1 Aresta 2 Aresta 3 FIGURA 47 A fórmula de Euler é aplicável mesmo a objetos que não tenham faces pla nas como o cilindro assegurar a validade de sua topologia essas informações servem como uma cola que mantém as informações geométricas consistentes Assim operações de mu dança da geometria pelo deslocamento da posição de um vértice alteração do comprimento de uma aresta ou mudança da área de uma face são feitas facilmen te sem alterar a consistência do sólido Essas operações são chamadas de tweaking operations operações de arrasto As operações de alteração topológicas são mais complexas Para assegurar a vali dade topológica do modelo Brep alguns operadores especiais são usados para criar e manipular as entidades topológicas Eles são chamados de operadores de Euler e se aplicam a objetos que satisfazem a fórmula de EulerPoincaré Esses operadores foram introduzidos por Baumgart em 1974 e operam nos obje tos pela adição ou remoção dos elementos topológicos vértices arestas faces de modo a transformálos em outros que também satisfaçam a fórmula de Euler Poincaré A prova de que qualquer Brep válida pode ser construída por um número finito de operadores de Euler foi apresentada por Mäntilä em 1988 4433 Estrutura de Dados Baseada em Vértices A estrutura de dados usada para armazenamento das informações é muito impor tante pois permite mais rapidez e consistência nas operações geométricas e até a re alização de operações topológicas como subdivisão criação ou agrupamento de faces arestas e vértices Uma boa discussão sobre elas é encontrada na obra de Mäntylä já citada Os modelos mais simples são para objetos de faces poligonais e se baseiam na definição da topologia das faces planas e arestas retas por uma lista de vértices e uma lista de vértices que define a geometria dos objetos por suas coorde nadas Esta é a estrutura do denominado modelo baseado em vértices Cuja única exi gência é que a descrição das faces seja consistente os vértices limites das faces des critos sempre no mesmo sentido horário ou antihorário do exterior do objeto para todas as faces Nas tabelas abaixo temse um exemplo desta estrutura de dados para os vértices do cubo mostrado na Figura 48A Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 REPRESENTAÇÃO E MODELAGEM 131 Faces Vértices F1 EFBA F2 GFEH F3 CBFG F4 DABC F5 HEAD F6 DCGH 4434 Estrutura de Dados Baseada em Arestas No caso de uso de faces curvas no modelo Brep é útil uma estrutura de dados que permita a descrição das faces através de uma seqüência de arestas fechadas ou de um loop de arestas Essa descrição é denominada de estrutura de dados baseada em arestas Nela a ordem das arestas nas faces também deve ter sempre a mesma orien tação e as próprias arestas são consideradas orientadas Na estrutura de dados baseada em arestas além das listas de coordenadas de vértices e definição das faces temse uma lista que identifica cada aresta e seus vértices limi tantes A estrutura completa para o cubo da Figura 48A é composta das 3 tabelas que seguem Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 132 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA D H C G A B E F A D H C G A B E F B J I z y x FIGURA 48 Exemplificação as diferentes estruturas de dados Faces Arestas F1 A1 A2 A3 A4 F2 A9 A6 A1 A5 F3 A6 A10 A7 A2 F4 A7 A11 A8 A3 F5 A12 A5 A4 A8 F6 A9 A12 A11 A10 Aresta Vértices Aresta Vértices A1 EF A7 BC A2 FB A8 AD A3 BA A9 HG A4 AE A10 GC A5 EH A11 CD A6 FG A12 DH 4435 Estrutura de Dados WingedEdge e Half WingedEdge Introduzida por Baumgart a estrutura de dados WingedEdge foi proposta para melhorar os algoritmos de remoção de superfícies escondidas e sombreamento Nesta estrutura as informações das faces vizinhas e das próximas arestas são adicio nadas aos dados das arestas Sabendo que cada aresta pertence a duas faces podemos dizer que duas novas arestaspodemdescreverestasfacesTomandocomo exemplo o cubo da Figura 48 A podemos dizer que a aresta composta pelos vértices EF pertence a face EFBA e GFEH Nesse caso as arestas FB e HE podem representar essas duas faces Por con venção o identificador de sentido horário ncw next clockwise e o identificador de sentido antihorário nccw next counterclockwise indicam as arestas que per tencem às faces vizinhas e sua orientação em relação à aresta comum as duas faces neste exemplo EF Devido a esta orientação consistente das faces cada aresta só ocorre uma vez no sentido positivo e uma vez no negativo A estrutura de dados WingedEdge para o cubo da Figura 48 A será a mostrada nas tabelas que seguem Vértices Coordenadas A 000 B 100 C 110 D 010 E 001 F 101 G 111 H 011 REPRESENTAÇÃO E MODELAGEM 133 Aresta Vértices Vértice Inicial Vértice Final ncw nccw A1 EF E F A2 A5 A2 FB F B A3 A6 A3 BA B A A4 A7 A4 AE A E A1 A8 A5 EH E H A9 A4 A6 FG F G A10 A1 A7 BC B C A11 A2 A8 AD A D A12 A3 A9 HG H G A6 A12 A10 GC G C A7 A9 A11 CD C D A8 A10 A12 DH D H A5 A11 Face Primeira Aresta Sinal F1 A1 F2 A9 F3 A6 F4 A7 F5 A12 F6 A9 4436 Utilização de Operações Booleanas com Brep As Brep não têm representação única Muitos sistemas são capazes de modelar ape nas objetos Brep que sejam variedades de dimensão 2 Esses no entanto não são fechados em relação às operações booleanas isso quer dizer que nem sempre Ope rações Booleanas realizadas como variedades de dimensão 2 resultam em objetos que sejam variedades de dimensão 2 Weiler descreveu em 1988 um modelador que levanta essa restrição e pode ser usado para modelar até objetos nonmanifold Um objeto 2manifold veja seção 442 ou que pode ser considerado uma varie dade de dimensão 2 também pode ser descrito como aquele que tem planos tangen tes em todos os seus pontos de superfície ou pelo menos só não tem plano tangente em um número finito de pontos Um objeto 1manifold ou que pode ser considera do uma variedade de dimensão 1 é um objeto unidimensional que tem uma reta tangente em todos os seus pontos ou pelo menos só não tem tangente em um nú mero finito de pontos Um objeto nonmanifold é o que não tem qualquer tangente 134 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Em termos de vizinhança um objeto é um manifold de dimensão 2 ou uma varie dade de dimensão 2 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um disco plano Um objeto unidimensional é um manifold de dimensão 1 ou uma variedade de dimensão 1 se cada um dos pontos de seu contorno tiver uma vizinhança que seja topologicamente equivalente a um intervalo na reta 444 Representação por Enumeração da Ocupação Espacial Esta representação decompõe o sólido em pedaços Figura 49 Como se estivés semos fazendo uma tessellation do espaço Um aspecto interessante é se quisermos fazer um tile do espaço por sólidos regulares os poliedros vistos anteriormente dos cinco tipos de sólidos regulares existentes Figura 45 apenas um permite o preenchimento total do espaço por repetições infinitas dele mesmo o cubo Assim na representação por Enumeração da Ocupação Espacial o espaço é subdivido em cubos que são chamados de voxels formando uma grade tridimensional Isso pode ser considerado uma generalização da descrição de uma imagem 2D através de uma matriz de zeros e uns Através das regiões que o objeto ocupa nesse espaço pode mos obter diversas informações de suas propriedades Essa representação tem algumas características interessantes Para determinar se um dado ponto pertence ou não ao sólido basta verificar se o ponto pertence a algum dos voxels É fácil determinar se dois objetos se interferem É fácil a realização de operações booleanas como união diferença e intersec ção entre sólidos REPRESENTAÇÃO E MODELAGEM 135 FIGURA 49 Exemplificando a representação por ocupação espacial o sólido a ser des crito é representado por elementos de volume chamados voxels É fácil a obtenção da propriedade de massa e volume do objeto bastando sa ber o volume de uma das partes e multiplicar pelo número total de divisões ocupadas A desvantagem dessa representação é que na representação de objetos comple xos e muito detalhados é necessária uma grande quantidade de memória disponí vel A modelagem por voxel foi usada em alguns jogos mas foi abandonada devido ao seu alto custo para armazenagem e representação realística render 445 Representação por Decomposição do Espaço em Octrees Essa representação pode ser considerada um caso particular de Subdivisão Espa cial A técnica de representação por octree ou árvore com oito filhos envolve o ob jeto por um cubo que em seguida é dividido em oito cubos menores de igual tama nho octantes Cada um destes é então classificado em Cheio caso o objeto ocupe todo o cubo em classificação Vazio caso o objeto não ocupe nenhuma parte do cubo ou CheioVazio caso o objeto ocupe parte do cubo Quando um octante for classificado em CheioVazio ele é novamente dividido em oito partes iguais e o processo de classificação é refeito para as novas partes Este algorit mo repetese até que todos os objetos pertençam às duas primeiras classes Figura 410 Neste caso os voxels passam a ser cubos paralelepípedos de dimensões variáveis 136 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Representação em octree Numeração das células da octree Imagem que a octree representa Parcial Vazio Cheio 2 3 6 7 5 1 0 FIGURA 410 Representação por Octree Essa representação facilita as operações de união e interseção No caso da união de dois objetos representados por octree se em determinado nível um deles estiver cheio o resultado da operação será um objeto cheio nesse nível não importando qual a forma em que o mesmo nível do outro esteja No caso da interseção de dois objetos representados por octree se em determinado nível um deles estiver vazio o resultado da operação será um objeto vazio nesse nível não importando qual a for ma em que o mesmo nível do outro esteja Operação de rotação de 90 graus em tor no de qualquer um dos três eixos é também facilmente implementada diretamente na estrutura da octree 446 Representação por Decomposição do Espaço em Quadtrees Para o armazenamento de objetos 2D ou 3D com espessura constante usase asQua dtrees Essas estruturas de armazenamento dividem o plano onde está o objeto em quatro partesiguaiseclassificamcadapartedamesmaformasemelhanteasoctreesFi gura 411 Essa representação tem as mesmas vantagens e desvantagens da Enumeração Espacial e das octrees além de permitirem uma representação mais detalhada que as octrees com um gasto menor de memória 447 Quadtrees e Octrees Lineares Emborapareçaàprimeiravistanecessárioousodeponteirosnasestruturasdeárvoreoc tree e quadtree é também possível o uso de uma notação sem ponteiros Uma notação de octree e quadtree sem ponteiros e na forma de um endereço até cada nó do objeto é chamada linear Na notação linear cada nó completamente cheio é representado como uma seqüência de dígitos que representam seus endere ços através da árvore Existem tantos dígitos quanto níveis de subdivisão da árvore Nós cheios que não estão no nível mais baixo podem ser representados por um dígi to adicional indicando o fim do endereço como X por exemplo Cada nó comple tamente cheio é representado como uma seqüência que identifica sua posição de 0 a 3 no caso das quadtrees ou de 0 a 7 para as octrees Cada endereço terá tantos dígi tos quantos forem os níveis usados na representação Nós que não necessitam de ní veis adicionais recebem o caractere especial A representação linear da Figura 411 tem no máximo 4 níveis de divisão de modo que os endereços terão no máximo quatro dígitos Se for considerada a nu meração dos quadrantes como 0 1 2 3 REPRESENTAÇÃO E MODELAGEM 137 O endereço 1 é vazio em todos os níveis de divisão de modo que não haverá nenhum endereço iniciado por 1 O oposto ocorre com o endereço 2 que já está completamente cheio na primeira divisão da figura em quatro quadrantes isso é indicado por 2XXX Já os endereços 0 e 3 têm maior nível de divisão A primeira posição totalmente cheia do endereço 0 é 0002 A figura inteira pode ser repre sentada como 0002 002X 0032 X 02X 0302 032X 0332 2X 3002 302X 3032 32X 3302 332X 3332 A representação linear da árvore octree da Figura 410 seria 0X X 20X X 4X X X X Nessa notação todas as operações realizadas com a forma usual podem também ser implementadas Outra notação linear é a DepthFirst ou DF que é obtida através de uma verifica ção prévia na árvore Noborio et al 1988 Nesta o símbolo representa um nó parcialmente cheio e um incremento de um nível na árvore e o símbolo repre senta o decremento de um nível na árvore Os símbolos 0 e 1 representam nós cheios e vazios ou viceversa Essa notação é útil para um armazenamento con densado da octree ou quadtree Para a Figura 411 essa notação seria 0010010010010010010010010010010010010010010010 138 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 411 Representação por Quadtrees do sólido da Figura 49 448 Quadtrees e Octrees Híbridas Diversos pesquisadores desenvolveram formas de combinar as octrees e as Breps de modo a manter a geometria e a consistência das representações Uma dessas for mas híbridas são as Polygonal Map octrees ou PM octrees onde os nós folhas finais podem ser de cinco tipos além dos dois normais cheio vazio são possíveis três outras classes de parcialmente cheio vértices arestas e faces 449 Representação por Partição Binária do Espaço Binary SpacePartitioning BSP As estruturas de árvores BSP que representam uma partição binária do espaço fo ram inicialmente propostas para solucionar os problemas de superfícies ocultas em aplicações onde o observador móvel deslocase por uma cena estática Um exemplo clássico dessa situação ocorre nos simuladores de vôo e games Watt e Policarpo 2003 As árvores BSP dividem o espaço em pares de subespaços cada um separado do outro por planos de orientação e posição arbitrária Figura 412 Cada nó não ter minal na árvore BSP representa um único plano que divide o espaço ocupado em dois Um nó terminal representa uma região que não será mais subdividida e con tém ponteiros para representações da estrutura de dados dos objetos cruzando aquela região Cada nó interno da árvore BSP é associado a um plano e tem dois fi lhos um para cada lado do plano Assumindo que as normais da Figura 412 apon tam para fora do objeto o filho da esquerda estará dentro do plano enquanto o da direita estará fora do plano Como as octrees e as quadtrees essa representação também pode ter uma forma linear de descrição dos objetos representados REPRESENTAÇÃO E MODELAGEM 139 C L D A H E fora G fora B F fora dentro fora dentro fora dentro fora I J dentro fora dentro A G F B C D E H I J L FIGURA 412 Uma figura 2D e sua representação em árvore binária 4410 Representação Implícita Em muitas situações as expressões matemáticas implícitas dos sólidos modelados podem ser armazenadas e usadas para a modelagem Podendo mesmo depois serem combinadas com outras formas de representação como por exemplo para gerar novos objetos por combinações por união de objetos CSG ou serem usadas em representação pelo contorno Brep Essa forma tira proveito do fato de que muitas formas Euclidianas têm equações perfeitamente conhecidas e simples veja capítulo 3 de superfícies e curvas Assim essa forma tira proveito do fato de que se sólidos forem esferas elipsoides cilindros elípticos e diversos outros usar as equações implícitas dessas formas é uma forma simples de armazenálos operálos e mesmo renderizálos eficientemente Assim para representar um cilindro elíptico podese usar sua equação x²a² y²b² 1 onde a e b são os raios nas direções x e y da base elíptica E para representar um elipsoide temse x x₀²a² y y₀²b² z z₀²c² 1 onde x₀ y₀ z₀ é a posição do centro a b e c são os raios nas direções x y e z do elipsoide Se abcr o sólido tornase uma esfera de raio r A modelagem manual é sem dúvida o método mais fácil barato e antigo que utili za basicamente as medidas de um modelo real e a intuição do modelador A forma manual foi inicialmente usada pela indústria automobilística e aeronáutica para a concepção e teste de novos modelos A seguir descrevemos uma série de técnicas de modelagem manual 451 Instanciamento de Primitivas Em instanciamento de primitivas o sistema de modelagem define um conjunto de formas sólidas primitivas que são relevantes à área de aplicação Esta técnica de mo delagem cria novos objetos através do posicionamento de objetos por transforma ções geométricas mudanças de escala rotação translação etc ou pelo uso de pri mitivas parametrizáveis No primeiro caso Figura 413 uma cadeira pode ser mo delada pela justaposição de paralelepípedos No segundo caso criase um conjunto de peças geralmente complexas e de uso comum para um determinado fim por exemplo engrenagens ou parafusos e a partir dessas primitivas podemos criar uma infinidade de variações desses objetos com apenas alguns comandos para alte ração de seus parâmetros Figura 414 como mudança de alturas e diâmetros REPRESENTAÇÃO E MODELAGEM 141 FIGURA 413 Modelagem pela justaposição de paralelepípedos d h d FIGURA 414 Alteração dos parâmetros de primitivas instanciadas 452 Combinação de Objetos A habilidade de combinar objetos para criar outros é sem dúvida o método mais intuitivo e popular Essa combinação é na sua forma mais simples feita por justaposição ou colagem de formas como mostrado na Figura 413 As operações booleanas de união soma interseção e diferença que são denotados por e são outra forma simples de combinar objetos Entretanto aplicar operações booleanas ordinárias entre duas representações de sólidos pode não gerar uma outra representação válida como sólido como podemos ver nos casos B C e D da Figura 415 onde a interseção ordinária entre dois cubos pode gerar A um sólido forma válida B um plano não válida C uma linha não válida D um ponto não válida ou E um conjunto vazio FIGURA 415 Resultados das operações booleanas em dois cubos 453 Operações Booleanas e Booleanas Regularizadas Aplicar um conjunto de operações booleanas comuns a dois objetos sólidos como já comentado nem sempre gera um objeto sólido Por exemplo a interseção entre dois cubos se eles se penetram mutuamente resulta um sólido se eles compartilham apenas uma face o resultado é um plano se compartilham apenas um dos vértices o resultado é uma reta se compartilham apenas um dos vértices o resultado é um ponto Na Figura 415B os vértices da interseção dos cubos ocupam a mesma posição no espaço resultando em um plano Para solucionar o problema foi criado o conceito de Operações Booleanas Regularizadas cuja notação é e As operações desse tipo são realizadas em um tipo de objeto chamado objeto regularizado utilizando operadores booleanos como união diferença e interseção para formar outros objetos também regularizados FIGURA 416 Regularizando um objeto A Objeto qualquer com pontos interiores em cinza pontos de contorno que fazem parte do objeto em preto e outros pontos em cinza e preto B Interior do objeto retirase todos os pontos de contorno C Regularização do objeto é o fechamento de seu interior Um objeto qualquer regularizado ou não pode ser definido como um conjunto de pontos divididos em pontos do interior e pontos do contorno Pontos do contorno são aqueles cuja distância entre o objeto e o seu complemento é zero enquanto pontos do interior são todos os outros pontos Um objeto regularizado é obtido pelo o fechamento do conjunto de seus pontos interiores Isto é são regularizados os objetos que sempre têm todos os pontos de seu contorno A Figura 416 mostra isso Novamente uma definição formal simples é encontrada em Mäntylä 1988 Definição A regularização de um conjunto de pontos A é denotada por rA e definida como o fechamento do interior de A Dizse que A é um conjunto regular se rAA As operações regularizadas são definidas pelos operadores booleanos usuais como mostrado na tabela a seguir onde A e B são dois objetos quaisquer o subscrito i indica os pontos do interior do conjunto c indica os pontos do contorno igual se refere ao caso dos interiores estarem no mesmo lado dos contornos em análise e difer o caso de estarem em lados opostos Set A B A B A B A B Ac Bi Bc Ai Ac B Bc A Ac Bc igual Ac Bc difer 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry O método de modelagem por CSG usa um esquema de representação de sólidos através de operações booleanas ou combinações de objetos sólidos a partir de operações de conjuntos união interseção e diferença Nesse caso o objeto é armazenado como uma árvore de operadores nós e primitivas simples Alguns nós representam operadores booleanos e outros representam translação rotação escala etc No exemplo da Figura 417 é possível observar a realização de duas operações para a construção de objetos ou superfícies Essa técnica é muito utilizada tanto por designers como por engenheiros para modelagem de objetos ou peças mecânicas FIGURA 417 Construção de objetos por operações booleanas 455 Connect Connect é uma forma de criar novos sólidos a partir de sólidos já existentes combinados por uma conexão A operação de combinação Connect deixa você conectar dois ou mais objetos preenchendo espaços em suas superfícies Para fazer isso você apaga faces em cada objeto para criar um ou mais vazios em suas superfícies posicionandoos de forma que as faces dos vazios fiquem de frente uma para outra A criação por connect não funciona bem com objetos criados por NURBs pois eles se convertem em muitas superfícies separadas em vez de uma superfície única No exemplo da Figura 418 o encosto da cadeira é criado a partir da Figura 413 usando connect 456 Modelagem por Varredura Sweep ou Deslizamento A representação por varredura cria objetos baseados na noção de que uma curva C1 quando deslocada no espaço ao longo de uma trajetória dada por uma outra curva C2 descreve uma superfície que pode ser usada para definir um sólido A cur va C1recebeonomedeContornoouGeratrizeaC2temonomede Caminho ou Dire triz Na forma mais geral é possível ainda variar a orientação relativa entre as curvas durante o processo Watt e Policorpo 1988 4561 Varredura Translacional Extrusão Um objeto O definido por varredura translacional é obtido pela translação por uma distância D de uma superfície C ao longo de um vetor V A Figura 419 exemplifica a criação de um objeto com essa técnica veja também a seção 322 A varredura translacional de um retângulo gera um paralelepípedo de uma circunferência gera um cilindro Podemos ainda aplicar a varredura translacional em faces de um objeto REPRESENTAÇÃO E MODELAGEM 145 FIGURA 418 Encosto da cadeira recriado com o objeto de combinação Connect GERATRIZ EXTRUSÃO FIGURA 419 Modelagem por varredura translacional 3D Apesar de ser considerada uma técnica de modelagem a varredura translacional é considerada por diversos autores e sistemas como um modificador seção 46 4562 Varredura Rotacional Neste tipo de modelagem por varredura a superfície do objeto é descrita por uma supercificie ou curva que gira em torno de um eixo seção 321 Na Figura 420 te mos à esquerda uma curva C e à direita dois objetos gerados pela rotação de C em torno de dois eixos verticais diferentes Diversas são as formas possíveis de criação usando esse método Alguns sistemas de modelagem atribuem o nome Lathe torno mecânico a esse método 457 Modelagem por Seções Transversais Esta técnica permite gerar sólidos por reconstrução através de cortes A idéia básica é interpolar os dados seção 323 das seções transversais do objeto que se deseja modelar As fatias podem ser obtidas pelas leituras de cortes do objeto ou por scan ners em processos como tomografia ultrasom e resonância magnética Duncan e Ayache 2000 Essa técnica de modelagem foi utilizada no maior projeto de mode lagem do corpo humano o projeto Visible Human Para realizar esse projeto o cor po de um homem real foi fatiado e digitalizado A partir das imagens o modelo tri dimensional foi reconstituído e atlas 3D de anatomia foram gerados httpwww splharvardedu Treinish e Silver 1996 458 Modelagem pela Geração de Superfícies O princípio deste processo é mostrado na Figura 421 Iniciamos colocando alguns pontos no espaço A O próximo passo será colocar uma curva ligando os pontos nas direções x e y de um espaço bidimensional B As curvas são então particiona 146 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 420 Modelagem por Varredura Rotacional das em seções de quadriláteros curvilíneos patches C e preenchidas Podemos então alterar a forma do objeto com simples deslocamentos dos pontos A Esse método que não deixa de ser uma forma de Brep é muito utilizado quando desejamos modelar objetos com formas arredondadas e complexas como partes do corpo humano ou animal veículos ou peças Obviamente a relação entre o número de pontos necessários para definir e controlar a superfície gerada depende da for mulação de geração de superfície usada seção 325 46 MODIFICADORES Modificadores como o próprio nome diz modificam a estrutura geométrica do ob jeto Todos os sistemas de modelagem utilizam esses recursos para facilitar e agili zar a modelagem e a animação Sobre eles é importante saber que É possível aplicar um número ilimitado de modificadores para um objeto ou parte de um objeto É possível alterar os parâmetros de modificação para realizar uma animação Os modificadores podem ser retirados e todas as suas mudanças para o objeto desaparecem É possível reposicionar e copiar modificadores para outros objetos usando controles específicos A seqüência em que você faz modificações é importante Cada modificação afeta aquela que vem depois Duas modificações em um mesmo objeto aplica das em ordem inversa geram resultados diferentes Todos os sistemas de modelagem possuem modificadores para auxiliar na tarefa de modelagem e animação Seria quase impossível ou muito custoso tempo é di nheiro realizar determinadas alterações na geometria do objeto sem o uso deles Os modificadores que iremos mencionar podem ser considerados como genéricos para todos os sistemas 3D REPRESENTAÇÃO E MODELAGEM 147 A B C FIGURA 421 Operador de Malha Lattice 461 Bend O modificador Bend deixa você curvar ou fletir a seleção corrente até 360 graus so bre um eixo único e em várias direções Figura 422 produzindo uma curva uni forme na geometria do objeto 462 Lattice O modificador Lattice converte os segmentos ou extremidades de um objeto em uma estruturas de barras É usado para criar geometria estrutural baseada na topo logia ou como um método alternativo para alcançar um efeito de wireframe do con torno Figura 423 148 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 422 O modificador de curvatura Bend FIGURA 423 O modificador Lattice 463 MeshSmooth Um dos modificadores mais interessantes o meshsmooth é baseado nas regras de subdivisão que suavizam a geometria do objeto adicionando faces em cantos e ao longo de extremidades Em alguns sistemas esse modificador é também chamado de NURMs onde recebe recursos adicionais para facilitar a modelagem orgânica ou de objetos com extremidades suaves seção 3213 como a bola da Figura 424 a bola à direita recebeu o modificador Quanto maior for o número de faces maior será o efeito de suavização Esse modificador pode não ser recomendável para mo delagem de objetos que serão usados em sistemas realtime rendering como os jo gos ou aplicações em realidade virtual pois aumentam o número de polígonos uma alternativa neste caso pode ser o uso de Bump Map seção 74 464 Optimize O modificador Optimize deixa você reduzir progressivamente em regiões de pou ca curvatura por exemplo o número de faces e vértices em um objeto buscando re duzir o tempo de render uma vez que o número de polígonos será menor Figura 425 Esse modificador é quase obrigatório para modelagem de objetos que serão usados em sistemas realtime rendering 465 Bevel Este modificador realiza a extrusão de objetos 2D para 3D e aplica um arredonda mento nos cantos das extremidades Pode ser considerado como uma extensão da REPRESENTAÇÃO E MODELAGEM 149 FIGURA 424 Suavização da geometria com o modificador MeshSmooth técnica de extrusão O uso comum desse modificador é para criar texto 3D e logos mas você pode aplicar este modificador em qualquer forma Figura 426 466 Melt O modificador Melt deixa você aplicar um efeito de derretimento realista a todos os tipos de objetos inclusive objetos NURBS Os efeitos de derretimento podem ser feitos de várias formas que por serem transparentes aos usuários são referênciadas como seguir a forma de gelo plástico vidro ou geléia Figura 427 467 Skew O modificador Skew em objetos 3D tem o mesmo efeito do operador skew 2D se ção 255 Deixa você produzir um deslocamento uniforme em qualquer parte da geometria do objeto Você pode controlar a quantidade e direção da distorção em quaisquer dos três eixos Figura 428 150 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Antes Depois Vértices 530 369 Faces 1024 670 FIGURA 425 Resultado da aplicação do modificador Optimize Extrude Bevel FIGURA 426 Comparação entre os modificadores Extrude e Bevel 468 Squeeze e Stretch O modificador Squeeze deixa você aplicar um efeito de apertar ou espremer de modo que os vértices mais próximos do ponto de pivô do objeto são reposicionados para dentro O Stretch produz um estiramento no objeto simula o tradicional efeito de espremeeestica em animação Figura 429 469 Taper O modificador Taper produz um contorno mais ou menos afilado ajustando as es calas dos pontos terminais da geometria do objeto Figura 430 REPRESENTAÇÃO E MODELAGEM 151 FIGURA 428 O modificador de cisalhamento Skew Original Squeeze Strech FIGURA 429 O efeito de espremeeestica com os modificadores Squeeze e Stretch FIGURA 427 Operador Melt aplicado em um objeto 4610 Twist O modificador Twist produz uma torção ou retorcido na geometria do objeto Você pode controlar o ângulo da torção em quaisquer das três direções Você também pode limitar a torção para uma seção da geometria Figura 431 4611 Displace Essemodificadoratuacomoumcampodeforçaparaempurrarealterarageometriado objetoPodemosutilizarumbitmapparamoldarumasuperfícieFigura432ouajustar osparâmetrosdomodificadorparaproduzirimagensparecidascompegadasnossolos 152 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 431 Torção na geometria do objeto com o modificador Twist FIGURA 432 O modificador Displace desloca uma superfície utilizando um bitmap FIGURA 430 Redução e aumento de espessura com o modificador Taper 4612 Space Warps Space Warps são objetos não renderizáveis que afetam a aparência de outros obje tos Eles criam campos de força que deformam outros objetos criando o efeito de empenamento ondulações explosões vento colisões e assim por diante Quando você cria um objeto Space Warps nos sistemas de modelagem visores mostram uma representação em wireframe para que o usuário possa ter controle Os sistemas de modelagem disponibilizam uma grande variedade desses objetos que são muito úteis na animação Os Space Warps podem trabalhar em conjunto com os sistemas de partículas e servir para propósitos especiais em simulações dinâmicas 47 INTERFACES PARA MODELAGEM GEOMÉTRICA As interfaces dos sistemas de modelagem são independentes da representação in terna utilizada Você pode alternar entre as diferentes formas de representação bus cando o resultado pretendido A interface pode fornecer diversas maneiras de defi nir o objeto dentro da mesma representação Por exemplo você pode definir um cubo arrastando o mouse para definir a largura o comprimento e a altura ou por te clado informando a largura e o comprimento e em seguida aplicar uma extrusão para definir a altura A primeira maneira pode ser mais rápida enquanto a segunda pode ser mais precisa ou fácil de posicionar na cena Um dos problemas está na limitação tecnológica que nos fará usuários por ainda muito tempo de telas de computador que mesmo colocadas lado a lado para possibi litarumavisãoestéreoseráaprojeçãodeduasimagensbidimensionaisMuitossiste mas combatem alguns desses problemas fornecendo várias janelas de exibição que permitemaousuárioveroobjetosimultaneamentedeváriasposiçõeseperspectivas Um bom sistema de modelagem deve possuir ferramentas básicas de auxílio a ge ração de objetos Essas ferramentas são geralmente chamadas de Helpers e fornecem informaçõesrelevantesparaumamodelagemprecisaouauxiliamnacriaçãoeficiente de objetos Um bom sistema deve conter no mínimo as seguintes ferramentas 471 Tape Fita de Medida A fita provê na tela uma régua auxiliar no sistema métrico desejado metro polega da etc para determinar e configurar distâncias 472 Protractor Transferidor O transferidor permite medir o ângulo entre dois objetos em uma cena 473 Compass Bússola AbússolaéumobjetoqueindicaoNorteSulLesteeOestedacenaUmabússolaéparte de um sistema de luz solar Em um sistema de luz solar a orientação da bússola indica a orientação da cena relativa ao caminho do sol sendo importante para o seu realismo REPRESENTAÇÃO E MODELAGEM 153 474 ArrayArranjo O array cria um arranjo vetor ou matriz de objetos com uma duas ou três dimen sões a partir de um objeto selecionado Nesse caso o termo dimensão se refere à or denação dos objetos Por exemplo uma linha de cinco objetos é um vetor de di mensão um embora saibamos que ocupará um espaço tridimensional na cena Um vetor de objetos que tem cinco linhas por três colunas é um array bidimensional e um vetor de objetos que tem cinco linhas por três colunas por dois níveis é um ar ray tridimensional O array é uma poderosa ferramenta que auxilia na criação e po sição de objetos complexos Dentre os exemplos de seu uso podemos citar a criação de escadas pétalas de flores ou hélices Figura 433 48 MODELAGEM GEOMÉTRICA COM OPENGL 481 Desenhando Pontos Os pontos podem ter tamanhos específicos baseados no número de pixels tendo como padrão o valor 1 void glPointSizeGlfloat tamanho Sendo definido pelas suas coordenadas glBeginGLPOINTS glVertex3d00 00 00 glVertex3d1000 00 00 glVertex3d1000 1000 00 glVertex3d00 1000 00 glVertex3d500 500 1000 glEnd 154 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 1D 2D 3D FIGURA 433 Arrays de várias dimensões 482 Desenhando uma Linha As linhas podem ser apresentadas como setas tracejadas pontos e outras varia ções destas GLLINES 483 Desenhando um Polígono Os polígonos podem ser representados por pontos segmentos de retas sólidos texturas entre outras GLPOLYGON 484 Primitivas Além das anteriores as seguintes primitivas estão disponíveis em OpenGL GLLINES exibe uma linha a cada dois comandos glVertex GLLINESTRIP exibe uma seqüência de linhas conectando os pontos defi nidos por glVertex GLLINELOOP exibe uma seqüência de linhas conectando os pontos defi nidos por glVertex e ao final liga o primeiro ao último ponto GLPOLYGON exibe um polígono convexo preenchido definido por uma seqüência de chamadas a glVertex GLTRIANGLES exibe um triângulo preenchido a cada três pontos defini dos por glVertex GLTRIANGLESTRIP exibe uma seqüência de triângulos baseados no trio de vértices v0 v1 v2 depois v2 v1 v3 então v2 v3 v4 e assim por diante GLTRIANGLEFAN exibe uma seqüência de triângulos conectados basea dos no trio de vértices v0 v1 v2 depois v0 v2 v3 então v0 v3 v4 e assim por diante GLQUADS exibe um quadrado preenchido conectando cada quatro pontos definidos por glVertex GLQUADSTRIP exibe uma seqüência de quadriláteros conectados a cada quatro vértices primeiro v0 v1 v3 v2 depois v2 v3 v5 v4 então v4 v5 v7 v6 e assim por diante 485 Objetos Sólidos A biblioteca OpenGL possui uma série de sólidos que podem ser criados diretamen te através dos seguintes comandos REPRESENTAÇÃO E MODELAGEM 155 glutSolidTeapotGLdouble size Desenha uma Chaleira da Figura 429 glutSolidCubeGLdouble size Desenha um Cubo glutSolidSphereGLdouble radius GLint slices GLint stacks Desenha uma Esfera glutSolidConeGLdouble radius GLdouble height GLint slices GLint stacks glutSolidTorusGLdouble innerRadius GLdouble outerRadius GLint nsides GLint rings glutSolidIcosahedronvoid glutSolidOctahedronvoid glutSolidTetrahedronvoid glutSolidDodecahedronGLdouble radius Os parâmetros slices e stacks que aparecem no protótipo de algumas funções representam os números de subdivisões em torno do eixo z como se fossem linhas longitudinaiseonúmerodesubdivisõesaolongodoeixozcomosefossemlinhasde latitude Os parâmetros rings e nsides correspondem respectivamente ao número de seções que serão usadas para formar o torus e ao número de subdivisões para cada seção O parâmetro size indica um diâmetro aproximado 486 Wireframe Os objetos das primitivas podem ser desenhados também em wireframe substituin do a palavra Solid por Wire no nome dos comandos por exemplo glutWireTeapotGLdouble size Desenha uma Chaleira em wireframe 49 MODELAGEM PELO NÚMERO DE OURO A modelagem pelo número de ouro nos remete à Grécia antiga mais precisamente ao século V aC Nas ruas dessa avançada civilização eram discutidos conceitos de filosofia matemática e ciência Os gregos adoravam o teatro as esculturas a arqui tetura e qualquer forma de manifestação da arte Um exemplo dessa adoração foi a construção no centro de Athenas do Partenon mais conhecido como Templo das Virgens Figura 434 Na época o líder do partido democrático Péricles contratou o maior escultor da Grécia para desenvolver e acompanhar a construção em louvor à deusa da cidade Atena Partenos O escultor utilizou em sua fachada um modelo de medida onde o lado maior dividido pelo lado menor é igual à divisão entre o lado menor e a diferença entre o lado maior e o menor Figura 434 Os gregos conside ravam essa proporção a forma ideal de beleza e harmonia e deram a ela o nome de proporção áurea ou proporção de ouro No século XV o movimento renascentista buscou retomar os valores estéticos da Grécia antiga Na época Leonardo Da Vinci 15421519 apresentou o famoso O Homem Vitruviano Figura 435 onde podemos ver a proporção de ouro relacio nada com a estrutura ideal do corpo humano Segundo ele o umbigo deve dividir o corpo segundo a seção áurea ou seja o resultado da divisão da altura total pela altu 156 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA ra do umbigo deve ser o número de ouro O estudo de Da Vinci recebeu este nome por ser baseado no tratado De architecture do arquiteto romando do século I aC Marcus Vitruvius Pollio o único tratado de arquitetura que restou da antiguidade que considerava em 10 livros de métodos de construção e decoração a planificação de cidades e suprimento de água nas proporções do que chamava de segmento áu reo que seria o retângulo perfeito Ainda hoje artistas de todo o mundo utilizam essa proporção em suas obras na maioria das vezes intuitivamente porém podemos perceber o número de ouro em uma infinidade de obras de arte e monumentos arquitetônicos No Brasil pintores REPRESENTAÇÃO E MODELAGEM 157 FIGURA 435 As proporções do corpo humano segundo o cânon Vitruviano desenho de Da Vinci Academina Veneza A A B A B AB B B FIGURA 434 Partenon na acrópole de Athenas e a proporção áurea como Portinari fizeram grande uso dessa proporção intencionalmente Na obra O Café Portinari utilizou a proporção para atrair a atenção do observador para um ponto desejado da cena A proporção áurea ou número de ouro é ensinada nas escolas de arte porém é difícil explicar o que a faz tão atraente e harmoniosa Na verdade a proporção trouxe uma forma do artista controlar e garantir a harmonia e perfeição de sua criação De forma surpreendente esse número aparece no arranjo de diversas formas de plantas Maor 1988 Curiosos em como obter a proporção áurea Ela é dada pela relação mostrada na Figura 434 Se você substituir A por 1 e B por x terá a equação 1x x1 x que também pode ser escrita como x² x 1 0 e cuja raiz positiva é x 5 12 Assim a razão áurea ou número de ouro é 1x Este número como 2 ou π é um número irracional ou seja um número cuja expansão decimal é infinita e nunca se repete Como 2 Ø é um irracional algébrico originário de um polinômio com coeficientes inteiros Outros irracionais como π e são chamados de transcedentais O número de ouro foi batizado com a letra grega Ø e vale aproximadamente 161803 491 A Sequência de Fibonacci Há muito tempo que as manifestações geométricas na natureza vêm intrigando muitas pessoas Na regularidade do crescimento das árvores nas proporções do corpo humano e dos animais na frequência do nascimento de animais na forma de conchas na regularidade do girassol na constituição hexagonal dos favos de abelhas Leonardo Fibonacci ou Leonardo de Pisa 11801250 entre muitos outros feitos escreveu o Liber Abaci Livro do Ábaco onde apresentava a forma indoarábica de números que permitia maior rapidez nas operações feitas através da numeração decimal quando comparadas às operações com números romanos utilizados na época pela sociedade europeia Fibonacci filho de negociantes aprendeu matemática no norte da África e assimilou em suas viagens os conhecimentos árabes escreveu Impossível algo subsistir se não for devidamente proporcional à sua necessidade Fibonacci enunciou o seguinte problema Se eu tiver um casal de coelhos gera um novo casal ao fim de dois meses e depois um novo casal todos os meses os quais geram novos casais nas mesmas condições quantos casais de coelhos terei ao fim de n meses A resposta é dada pela série 1 2 3 5 8 13 21 34 55 89 144 233 Figura 436 designada geralmente como Números de Fibonacci ou Sequência de Fibonacci Essa série tem a particularidade de à medida que se avança no número de casais a razão entre um valor e seu antecessor se aproxima do número de ouro Ex 2113 16153 na natureza As descobertas permitem hoje que biólogos utilizem os padrões para organizar e reconhecer espécies Dentre as descobertas relacionadas com o número de ouro estão exemplos como a da concha do Nautilus Figura 437 À medida que o molusco vai crescendo ele vai construindo uma nova câmara para morar e cada nova câmara é maior que a anterior na proporção do número de ouro Podemos citar diversos outros exemplos como a disposição das sementes de um girassol das escamas de peixe da distribuição de galhos em árvores ou das cores na natureza O número de ouro pode aparecer ainda nas poesias em pirâmides no Egi to no artesanato indígena ou onde mais você desejar Tratase de uma poderosa chave para modelagem de objetos naturais e como se disse anteriormente uma for ma segura de o artista controlar e garantir a harmonia e a perfeição de sua criação 410 MODELAGEM FRACTAL No decurso da história humana a nossa crescente percepção do mundo natural foi atribuída a um universo com um número cada vez maior de dimensões seção 121 Há dois mil anos os Gregos mostraram que o universo tinha três dimensões com REPRESENTAÇÃO E MODELAGEM 159 FIGURA 437 À medida que o Nautilus cresce uma nova câmara é construída em rela ção a anterior na proporção do número de ouro 3º Mês 2º Mês 4º Mês 5º Mês FIGURA 436 A solução do problema de Fibonacci base nos sentidos e nos princípios básicos da geometria Euclidiana formalizada por Euclides a partir de axiomas onde todos os objetos são dotados de comprimento lar gura e altura Na geometria Euclidiana uma linha como um fio de lã tem principalmente comprimento portanto é um objeto unidimensional Um plano como a folha de papel que possui dois comprimentos é um objeto bidimensional e um sólido como um cubo ou livro tem comprimento largura e altura sendo definido como tridimensional Figura 438 Desse modo os matemáticos do tempo de Euclides concordavam com a noção do senso comum de que o universo possui três dimensões A geometria Cartesiana de René Descartes auxiliou a Euclidiana nessa definição passando a definir a dimensio nalidadedeumobjetopelonúmerodecoordenadasnecessáriasparaasuadescrição No ano de 1854 um jovem matemático alemão Bernhard Riemann 18261866 aluno de Gauss anunciou uma nova extensão da geometria de Euclides e da Geo metria Analítica de Descartes Ele defendia que as retas paralelas se encontram em um ponto o pólo Ao criar essa nova definição de dimensão Riemann conseguiu descrever melhor as coisas relacionadas à latitude e à longitude que ocorrem nas coordenadas geográficas de nosso planeta Struik 1967 Benoit Mandelbrot 1924 em 1975 consolidou e interpretou os trabalhos dispersos de muitos matemáticos que o antecederam no estudo das dimensões nãointeiras Mandelbrot mostra que é possível definir uma dimensão fracionária tal como dimensão 13 ou dimensão 34 por exemplo Mandelbrot também afirmou que as dimensões fracionárias típicas da paisagem terrestre diferem das de Marte Esse estudo foi feito com base em fotos do planeta vermelho obtidas através da NASA Daqui concluise que a Terra ronda a dimensão 160 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 2D 1D 3D FIGURA 438 Objetos de 1 2 ou 3 dimensões 21 enquanto Marte atinge cerca de 24 o que significa que a paisagem de Marte é muito mais dentada do que a da Terra Voss 1988 As indústrias cinematográficas utilizaram essas informações e o auxílio dos com putadores para conseguirem criar paisagens com qualquer dimensão fracionária particular o que facilitou a criação de paisagens com aspectos estranhos tão utili zadas em filmes de ficção científica como em Star Treck Mondelbrot 1988 Os trabalhos de Mandelbrot tiveram como ponto de partida a definição de di mensão apresentada em 1919 por Felix Hausdorff cerca de sessenta anos após ter sido apresentada a definição de Riemann Falconar 1990 A geometria dos fractais palavra derivada do Latim fractus ou do adjetivo fran gere que significa quebrar apresenta estruturas geométricas de grande complexi dade e beleza ligadas às formas da natureza ao desenvolvimento da vida à própria compreensão do universo ou às simples expressões matemáticas São imagens de obje tosabstratosquepossuemocaráterdeonipresençaporteremascaracterísticasdotodo infinitamente multiplicadas dentro de cada parte Peitgen e Richter 1986 Os fractais podem apresentar uma infinidade de formas diferentes contudo existem duas características muito freqüentes nesta geometria autosemelhança e complexidade em qualquer escala de observação Mondelbrot 1977 Essa geometria nada convencional tem raízes remontando ao século XIX e al gumas indicações nesse sentido vêm de muito antes na Índia China e Grécia quando Pitágoras fracionou aritmeticamente uma corda para produzir as notas e suas variações musicais Capítulo 1 Porém somente há poucos anos essa geometria vem se consolidando com o desenvolvimento dos computadores e o auxílio de novas teorias nas áreas da física biologia astronomia matemática e outras ciências Os fractais constituíram certamente uma surpresa e até mesmo um abalo para muitos De repente viramse confrontados com técnicas e imagens que se por um lado eram altamente sugestivas por outro não conseguiam ser justificadas nem en globadas em situações anteriormente conhecidas Assim ao mesmo tempo em que uns com a ajuda do computador tentavam encontrar sentido nos resultados que obtinham outros esforçavamse por produzir definições e demonstrações em ter mos matemáticos tradicionais Distante do rigor e do formalismo matemático é possível definir Fractais como nos ensinam alguns estudiosos da área Objetos que apresentam autosemelhança e complexidade infinita ou seja têm sempre cópias aproximadas de si mesmo em seu interior Figura 439 A propriedade de autosimilaridade é o ponto central da geometria fractal e está associada ao conceito de dimensão Na Figura 439 a curva de flocos de neve de Kock é construida a partir de uma reta dividida em 3 partes iguais cuja parte cen tra é substituido por 2 outros pedaços de mesmo comprimento em um procedi mento repetido infinitamente REPRESENTAÇÃO E MODELAGEM 161 A Geometria Fractal pode ser utilizada para descrever diversos fenômenos da na tureza onde não podem ser utilizadas as geometrias tradicionais Nuvens não são esferas montanhas não são cones continentes não são círculos um latido não é contínuo e nem o raio viaja em linha reta Mandelbrot 1977 Outros exemplos são gelo neve cinzas flores plantas tecidos ou frutas Pruxinkiwicz 1990 A Fi gura 440 ilustra o uso de fractais na concepção de água e nuvens O processo de gerar montanhas fractais é semelhante ao processo de geração da curva de Kock Figura 439 com um fator adicional randômico que realiza as irre gularidades da superfície Nesse caso as superfícies com uma dimensão D maior aparentam ser mais rugosas Saupe 1988 162 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 440 Água e nuvens criadas com fractais FIGURA 439 Os fractais têm sempre cópias aproximadas de si O fenômeno de autosimilaridade pode ser observado na natureza onde pedras parecem com cascalhos galhos com troncos e assim por diante 4101 O Conjunto de Mandelbrot Considerados como um dos objetos mais complexos da matemática o conjunto de Mandelbrot possui a particularidade de combinar os aspectos de autosimilaridade em qualquer escala do resultado do processo iterativo Figura 441 Esse conjunto é gerado pelo estudo das iterações xk1 x² k c onde x e c são números complexos Um número complexo é um número que tem duas partes uma real e outra imaginária ou seja tem a forma x xr xi i onde i 1 são exemplos de números complexos c 2 3i ou d 4 1 Através da variação dos números complexos c podemos gerar os diversos conjuntos de Julia Assim os conjuntos de Julia dependem do valor de c Peigen 1988 FIGURA 441 Os conjuntos de Mandelbrot Podemos encontrar a aplicação dos fratais na música no reconhecimento de padrões na medicina na engenharia na meteorologia na geociência e muito mais A aplicação dos fratais é cada vez maior principalmente pela sua associação com os sistemas dinâmicos e caóticos constituindo uma ferramenta científica de enorme alcance que ainda está em seus primeiros passos No entanto muito contribuiu para a sua divulgação suas imagens que no mínimo podem ser consideradas intrigantes e bizarras Peitgen Richter 1986 411 RECONSTRUÇÃO TRIDIMENSIONAL A representação do espaço tridimensional 3D no plano bidimensional 2D introduziu realismo nas pinturas e desenhos e foi uma das mais importantes desco bertas no mundo das artes a perspectiva seção 274 Quando a fotografia foi in ventada a possibilidade de registro em 2D de cenas 3D foi popularizada passando a ser feita por máquinas e não mais por dons artísticos ou estudos de técnicas de de senho A imagem de uma máquina fotográfica assim como a projeção perspectiva pos sibilita o registro de uma cena 3D em 2D com o realismo da visão humana Uma imagem fotográfica e uma projeção perspectiva contêm informações análogas O que se espera da imagem fotográfica de objetos é que ela corresponde à imagem dos objetos vista por olhos humanos Fotografias e vídeo constituem meios tradicionais e amplamente difundidos de registrar uma cena de forma instantânea No entanto no processo de projeção do mundo 3D em imagens 2D parte da informação contida na cena como a informa ção de profundidade é perdida Uma única imagem representando as mudanças de intensidade de luz e geometria local de uma cena não contém por si só informação suficiente para reconstrução da cena Assim uma questão importante é a recupera ção a partir de imagens de intensidade bidimensionais das propriedades tridimen sionais geométricas e físicas das superfícies representadas nessas imagens Pen tland 1990 A perda de informação que ocorre ao se projetar em um plano a cena tridimen sional geralmente faz com que a solução do problema inverso não seja única ambi güidade ou seja inexistente devido à oclusão de informações Como conseqüên cia precisa contar com suposições restrições sobre o mundo físico para eliminar a ambigüidade na sua reconstrução Essas suposições de acordo com o número de vistas usadas na análise da cena podem se basear em técnicas monoculares bino culares ou de múltiplas vistas Noborio et al 1988 Visão monocular é o termo usado para técnicas de visão computacional que utili zam apenas um ponto de vista Os métodos de aquisição de forma dependem da in formação disponível Uma só imagem não é suficiente para fornecer informação completa de profundidade mas distâncias a objetos ou profundidades podem ser percebidas monoscopicamente com base no tamanho relativo de objetos ou de suas texturas seção 15 Pessoas com visão normal têm visão binocular e é a partir desta visão estereoscó pica que o ser humano inconscientemente avalia profundidades ou julga distâncias Hadgs 1992 A reconstrução tridimensional através de técnicas de computação visual e computação gráfica pode recriar espaços virtusos VE a partir de imagens pla nas e ser um ponto de partida para um número enorme de aplicações reconstru ção de edificações planejamento de estratégias militares cenários para jogos tri dimensionais sistemas interativos de realidade virtual em tempo real sistemas para visão de robôs transformação de desenhos 2D ou filmes para 3D e muitas outras ainda por se criar Stytz et al 1996 Atualmente os maiores usuários das 164 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA técnicas de reconstrução as utilizam para processamento de imagens médicas microscopia geologia e indústria aeroespacial Rhods 1997 Para reconstrução do objeto é importante conhecer as coordenadas tridimensio nais 3D de seus pontos ou pelo menos dos pontos mais importantes do objeto e recuperar dados perdidos no processo de projeçãofotografia que transforma os dados 3D em 2D Diferentes técnicas empregadas nos sistemas de visão computa cional tentam obter esta terceira coordenada Os sistemas de shape from stereo usam duas ou mais imagens de um ponto de vis ta com uma pequena diferença de iluminação para calcular a profundidade Pode mos ainda utilizar duas ou mais imagens tiradas de uma câmera em movimento Giachetti e Torre 1996 A teoria geométrica da visão estéreo que utiliza a obtenção de coordenadas tridi mensionais de objetos a partir de pares de imagens depende da capacidade de se re solver o problema da correspondência ou seja determinar os elementos do par de imagens que são projeções ao mesmo elemento no mundo 3D Não existe solução ge ral para o problema da correspondência devido à existência de candidatos ambíguos para combinação ou mesmo da inexistência de correspondentes devido à oclusão Conseqüentemente todo método estéreo usa várias suposições sobre a geometria da imagem eou os objetos na cena para reduzir o número de ambigüidades Na busca de soluções para dificuldades encontradas nos métodos estéreos tam bém foram desenvolvidas técnicas de múltiplas vistas O multiplebaseline stereo foi desenvolvido por Okutomi e Kanade em 1991 e é base de diversas variações O estéreo fotométrico baseado em disparidades agrega características dos processos de estéreo fotométrico e de estereoscopia Nos sistemas shape from motion um objeto em movimento pode produzir as dis paridades de iluminação em uma seqüência de imagens capturadas por uma câmera estática Nos sistemas shape from texture propostos inicialmente por Kender em 1979 as variações no tamanho na forma e na densidade das texturas da imagem 2D forne cem pistas para a recuperação das informações 3D Os sistemas shape from focus exploram as propriedades das câmeras onde obje tos em uma determinada distância aparecem focados e outros em distâncias mai ores ficam mais embaçados quanto maior sua distância do ponto focal Nos sistemas shape from shading introduzidos em 1977 por Horn a idéia básica se concentra na variação da intensidade no plano da imagem para calcular a profun didade considerando o modelo de iluminação de Phong e Gouraud As técnicas de shape from shading têm sido alvo de muitos estudos mas sua inte gração com outras técnicas de reconstrução 3D como motion textura e estéreo por exemplo é recente A importância da fusão de técnicas está na possibilidade de explorar os pontos fortes de cada uma das técnicas envolvidas Sistemas que utili zam a fusão de técnicas de reconstrução de superfícies ainda não estão disponíveis REPRESENTAÇÃO E MODELAGEM 165 comercialmente no mercado dado que essas tentativas são recentes e portanto com poucos resultados práticos disponíveis A habilidade de representar um objeto no espaço tridimensional é fundamental para visualizar compreender e analisar detalhes do objeto Wanger et al 1992 Gi rar transladar e projetar o objeto é fundamental para diversas aplicações da simples compressão de sua forma a mais sofisticada aplicação de realidade virtual A técnica Shape from Boxes é o resultado de um estudo realizado junto a Secreta ria de Segurança Pública do Estado do Rio de JaneiroSSPRJ Para a SSPRJ a inclu são de um sistema de treinamento em realidade virtual deveria acompanhar as ne cessidades imediatistas de planejamento das operações do Comando de Operações Especiais o COPE Essa metodologia foi então publicada no Simpósio Brasileiro de Computação Gráfica SIBGRAPHI 2002 onde apresentamos um método para retirar as informa ções 3D do objeto a partir de uma foto Figura 442 e pontos marcados na imagem como mostram as linhas na Figura 443 A Figura 444 mostra a reconstituição vista de um outro ângulo A reconstituição permitirá visualizar espaços entre as constru ções determinar campos e alcances visuais distâncias medidas inclusão de ícones e objetos para planejamento estratégico O sistema trabalha em conjunto com a engrenagem Fly3D permitindo simulações de colisão passeios virtuais treinamento em redes perseguições com armas de fogo e todososoutrosrecursosdesimulaçãofísicadaengrenagemOmodelo3Dpodeserex portadoparaoMaxondeajustesfinosdeiluminaçãoemodelagempodemserfeitos 166 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 442 Imagem aérea original O sistema permite ainda a escolha da textura do solo iluminação virtual inclu são de qualquer objeto 3DS na cena empilhamento de objetos reconstruídos e vôos virtuais pelas construções através de um observador móvel 412 SISTEMAS DE PARTÍCULAS A história dos sistemas de partículas iniciou em 1983 quando William T Reeves publicou seu paper Particle Systems A Technique for Modeling a Class of Fuzzy Objects Nesse paper Reeves explica como chegou ao paradigma de um sistema de partícula para um projeto de efeitos especiais do filme Star Trek II A Ira de Khan Ele monstrou que aplicando algumas das leis fundamentais da mecânica de New ton para uma coleção virtual de partículas no computador era possível criar ele mentos Até então a computação gráfica consistia principalmente de formas cria REPRESENTAÇÃO E MODELAGEM 167 FIGURA 444 Reconstituição vista de um outro ângulo FIGURA 443 Determinação de pontos estratégicos para a reconstrução das por polígonos e vértices fixos A metodologia de Reeves permitiu a criação de objetos que não tinham extremidades discretas Esse novo paradigma permitiu à criação de efeitos como neve chuva fogo fogos de artifício e nuvens Loke et al 1992 Antes de Reeves os sistemas de partículas foram estudados pela mecânica das colisões Na segunda metade do século XVII o estudo das colisões sofreu um gran de desenvolvimento Nomes como os de Robert Hooke Christian Huyghens e Chris topher Wren contribuíram para esse desenvolvimento levando a cabo trabalhos de pesquisas baseados em experimentações cujo objetivo era interpretar correta mente o mecanismo das colisões O segundo avanço importante em sistemas de partículas veio mais uma vez de Reeves em um paper intitulado Approximate and Probabilistic Algorithms for Sha ding and Rendering Structured Particle Systems Reeves melhorou o algoritmo do sis tema de partícula para criar objetos mais complexos como árvores gramas e arbus tos Para modelar esses objetos o comportamento dos sistemas de partículas preci sava ser expandido A maior mudança foi a implementação de um processo de mo delagem estocástico Os trabalhos posteriores em sistemas de partículas consistem em restringir ou modificar o comportamento geral das partículas de Reeves Por exemplo TengSee Loke usou os sistemas de partículas junto com as leis de Newton para produzir fogos de artifício Craig Reynolds usou os sistemas de partículas para modelar o comportamento de bandos de pássaros Richard Szeliski achou um ca minho para criar sistemas de partícula que têm uma superfície de orientação A partir dessa técnica foi possível criar objetos que eram originados dos sistemas de partículas Alex Pang usou os sistemas para pintar dissecar e modificar objetos tridimensionais Os sistemas de partículas são poderosas ferramentas usadas para modelar água nuvens fogo fumaça explosões fluidos em geral neve árvores etc Figura 445 Na animação contribuem na modelagem de multidões exércitos manadas etc A Figura 446 exemplifica o uso dos sistemas de partículas para criar e controlar o comportamento de cardumes Na Figura 447 foram utilizados dois emissores um para dar o efeito explosão fumaça e fogo e o outro para simular o lançamento dos destroços do tanque 4121 Distribuição de Partículas no Sistema Nos sistemas de partículas distinguise duas formas diferentes de distribuição de um ponto de vista macroscópico contínuos e discretos A primeira caracterizase por apresentar uma distribuição contínua de porções de matéria que é representada por um volume elementar dv e uma massa elementar dm Essa distribuição caracte rizase pela sua massa específica em cada ponto r dmdv O desgaste de um lápis e uma borracha são dois exemplos de uma distribuição contínua de partículas A dis 168 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA tribuição descontínua é o caso por exemplo de duas bolas de bilhar que se chocam sobre a mesa Essa distribuição é caracterizada em cada instante pelas massas e po sições das partículas que as constituem É nela que vamos centrar a nossa atenção Figura 448 Esta caracterização é muito semelhante à forma como se considera o modelo físico dos corpos em estudo Modelos contínuos ou discretos aqui como na física são semelhantes ao lápis e à borracha Eles poderiam ser considerados mode los discretos se o objetivo da análise for por exemplo representar não o seu desgas te com o uso e sim modelar a trajetória de colisão de ambos ao serem jogados sobre uma mesa REPRESENTAÇÃO E MODELAGEM 169 FIGURA 445 Sistema de Partículas simulando água em colisão com as pedras FIGURA 446 Modelagem de cardumes com partículas FIGURA 447 Dois emissores com simulação de fumaça fogo explosão e lançamento de destroços 4122 Centro de Massa O centro de massa é o ponto onde se supõe concentrada toda a massa M do sistema e cujo vetor posicional em relação a uma origem fixa e arbitrária é R cm Figura 448 R cm m k r k M m k onde m k é a massa de cada partícula do sistema e r k é o seu vetor posicional em relação a uma origem fixa e arbitrária 4123 Velocidade do Centro de Massa A velocidade do centro de massa é obtida derivando em relação ao tempo a expressão do vetor posicional do centro de massa R cm dR cm dt 1 M m k dr k dt 1 M m k v k V cm 1 M m k v k 4124 Quantidade de Movimento A quantidade de movimento de uma partícula de massa m k que se move com velocidade v k é P k m k v k modo que V cm 1 M m k v k P k M P M A quantidade de movimento do sistema é a quantidade de movimento do seu centro de massa 4125 Aceleração do Centro de Massa Derivando V cm em relação ao tempo obtémse a aceleração do centro de massa do sistema de partículas dV cm dt 1 M Σm k d v k dt Σm k a k M considerando que f k m k a k representa a resultante de todas as forças que atuam sobre a partícula k e que Σf k representa a resultante de todas as forças que atuam sobre todas as partículas do sistema temse Σ f k M A cm Essas forças podem ser de dois tipos Forças exteriores f e exercidas por partículas que não pertencem ao sistema sobre as partículas do sistema e Forças interiores f i aquelas que as partículas do sistema exercem umas sobre as outras e cuja resultante é sempre nula lei da ação e reação Seja F e a resultante de todas as forças exteriores que atuam sobre todas as partículas do sistema a equação anterior reduzse a F e M A cm Recordando que a quantidade de movimento de uma partícula de massa m k que se move com velocidade v k é P k m k v k podemos escrever M A cm Σm k dv k dt Σ dP k dt dP dt F e A derivada em relação ao tempo da quantidade de movimento de um sistema de partículas é igual à resultante das forças exteriores que atuam sobre o sistema Considerando as equações F e M A cm e F e dPdt podemos concluir que para cada sistema de partículas pode se encontrar um ponto o seu centro de massa que se move como se fosse um ponto material onde estivesse concentrada toda a massa do sistema e sobre o qual atuassem todas as forças exteriores que exercem a sua ação sobre o sistema Se a resultante das forças exteriores que atuam sobre o sistema for nula a sua quantidade de movimento permanece inalterada isso é F e dPdt 0 ou seja P constante Assim é constante a quantidade de movimento de um sistema de partículas isolado sobre o qual não atuam forças exteriores ou atuam forças de resultante nula 4126 Movimento em Relação ao Centro de Massa Considerando a Figura 448 onde r k é vetor posicional da partícula k em relação ao referencial S r kcm o vetor posicional da partícula k em relação ao centro de massa do sistema e R cm o vetor posicional do centro de massa do sistema em relação ao referencial S Podemos observar que r k r kcm R cm dr k dt dr kcm dt dR cm dt 4128 Quantidade de Movimento de um Sistema de Duas Partículas Se durante o choque apenas interveem forças interiores a quantidade de movimento do sistema mantémse inalterada antes e depois do choque Se p1 m1v1 p2 m2v2 forem as quantidades de movimento de duas partículas antes do choque e p1 m1v1 p2 m2v2 as quantidades de movimento das duas partículas depois do choque pelo teorema de conservação da quantidade de movimento temse p1 p2 p1 p2 m1v1 m2v2 m1v1 m2v2 4129 Energia de um Sistema de Duas Partículas Se durante o choque apenas atuarem sobre cada partícula forças interiores a conservação da energia do sistema considerado traduzse pela igualdade m1v1²2 m2v2²2 m1v1²2 m2v2²2 Ep12 Ep12 onde 12 m1v1² 12 m2v2² e 12 m1v1² 12 m2v2² representam respectivamente as energias cinéticas das duas partículas antes e depois do choque e Ep12 e Ep12 designam as energias potenciais internas do sistema constituído pelas duas partículas antes e depois do choque Essas energias poderão ser diferentes já que dependem da configuração do sistema que pode alterarse durante o choque chamando de a esta variação temse Q 12 m1v1² 12 m2v2² 12 m1v1² 12 m2v2² Se Q 0 o choque é perfeitamente elástico neste caso a energia cinética do sistema é a mesma antes e depois do choque 41210 Conceituando Sistemas de Partículas O termo sistemas de partículas pode ser usado para descrever técnicas de modelagem rendering e animação De fato a definição de um sistema de partículas parece depender da aplicação para a qual se destina porém os sistemas de partículas devem obedecer aos seguintes critérios Coleção de Partículas Um sistema de partículas é composto de uma ou mais partículas individuais Cada uma dessas partículas tem atributos que direta ou indiretamente afetam o comportamento da partícula ou em última instância como e onde a partícula é posicionada Frequentemente partículas são primitivas gráficas como pontos ou linhas Os sistemas de partículas tam bém são usados para representar uma dinâmica de grupo complexa como um aglomerado de pássaros Atributos Estocásticos Uma outra característica comum de todos os siste mas de partículas é a introdução de algum tipo de efeito randômico Esses efei tos podem ser usados para controlar os atributos das partículas como posi ção velocidade e cor Normalmente o efeito randômico é controlado por um tipodelimiteestocásticopredefinidocomovariaçõesou tipo de distribuição Os sistemas de partículas são um exemplo de modelagem procedural estocástica e possuem algumas características os sistemas complexos podem ser criados com pequeno esforço humano e o nível de detalhe pode estar facilmente ajustado Por exemplo se um objeto emissor de partículas está longe da câmera então ele pode ser modelado com poucos detalhes poucas partículas mas se estiver perto da câmera então ele pode ser modelado com riqueza de detalhes muitas partículas As partículas não têm superfícies bem definidas e nem são objetos rígidos isto é podem ser dinâmicas e fluidas Os sistemas de partículas diferem em três modos da representação usual em para síntese de imagem Um objeto não é representado por um conjunto de primitivas de superfície nem por polígonos ou malhas mas como primitivas de partículas que defi nem seu volume Um sistema de partícula não é uma entidade estática suas partículas mudam de forma e movimento Novas partículas podem ser criadas e antigas destruídas Um objeto representado por um sistema de partícula não tem sua forma e as pecto completamente especificados Processos estocásticos podem ser usa dos para criar e mudar a forma e aparência do objeto Cada partícula tem como atributos sua posição velocidade cor transparência tamanho forma e tempo de vida Um sistema de partícula possui uma série de parâmetros que controla a posição inicial da partícula Esses são 1 A origem da partícula x y e z 2 Dois ângulos de rotação que definem sua orientação 3 Um gerador de formas shape que define a forma da região em torno da ori gem da partícula com que novas partículas são gerados por exemplo uma esfera de raio R O gerador de formas descreve a direção inicial das novas par tículas por exemplo para uma esfera as partículas sairiam da origem em to 174 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA das as direções Para uma forma plana por exemplo um círculo no plano xy as partículas subiriam e se afastariam do plano A velocidade de uma partícula pode ser dada por Velocidade VelocidadeMédia Rand X VariaçãodaVelocidade onde a função Rond é responsável pela introdução de uma aleatoriedade no siste ma A cor e o brilho são dos atributos mais importantes representáveis por Cor CorMédiaRGB Rand X VariaçãodaCorRGB A transparência pode ser dada por Transparência TransparênciaMédiaRGB Rand X VariaçãodaTransparênciaRGB O tamanho representa quanto maior ou menor a partícula será quando compara da a um tramanho médio Tamanho TamanhoMédio Rand X VariaçãodoTamanho Esse parâmetro também se relaciona com a forma de cada partícula Tempo de Vida Cada partícula segue três fases distintas geração dinâmica e extinção Geração As partículas no sistema são geradas randomicamente dentro de um local predeterminado chamado objeto emissor O objeto emissor pode ter sua forma alterada com o passar do tempo Cada um dos parâmetros mencio nados anteriormente recebe um valor inicial Esses valores iniciais podem ser fixos ou podem ser determinados por um processo estocástico Dinâmica de partícula Os atributos de cada uma das partículas podem variar com o passar do tempo Por exemplo a cor de uma partícula em uma explo são pode ficar mais escura conforme ela se afasta do centro da explosão indi cando que está se apagando Em geral cada um dos atributos de uma partícu la pode ser especificado por uma equação paramétrica considerando o tempo como parâmetro Os atributos da partícula podem ser funções do tempo ou de outros atributos da partícula Por exemplo a posição que partícula vai es tar dependente da posição prévia da partícula da sua velocidade e do tempo REPRESENTAÇÃO E MODELAGEM 175 ExtinçãoCadapartículatemdoisatributosquelidamcomoseutempodeexis tência idade e tempo de vida A idade é o tempo que a partícula tem de existên cia medida em quadros esse valor será sempre inicializado com 0 quando a partícula for criada O tempo de vida é a quantia máxima de tempo que a par tícula pode viver medida em quadros Quando a partícula atinge sua idade máxima ela é destruída Além desse fator outros critérios podem contribuir para a destruição prematura da partícula Fora dos limites Se uma partícula sair da área de visualização e não reen trar então não existe nenhuma razão para manter a partícula ativa Atingindo o Solo Podemos assumir que as partículas que atingem o solo resfriamse e não podem ser mais vistas Algum atributo alcança um limite Por exemplo se a cor da partícula está tão próxima do preto que não possa mais ser vista então ela pode ser considerada destruída 41211 Renderizando as Partículas Quando temos de renderizar milhares de partículas algumas suposições têm de ser feitas para simplificar o processo Primeiro cada partícula é renderizada por uma primitiva gráfica Partículas que ocupam os mesmos pixels na imagem são aditivas a cor de um pixel é simplesmente a soma dos valores de cor de todas as outras Por causa dessa suposição não será necessária a utilização de algoritmos de superfícies escondidas as partículas são simplesmente renderizadas em or dem Além disso partículas podem obscurecer outras partículas podem ser transparentes e podem lançar sombras em outras partículas ou primitivas con vencionais Uma segunda aproximação é que as partículas são fontes de luz que se combi nam de acordo com sua cor e valores de opacidade propriedade que também elimi na o problema de superfícies escondidas 41212 Características dos Sistemas de Partículas Os sistemas de partículas podem resultar em grandes quantidades de código e uma diminuição na velocidade de render frame rate Grande parte desse problema é causado por estruturas de dados complexas e o conseqüente gerenciamento da me mória Uma das coisas mais importantes é que os sistemas de partículas aumentam o número de polígonos visíveis por quadros frames Cada partícula provavelmente necessita de quatro vértices e dois triângulos Desse modo por exemplo com 2000 partículas de floco de neve visíveis em uma cena estamos adicionando 4000 triân gulos visíveis isso não quer dizer que os sistemas de partículas não possam ser usa 176 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA dos para aplicações em realtime Como a maioria das partículas se movimenta não há como précalcular o buffer dos vértices devendo ser atualizado a cada qua dro Para otimizar esse processo será necessário evitar uma série de processos Por exemplo se uma partícula morre em vez de retirála da memória podemos sim plesmente mudar o indicador que passará a indicar sua morte Esse procedimento além de ser mais rápido poderá manter o sistema de partículas vivo Outra característica comum dos sistemas de partículas é a capacidade de estabe lecer um elo com objetos da cena por exemplo utilizando um emissor de partícu las na ponta de um cigarro esse emissor deve acompanhar o cigarro caso a cabeça do fumante se movimente RESUMO Neste capítulo viuse diversas formas de modelagens sintéticas Este é um campo onde muitas pesquisas ainda são necessárias em especial das formas que não tem geometria definida REPRESENTAÇÃO E MODELAGEM 177 178 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 5 Cores 51 Sistema Visual Humano 52 Descrição da Cor da Luz 53 As Ondas Eletromagnéticas 54 Sistemas de Cores Primárias 55 Sistemas de Cores Aditivas 56 Sistemas de Cores Subtrativas 57 Famílias de Espaços de Cor 571 Modelo fisiológico 572 Modelo baseado em medidas físicas 573 Modelo de sensações oponentes 574 Modelo psicofísico 58 O Modelo RGB 59 O Modelo CMYK 510 Espaço de percepção subjetiva 511 O Modelo HSV 512 O Modelo HLS 513 O Modelo YIQ 514 Transformação dos Espaços de Cor 5141 De RGB para XYZ 5142 De RGB para EixosOponentes 5143 De RGB para HSV 515 Uso de Cores nas Imagens 516 Descrição das Cores 517 Histograma de Cores 518 Espaço de Cores Oponentes 519 Ilusões Relacionadas às Cores 520 Problemas com Cores na Computação 521 Cores em OpenGL 5211 Transparência A cor exerce uma ação tríplice a de impressionar a de expressar e a de construir A cor é vista quando impressiona a retina É sentida e transmitida como uma emoção É construtiva pois tendo um significado próprio possui valor de símbolo poden do assim construir uma linguagem que comunique uma idéia O uso da cor na computação gráfica apresenta vários aspectos interessantes me lhora a legibilidade da informação possibilita gerar imagens realistas permite indi car mecanismos de segurança permite focar a atenção do observador permite pas sar emoções e muitos mais Enfim o uso de cores torna o processo de comunicação mais eficiente O conjunto de técnicas que permite definir e comparar cores é chamado de colo rimetria Esta técnica estuda e quantifica como o sistema visual humano percebe a cor Também chamamos colorimetria os métodos de análise espectrofotométricos de absorção da luz As técnicas de colorimetria têm como referência o chamado observador padrão ou observador médio que é determinado a partir de experimentos A colorimetria baseiase na premissa de que qualquer cor pode sempre ser definida por três parâ metros a intensidade a tonalidade cromática e a saturação O primeiro parâmetro mede a luminância intensidade luminosa da superfície examinada se a superfície for emissora ou refletora de luz podemos também o chamar de brilho ou claridade A tonalidade cromática caracteriza o comprimento de onda dominante da cor sen do também chamado matiz O último parâmetro saturação mede a pureza da cor isso é o quanto ela é saturada de um só tom No caso de cores originárias de objetos emitentes luzes como a mistura de todas as cores puras resulta em uma luz bran ca é possível dizer que a saturação caracteriza a quantidade de branco da cor Os aparelhos que permitem a determinação das componentes ou coordenadas tricromáticas de um estímulo de cor sob condições de iluminação e observação de finidas são chamados colorímetros 51 SISTEMA VISUAL HUMANO A retina do olho humano contém dois tipos de células que detectam a luz e a transfor mam em impulsos nervosos Devido à sua forma elas são chamadas de cones e basto netesFigura51Osconessãoaproximadamenteseisasetemilhõeseestãoconcen trados principalmente no centro da retina na região chamada fóvea Figura 52 Eles são sensíveis a alto nível de iluminação e responsáveis pela percepção das cores A re tina é a área do olho que recebe a luz transforma em sinais nervosos e transmite para o cérebro através dos nervos óticos Os bastonetes são aproximadamente 125 mi lhões em cada olho e estão concentrados na periferia da retina São sensíveis a baixo nível de iluminação distinguem os tons de cinza e são responsáveis pela visão perifé ricaOsbastonetessãocercade100vezesmaissensíveisàluzqueosconesistoépo dem ser sensibilizados por uma pequena quantidade de energia luminosa mas não CORES 181 têm a capacidade de distinguir cores Os animais em geral possuem uma quantidade muito maior do que os humanos dandolhes uma visão noturna maior A retina possui um tempo de saturação assim os fenômenos visuais observados dependem do tempo de exposição da retina e da intensidade luminosa Figura 52 No fundo do olho existe uma região denominada de ponto cego onde as células nervosas da retina se ligam ao nervo ótico É por esse nervo que as impressões visu ais são transmitidas ao cérebro Na parte externa da retina existe uma fina camada de cor vermelha escura chamada coróide cujos vasos sanguíneos alimentam as di versas camadas do olho A coróide apresenta células de pigmento escuro cuja fun ção é enfraquecer a intensidade de luz que chega aos cones e bastonetes O olho usa substâncias químicas fotossensíveis existentes nas células da retina para transformar a luz em impulsos nervosos enviados ao cérebro Cada bastonete contém milhões de moléculas de um pigmento sensível à luz chamado rodopsina ou púrpura visual Quando a luz incide sobre uma molécula de rodopsina ela gera um minúsculo sinal elétrico Esses sinais são acumulados até serem suficientes para desencadear uma mensagem nas células nervosas da retina A rodopsina é pro duzida à noite num processo que utiliza a vitamina A Durante o dia a rodopsina é gradualmente consumida pela visão Por isso a falta de vitamina A pode levar a de ficiência visual em condições de pouca luz conhecida como cegueira noturna Uma luz brilhante incidindo durante muito tempo como na neve ou deserto nas células fotossensíveis da retina gastam os pigmentos visuais fazendoos deixar de reagir à luz após algum tempo a pessoa não consegue enxergar a chamada ce gueira da neve Os cones são menores mais espessos e reagem à luz produzindo pigmentos quatro vezes mais rápido do que os bastonetes A adaptação gradativa do olho à escuridão devese à lenta passagem do pigmento escuro para o fundo da reti na Quando passamos imediatamente de um ambiente escuro para o claro nossa visão também necessitará de um tempo até que possamos ver todas as cores porém esse tempo será menor do que a reação dos bastonetes 182 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 51 As células cone e bastonete A cegueira às cores que ocorre em 1 a cada 40 mil pessoas e mais especificamen te em cerca de 8 dos homens e apenas 05 das mulheres é devido ao não funcio namento ou falta de um tipo de cone A forma mais comum de deficiência à visão colorida é chamada daltonismo O daltonismo pode se manifestar em um dois ou três tipos de receptores Os tricomatas são daltônicos que possuem os três tipos de pigmentos mas que os utilizam em proporções diferentes das pessoas normais e das outras pessoas com o mesmo defeito Os dicromatas percebem as cores defei tuosamente porque combinam apenas dois tipos Os monocromatas percebem ape nas graduações de claro e de escuro pois sua estimulação visual se baseia em um único tipo de célula A ausência dos cones responsáveis pelo registro das cores ver melha e verde leva a uma forma de daltonismo chamada anomalopia Para detectar a forma de um objeto colorido o observador deve fixar o conjun to de receptores de seu olho nos contornos do objeto O contorno é o elemento bá sico na percepção da forma e pode ser criado a partir de áreas adjacentes que dife rem em brilho cor ou ambos Na Figura 53A o topo do cilindro possui uma ex tremidade que se confunde com a faixa Na Figura 53B os elementos da extremi dade foram retirados impossibilitando a compreensão dos elementos que com põem a cena De acordo com a teoria tricromática ou dos três estímulos de Thomas Young 17731829 a retina é formada por três tipos de fotopigmentos capazes de receber e transmitir três sensações distintas Um dos grupos de fotopigmentos é mais sensí vel aos comprimentos de onda curtos esses pigmentos não se sensibilizam por comprimentos de onda que excedam o valor de 529 x 107m possuem pico de res posta próximo a 445 x 107m motivo pelo qual são popularmente conhecidos como fotopigmentos azuis Eles permitem ver azuis e violetas Os outros dois grupos são mais sensíveis aos comprimentos de onda de 535 x 107m e 575 x 107m mas esses ao contrário dos azuis são sensíveis também a to dos os demais comprimentos Assim há uma complementação das cores que ve mos Devido a sua maior sensibilidade para os comprimentos citados eles são cha CORES 183 Retina Fóvea Lente Pupila Nervo Ótico Córnea Íris FIGURA 52 O sistema visual humano mados de fotopigmentos verdes e vermelhos respectivamente a denominação de vermelho não é muito apropriada já que 575 x 107m se aproxima mais do amarelo A área que enxergamos é chamada campo visual Em cada olho existem campos visuais separados para os vários tipos de cones e bastonetes pois essas células têm disposição diferente na retina O campo visual dos bastonetes é maior ainda que fraco no centro da visão pois no centro da retina existem poucas células desse tipo O campo visual dos cones verdes é o menor de todos porque eles se localizam mui to próximos e no centro da retina Assim só temos visão exata das cores quando olhamos de frente para um objeto e a sua imagem incide na região central da retina fóvea Os bastonetes espalhados pelo resto da retina vêem principalmente movi mentos em forma de cinza Essa é a chamada visão periférica Young no século XIX através de seus experimentos com superposição de luzes mostrou que todas as cores do espectro visível podiam ser representadas como uma soma de três cores primárias Ele concluiu que isso era conseqüência não das ca racterísticas do raio luminoso mas da composição do sistema visual humano Ele pressupôs que o raio luminoso era transportado para o cérebro através de três di ferentes tipos de impulsos nervosos que transportavam respectivamente o ver melho o verde e o azulvioleta O físico alemão Hermann von Helmholtz 18211894 prosseguiu nos estudos da teoria de Young e propôs que o olho continha apenas três tipos de receptores de cor que respondiam mais fortemente aos comprimentos de onda vermelho R verde G e azulvioleta B Ele deduziu ainda que cada tipo de receptor deveria possuir gran de sensibilidade à incidência luminosa porém com diferentes pontos máximos A 480 nm a média da resposta RGB seria 159 dando uma sensação azulciano En quanto a 570 nm a média seria 772 que daria uma sensação de amarelo A percepção da cor portanto seria determinada pela média das três respostas Figura 54 184 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A B FIGURA 53 A extremidade como elemento básico na percepção da forma 52 DESCRIÇÃO DA COR DE UMA LUZ O que vemos como cores em uma luz são na verdade diferenças de comprimento de onda Muitas cores podem ser geradas por um único comprimento de onda como as luzes vermelha e verde puras Outras cores só podem ser produzidas por luzes com vários comprimentos de onda como roxo ou rosa É possível descrever os compri mentos de onda contidos numa cor através de sua curva espectral que é um gráfico onde os comprimentos de onda estão no eixo horizontal e a intensidade de luz no eixo vertical A luz que tem toda sua energia concentrada em um único comprimento deondaéchamadadepuraÉocasodaluznaFigura55ACoresquesãoproduzidas por um único comprimento de onda têm toda sua intensidade concentrada num úni co ponto do eixo horizontal Figura 55A enquanto as outras cores possuem uma mistura de comprimentos de onda como mostra a Figura 55B Um problema na descrição das cores é que muitas densidades espectrais podem ser vistas como a mesma cor pelo olho humano Distribuições espectrais diferen tes que produzem a mesma sensação de cor são chamadas metâmeros Isso torna di fícil a descrição de cores através de curvas espectrais Para contornar esse proble CORES 185 10 8 6 4 2 400 500 600 700 Comprimento de Onda Resposta Relativa B G R FIGURA 54 A percepção da cor pode ser determinada pela média das três respostas RGB Intensidade Intensidade Comprimento de onda Comprimento de onda A B FIGURA 55 Comprimento de onda da luz pura em A e comprimento de uma luz misturada em B ma uma forma mais concisa de especificar cada cor é a caracterização na curva es pectral dos três parâmetros da colorimetria já comentados matiz saturação e bri lho O matiz de uma cor comprimento de luz predominante aparece como a posi ção do eixo horizontal onde a curva de densidade espectral tem mais intensidade A saturação é a proporção da cor que não se manifesta como uma constante em todos os comprimentos de onda Para dessaturar a cor é necessário apenas adicionar luz branca que é composta de todos os comprimentos de onda Uma cor dessaturada como o rosaclaro é descrita com matiz vermelho misturado com uma certa por centagem de branco Finalmente o brilho é a área embaixo da curva de densidade espectral que determina o quão brilhante a cor resultante será A Figura 56 mostra uma curva fictícia onde esses elementos podem ser caracterizados Neste gráfico quanto menor o ib mais saturada a cor A matiz corresponde ao ponto do eixo ho rizontal onde ocorre a intensidade máxima em im As diferentes cores ou espectros luminosos que podem ser percebidos pelo sistema visual humano correspondem a uma pequena faixa de freqüências do es pectro eletromagnético que inclui as ondas de rádio microondas os raios infra vermelhos os raios ultravioleta os raios X e os raios gama como mostrado na Fi gura 57 186 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Comprimento de onda im ib Intensidade FIGURA 56 A área embaixo da curva de densidade espectral determinando o quão bri lhante a cor resultante será Rádio Microondas Infravermelho Raio X Hertz 10 20 10 18 10 16 10 14 10 12 10 10 10 8 10 6 10 4 Ultravioleta Região Visível Vermelho Alaranjado Amarelo Verde Azul Violeta 400 nm 500 600 700 FIGURA 57 Freqüências do espectro eletromagnético A freqüência mais baixa do espectro visível corresponde à cor vermelha 43x1014 Hertz e a mais alta à cor violeta 75x1014Hertz Os valores de freqüên cia intermediários correspondem às cores que passam pelo alaranjado e amarelo e por todas as outras cores até chegar nos verdes e azuis Os comprimentos de onda maiores possuem distâncias focais maiores e conse qüentemente requerem maior curvatura da lente do olho para serem focalizados a cor vermelha possui a maior distância focal e a azul a menor As utilizações simul tâneas de cores localizadas em extremos opostos do espectro fazem com que a lente altere o seu formato constantemente causando cansaço no olho 53 ONDAS ELETROMAGNÉTICAS A luz é uma onda eletromagnética que permite ver o mundo ao redor As ondas ele tromagnéticas cobrem um intervalo bem amplo de freqüência Figura 57 ou comprimentos de onda Chamase freqüência o número de ciclos da onda por se gundo Comprimento de onda é a distância percorrida entre dois ciclos Assim o comprimento de uma onda é igual à sua velocidade de propagação em um meio no ar 300000 kms na água 225000 kms dividido pela sua freqüência Dependendo de suas freqüências são classificadas como ondas de rádio microondas infraver melho luz visível raios ultravioletas raios X e raios Gama Desde a antigüidade a luz vem sendo investigada porém fenômenos luminosos inexplicados ainda existem Na verdade a luz é uma das diversas formas que a energia se manifesta Até o século XVII a luz era definida como a radiação que pode ser percebida pelos olhos humanos Halliday e Resnick 1976 Após experiências sobre as propriedades dos raios infravermelhos e ultravioletas invisíveis a ciência passou a conside rálos como luz em virtude da semelhança do comportamento de suas regiões do espectro com a faixa visível Os babilônios já sabiam muito sobre a propagação da luz mas foi a Escola de Pla tão que primeiro teorizou esse conhecimento criando a base da Ótica Geométrica parte da Física que estuda a luz se deslocando em linha reta podendo ser represen tável por raios Modificações substanciais no estudo da luz somente ocorreram dois mil anos mais tarde com os trabalhos de René Descartes e principalmente de Isaac Newton no século XVIII quando então surgiu a Ótica Física ou Ondulatória Os modelos clássicos usados para descrever os fenômenos luminosos são denominados corpus cular e ondulatório O modelo corpuscular considera que a luz é formada por pequenos corpúsculos fótons que se propagam em grande velocidade e em linha reta em todas as dire ções Essa teoria explica fenômenos como o da propagação e da reflexão da luz mas deixa outros sem explicação CORES 187 No modelo ondulatório a luz parte de uma fonte luminosa em movimento on dulatório e não precisa de nenhum meio material para se propagar ou seja tratase de uma onda eletromagnética Essa teoria permite explicar a propagação a refle xão a refração e a difração entre outros fenômenos luminosos Atualmente o mo delo ondacorpúsculo é o mais aceito Ele engloba os dois modelos clássicos e foi apresentado nas primeiras décadas do século XX pelo cientista Francis Louis Bro glie 18921987 Segundo Broglie a luz tem ambos os comportamentos conforme se observa o fenômeno A teoria de Newton também está baseada na emissão corpuscular Newton fez in cidir a luz do sol sobre um prisma e observou que ela se decompunha em um ar coíris de cores que ia do azul ao vermelho Ele foi capaz de combinar cores para formar outras cores distintas concluindo que eram necessárias sete cores para re presentar todas as cores visíveis Posteriormente ao levantaremse os princípios da teoria ondulatória de Huy gens Young e Fresnel acreditouse ser falha aquela teoria fato acentuado quando Maxwell e Hertz demonstraram ser a luz uma radiação eletromagnética Feynman et al 1967 No entanto os trabalhos do físico alemão Max Planck realizados no início do século mostraram evidências de que a luz é emitida e absorvida em por ções de energia perfeitamente definidas denominadas de fótons partículas que apresentam um quanta de energia Novos aspectos do fenômeno foram revelados conciliando as teorias de Newton e Planck com as teorias de Maxwell e Hertz Surgiu uma nova visão a luz pode assu mir tanto um comportamento ondulatório como um comportamento corpuscular As diferentes sensações que uma luz pura produz no olho humano e que pro duzem as cores dependem da freqüência ou comprimento de onda dessa luz O olho humano é sensível à radiação eletromagnética na faixa de 400 a 700 nanôme tros Figura 54 chamada espectro visível dentro da qual estão localizadas as chamadas sete cores visíveis distinguidas por seus respectivos comprimentos de onda Espectro Visível Violeta Azul Ciano Verde Amarelo Laranja Vermelho 380450 540480 480490 490560 560580 580600 600700 Comprimentos de onda em nanômetros As cores mostradas na tabela acima correspondem ao leque de cores que aparece no arcoíris A cor vermelha é a que possui o maior comprimento de onda e a viole ta o menor Essas cores aparecem sempre nessa ordem também quando uma luz branca é decomposta ao atravessar um prisma de cristal Esse fenômeno é conheci do com dispersão da luz e foi descoberto por Isaac Newton em 1666 Ele mostrou 188 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA que a luz branca é a mistura de todas as luzes coloridas do espectro A cor dos obje tos que não emitem luz é percebida pela energia que ela reflete ou seja quando a luz incide sobre um objeto uma parte é absorvida pela própria superfície e a outra é refletida chegando aos nossos olhos 54 CORES PRIMÁRIAS As cores primárias são as cores básicas que podem ser usadas para produzir outras cores As cores podem ser produzidas a partir de uma combinação das primárias ou então da composição de suas combinações Não existe um conjunto finito de cores primárias visíveis que produza realmente todas as cores mas sabese que uma gran de parte delas pode ser produzida realmente a partir de três primárias escolhidas das extremidades e centro do espectro de luzes visíveis como por exemplo as luzes vermelha azul e verde conhecidas como primárias RGB A razão pela qual se usam três primárias é pelo fato de os olhos humanos possuí rem três tipos de sensores coloridos diferentes sensíveis a diferentes partes do es pectro de luz visível como já foi comentado Eles são os chamados fotopigmentos azul vermelho e verde Os picos das respostas desses fotopigmentos se localizam nos comprimentos de onda das luzes azul verde e amarelo e respondem às sensa ções luminosas em todo o resto do espectro das radiações visíveis Figura 56 Um sistema de cores é um modelo que explica as propriedades ou o comporta mento das cores num contexto particular Não existe um sistema que explique to dos os aspectos relacionados à cor Por isso são utilizados sistemas diferentes para ajudar a descrever as diferentes características das cores e sua percepção pelo ser humano Existem vários sistemas de cores sendo aqui apresentados apenas alguns dos principais o XYZ o RGB o HSV e o HLS O universo de cores que podem ser reproduzidas por um sistema é chamado de espaço de cores color space ou color gamut Um espaço de cor é um método formal necessário para se quantificar as sensações visuais das cores que podem assim ser precisamente especificadas A introdução de uma representação mate mática no processo de especificação de cor gera muitos benefícios já que permi te a especificação de uma cor através de um sistema de coordenadas geralmente cartesiano Para definir todas as cores visíveis através de radiações primárias a Commissi on Internationale de lÉclairageCIE Comissão Internacional de Iluminação defi niu três primárias supersaturadas que podem ser combinadas para formarem to das as cores Embora essas primárias supersaturadas não possuam representação física elas podem ser usadas para produzir um gráfico com todas as outras cores Alguns instrumentos que podem medir as especificações de cores CIE a partir do mundo real foram desenvolvidos Uma cópia do gráfico de cores CIE aparece na Figura 58 CORES 189 No gráfico CIE duas cores com iguais distâncias no gráfico nem sempre represen tem iguais distâncias na percepção Hill et al 1997 Apesar disso esse gráfico auxilia a vários cálculos Cada um dos pontos ao longo da borda externa da curva excluin do os da parte reta é composto de luzes formadas de um único comprimento de onda Os dois pontos nomeados próximos ao centro do diagrama c e d represen tam dois tipos muito parecidos de branco Criandose uma reta que comece em um dos pontos brancos escolhidos passe por um outro ponto que represente uma cor e cruze a borda do gráfico é possível determinar o comprimento de onda primário matiz da cor que se localiza neste ponto A saturação da cor é a razão entre a dis tância do ponto à borda do gráfico e a distância do ponto à cor branca E também se uma linha é desenhada entre quaisquer duas cores do gráfico todas as cores da li nha entre elas podem ser criadas combinandose essas duas cores na proporção da distância ao ponto desejado Os sistemas de cores podem ser aditivos ou subtrativos Wyszecki Stiles 1982 190 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA R B G Y O P Pk Vermelho Azul Verde Alaranjado Amarelo Roxo Rosa G 500 540 520 480 470 450 650 620 590 580 560 yG YG bG BG gB B pB P rP RP pR R rO O yO Y gy c d bp pPk Pk OPk FIGURA 58 Gráfico cores da CIE Comissão Internacional de Iluminação 55 SISTEMAS DE CORES ADITIVAS É o sistema usado nos monitores de vídeo e televisões no qual a cor é gerada pela mistura de vários comprimentos de onda luminosa provocando uma sensação de cor quando atinge e sensibiliza o olho As cores primárias aditivas são vermelho verde e azul No processo aditivo o preto é gerado pela ausência de qualquer cor indicando que nenhuma luz está sen do transmitida o branco é a mistura de todas elas o que indica que uma quantidade máxima de vermelho verde e azul está sendo transmitida Figura 59 Em uma imagem colorida a representação da cor C de cada pixel da imagem pode ser obtida matematicamente por C rR gG bB Onde R G e B são as três cores primárias e r g e b são os coeficientes de mistura correspondentes a cada uma das intensidades associadas a cada um dos canais RGB Esses coeficientes de mistura podem ser números reais ou inteiros A primeira for ma é mais utilizada para transformação entre espaços de cor ou consultas em tabe las A segunda valores inteiros é utilizada nas aquisições de imagens digitais e em sua armazenagem na forma de arquivos de imagens Dessa forma a cor C de cada pixel da imagem pode ser plotada no espaço de cores RGB usandose os coeficientes de mistura r g b como coordenadas Uma cor portanto pode ser considerada como um ponto em um espaço tridimensional modelada como um subconjunto do espaço R3 ou N3 onde cada cor possui uma coordenada r g b CORES 191 Vermelho Magenta Azul Amarelo Verde Ciano FIGURA 59 Processo aditivo das cores primárias veja também nas ilustrações colori das 56 SISTEMAS DE CORES SUBTRATIVAS É o processo usado nas impressoras e pinturas Uma pintura é diferente de um mo nitor que por ser uma fonte de luz pode criar cores As cores primárias para objetos sem luz própria são magenta amarelo e ciano são cores primárias subtrativas pois seu efeito é subtrair isto é absorver alguma cor da luz branca Quando a luz branca atinge um objeto ela é parcialmente absorvida pelo objeto A parte que não é absor vida é refletida e eventualmente atinge o olho humano determinando assim a cor do refletida O processo subtrativo altera a cor através de uma diminuição da luz in cidente dos comprimentos que são absorvidos No processo subtrativo o branco corresponde a ausência de qualquer cor e o preto é a presença de todas Figura 510 Neste processo uma cor é vista como Ciano se absorve a componente vermelha da luz branca refletida a luz branca é a soma das cores azul verde e vermelho assim em termos de cores aditivas ciano é a soma de verde e azul Magenta se retira a componente verde da luz branca sendo assim a soma das cores aditivas vermelho e azul Amarelo se subtrai a componente azul da luz branca refletida é a soma das cores aditivas verde e vermelho Podemos ainda obter outros tipos de cores através da combinação das cores pri márias As cores secundárias por exemplo são obtidas pela combinação das primá 192 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Magenta Vermelho Azul Amarelo Verde Ciano FIGURA 510 Processo subtrativo das cores secundárias veja também nas ilustrações à cores deste livro rias duas a duas em proporções iguais Figura 511 As terciárias podem ser obti das pela combinação de duas primárias em proporções diferentes A cor marrom por exemplo é uma cor terciária obtida da mistura das três primárias podendo ser obtida com a mistura do amarelo ou vermelho alaranjado com um pouco de preto 57 FAMÍLIAS DE ESPAÇOS DE COR Na literatura sobre visão da cor quatro famílias de modelos podem ser identifica das modelo fisiológico modelo baseado em medidas físicas modelo de sensações oponentes e o modelo psicofísico 571 Modelo Fisiológico Os modelos baseados nos estudos fisiológicos da visão humana têm como funda mento a existência de três tipos de sensores cones encontrados nas células da reti na humana com sensibilidades máximas correspondentes às cores vermelho ver de e azul Exemplo desses são os modelos RGB usados em monitores de vídeo CRT colorido 572 Modelo Baseado em Medidas Físicas Os modelos baseados nas medidas físicas da reflectância espectral são chamados modelos colorimétricos Utilizam filtros das três cores primárias vermelho verde e azul para composição das cores avaliadas por um observador padrão médio e me didas fotométricas Exemplo desse modelo é o XYZ usado no diagrama de cromati cidade do CIE CORES 193 Amarelo Ciano Magenta Amarelo Ciano Magenta Verde Vermelho Azul FIGURA 511 Processodeobtençãodascoressecundáriasvejanaspáginasemcores 573 Modelo de Sensações Oponentes O modelo de sensações de cores oponentes foi descoberto a partir de experiências sobre o processo de percepção visual nas camadas mais altas do cérebro resultante da interação de pares de células oponentes vermelhoverde azulamarelo e pre tobranco redgreen blueyellow blackwhite 574 Modelo Psicofísico Modelos de cores fundamentados em reações psicológicas e psicofísicas são oriun dos de informações obtidas pelo ponto de vista impressionista da cor modelos de Munsell e Ostwald ou de modo experimental família dos modelos de cor HSB ou de espaço uniforme OSA 58 O MODELO RGB O modelo RGB possui como primárias as cores aditivas vermelhas R verdes G e azuis B este modelo baseiase na sensibilidade do olho e usa um sistema de coor denadas cartesianas R G B cujo subespaço de interesse é o cubo unitário mostrado na Figura 512 As cores primárias RGB são aditivas A diagonal principal do cubo que vai do preto ao branco possui quantidades iguais de cores primárias e representa a escala de cinza Cada ponto colorido dentro dos limites do cubo pode ser representado por R G B onde os valores de R G e B variam entre zero e um valor máximo A resposta do olho aos estímulos espectrais não é linear e por isso algumas cores não podem ser reproduzidas pela sobreposição das três primárias Isso significa que algumas cores existentes na natureza não podem ser mostradas nesse sistema Por isso um fenômeno natural colorido como por exemplo formação de rochas não pode ser reproduzido com precisão 194 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Azul Turquesa Verde Magenta Vermelho Amarelo FIGURA 512 Subespaço do modelo RGB a partir dos eixos XYZ 59 O MODELO CMYK O modelo CMYK é um modelo complementar ao modelo RGB porém destinado a produtos e dispositivos não emissores de luz tais como impressoras A composição da cor ocorre similarmente ao modelo RGB porém emprega as cores complementa res Ciano C Magenta M Amarelo Y e Preto K As cores complementares atuam na luz incidente subtraindo desta as componentes RGB criando assim cores equivalentes às produzidas por dispositivos emissores de luz Por esse motivo o modelo CMYK é conhecido como um modelo subtrativo onde além das subtrações efetuadas pelas cores ciano magenta e amarelo comentadas na seção 56 temse o Preto que subtrai todos os componentes Embora complementares os modelos RGB e CMYK não produzem os mesmos resultados visuais ou seja não existe a transposição exata e precisa de cores de um modelo para outro Existem cores de um modelo que simplesmente não podem ser expressas pelo modelo complementar enquanto algumas cores encontradas na na tureza simplesmente não podem ser expressas por nenhum dos dois modelos co res metálicas cores fluorescentes etc Apesar de suas limitações o par RGBCMYK é o modelo de cores atualmente mais popular para processamento digital de imagens principalmente em função da tecnologia dos tubos de imagens atuais que utilizam três canhões de elétrons RGB para a composição de imagens coloridas no vídeo e das impressoras a jato de tinta laser ou térmicas que utilizam tecnologia CMYK herdada da indústria fo tográfica 510 ESPAÇOS DE PERCEPÇÃO SUBJETIVA Esta forma de modelagem de um espaço de cor é conhecida dos estudos de Mun sell e Ostwald O sistema de Munsell é baseado na concepção de intervalos iguais de percepção visual onde qualquer cor pode ser definida como um ponto em um espaço de cor tridimensional Os atributos desse sistema são o matiz H Hue o brilho V Value e a saturação C Chroma percebidos cuja notação simbólica é H V C O matiz Hue é representado Figura 513 em uma ordem natural de cores na forma circular vermelho amarelo verde azul e púrpura consideradas por Mun sell como as principais Misturandose cores adjacentes nessa série obtémse uma variação contínua entre as cores A saturação Chroma é o grau de distância de uma cor qualquer a cor neutra localizada no centro do círculo O brilho Va lue representado pelo eixo perpendicular ao círculo indica a intensidade de luz refletida de uma cor O sólido de cor representando o espaço de Munsell é mostra do na Figura 514 CORES 195 Os sistemas de cor de Munsell e Ostwald representam as primeiras tentativas 1915 de organizar a percepção da cor em um espaço São baseados mais na subjeti vidade da observação do que em medidas diretas ou em experiências controladas da percepção O sistema de ordenação de cor de Munsell e derivados como o sistema Pantone e Scottch continuam sendo muito usados na indústria não obstante as tentativas de substituílos pelos modelos colorimétricos 196 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 513 Cores circulares de Munsell veja nas páginas coloridas FIGURA 514 O espaço de Munsell veja nas páginas em cores Os sistemas Munsell e Ostwald são baseados na reflexão subtrativos das cores Embora existam métodos de conversão para outros espaços de cores estes sistemas não costumam ser usados em trabalhos que utilizem adição de cores A forma geral desses espaços é a representação por coordenadas cilíndricas com três dimensões correspondendo aproximadamente às variáveis brilho eixo vertical matiz des locamento angular em relação a uma determinada cor e saturação distância ao eixo vertical semelhantes ao esquema do sólido de cor de Munsell Figura 514 Outros modelos resultantes de medidas experimentais com características di mensionais semelhantes ao espaço Munsell mas com configurações diferentes são muito utilizados em trabalhos de computação visual e gráfica como os sistemas HSV H cor S saturação V intensidade e HLS H cor L quantidade de luz S saturação Dubuisson e Gupta 2000 511 O MODELO HSV O modelo HSV Hue Saturation Value orientado ao usuário foi desenvolvido em 1978 por Alvey Ray Smith que se baseou na maneira com que o artista descreve e mistura as cores O sistema de coordenadas é um cilindro e o subconjunto dentro do qual o modelo é definido é um hexágono ou uma pirâmide de seis lados como mostrado na Figura 515 O eixo V representa a escala de tons de cinza onde o ponto V 0 e S 0 corres ponde ao preto e o ponto V 1 e S 0 ao branco No topo do hexágono encon tramse as cores de maior intensidade O matiz ou H é dado pelo ângulo ao redor do eixo vertical sendo o vermelho igual a 0o o verde 120o e assim por diante O valor da saturação varia de 0 na linha central eixo V até 1 nos lados do hexágono As cores cujos valores de V e S são igualmente 1 assemelhamse aos pigmentos primitivos usados por artistas CORES 197 240 00 120 0 10 V H S Preto Valor Tonalidade Saturação Amarelo 60 Vermelho Verde Cyan 180 Branco Magenta 300 Azul FIGURA 515 O modelo HSV veja também em cores O sistema HSV utiliza descrições de cor que são mais intuitivas do que as combi nações de um conjunto de cores primárias e por isso é mais adequado para ser usa do na especificação de cores em nível de interface com o usuário Os parâmetros de cor utilizados nesse sistema são a tonalidade hue a saturação saturation e a luminância value As várias tonalidades estão representadas na parte superior do cone a saturação é medida ao longo do eixo horizontal e a lumi nância é medida ao longo do eixo vertical que passa pelo centro do cone 512 O MODELO HSL O modelo HLS Hue Lightness Saturation é um modelo alternativo para o HSV desenvolvido por Gerald Murch da Tektronix mais ou menos na mesma época É fácil de ser utilizado sendo definido por um hexágono duplo conforme mostrado na Figura 516 A escala de cinzas encontrase em S 0 nesse modelo os matizes com máxima saturação possuem L 05 e como no modelo HSV são definidos na extremidade do hexágono Vantagens dos Modelos HSV e HLS Os dois últimos modelos tem as características de Simplicidade e facilidade de implementação e Popularidade entre os programadores de computação gráfica 198 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 05 10 H S 00 Preto Brilho Tonalidade Saturação Amarelo 0 Vermelho 120 Verde Branco Magenta 240 Azul FIGURA 516 O modelo HLS veja páginas em cores Desvantagens dos Modelos HSV e HLS Quando representados na tela as coordenadas são definidas diretamente em termos dos sinais do monitor RGB o que faz com que a cor produzida dependa das caracte rísticas do fósforo do monitor Ao se trocar de equipamento é possível obter resul tados indesejados uma vez que uma cor não é exatamente a mesma em diferentes dispositivos Além desta característica presente em qualquer representação em ví deos CRT seção 17 para os sistemas HSV e HSL observase ainda que Nenhum dos eixos é uniforme uma alteração em qualquer coordenada resul ta em uma mudança aparentemente variável de acordo com a localização no espaço de cor O ângulo de matiz é notavelmente o menos uniforme com mu danças lentas próximas aos ângulos referentes às primárias RGB e mudanças rápidas entre eles Isso dificulta a tarefa do operador em precisar o efeito na cor devido a um ajuste dos controles HSV ou HLS Os três eixos não são de fato independentes um do outro Por exemplo à me dida que se locomove ao redor do plano de cor HS a claridade lightness aparente no monitor sofrerá mudanças mesmo que os valores das compo nentes V ou L permaneçam constantes A maior discrepância ocorre entre o verde e o azul que tipicamente difere na luminância por um fator próximo a cinco Já uma mudança em V ou L produz normalmente uma alteração na saturação aparente mesmo que o componente S permaneça numericamente constante 513 O MODELO YIQ O modelo YIQ é usado na transmissão de televisão a cores nos Estados Unidos Esse modelo foi projetado para separar a crominância da luminância Ele foi implemen tado como solução para compatibilizar os sinais das televisões coloridas com os das preto e branco O canal Y contém informações de luminância suficiente para tele visões preto e branca enquanto os canais I e Q transmitem informações de cor Uma televisão colorida utiliza esses três canais e converte as informações de volta para R G e B Essa conversão acarreta uma variação de cor por tipo de fósforo do monitor isso significa que diferentes monitores podem apresentar uma variação nas cores O espaço YIQ é utilizado pelo padrão americano NTSC National Televi son Standard Committee 514 ESPAÇO DE CORES OPONENTES O modelo de cor mais conhecido por pares de cores oponentes é originário da teo ria do processo oponente descrito nos trabalhos de Hurvich e Jameson Kayser e Bayton 1996 Essa teoria remonta aos estudos da teoria de visão da cor de Hering CORES 199 1878 na qual cores oponentes opponent hues se cancelam quando superpostas O modelo usa para representação um sistema cartesiano onde o amarelo e o azul são diametralmente opostos em um eixo e o verde e o vermelho opostos em outro eixo formando um plano com o eixo branco e preto perpendicular a esse plano Os sinais visuais tricromáticos enviados pelos cones alcançam um estágio neural subseqüente LGN onde se desenvolvem principalmente dois tipos de processa mento da cor 1 processos espectralmente oponentes no qual vermelho versus ver de e amarelo versus azul ocorrem e 2 processos espectralmente nãooponentes branco versus negro As experiências demonstram vários fenômenos visuais que não são adequada mente explicados pela teoria tricromática Exemplos de tais fenômenos são os efei tos notados pela visão após uma observação prolongada de uma das cores oponen tes A retirada do estímulo amarelo após a sua observação durante algum tempo provoca o aparecimento de uma sensação visual da cor azul Hurvish e Jamenson elaboraram um método experimental de cancelamento de cores hue cancellation com a finalidade de avaliar psicofisicamente a natureza dos processos oponentes da visão colorida Feymman et al 1967 A teoria de cores oponentes considera que os sinais provindos dos três tipos de cones RGB são combinados em um segundo estágio do processamento neural da visão da cor para alimentar três canais de cores oponentes Um canal brancopreto BW ou acromá tico é obtido pela soma dos sinais vindos dos cones R G e B Um canal vermelho verde RG RG é excitado com sinais vindos dos cones R e inibido pelos sinais vindos do cones G e o terceiro canal amareloazul YBBRG que é excitado pelos sinais vindos dos cones B e inibido por uma combinação de sinais vindos dos cones R e G Hurvich e Jameson conseguiram com esse método registrar as quantidades rela tivas de cada uma das quatro cores básicas presentes em qualquer estímulo espec tral Verificaram que o vermelho e o verde não são vistos simultaneamente no mes mo lugar ao mesmo tempo quando misturados produzem o amarelo não há o ver deavermelhado reddish green Analogamente também o azul e o amarelo não são vistos simultaneamente quando misturados produzem o branco não há azul amarelado yellowish blue O vermelho e o verde se cancelam mutuamente da mesma forma o amarelo e o azul Se a partir de uma mistura verdeazulada bluish green por exemplo se quiser obter o verde é necessário adicionarse o amarelo puro de modo a cancelar o azul A quantidade necessária da cor para cancelamento foi considerada como um in dicador do grau da cor cancelada Estes dados foram usados para produzir as curvas de processamento das cores oponentes a Figura 517 ilustra essas curvas Para se obter o vermelho puro é necessário misturar um pouco de azul em um comprimento de onda por exemplo 700 nm de modo a cancelar o amarelo que ocorre nessa faixa Uma cor só é perfeitamente pura quando somente ela é percebi 200 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA da Uma cor pura somente ocorre onde o valor cromático das outras duas é zero No gráfico da Figura 517 os valores positivos e negativos são arbitrariamente assinala dos para representar a natureza do processo das cores oponentes Os valores cromáticos representam as quantidades de cores vistas em diferentes comprimentos de ondas Por exemplo no comprimento de onda 450 nm o valor cromático azul é aproximadamente 10 e o valor da cor vermelha próximo a 02 Esses valores indicam que a cor percebida seria azul com um pouco de vermelho Essa cor é conhecida como violeta ou púrpura Já em 550nm há uma grande quan tidade de amarelo e verde indicando que na faixa em torno dessa cor apareceria um amareloverdeclaro que é o que a maioria das pessoas vê 515 TRANSFORMAÇÃO ENTRE ESPAÇOS DE COR Há uma grande variedade de espaços de cor cada um deles com vantagens e des vantagens quanto à capacidade de representação de cores distintas e suas compo sições Geralmente as imagens coloridas são capturadas por scanners ou câmeras que as armazenam em forma de pontos com a informação das cores representadas pelos canais RGB Esse espaço seria o candidato natural por ser completo para ser usado em pesquisas por similaridade caso fosse perceptualmente uniforme Como espaço completo o RGB é ponto de partida para transformações para outros espaços com pletos que serão sujeitos a avaliação quanto ao processamento por semelhança Conci e Castro 2002 Sendo o RGB um espaço contínuo em trabalhos computa cionais pode ser amostrado em um grande número de valores discretos imagens CORES 201 x Observador J comprimento de onda nm 400 500 600 700 15 10 05 00 05 10 15 valores cromáticos Vermelho Vermelho Amarelo Azul Verde FIGURA 517 Curvas de processamento das cores oponentes 5151 De RGB para XYZ Com o desenvolvimento de vários estudos sobre a percepção das cores seção 51 constatouse que o olho humano é sensível a três cores primárias vermelho verde e azul que combinadas formam todas as cores do espectro visível A CIE Commission Internationale de lÉclairage estabeleceu um padrão para representar as cores visíveis denominado XYZ formado por três coeficientes que representam as porcentagens de vermelho verde e azul existentes em uma cor A partir dessa padronização vários sistemas de cores foram criados para representar os subconjuntos de cores color gamut pertencentes ao espaço de cores XYZ Esses sistemas utilizam pelo menos três componentes para representar uma cor Ex Sistema HSB matiz saturação e brilho tomando como base as componentes das três cores primárias e transformandoas em um novo sistema de coordenadas de cores Dois sistemas padrão foram criados para definir as componentes das cores vermelho verde e azul O primeiro padrão foi criado pelo NTSC National Television Standards Committee para utilização em sistemas de televisão e o outro padrão foi definido pelo CIE Os dois se relacionam através da equação RN GN BN 0842 0156 0091 0129 1319 0203 0006 0069 0897 RCIE GCIE BCIE onde RCIE GCIE e BCIE são as componentes das cores vermelho verde e azul do padrão CIE e RN GN e BN são correspondentes do padrão NTSC O padrão NTSC deu origem ao sistema RGB utilizado para representar o color gamut dos monitores de vídeo cuja distribuição no espaço XYZ é apresentada na Figura 518 A conversão do sistema RGB para o sistema XYZ é obtida aplicando a equação X Y Z 0607 0174 0201 0299 0587 0114 0000 0066 1117 R G B Como o sistema RGB está diretamente relacionado ao sistema XYZ os demais sistemas de cores possuem suas conversões para o sistema XYZ através de uma versão intermediária para o sistema RGB 5152 De RGB para EixosOponentes OPP O modelo de cores oponentes explica uma grande quantidade dos fenômenos psicofísicos de percepção da cor Conforme já mencionado há evidências de que o sistema de visão dos seres humanos usa um modelo de espaço no qual as respostas aos estímulos das células cones RGB existentes na retina sejam convertidas num estágio cerebral mais avançado para uma combinação de cores oponentes em um sistema cartesiano onde as novas coordenadas são chamadas de rg by e wb Esse espaço não é uniforme Kaiser e Bayton 1996 O espaço OPP é obtido pela seguinte transformação linear do RGB rg by wb 1 1 0 1 1 2 1 1 1 R G B O eixo wb representa o canal de luminância e os outros dois as crominâncias 5153 De RGB para HSV O espaço de cor HSV é uma forma natural e intuitiva para formação das cores assim como o CIELAB e CIELUV A transformação do RGB para o HSV é geralmente feita na forma não é linear mas tem a vantagem de que o processo de reversão ao RGB é facilmente realizado Para fazer a transformação usase o seguinte algoritmo Primeiro calculase os valores máximo e mínimo max máximoRGB min mínimoRGB depois os valores de saturação e brilho V max S max min max aí passase a calcular as cores ou H if S 0 H irrelevante else R1 maxR maxmin G1 maxG maxmin B1 maxB maxmin If R1 max and G1 min H 5 B1 else if R1 max and G1 not min H 1 G1 else if G1 max and B1 min H 1 R1 else if G1 max and B1 not min H 3 B1 else if B1 max and R1 min H 3 G1 else H 5 R1 convertese H em graus H H60 usase H variando de 0 a 360 S e V variando entre 0 e 1 516 USO DE CORES NAS IMAGENS A cor elemento fundamental em qualquer processo de comunicação merece uma atenção especial É um componente com grande influência no dia a dia de uma pes soa interferindo nos sentidos emoções e intelecto pode portanto ser usada deli beradamente para atingir objetivos específicos O uso apropriado de cores pode re sultar em uma rápida e correta assimilação da informação Como muitas vezes age no inconsciente de uma pessoa é um parâmetro que deve ser muito bem compreendido seu uso incorreto pode trazer resultados inde sejáveis que nem chegam a ser notados Levkowitz e Herman 1992 204 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA O uso de cores em imagens permite Mostrar as coisas conforme são vistas na natureza Representar associações simbólicas Chamar e direcionar a atenção Enfatizar alguns aspectos sociais Determinar um estado de espírito Tornar uma imagem mais fácil de ser memorizada Por se tratar de um recurso tão poderoso o uso de cor deve ser feito com cau tela Ao preparar um trabalho devemos observar que Umaescolhanãoadequadadecorespodeinterferirnalegibilidadedaimagem As cores podem apresentar características distintas em condições diferentes As cores devem ser selecionadas de modo a não causarem fadiga nos olhos do usuário e nem deixálo confuso Se elementos da imagem são agrupados com as mesmas cores devese tomar um cuidado para não agrupar elementos que não possuem nenhuma relação entre si de modo a não induzir o usuário a conclusões erradas No que diz respeito aos fatores humanos associações climáticas podem facil mente ser identificadas na preferência por certas cores De um modo geral as pes soas de lugares tropicais gostam mais de cores saturadas e com brilho já os mo radores de regiões mais temperadas possuem uma tendência ao uso de cores som brias Isso se deve ao fato de serem essas as cores que elas estão mais acostumadas a ver no seu habitat natural Outro exemplo de associação que reflete aspectos cultu rais é a cor branca no ocidente ela é associada à pureza e à alegria sendo muito usa da por noivas no dia de seu casamento No oriente é a cor da morte e da dor sendo o vermelho a cor convencional para o vestido de noiva 5161 Branco A cor branca é a chave para a comparação de cores é usada para determinar o con teúdo espectral de uma luz É a cor que possui a maior leveza e atrair a atenção em um fundo escuro Uma imagem com o fundo branco fornece a máxima legibilidade para um objeto escuro mas seu intenso brilho pode causar problemas ao se olhar para ela por um período prolongado áreas extensas de branco geralmente resultam em um brilho que dilui as cores exibidas Devemos evitála também nos cantos das CORES 205 imagens devido à grande sensibilidade do olho a intensidade de luz no campo vi sual periférico Para a reprodução de imagens recomendase uma margem estreita com uma largura próxima a 5 mm de modo a estabelecer a referência branca para um melhor julgamento da aparência da cor Em nossa cultura a cor branca está as sociada a neve pureza inocência paz leveza limpeza frio hospital vulnerabili dade palidez fúnebre rendição e esterilidade 5162 Preto A cor preta age como um estimulante para as demais cores e se harmoniza bem com todas elas Apesar de muitas conotações emocionais negativas sua conformidade faz dela um padrão para várias situações traje para noite roupa de nazistas e fascis tas grupo de adolescentes Objetos brilhantes aparentam ser mais escuros do que objetos foscos e as superfí cies pretas geralmente se tornam mais negras à medida que o nível de iluminação aumenta Contrastes simultâneos fazem com que um contorno preto torne áreas coloridas mais claras e amplas Nos dispositivos de vídeo o preto é a cor natural de fundo nenhum sinal no mo nitor ou cor no pixel Ela fornece um bom contraste com as cores brilhantes e tor nase mais legível quando em contraste com fundos claros A cor preta está associada a noite carvão poder estabilidade formalidade soli dez medo vazio morte segredos anonimato e maldição 5163 Cinza O cinza é uma cor que reduz as conotações emocionais Combina bem com todas as cores as quais por sua vez apresentam seu colorido máximo quando contrastando com cinza escuro Pode ser obtida através da mistura de branco e preto ou de cores complementa res pode também ser gerada através da mistura de pontos adjacentes pretos e bran cos como no caso de um monitor de vídeo o que provoca um tom de cinza mais vi brante do que quando se trata de um cinza uniforme Por ser uma resultante da mistura entre o preto e o branco a cor cinza não possui uma associação específica 5164 Vermelho É a cor com o maior impacto emocional universal provavelmente devido à sua as sociação com o sangue e o fogo portanto com a guerra Seu significado simbólico varia com diferentes culturas na Inglaterra simboliza a realeza nos Estados Unidos denota perigo na China representa revolução na Índia casamento 206 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A cor vermelha é uma das três cores primárias usadas nos dispositivos de vídeo RGB Mostrase muito eficiente quando usada nas imagens para sinalizar algum pe rigo ou chamar a atenção como por exemplo bordas vermelhas nos sinais de ad vertência são rapidamente percebidas Mas seu uso deve ser evitado em áreas am plas ou para a cor de fundo tratase de uma cor dominante e agressiva que chama muito a atenção A cor vermelha está associada a vitória paixão amor força energia sexualida de sangue guerra fogo perigo raiva e satã 5165 Amarelo O amarelo é uma cor incandescente com grande qualidade acolhedora Sua associa ção imediata com o sol faz com que ela simbolize a vida e o calor Nos terminais RGB essa cor é produzida pela combinação de vermelho e verde e em geral preferencialmente de baixa saturação Por ser a mais clara de todas as mati zeséumbomindicadordeatividadedaíoseuusoemfaixasdeobstruçãopolicial Não deve ser usada como cor de texto a não ser com fundo preto ou azul escuro A cor amarela está associada a sol verão serenidade ouro colheita inovação covardia traição ciúmes risco doença e loucura 5166 Verde O verde é uma cor intimamente ligada à natureza é a cor da vegetação e se tornou a marca dos movimentos ambientalistas A idéia tradicional de que a plantação significa uma certa estabilidade resultou na associação do verde com o sentimento de se gurança Acreditase que ambientes com um tom de verdeclaro promovam um esta dodepaznamentemasverdeemexcessopoderesultaremumaaparênciadoentia O olho humano é mais sensível aos comprimentos de onda próximos ao amare loverde Assim essa é a cor mais visível das três cores primárias dos terminais RGB sendo muito propícia quando se deseja passar rapidamente uma informação A cor verde está associada a vegetação natureza primavera fertilidade espe rança segurança decadência inexperiência inveja ganância fuga da realidade e má sorte 5167 Azul Por seracordocéuedomaroazulsugerearespaçoeprofundidadeÉumacor fria e suave a mais tranqüila de todas tem uma grande capacidade de relaxar e tranqüili zar as pessoas Fornece um bom fundo para cores vívidas É a cor preferida pela moda em qualquer circunstância social Simboliza autoridade e espiritualidade sendo a cor mais amplamente usada nas bandeiras nacionais mostrando assim o desejo de unidade e estabilidade CORES 207 É uma das três cores primárias dos terminais de vídeo Como o olho humano é menos sensível aos comprimentos de onda do azul o azul é uma cor difícil de ser focalizada e de se obter um bom contraste não deve assim ser usado para texto nem detalhes finos É uma excelente cor para o fundo principalmente porque podese tirar proveito de sua qualidade de expansão e profundidade infinita A cor azul está associada a céu mar espiritualidade estabilidade paz unidade frio depressão melancolia obscenidade mistério conservadorismo 517 HISTOGRAMA DE CORES A partir de um espaço de cor determinamos as características de cor de uma imagem com o auxílio de histogramas Conci e Castro 1999 Um histograma de cor de uma imagem caracteriza a sua distribuição de cores Cada ponto da imagem pode ser representado como um vetor 3D no espaço de cor usado o RGB por exemplo Nesse caso a imagem terá três histogramas um para cada canal de cor E definir esses histogramas consiste em primeiro capturar na imagem em cada pixel a intensidade de cor no formato RGB onde o valor de cada ponto da imagem Ixy é expresso por um vetor Vc Irxy Igxy Ibxy x1X y1Y onde X e Y são a largura e a altura da imagem Depois contase o número de ocorrências de cada intensidade para cada canal o gráfico desses números será o histograma do canal Han Ma 2002 Na forma mais simples esses histogramas podem ser 1D Neste caso o processo para se obter um histograma de cor consiste em definir as diversas cores presentes na imagem e contar quantos pixels há de cada uma delas Para isso primeiro devese conhecer a quantidade n de cores presentes na imagem Esse mesmo valor n será o número de elementos do histograma Depois contabilizase o número de pontos de cada cor O gráfico desses números será um histograma 1D com n células onde cada uma representa uma proporção dos pontos com aquela cor presentes na imagem hm i 1 XY X x1 Y y1 fxy fxy 1 se a cor de xy m i 0 se a cor de xy m i i 12 n onde XY são a largura e a altura da imagem em pixels m i é uma coordenada horizontal do histograma correspondendo à céula de contagem dos pontos de cor m i e hm i corresponde ao número de pontos de cada cor m i dividido pelo número total de pixels da imagem 518 ILUSÕES RELACIONADAS ÀS CORES Aberrações cromáticas fazem com que comprimentos de onda distintos sejam fo calizados em diferentes planos dentro do olho Para a maior parte das pessoas as cores vermelhas parecem se encontrar mais próximas do observador do que as co res azuis Em pintura existe uma técnica chamada perspectiva aerial na qual se pinta obje tos distantes como montanhas de azulado devido à absorção da cor amarela ou ver melha pela umidade atmosférica Tal técnica pode ser aplicada a interfaces o uso de um azul nãosaturado mostrase uma boa escolha para uma cor de fundo de tela em decoração tal cor provoca uma impressão da maior altura ou profundidade de uma sala permitindo que os demais elementos da tela apareçam com mais destaque 519 PROBLEMAS COM CORES NA COMPUTAÇÃO Observando o formato do gráfico de cores CIE Figura 58 é evidente que não é possível representar todas as cores do gráfico através da combinação das três cores básicas dos monitores vermelho verde e azul Se as 3 cores aditivas utilizadas como base para combinação de cor forem marcadas neste gráfico temse um triân gulo cujo interior define todas as cores que podem ser reproduzidas a partir destas Essa forma que define as cores possíveis de serem reproduzidas é chamada gamut Ocorre variação das cores representáveis por duas impressoras diferentes e entre monitores diferentes devido às diferenças na seleção das cores primárias usados e dos métodos de reprodução de cores Até mesmo em um mesmo dispositivos as co res podem parecer diferentes devido aos erros de calibragem desgate do fósforo di ferenças entre as tintas qualidade dos papéis e a iluminação do ambiente Para reduzir esses problemas existem sistemas de cores que usam amostras swatches calibradas para definir cores Um desses é o sistema Pantone Quando usam esses tipos de sistema as aplicações têm a necessidade de saber o número es pecífico de cada amostra swatch e a impressora é responsável em reproduzir a cor do swatch da melhor maneira possível Observandose o swatch é mais fácil deter minar a cor final do que olhando na tela Alguns sistemas tentam produzir cores Pantone que parecem melhores nos monitores usando uma tabela de consulta que define características como marca e modelo do monitor juntamente com especifi cações das condições de iluminação local Embora isso funcione bem para o design gráfico de objetos não acontece o mes mo com imagens bitmap que foram escaneadas ou renderizadas por programas 3D pois ainda não existe uma maneira realmente eficiente de mapear cores no formato Pantone Apesar disso alguns sistemas como o ColorSync da Apple possuem per fis de configuração para monitores scanners e impressoras O sistema então tenta simular e corrigir as cores em cada passo da melhor maneira possível modifican do os dados que são recebidos de scanners que são enviados para impressoras ou CORES 209 que são mostrados nos monitores Esses sistemas são um avanço na área de produ ções com alta definição de cores e estão agora se tornando mais acessíveis para ou tros usuários o ColorSync é gratuito para computadores Apple Power Macintosh e Macintosh 520 CORES EM OPENGL O OpenGL permite também representar informações de transparência o que é cha mado de canal alfa seção 65 Cores são definidas através do comando glColor e seus parâmetros são as intensidades das cores RGBA vermelho verde azul e o canal alfa As cores variam entre 00 e 10 Sendo para o branco todos os valores iguais a 1 e para o preto todos os valores iguais a 0 A linha que segue produz uma combinação de amarelo vivo com 25 da cor do fundo GlColor4f10 10 00075 Exemplos de outras cores usando RGB são Vermelho glColor3f10f00f00f Verde glColor3f00f10f00f Azul glColor3f00f00f10f Branco glColor3f10f10f10f Preto glColor3f00f00f00f 5201 Transparência Para exibir objetos transparentes em OpenGL devese utilizar as Funções de Blend ou de mistura Essas funções misturam a cor do objeto que já está na tela com a cor do objeto que está sendo desenhado num dado momento Em primeiro lugar é necessário ativar as funções de BLEND Para tanto em OpenGL usase glEnableGLBLEND Utilizando a quarta componente de cor o canal alfa podemos modificar a trans parência de um objeto Esse quarto parâmetro pode variar entre 0 e 1 sendo 0 um objeto totalmente transparente e 1 um objeto opaco Para habilitar o processamen to dessa quarta componente usamos glEnableGLALFATEST 210 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA As funções de BLEND definem como é feita a mistura entre as cores do objeto que está sendo desenhado e as imagens que já estão na tela Essa mistura é feita a partir de uma média ponderada entre o ponto da tela e o ponto do objeto que está sendo desenhado A função OpenGl para definir esses pesos é glBlendFunc Essa função recebe dois parâmetros o primeiro define o peso da cor do novo ponto e o segundo o peso da cor do ponto que já está na tela Esses pesos em OpenGL serão sempre uma função do nível de transparência do objeto ou seja de seu valor alfa Por exemplo a chamada glBlendFuncGLSRCALPHA GLONEMINUSSRCALPHA Define que a nova cor do ponto na tela será NovaCorNaTela CorDoObjeto AlfaDoObjeto CorAntigaNaTela 1AlfaDoObjeto Nesse caso as constantes têm o seguinte significado GLSRCALPHA define que o peso da cor do objeto que está sendo desenhado é o próprio valor alfa de sua cor GLONEMINUSSRCALPHA define que o peso da cor que já está na tela é de 1 alfa onde alfa é o nível de transparência do objeto que está sendo desenhado Exemplo void display void glClear GLCOLORBUFFERBIT GLDEPTHBUFFERBIT Desabilita o BLEND para o primeiro objeto glDisableGLBLEND glPushMatrix glTranslatef001 glRotatef xrot 10 00 00 glRotatef yrot 00 10 00 glRotatef zrot 00 00 10 habilita remoção de faces traseiras glEnableGLCULLFACE glCullFaceGLBACK DrawCube05 glPopMatrix Habilita o BLEND para o segundo objeto glEnableGLBLEND glBlendFuncGLSRCALPHA GLONEMINUSSRCALPHA CORES 211 NovaCorNaTela CorDoObjeto AlfaDoObjeto CorAntigaNaTele 1AlfaDoObjeto DesenhaVidroAlfaVidro xrot03f yrot02f zrot04f glutSwapBuffers RESUMO O mecanismo da visão colorida e da sensação de cores é muito complexo Em com putação gráfica a reprodução precisa das cores e diversos outros aspectos a elas re lacionados representa um vasto campo de pesquisas Ao assunto esse capítulo ape nas fornece uma leve introdução Como leitura adicional veja Color Correction for an Image Sequence de P Pham e G Pringle IEEE Comp Graph and Appl vol 15 no 3 1995 pp 3842 Para um facinante estudo dos problemas de percepção e distinção entre cor como uma característica da luz e como uma propriedade percebida nos objetos leia Color and Perception the work of Edwinhand in the light of current concepts de M H Wilson e R W Brocklebank Comtemporary Physics dezembro de 1961 212 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA CAPÍTULO 6 Animação 61 Histórico 62 Aplicações da Animação 63 Animação por Computador 64 Formas de Animação 641 Animação por QuadroChave Keyframe 642 Animação por Script 643 Animação Procedural 644 Animação Representacional 645 Animação Estocástica 646 Animação Straight Ahead 647 Animação PosetoPose 648 Animação por Comportamento ou Comportamental 649 Animação Track Based 65 Canal Alpha 66 Composição 661 Filmagem da Cena Real 662 Reconstrução da Cena em 3D 67 Captura de Movimento 671 Rotoscopia 672 Sistemas de Captura 6721 Ótico 6722 Mecânico 6723 Magnético 6724 Acústico 673 Cartoon Motion Capture 68 Animação de Personagens 3D 681 Cinemática 6811 Cinemática Direta 6812 Cinemática Inversa 682 Ossos 683 Articulações 6831 Junta de Revolução 6832 Junta Esférica 6833 Grau de Liberdade 684 Esqueleto 6841 Controladores IK 6842 Ciclo de Animação 6843 Sistemas de Animação IK 685 Músculo Flexor 686 Cabelos e Pêlos 687 Animação Facial 6871 Sincronização Labial 6872 Seqüência de Texturas 6873 Morphing 6874 Esqueleto 6875 Free Form Deformation 6876 Weighted Morphing 69 Animação de Superfícies Deformáveis 610 Produção de Animação 611 Princípios da Animação 612 Cena de Animação 613 A Animação no Processo de Aprendizado Animação do Latim Animare dar vida movimento coragem entusiasmo alma A transcrição de um dicionário acima não só define como também descreve os passos para produção de animação em computação gráfica Primeiro tentamos de senhar ou esculpir depois capturar os movimentos e por último retratar o espírito da criatura ou cena a ser animada 61 HISTÓRICO Os primeiros registros de animação datam de 2000 aC quando os egípcios pinta vam nas paredes seqüências de lutas e cenas de adoração Somente em 1828 a animação pôde ser explicada pelo entendimento do princí pio fundamental do olho humano a persistência da visão Esse princípio foi de monstrado por Paul Roget Frenchman com a invenção do thaumatrope um disco colocado em uma haste Thauma é uma palavra grega que significa magia e deu ori gem a thaumaturgy a arte de fazer mágica ou arte miraculosa No português tau maturgo é aquele que faz milagres De um lado do disco do thaumatrope Fren chman pintou um pássaro e do outro uma gaiola vazia Quando o disco girava o pássaro aparecia dentro da gaiola Isso deu origem a diversos dispositivos rotativos como o Zoetrope e os abajures que giram movidos pelo ar quente das lâmpadas projetando sombras animadas na parede Um dos artefatos mais curiosos e em uso até hoje são os Flipbooks Os flipbooks são pequenos livros ou cantos de livros que são usados para simular uma animação desenhando folha a folha A animação ganha vida ao se folhar com rapidez essas pá ginas Parece uma brincadeira de criança mas em alguns países existe uma legião de fãs e compradores de histórias complexas neste tipo de animação A maior invenção no ramo da animação foi a câmera fotográfica Quando inven tadas essas câmeras eram utilizadas somente para imagens estáticas Pouco ou qua se nada se sabia sobre como representar uma história a partir de imagens No final de 1890 Meleis introduziu os primeiros conceitos e truques para contar histórias e dar vida a coisas inanimadas hoje conhecida como animação antropomórfica Di versos outros fatos marcaram a evolução da animação em camadas e cores mas nin guém marcou mais a história da animação do que Walter Elias Disney 19011966 Walt Disney como gostava de ser chamado não só construiu novas técnicas e es túdios como transformou a animação em uma forma de arte Disney foi premiado com 31 vezes com o Oscar criou os storyboards os animatics pilotos de anima ção planos de câmera desenvolveu o uso de cores e som Ele também promoveu a idéia que a mente do personagem era a força motriz da ação e que uma chave para movimento animado era a análise do movimento real A animação hoje possui um mercado bem delineado com um público de faixa etária bem diversificada Segundo o canal Cartoon Network um terço dos seus te lespectadores estão na faixa de 1834 anos Parece curioso mas o mercado de ani mações para adultos segue em pleno desenvolvimento ANIMAÇÃO 215 62 APLICAÇÕES DA ANIMAÇÃO A animação está presente em praticamente todas as aplicações da computação grá fica Geralmente estamos acostumados a associar a animação com filmes ou propa gandas mas ela está em todos os segmentos Na engenharia por exemplo é utiliza da para diferentes tipos de verificações e visualizações Na medicina permite visua lizar e entender os movimentos e órgãos do corpo humano No ensino auxilia na criação de multimidias didáticos 63 ANIMAÇÃO POR COMPUTADOR Embora Mondelbrat descreva clips gerados por galaxias fractais em 1972 Mondel brat 1988 é mais usual se dizer que a história da animação por computador ini ciouse em 1974 por René Jodoin com o primeiro filme Hungh Esse filme foi concebido utilizando a técnica de interpolação de objetos Filmes de circuito co mercial que marcaram a história são Star Treck II 1977 que usou em poucos mi nutos Tron 1982 que usou como parte integrante do filme o Exterminador do Futuro II Jurassic Park O Segredo do Abismo e mais recentemente a série Matrix e os desenhos animados 3D de Toy Story da Pixor aos novos produtos resultantes da união PixorDisney Os cartoons podem ser produzidos a partir de desenhos ou modelos físicos No primeiro tipo os artistas criam uma sucessão de quadros de desenhos que são en tão combinados em um filme No segundo método é usado um modelo físico por exemplo um boneco de massa onde cada movimento é registrado como uma foto grafia quadro a quadro A animação por computador pode ser produzida por uma grande diversidade de métodos Uma das maiores dificuldades do animador é escolher qual desses méto dos aplicará Neste momento a experiência e intimidade com a ferramenta podem ser decisivas Enquanto em alguns casos os sistemas funcionam em outros não Na falta de experiência testar será sua única saída Basicamente podemos dividir a animação por computador em duas categorias computerassisted animation animação assistida por computador e computer ge nerated animation animação gerada por computador No primeiro caso o anima dor faz os quadroschave e o computador se encarrega de gerar os quadros interme diários O segundo apresenta um grupo maior de técnicas subdivididas nos seguin tes grupos técnicas de baixo nível low level techniques técnicas que ajudam o animador na especificação precisa do movimento e técnicas de alto nível high le vel techniques técnicas usadas para descrever como se comporta o personagem durante a animação Nesse caso alto e baixo níveis estão associados ao nível de abstração Por exemplo se tiver um sistema que permita o controle do movimento de um personagem como uma macrofunção que se resuma no comando caminhe cuidadosamente observando cada detalhe você tem um sistema de alto nível De 216 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA forma oposta se você tiver de gerar todos os quadros correspondentes a cada movi mento do andar do personagem temos um sistema de baixo nível As de baixo nível usam técnicas como as do algoritmo de interpolação inbetwee ning que ajudam o animador a detalhar os movimentos sempre que este possuir claramente as idéias do movimento pretendido Para alguns pode parecer óbvio e até mesmo obrigatório o controle de uma ani mação mas isso não é verdade O número de variantes em uma animação pode ser tão grande que seria impossível imaginar a seqüência exata do movimento Um bom exemplo ocorre quando jogamos uma bola de borracha entre quatro paredes Seria impossível imaginar a trajetória dessa bola As técnicas de alto nível são geralmente algoritmos ou modelos usados para ge rar um movimento a partir de regras Esses modelosalgoritmos são sofisticados programas computacionais capazes de simular forças físicas e realizar animações complexas Qualquer que seja a opção da técnica sempre demandará um bom esforço por parte do animador Porém como via de regra as técnicas de baixo nível sempre de mandarão um maior esforço do que as alto nível Na prática os animadores usarão ambas as técnicas ou seja sempre que as técnicas de alto nível não produzirem o movimento esperado será necessário recuar para as técnicas de baixo nível 64 FORMAS DE ANIMAÇÃO A classificação das formas de animação varia de acordo com os aspectos considera dos Além da que aqui usamos métodos de controle do movimento ou a interface com os atores podem ser usados na classificação das técnicas de animação Magne natThalmann e Thalmann 1991 641 Animação por QuadroChave Keyframe A animação por quadrochave é um processo para criação de animações pelo qual os objetos são posicionados nos quadros críticos Um quadrochave keyframe é qual quer quadro de uma animação onde supostamente ocorre um evento específico im portante Os quadros localizados entre os quadroschave são chamados de interme diários Esse processo derivado da animação tradicional foi implementado em todos os sistemas de animação por computador Os quadros intermediários são gerados au tomaticamente a partir dos quadroschave por interpolação Faley et al 1993 642 Animação por Script Uma das mais poderosas ferramentas de animação é sem dúvida a animação por script Um script é uma seqüência de instruções em uma linguagem interpretável pelo sistema para controle dos objetos e suas respectivas propriedades de anima ção textura e comportamento Um fato interessante e ao mesmo tempo polêmico é ANIMAÇÃO 217 que muitas das recentes animações foram produzidas por pessoas da computação e não por artistas Esse fato devese a intimidade que o pessoal da ciência da compu tação têm com as linguagens de programação O sistema de Scripting é a forma mais antiga de controle do movimento Uma destas é conhecida como ASAS Actor Script Animation Language que tem uma sin taxe semelhante ao LISP A ASAS introduziu o conceito de ator isto é um elemento complexo que tem suas próprias regras de animação Os atores podem comunicarse entre si através de mensagens e então sincronizar seus movimentos Isso é seme lhante ao comportamento de objetos em linguagens orientadas ao objeto Vamos então ilustrar um pequeno script para o Max b GeoSphere s sphere animate on at time 0 move b 100 0 0 scale s 1 1 025 at time 35 move b 0 100 0 at time 100 move b 200 0 0 scale s 1 1 3 Essescriptanimaumageoesferaemtornodeumaesferaalterandoaescaladaesfera 643 Animação Procedural As linguagens de script são linguagens de programação que não necessitam de com pilação e geralmente são hospedeiras de determinados sistemas Isso quer dizer que cada sistema pode e geralmente utiliza a sua própria linguagem A animação procedural utiliza o modelo de linguagem de programação por pro cedimentos incluindo a orientação por objetos e não possui uma relação direta com um determinado sistema As linguagens procedurais são aquelas em que os operadores são executados em uma certa ordem para atender a uma solicitação ou atualização de dados Um bom exemplo desse tipo de animação são os jogos Wott Policorpo 2003 Na verdade a animação procedural pode ser um pouco mais complexa mas cer tamente muito mais poderosa Alguns cientistas encaram esse tipo de animação como uma forma científica de animação Existe uma infinidade de movimentos físicos como o fogo ou as ondas que po dem ser representados por uma equação ou fórmula assim como os físicos e mate máticos o fariam Até então a representação do movimento tem sido quase que to talmente realizada pela mão de artistas Se pensarmos no fogo veremos que será impossível para um artista descrever a seqüência de animação de milhões de partí culas incandescentes Na verdade não só será difícil desenhar ou modelar como também o observar 218 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A animação procedural consiste basicamente em modelos matemáticos imple mentados em linguagens de programação para simulação de forças físicas gravida de por exemplo As melhores aplicações desse tipo implementam soluções para a simulação da dinâmica de fluidos movimento de roupas cor dos modos Barzel 1977 e de alguns animais 644 Animação Representacional Esta técnica permite um objeto mudar sua forma se movimentar e andar duran te a animação Koe Badler 1996 Existem três subcategorias A primeira é a animação de objetos articulados isto é objetos complexos compostos de seg mentos rígidos conectados Van de Panne 1996 O segundo é a animação de objetos suaves usada para deformar e animar a deformação de objetos por exemplo pele acima de um corpo músculos faciais tecidos e formas elásticas Wilhelms 1997 O terceiro é o morphing que é a transformação de uma forma em outra bastante diferente Zhong 1996 645 Animação Estocástica Este tipo de animação utiliza o processo estocástico ou randômico para controlar grupos de objetos como nos sistemas de partículas 646 Animação Straight Ahead Straight Ahead é uma forma de animação convencional na qual o animador literal mente desenha quadro a quadro na forma seqüencial partindo de um quadro ini cial Esse tipo de animação permite que novas idéias sejam aplicadas conforme a se qüência se desenvolve Geralmente é usado para seqüências de espontaneidade e descontração 647 Animação PosetoPose Na animação posetopose o animador define alguns quadroschave que definem a animação e desenha depois os quadros intermediários Esse tipo de técnica é me lhor empregada onde a posição e o tempo são importantes 648 Animação Comportamental A animação comportamental ou por comportamento é aquela em que o animador descreve um conjunto de regras para a maneira como um ou mais objetos da cena reagirão com o ambiente Um exemplo desse tipo é o sistema de partículas quando usado para multidões bandos ou grupos de animais ANIMAÇÃO 219 649 Animação Track Based Track Based é uma generalização da animação por quadroschave Enquanto nos sistemas de quadroschave todos os parâmetros devem ser especificados nos siste mas track based somente os parâmetros que controlam as interpolações devem ser especificados e em qualquer ponto do tempo 65 CANAL ALPHA Em computação gráfica uma parte de cada pixel é reservada para informação refe rente à transparência Uma imagem de um canal alpha é essencialmente uma silhu eta em preto e branco dos objetos na cena Figura 61 onde o preto representa as partes totalmente transparentes da imagem e o branco as partes totalmente opacas Os tons de cinza intermediários indicam transparência parcial Sistemas de 32bits contêm quatro canais ou seja são formados por quatro tipos de imagens Sendo três canais de 8bits 24bits ou seja um canal para os tons vermelhos Red um para os tons verdes Green e 1 para os tons azuis Blue formando assim o siste ma RGB Cada um dos canais RGB pode ser entendido como imagens em tons de cinza indicando o quanto de cada cor tem na imagem Quanto mais alto o tom mais daquela cor terá o pixel O quarto canal também tem 8bits e é chamado de ca nal alpha indicando a transparência da imagem em relação a um fundo O canal alpha é na verdade um tipo de máscara especificando como as cores de cada pixel devem ser mescladas com outros pixels quando estes estiverem sobre postos É possível alterar o canal alpha de maneira a indicar as partes que você dese ja que sejam transparentes ou não Quando você estiver criando uma imagem de um objeto em um programa 3D e optar pelo formato de 32bits o programa cria au tomaticamente o canal alpha do objeto em 3D 220 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 61 A imagem e o seu canal alpha em relação ao fundo Se quiser mesclar a imagem de uma pessoa real com a de um cenário real você tem de criar um canal alpha que defina como esta pessoa vai ser inserida na imagem Para isto será necessário filmar a pessoa em frente a uma tela azul verde ou mesmo um fundo preto Com programas de edição de imagem ou de composição como Photoshop Paint Shop Adobe After Effects etc é possível retirar a cor definida como chave cromakey do fundo e criar um canal alpha 66 COMPOSIÇÃO A composição é um conjunto de técnicas para unir os diferentes elementos renderi zados em computador com elementos reais obtidos no set de filmagem Tudo isso é possível através do canal alpha como foi explicado Na composição é possível ajustar cores das imagens adicionar a granulação típica de filme film grain trocar texturas dos objetos 3D ajustar a iluminação virtual etc Esse processo pode ser dividido em duas etapas que representam a captura da cena e sua posterior reconstrução 661 Filmagem da Cena Real Durante a filmagem da cena real devese proceder como se o personagem 3D esti vesse no local Devese simular todas as interações do personagem virtual com o ambiente real É preciso coletar o máximo de informações do ambiente de filma gem para que seja possível encaixar o personagem 3D no ambiente real Assim 3 as pectos devem ser considerados Coletar todas as informações do ambiente quanto a iluminação posição da câ mera altura da câmera tipo e tamanho da lente da câmera distância focal A Figura 62B mostra uma bola branca que servirá para o animador estimar a in tensidade cor e direção da luz no ambiente de filmagem Isso servirá para aju dar a criar e posicionar as luzes virtuais no ambiente 3D Adicionar marcadores no ambiente de filmagem Figura 62 Esses marca dores permitem a inserção correta dos personagens 3D na cena A Figura 62A mostra uma vara com faixas alternadas de cores diferentes apresentan do medidas definidas de comprimento por exemplo de 15 em 15 cm Assim o animador pode usar esta cena como referência para saber quão alto o personagem deverá aparecer No filme Parque dos Dinossauros foram usadas bolas de golfe e de pingpong para marcar o chão durante a filmagem As bo las eram enterradas parcialmente no chão de forma a aparecer somente a sua metade Interação dos elementos 3D virtuais com o elemento real Nas cenas em que os personagens 3D interagem com objetos reais devemos ter os elementos de ANIMAÇÃO 221 interações previamente filmados Por exemplo se um dinossauro vai a um lago beber água devemos gravar a cena real de forma que a água comece a mexer assim que a boca dele chega a ela Essas interações podem ser feitas no próprio ambiente de filmagem ou em estúdio com uso de croma key Neste ponto a criatividade será sua grande aliada 662 Reconstrução da Cena em 3D De posse das filmagens reais será preciso então criar uma versão em 3D sintética deste cenário e daqueles objetos com os quais o personagem 3D interage direta mente Os elementos da cena real serviram de base para criação dos corresponden tes sintéticos Com o conhecimento do tamanho e da distância da bola em relação à câmera Figura 62 é possível criar bolas em 3D do mesmo tamanho das reais e posi cionálas de acordo com a cena real e assim definir os planos 3D Para a inserção dos personagens na proporção correta usamse os marcadores de vara com medida conhecida Assim se o objeto de referência tem dois me tros e o personagem 3D tem quatro metros o personagem precisa parecer es tar duas vezes maior que a vara Para isso a vara é recriada em 3D e posiciona da de acordo os dados da cena filmada com a vara Simular a iluminação da cena real todas as fontes de luz do ambiente de fil magem devem receber marcadores O sol ou qualquer outra fonte de ilumina ção principal aquela que representa a sombra predominante pode ser simu lada com auxílio da bola da Figura 62B As lâmpadas virtuais devem ter pro priedades similares às das lâmpadas reais simulando as cores as intensida des os focos etc 222 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Referência para Luz Referência para altura FIGURA 62 Exemplo de marcadores para composição 67 CAPTURA DE MOVIMENTO A análise de movimento por meios automáticos é de grande importância para diver sas áreas da medicina desporto e reconhecimento de atividades humanas No iní cio do século XX técnicas de captura de movimento foram usadas na animação tra dicional em 2D celulóide pela Disney para adequada representação dos desenhos animados Um sistema de captura de movimento é aquele em que se permite levar os movi mentos de um ator real para um ator virtual Os motivos para o uso desses processos são a busca do realismo redução de risco em cenas perigosas barateamento da pro dução e análise de movimento e produtos 671 Rotoscopia Derivada da técnica de animação tradicional a rotoscopia consiste na utilização de um filme ou vídeo de um personagem real como base para a animação Essa técnica foi usada tradicionalmente para elaborar desenhos animados baseados nos movi mentos de animais ou pessoas Disney por exemplo utilizou essa técnica para cap turar os movimentos do personagem Pluto Na época um televisor era fixado ao tampo de uma mesa e o desenhista capturava o movimento quadro a quadro dese nhando em papel manteiga Hoje os principais sistemas de animação possuem di versos recursos para automação da captura do movimento por rotoscopia Apesar de existirem técnicas melhores e de estar sendo utilizada há várias déca das a rotoscopia também foi utilizada para captura de movimento em grandes su cessos recentes do cinema como o Exterminador do Futuro II Figura 63 Na década de 1980 o tipo de captura de movimento usado era uma extensão da rotoscopia em que os movimentos dos atores eram filmados ao mesmo tempo em mais de um ponto de vista Marcadores eram colocados na pessoa e então manual mente codificados nos correspondentes pontos do espaço 3D Esse processo ficou conhecido como fotogrametria 672 Sistemas de Captura No fim da década de 1980 a captura de movimento que hoje conhecemos começou a aparecer Os sistemas de captura de movimento evoluíram muito nas últimas déca das com algoritmos capazes de reconhecer os marcadores no corpo da pessoa Atual mente existem basicamente quatro tipos ótico mecânico magnético e acústico 6721 Ótico É o tipo mais usado atualmente Esses sistemas podem oferecer ao ator mais liber dade de movimentos uma vez que não precisam de cabos ligados ao corpo Eles uti lizam pequenas bolas ou discos refletivos que são fixadas ao corpo do ator Podem ANIMAÇÃO 223 ser fixados nas articulações ou nos membros mas não nas juntas Precisam de pelo menos três câmeras de vídeo cada uma equipada com uma fonte de luz geralmente infravermelha dirigida para iluminar a área de visão da câmera As bolas ou discos refletem a luz na direção da câmera e um computador capta e sincroniza a imagem Os dados das posições x y z de cada marcador são aplicados a um sistema de cine mática inversa para animar um esqueleto 3D Uma desvantagem desse sistema é a facilidade com que o corpo do ator obstrui a reflexão das bolas Esse problema pode ser contornado usandose mais câmeras 6722 Mecânico É um dos tipos mais antigos de captura de movimento e ainda hoje é o segundo mais usado Possui alavancas que transformam movimentos rotacionais em dados de computador em tempo real É baseado em um conjunto de armações que devem ser aderidas ao corpo do ator As armações são conectadas entre si usando uma série de codificadores rotacionais e lineares potenciômetros Esses codificadores são conectados a uma interface que lê todos os codificadores ao mesmo tempo Para captura facial os tipos mais usados são os mecânicos e ópticos 6723 Magnético O terceiro tipo mais em uso captura o movimento por um transmissor magnético central e um conjunto de receptores que são colocados em várias partes do corpo 224 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 63 Captura de movimento com a técnica de rotoscopia Tem a vantagem de não sobrepor os marcadores mas a desvantagem de utilizar vá rios cabos fixados ao corpo do ator atrapalhando sua atuação e podendo ser afeta dos por qualquer objeto de metal na área de captura 6724 Acústico Este tipo utiliza marcadores que são transmissores de áudio capazes de calcular a distância pelo tempo de resposta do sinal Não é muito utilizado e apresenta as mes mas vantagens e desvantagens do magnético A captura de movimento não se limita a capturar apenas os movimentos huma nos Para algumas cenas de filmes como Parque dos Dinossauros foram usados bo necos na forma de dinossauros 673 Cartoon Motion Capture Essa técnica de captura de movimento de desenhos animados 2D foi recentemente proposta pela Universidade de Stanford Basicamente a técnica se parece com a de morphing Utilizando as técnicas de rotoscopia e composição o animador posiciona alguns pontos de controle no entorno do personagem 2D A partir dos pontos de controle o sistema cria uma animação com o canal alpha que contém a silhueta do persona gem O animador então define uma série de quadroschave para a animação como os criados na animação posetopose reposicionando os pontos de controle com referência a posição inicial Para o sistema a variação da posição dos pontos será a informação transformada em dados de captura de movimento que poderá ser usa da futuramente para animar outros personagens Essa técnica ainda não está dispo nível comercialmente mas com certeza será introduzida como fonte de captura de movimentos 68 ANIMAÇÃO DE PERSONAGENS 3D Durante a fase de animação os animadores criam a animação primária e depois a se cundária A animação primária consiste em animar as articulações e movimentos principais como o caminhar A animação secundária consiste em animar os peque nos movimentos que dão realismo como movimento de músculos e gordura respi ração piscar de olhos etc Para representar criaturas animadas é conveniente armazenar as relações entre cada porção móvel diferente dos elementos geométricos que compõem o persona gem Tomando como exemplo o homem as partes responsáveis pela deformação e movimento da malha do personagem 3D recebem o nome de seus correspondentes com a estrutura real do corpo humano Os ossos bones são elementos individuais de estruturação definidos a partir do comprimento e vetor de direção estabelecen do a ligação entre duas articulações As articulações joint são os pontos pivôs de ANIMAÇÃO 225 rotação que estabelecem a conexão entre os ossos podendo apresentar até três eixos de rotação O esqueleto é o conjunto formado por todos os ossos e articulações componentes da estrutura de deformação Além da parte óssea temos os músculos flexores que além de limitar o movimento do esqueleto deformam a malha O aspecto mais importante a ser levado em consideração para a síntese de movi mento em computador é o domínio do software a ser utilizado Independente do programa de síntese de movimento empregado um software de animação tridimensional gerencia as relações entre as diversas camadas que compõem um personagem sendo o mediador da interação entre o animador e o personagem virtual criado possibilitando o controle e o refino dos movimentos dos gestos e das ações realizadas pelos personagens e objetos animados Para o controle de movimento em personagens tridimensionais criados em com putador podemos identificar três camadas primárias para a sua construção Uma primeira camada composta pela estrutura formada pelos ossos respon sável por receber a entrada de dados sobre rotação e translação da estrutura do personagem Uma segunda camada que define a distorção do modelo geométrico que apresenta os controles de deformações quando o personagem por exemplo senta ou fala Uma terceira camada que descreve a superfície e a aparência da geometria que compõem o personagem ou objeto skin ou malha Ao contrário das de mais esta será vista como a forma final do personagem Na prática o processo de animação 3D ocorre na seguinte seqüência Baseado na história é feito o desenho em 2D do personagem demonstrando suas expressões Em seguida ocorrem simultaneamente a modelagem 3D do personagem e a cons trução do esqueleto A malha do personagem é então fixada no esqueleto e a anima ção é desenvolvida 681 Cinemática Diversas aplicações precisam representar o complexo movimento humano e ani mal Métodos tradicionais de animação baseados em quadroschave não trazem a realidade desses movimentos o que proporcionou a criação de inúmeras técnicas para a resolução desse problema Dentre as mais conhecidas estão a Scripting Ani mation Procedural Animation Forward Kinematics cinemática direta e Inverse Kinematics cinemática inversa A captura de movimento é atualmente a melhor fonte de dados de movimentos para a cinemática As funções cinemáticas são usadas para diferentes fins Na robótica elas são usadas para calcular a trajetória de um braço mecânico baseado na posição de um objeto nos jogossãousadasparadarrealidadeaosmovimentoseparaguiarporexemploobraço 226 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA de um jogador a um objeto e por fim nos trajes de captura de movimento são utiliza das para minimizar o uso de dispositivos de posição e orientação fixados à roupa Um corpo humano pode ser modelado com um conjunto de 19 articulações co nectadas por membros Figura 64 e dispostas numa estrutura hierárquica Figura 65 Se o grau de liberdade dessas articulações for conhecido ou especificado a po sição final do membro pode ser facilmente computada ANIMAÇÃO 227 1Cintura 2Virilha Direita 3Virilha Esquerda 4Joelho Direito 5Joelho Esquerdo 6Tornozelo Direito 7Tornozelo Esquerdo 8Ponta do Pé Direita 9 Ponta do Pé Esquerda 10Espinha Dorsal 1 11Espinha Dorsal 2 12Espinha Dorsal 3 13Ombro Direito 14Ombro Esquerdo 15Cotovelo Direito 16Cotovelo Esquerdo 17Pulso Direito 18Pulso Esquerdo 19Pescoço 19 13 14 12 11 16 10 15 17 18 3 2 1 4 5 6 7 8 9 FIGURA 64 Conjunto das articulações humanas 1Cintura 2Virilha Direita 3Virilha Esquerda 4Joelho Direito 5Joelho Esquerdo 6Tornozelo Direito 7Tornozelo Esquerdo 8Ponta do Pé Direita 9Ponta do Pé Esquerda 10Espinha Dorsal 1 11Espinha Dorsal 2 12Espinha Dorsal 3 13Ombro Direito 14Ombro Esquerdo 15Cotovelo Direito 16Cotovelo Esquerdo 17Pulso Direito 18Pulso Esquerdo 19Pescoço FIGURA 65 Estrutura hierárquica do conjunto das articulações humanas 6811 Cinemática Direta A estrutura da Cinemática Direta Foward KinematcsFK é a mais básica de todas as estruturas Quando é criada uma árvore de ossos ou objetos vinculados define se uma hierarquia FK Os ossos FK são filhos do anterior e assumem as proprie dades de posicionamento translação e rotação do osso anterior FK usa a metodologia de hierarquia topdown onde a posição das articulações pais interfere nas articulações filhas A função que descreve a forward kinematics se torna cada vez mais complexa com o aumento de articulações podendo ser impos sível revertêla FK é uma boa introdução para o entendimento de uma estrutura básica de árvore e como ela funciona mas se torna muito difícil para o animador executar o traba lho porque todos os ossos filhos ficam dependentes de qualquer animação que se for fazer no osso pai Uma vantagem no uso de FK é que você poderá fazer uso de arcos para o controle de quebras nos movimentos das juntas Quando se trabalha com FK geralmente são usadas malhas segmentadas como uma marionete por exemplo Uma malha segmentada é um grupo de peças conecta das nas juntas ligadas formando uma hierarquia Os esqueletos FK são geralmente usados em cenas com pouco movimento como uma narrativa por exemplo ou uma cena em que o personagem está falando e não se movimentando Isso na verdade não é uma regra A escolha entre as estruturas FK ou IK depende é claro do animador e de como ele imagina na sua criação os movimentos dos personagens 6812 Cinemática Inversa Já a Cinemática Inversa Inverse Kinematics utiliza a metodologia de hierarquia inversa na qual as posições das articulações filhas interferem nas articulações pais A função que a descreve calculará a posição e orientação das articulações e mem bros pais a partir da posição final da articulação filha da hierarquia ou seja com a estrutura IK um osso do pé na sua posição final definirá como os outros ossos do joelho e quadril diverão girar e se posicionar tornando a animação de um andar bem mais convincente A estrutura IK tem uma difícil configuração mas pode ser compensadora se cria da e observada corretamente Em um ciclo de um andar por exemplo o animador poderá poupar um bom tempo do trabalho pois essa estrutura facilitará esse tipo de movimento Comparandose as duas técnicas podemos perceber que a IK possibilita a utili zação de movimentos mais complexos com mais facilidade do que a FK Porém em contrapartida a IK faz com que o movimento seja definido por uma função o que pode resultar em movimentos indesejados Concluímos então que em muitos ca sos a solução ideal poderá ser a utilização de ambas as técnicas para o mesmo per sonagem 228 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 682 Ossos A estrutura de ossos criada para ser a base de deformação do personagem articulado é utilizada para o estabelecimento de vínculo geométrico entre os diferentes ele mentos possíveis de serem animados Essa estrutura composta por segmentos co nectados por articulações de forma hierárquica é a base para todas as deformações que serão aplicadas para a alteração do aspecto visual das superfícies Fisiologicamente não podemos fixar um eixo ou centro de rotação para uma ar ticulação pois são executados simultaneamente movimentos de rotação e desliza mento nas áreas de contato dos ossos Para a animação voltada para o entreteni mento podemos ignorar as pequenas translações ocorridas e criar um modelo de articulação ideal que faça uso apenas de coordenadas angulares para registrar o movimento dos parâmetros de rotação Os ossos podem ser também elásticos ou seja variar de tamanho durante a ani mação permitindo simular movimentos de criaturas que na verdade não possuem um esqueleto como minhocas ou criaturas típicas de desenho animado 683 Articulações São muito importantes para possibilitar posturas e gestos Lee e Kunii apresentam um interessante estudo sobre as mãos em Lee Kunii 1995 As articulações mais utilizadas na criação de personagens animados são as juntas de revolução e esférica descritas a seguir 6831 Junta de Revolução É o tipo de junção mais utilizada e o termo revolução se deve ao fato de que o ex tremo de um osso é rotacionado no extremo do outro osso componente da cadeia cinemática Por obter rotações apenas em um simples eixo a junta de revolução tem apenas um grau de liberdade Existem três formas de juntas de revolução R1 Dobradiça hinge é a forma mais comum e simples de articulação onde um osso A gira em um eixo perpendicular a outro osso B como as articulações encontradas no cotovelo e no joelho O ponto localizado no extremo final do osso A realiza um movimento circular com centro de rotação no extremo final do osso B R2 O eixo de rotação é paralelo aos dois ossos A e B O ponto extremo de B não pode mudar sua posição no espaço mas pode girar longitudinalmente em relação ao osso A Podemos criar um modelo simplificado para o movimento do pulso ao girar a palma da mão para cima e para baixo com esse tipo de junta ANIMAÇÃO 229 R3 É uma variação de R2 o eixo de rotação permanece como na forma anterior mas o osso B muda de posição e é colocado perpendicularmente em relação ao osso A Dessa forma o extremo final de B rotaciona ao redor do ponto final do osso A como ao realizar todos os movimentos possíveis do pulso 6832 Junta Esférica Este tipo de articulação implementa o conceito de junção ballandsocket onde uma esfera está livre para executar qualquer movimento de rotação enquanto esti ver segura por um encaixe 6833 Grau de Liberdade As possibilidades de movimento do mecanismo de articulação no espaço tridimen sional correspondem ao número de parâmetros cinemáticos independentes permi tidos e são chamados de grau de liberdade DOF Degree of Freedom Quanto maior o número de DOFs maior a liberdade de movimentação da estrutura e confi gurações possíveis para o estabelecimento de poses O grau de liberdade está diretamente relacionado aos ângulos de rotação em tor no dos eixos x y e z Capítulo 2 Podemos limitar o grau de liberdade para um ou dois eixos O pulso humano é um bom exemplo de grau de liberdade em dois eixos se observarmos os movimentos de nosso pulso podemos rotacionálo de cima para baixo e viceversa e de um lado para o outro ou seja em dois eixos Nosso joelho é um bom exemplo de grau de liberdade em um eixo ou seja de cima para baixo Podemos também limitar o movimento pelo ângulo máximo possível entre as ar ticulações Se movimentarmos nosso joelho para trás veremos que ele percorre um ângulo máximo de 180º Observando qualquer criatura viva vemos que quando a articulação se rotaciona próxima ao limite máximo há uma redução da velocidade isso tem o nome de amortecimento Esse fenômeno é ao mesmo tempo a representação do limite da musculatura e da capacidade de rotação em um determinado eixo de uma junta Neste caso podemos controlar os atributos de amortecimento de duas formas alcance e resistência Figura 66 O alcance referese aos limites máximos e mínimos das articulações e pode ser controlado pelo ângulo máximo de rotação A resistência está relacionada à capacidade elástica dos músculos e pode ser con trolada por um atributo de resistência que determina o alcance 684 Esqueleto O conjunto formado pela ligação entre os ossos e articulações é denominado esque leto O esqueleto é organizado também segundo um modelo hierárquico onde as 230 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA transformações ocorridas no topo da hierarquia são herdadas pelos segmentos infe riores O nível mais alto de uma estrutura hierárquica é chamado origem ou raiz root cada origem de uma composição pode ter um ou mais filhos child Nesse arranjo o pai parent de um osso é o segmento imediatamente acima na cadeia cinemática que controlará o movimento de todos os ossos localizados abaixo Des sa forma apenas o acúmulo das transformações geométricas entre os sistemas de coordenadas das articulações ou seja ao movimentar o osso do braço toda a estru tura inferior antebraço punho mão e dedos acompanhará esse movimento Simulando uma estrutura biomecânica real o esqueleto tem a função de receber as informações de translação e rotação simples para que sejam posteriormente aplicadas na geometria original Outros parâmetros também armazenados pelo esqueleto são A estrutura hierárquica de toda a ramificação dos ossos descrição do estado de cada osso em relação aos segmentos estabelecidos pela vinculação hierár quica através da definição dos manipuladores Os parâmetros das articulações matrizes de transformação com os parâme tros cinemáticos relativos ao comprimento posição orientação distância re lativa ângulo formado entre os segmentos adjacentes e rotação longitudinal twist ANIMAÇÃO 231 Início da Resistência Limite de Alcance FIGURA 66 Atributos de amortecimento da articulação da mão Os limites de rotação e atributos físicos restrições arbitrárias concedidas às articulações para restringir o movimento nos eixos de rotação Podem ser atribuídos valores de resistência oferecida pela articulação ao movimento e aos limites para o ângulo de rotação possível para uma junta Um esqueleto para animação não precisa ser a cópia exata do esqueleto real do personagem Um esqueleto pode ser composto por uma ferramenta especial de ani mação Monheit e Badler 1991 Geralmente iniciamos a construção do esqueleto a partir das pernas dando as proporções dos ossos à malha do personagem Quando pensamos em um esqueleto real pensamos primeiro nos ossos e depois nas articulações que permitirão o mo vimento Na animação por computador precisamos primeiro focar nas articula ções e depois no relacionamento hierárquico indicado pelos ossos Figura 67 Observe que o osso tem um formato cônico com lados de polígonos triangulares cujas extremidades são usadas para definir as hierarquias Logo a junta na parte grossa estará hierarquicamente superior a junta na parte fina ou seja será o pai da mais fina Quando o pai se move o filho também se move o inverso não é verdadei ro Qualquer série simples de articulações conectadas por ossos é chamada de ca deia de articulação A articulação mais alta na hierarquia da cadeia de articulação é chamada de articulação pai Um membro consiste em uma ou mais cadeias de articulação que ramificamse em uma árvore de estrutura Figura 68 A articulação mais alta na hierarquia desse esqueleto é chamada de articulação raiz quando a articulação raiz se move ou gira tudo deve mover ou girar com ela Existem dois caminhos básicos para posicionar uma cadeia de articulação as já comentadas cinemática direta e cinemática inversa Com a cinemática direta temos de especificar as rotações de cada articulação indi vidualmente a partir da articulação pai e em todas as articulações hierarquicamente abaixo Essa abordagem é excelente para criar movimentos detalhados de arco 232 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Articulação Pai Osso Articulação Filho FIGURA 67 Relacionamento hierárquico indicado pela forma triangular do osso Com a cinemática inversa tudo o que você terá de fazer é dizer à articulação mais baixa na hierarquia da cadeia de articulação onde será sua nova posição todas as articulações acima automaticamente girarão A cinemática inversa oferece um ca minho muito intuitivo para posicionar uma cadeia de articulação porque habilita uma meta dirigida de posicionamento 6841 Controladores IK Para posicionar uma cadeia de articulação com a cinemática inversa será necessá rio adicionar uma ferramenta especial para o esqueleto Essa ferramenta não possui um nome específico chamaremos de Controladores IK Um controlador começa na articulação pai e pode terminar em qualquer articu lação abaixo dela Por exemplo para cada braço você pode criar um controlador que controle a cadeia de articulação que começa na articulação do ombro e finaliza na articulação do pulso Figura 69 ANIMAÇÃO 233 Controlador FIGURA 69 Controlador IK iniciando na articulação do ombro e finalizando na articu lação do pulso FIGURA 68 Árvore de estrutura de uma cadeia de articulação Os controladores não só facilitam o processo de posicionamento como também desenvolvem um importante papel na solução dos movimentos entre os qua droschave A arquitetura de um controlador é composta por uma série de elementos e defi nições como mostra a Figura 610 Articulação Inicial Start Joint é onde começa o controlador IK Deve ser a primei ra articulação na hierarquia da cadeia de articulação por exemplo a articulação raiz Articulação Final End Joint é onde termina o controlador IK Deve ser a última ar ticulação na hierarquia da cadeia de articulações Fio Controlador Handle Wire é uma linha que percorre todos os ossos indo da arti culação inicial até a final End Effector é o fim do controlador IK e está localizado na articulação final Objetivo Goal indica onde o controlador deve estar Você pode movêlo para qualquer ponto da cena O controlador usará essa posição para determinar o movi mento Disco de Rotação Rotation Disc está localizado na articulação inicial e indica como a cadeia de articulações pode rotacionar 234 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Disco de Rotação Indicador de Plano Fio Controlador Articulação Inicial Vetor de Controle Disco de Deformação Articulação Final Vetor Pólo FIGURA 610 Elementos da arquitetura de um controlador IK Disco de Deformação Twist Disc está localizado na articulação final e é usado como ferramenta para trançar a cadeia de articulações Indicador de Plano Plane Indicator indica a orientação do plano da cadeia de arti culações que é o grau de deformação na cadeia de articulação em relação ao plano de referência Pode ser imaginado como a reflexão do plano da cadeia de articulação no disco de rotação Plano de Referência Reference Plane quando há a rotação e a deformação da ca deia de articulações o plano deve rotacionar em relação a algum outro plano para que o grau de deformação possa ser medido Para isso o plano da cadeia de articula ção rotaciona em relação ao plano de referência O plano de referência é definido pelo Vetor de Controle e pelo Vetor Pólo Vetor de Controle Handle Vector é a linha que vai da articulação inicial até o End Effector É usado para indicar em qual articulação o controlador IK deve iniciar e acabar Vetor Pólo Pole Vector o vetor pólo inicia na articulação inicial e pode ter minar em qualquer articulação O propósito do vetor pólo é definir o plano de referência 6842 Ciclo de Animação O ciclo de animação é uma poderosa técnica derivada da animação tradicional Essa técnica é baseada na observação do movimento contínuo no processo de caminhar correr ou qualquer movimento que se repita Desenvolver um ciclo de animação nãolinear envolve duas poseschave onde a primeira e a última poses do ciclo são iguais No caso da caminhada por exemplo as poseschave intermediárias do ciclo são quando um dos dois pés está plantado no chão para corrida quando os dois estão no ar e quando um pé está acima do outro 6843 Sistemas de Animação IK Uma das formas mais fáceis de controlar uma animação de personagem é usando um sistema de animação IK Esses sistemas permitem a inserção automática de modelos de controladores IK préfabricados com formas variáveis por exem plo bípede quadrúpede com ou sem rabo etc Esses modelos podem ser facil mente deformados para adaptaremse à escala da malha do personagem Figura 611 As diferenças entre o sistema de animação IK e as estruturas ósseas são descritas na tabela que segue ANIMAÇÃO 235 Estrutura Óssea Sistemas de Animação IK você cria a sua estrutura de ossos o sistema cria uma estrutura para você controle de transformações ilimitadas o sistema limita o movimento e as rotações acesso a todas as funções do sistema de modelagem interface limitada pelo sistema de modelagem difícil de aplicar arquivos de movimentos motion capture fácil de aplicar arquivos de movimentos permite animar qualquer tipo de objeto permite somente animar objetos com aspecto humano ou animal animação manual animação automática com funções avançadas para multidões Como podemos ver a estrutura óssea é mais versátil do que os sistemas de ani mação IK Em compensação o sistema IK disponibiliza em seus arquivos uma va riedade enorme de ciclos de animação captados em sofisticados equipamentos de motion capture com controles dos limites de movimento predefinidos 685 Músculo Flexor Para animar as deformações de pele será necessário usar ferramentas de deforma ção especiais chamadas flexores Os flexores são ferramentas de alto nível para usar com peles malha e esqueletos O efeito provocado na malha dependerá da posição do esqueleto Os flexores podem ser divididos em reticulados lattice esculturais sculpt ou de grupo cluster 236 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 611 Um salto para trás usando o sistema de animação IK Umflexorreticuladoinfluenciaamalhaemvoltadasarticulaçõesouosossosdasar ticulaçõesEsseflexorenrugaealisaamalhaedádefiniçãomuscularemvoltadoosso Um flexor escultural influencia a malha em volta das articulações ou os ossos das articulações criando saliências e inclinações A Figura 612 demonstra a formação da junta do antebraço e do bíceps utilizando o flexor As deformações anatômicas provocadas pelos flexores podem ainda simular o efeito de juntas do joelho ou co tovelo Um flexor de grupo controla os pontos da malha em volta das articulações com variações percentuais de influência O tempo que você gasta para construir um esqueleto e criar os flexores é bem gasto Uma boa construção será recompensada na hora de animar No exemplo da Figura 613 a imagem à direita mostra o número de controladores para animar o di nossauro da imagem à esquerda A estrutura de animação desse dinossauro usou 138 ossos 34 músculos 84 dummys ou helpers 10 controladores IK e 18 pontos de referência 686 Cabelos e Pêlos A animação de pêlos é importante na geração realista de personagens humanos ou animais Hzinen e Walter 2001 O mesmo processo pode ser aplicado na anima ção de gramas ou qualquer outro tipo de objeto parecido Contudo existem diver sos problemas relacionados à quantidade de pêlos que não raramente ultrapassam a casa dos duzentos mil Para o filme Um Lobisomem Americano em Paris foram renderizados cerca de 35 milhões de pêlos no corpo do Lobisomem As técnicas de renderização de cabelospêlos são bem recentes Em 1988 por exemplo Miller propôs a geração de cabelos pela modelagem de triângulos No ano ANIMAÇÃO 237 FIGURA 612 Formação da junta do antebraço e do bíceps utilizando o flexor seguinte Kajiya e Kay propuseram a utilização de mapeamento tridimensional Em 1992 Watanabe e Suenaga apresentam um modelo considerando cada fio formado por seqüência de prismos triangulares Watanabe e Suenago 1992 Atualmente os sistemas de animação de pêloscabelos são geralmente baseados na interpolação entre cabelos guias Os cabelos guias são splines ou seja o anima dor pode posicionar dois pontos para definir as curvas que serão o cabelo guia Os cabelos relacionados com esses tomarão a forma dessa curva Devido ao formato va riado da pele um bom modelo deverá ter cerca de 200 cabelos guias no corpo Outras questões relevantes são os parâmetros relacionados ao cabelo como es pessura comprimento cor da raiz a ponta forma liso encaracolado especulari dade influência da gravidade inércia etc Para um maior realismo cada cabelo deve ser capaz de receber e projetar sombras e ainda interagir com outros cabelos ao se movimentar com o vento ou como personagem o que dá volume e determina a direção na colisão entre fios 687 Animação Facial Animação facial referese à criação de objetos tridimensionais assemelhados a fa ces capazes de simular expressões fala e movimentos característicos da face Esse campo tem sido objeto de pesquisa constante nos últimos tempos e pode ser en contrado em interfaces sofisticadas de homemcomputador jogos interativos mul timídias realidade virtual etc As tecnologias de suporte incluem síntese da fala e inteligência artificial Hong et al 2002 A expressão facial humana foi assunto de investigação científica por mais de 100 anos Os esforços em relação à expressão facial por computador começaram há aproximadamente 25 anos É interessante que a maioria das técnicas atualmente empregadas envolvam os princípios desenvolvidos na comunidade científica em alguns casos várias décadas atrás 238 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 613 A complexa estrutura de animação de um dinossauro O mais antigo trabalho com computadores baseado em expressões faciais data do início da década de 1970 Em 1971 Chernoff propôs o uso de faces bidi mensionais como forma de representar dados dimensionais A primeira anima ção tridimensional foi criada por Parke em 1972 Em 1973 Gilleson desenvol veu um sistema interativo para montar e editar imagens faciais a partir do dese nho de linha E em 1974 Parke desenvolveu um modelo facial tridimensional parametrizado Na década de 1980 foram desenvolvidos os primeiros modelos de controle de músculo da face e técnicas de caricatura facial Em 1985 a película animada do cur ta Tony de Peltrie foi um marco para a animação facial Pela primeira vez foi mos trado que a expressão facial e a animação da fala eram fundamentais para se contar uma história Nesse período também foram desenvolvidos modelos de novos mús culos por Waters e um modelo abstrato da ação do músculo por Magnenat Thalmann Na década de 1990 a animação facial atingiu o realismo com o filme Toy Story desenvolvido pelo estúdio Pixar Quando falamos em animação facial não podemos deixar de mencionar o filme Sherk no qual os personagens são capazes de expressar os diálogos e as emoções através de um complexo sistema de animação facial desenvolvido na PDIDream Works Utilizando ferramentas especiais chamadas shapers basicamente um pro cesso de camadas que deforma a superfície a partir do seu interior os animadores puderam realizar sofisticados movimentos aplicando camadas de ossos músculos gordura pele cabelos e roupas que interagem entre si Essencialmente o crânio do personagem é formado no computador e coberto com uma camada de músculos que simulam os verdadeiros da face Depois tudo é coberto com a pele e programa do para responder às manipulações dos músculos como aconteceria num rosto hu mano completado por rugas marcas de expressão e outras imperfeições Centenas de controles estão ligados no rosto como se fossem nervos humanos permitindo aos animadores simularem os fonemas da fala para uma perfeita sincronia labial No fil me há também avanços na criação de ambientes complexos e orgânicos de roupas que se movimentam dobram e reagem à luz como tecidos de verdade do fogo e flui dos com viscosidades diferentes obtidas através do uso do premiado Fluid Anima tion System FLU da PDIDreamWorks Existem diversos métodos de animação facial dentre os quais podemos citar 6871 Sincronização Labial O processo de animação facial em 3D segue a linha do modelo de animação 2D onde o animador deve desenhar todas as posições labiais da cena e modificálas ten tando uma sincronização labial Lip Sink da fala ANIMAÇÃO 239 6872 Seqüência de Texturas Neste método a animação é conseguida através da troca do mapeamento para cada posição da boca Para isso é necessário um arquivo de posição ou textura para cada mudança de fonema Matheus et al 2002 6873 Morphing Neste método são modeladas faces para cada fonema e expressão O software en tão faz a interpolação das faces criando a sincronização A técnica também é muito útil para caracterizar o envelhecimento do personagem Rowland e Perrett 1995 6874 Esqueleto Como descrevemos anteriormente a idéia de articulações simulando esqueleto pode ser usado para animar qualquer coisa inclusive a face 6875 Free Form Deformation Para criar as diversas posições da boca utilizamos uma ferramenta de deformação so breamalhadorostoquefuncionabasicamentedamesmamaneiraqueoesqueleto 6876 Weighted Morphing Da mesma maneira que o Morphing são modeladas as posições da face para cada grupo de músculos faciais fonemas ou expressões Essas posições chamados VISEMES são aplicadas como deformação à face inicial neutra e podem ser mixa das em diferentes proporções propiciando uma diversidade de poses Normalmen te esse é o método predileto dos animadores devido à sua rapidez e facilidade de criação de novas posições Independente da escolha do método os fonemas da língua portuguesa podem ser formados por no mínimo doze posições onde teremos cinco para as vogais A E I O e U e mais sete para o grupo de sons BPM CKGQ DNTL FV R SZ JXCH Para isso temos de quebrar o áudio das frases identificando os picos de fonemas e seu tempo em quadros Além da definição da quantidade de posições dos fonemas devemos definir faces para os sentimentos que o personagem terá durante a animação felicidade triste za surpresa medo ódio desgosto etc Em alguns casos dependendo do realismo desejado você poderá optar pela reti rada de alguns fonemas deixando somente aqueles que apresentam uma variação maior entre os picos É importante observar alguns aspectos da fala humana por exemplo a coarticu lação ou seja sempre que iniciamos uma fala nossa boca antecipa a forma de emis 240 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA são do próximo fonema Procure estudar e observar os sotaques e expressões regio nais Animadores freqüentemente utilizam espelhos e demonstrações com o pró prio corpo para captar a essência do movimento Zahng e Cohen 2002 69 ANIMAÇÃO DE SUPERFÍCIES DEFORMÁVEIS Nos últimos anos temos percebido um crescente interesse no desenvolvimento de modelos de animação baseados na física Engrenagens capazes de simular colisões gravidade entre outros fenômenos passaram a ser distribuídas em conjunto com os browsers mais usados de navegação na Internet Inicialmente a animação era rea lizada apenas com objetos rígidos mais tarde surgiram os objetos articulados e re centemente aqueles ditos flexíveis ou deformáveis A animação de personagens ou objetos deformáveis exige que se possua um mo delo geométrico que permita a mudança de forma ao longo do tempo Em computa ção gráfica isso pode ser definido através de modelos físicos de curvas superfícies ou mesmo sólidos deformáveis O objetivo principal na simulação de modelos deformáveis é produzir movimen tos fisicamente realistas Exemplos incluem a simulação da musculatura do corpo humano a fim de representar realisticamente a pele de um personagem falando a simulação do fluxo de líquidos viscosos como por exemplo derramamento de óleos ou ainda a simulação de tecidos parte essencial de qualquer personagem e produto para a indústria de vestuário Ng e Grimsdale 1996 O modelo geométrico para simular uma superfície deformável consiste em uma malha representada por uma matriz de pontos M Cada elemento Mij dessa matriz contém uma posição xyz correspondente a um ponto da superfície em um espaço tridimensional Considerase ainda r como a distância entre os elementos da matriz M já definida Para simular fisicamente uma malha flexível podemos usar o conceito de mola elásticas ou que obedecem a lei de Hooke Esse modelo baseiase fundamental mente na aplicação de forças sobre os diversos pontos de massa da malha gerando novas posições para o equilíbrio dos mesmos Considerando a aplicação de apenas três forças distintas da gravidade de elasti cidade e de curvatura ou torção obtemos uma força resultante em cada ponto da malha que pode ser calculada da seguinte forma Fresultante Fgravidade Felasticidade Fcurvatura Frestrição Isso no entanto não quer dizer que não possam aplicar outras forças ao modelo Por exemplo para incluir a simulação da força do vento ou qualquer restrição bas ta acrescentar este elemento na soma acima ANIMAÇÃO 241 A produção de uma animação tipicamente segue os seguintes passos 1 Uma história é inventada 2 Os personagens da história são criados ganhando personalidades e compor tamentos 3 Desenvolvese um storyboard No storyboard desenhase cada tomada de cena na ordem que o filme ocorre O storyboard fornece uma estrutura e um plano global para a animação ou filme permitindo ao diretor e sua equipe ter uma idéia clara de onde cada tomada se encaixa no filme Incluise uma breve explicação da tomada 4 Com base no storyboard são criados os quadroschave 5 ParatestarosmovimentosfazseoanimaticOanimaticéumrascunhoanima doquevemsendolargamenteusadoporgrandesprodutorasgraçasapopulari zação dos softwares de animação que agilizam e barateiam o processo 6 Finalmente são criados os chamados inbetweening quadros entre os qua droschave A animação por computador segue todos esses passos com a diferença que algu mas etapas não são mais desenhados a mão 611 PRINCÍPIOS DA ANIMAÇÃO As animações realistas devem seguir alguns princípios básicos Esses princípios alertam para observações dos fenômenos físicos e propriedades dos materiais en volvidos na animação Seguem sete princípios mas suas observações podem contri buir para novos itens nesta lista Achatar e Esticar todo objeto possui sua rigidez elasticidade amortecimento e massa que devem ser consideradas no processo de animação Esticar e achatar aju da a acentuar o movimento Antecipação os movimentos devem ser antecipados por exemplo se você vai dar um soco o braço deve ir para trás e só então para frente Momento as ações devem estar de acordo com o peso tamanho e personalidade do personagem Ações secundárias as ações secundárias fornecem um suporte para a ação principal fornecendo reações de efeito físico Slow in Slow out as ações iniciamse e terminam lentamente Esse conceito é de vido às leis da inércia e gravidade e pode ser observado no ciclo de uma bola pulan do Esse conceito também é válido para animações de esqueletos 244 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Arco quase nada se movimenta em linha reta Se você observar atentamente notará que terá de fazer um grande esforço para andar em linha reta Direção a direção é a noção que a audiência deve ter para não se perder na história Este ponto pode se complicar quando voltamos ou avançamos no tempo em uma história 612 ANIMAÇÃO DE CENA Uma cena é um evento ou interação única entre personagens acontecendo durante um período de tempo e em um lugar único que move a história adiante na direção de um clímax e resolução um evento um período de tempo um lugar Quando elaboramos uma cena precisamos considerar Ficar fora de clichês e soluções fáceis Fazer o inesperado Usar obstáculos para complicar e fazer reversões inesperadas O que esta cena realizará As cenas podem ter um ponto principal e diversos pontos secundários Cada informação realmente importante de enredo em seu roteiro provavelmente exige uma cena separada Quem está na cena Onde e quando será realizada a cena Quem é o protagonista da cena Normalmente é uma pessoa ou animal mas pode ser um objeto inanimado ou até um ato de natureza O que os personagens querem Qual será sua atitude Quem está colocando obstáculos Por quê O que este personagem quer Os personagens estão conhecendo o problema ou ele é desconhecido Os personagens estão se referindo direta ou indiretamente ao que querem Onde está a tensão ou o conflito O que acontece nesta cena Os personagens estão mais próximos ou mais dis tantes do seu objetivo inicial da cena Como a cena revela o caráter e a motivação pelo comportamento dos prota gonista A cena tem um catalisador ou incidente estimulador no princípio A cena está criando um clímax Como será o clímax mais engraçado ou mais dramático ANIMAÇÃO 245 Uma cena geralmente possui um começo um meio e um fim Retire qualquer ex posição desnecessária Adicione alguma comédia Se o público for criança opte por cenas rápidas com muitas ações Lembrese de que as crianças perdem a atenção ra pidamente 613 ANIMAÇÃO NO PROCESSO DE APRENDIZADO A habilidade de concepção criação e a abstração tem papel fundamental na solução de problemas reais Muitas pessoas são capazes de resolver problemas se estes fo rem apresentados em uma forma mais concreta mas quando estes lhe são apresen tados de forma abstrata sentem enorme dificuldade Esta deficiência muitas vezes indica que o processo de aprendizagem aconteceu apenas em nível mecânico no qual o aluno é capaz de aplicar construções e procedimentos porém sem domínio conceitual dos mesmos Essa situação o impedirá de resolver problemas que exijam adaptação das técnicas aprendidas ou sua aplicação em outro contexto Pior ainda por serem resultado de memorização temporária esses conhecimentos serão perdi dos em prazo muito curto Animações que transformem gradualmente imagens realistas de objetos em representações mais abstratas e viceversa são meios auxiliares poderosos para o aprendizado Essas animações devem fazer parte de metodologias específicas para auxiliar a compreensão de conceitos sejam abstratos que difíceis de serem entendidos A transferência de um contexto para o outro é também melhorada pelo uso de animações que ajude os alunos a representar os problemas em níveis mais altos de abstração Como é o caso da representação de formas de objetos reais por modelos geométricos Assim é interessante usar a capacidade da animação parafixos e transferir o co nhecimento de um contexto para outro fazendo com que os alunos percebam que o conhecimento adquirido pode ser útil em novas situações isto é para auxiliar a ge neralizar e abstrair RESUMO A animação é em muitos casos o objetivo final dos estudos da computação gráfica Este capítulo não tem a pretenção de ser mais do que uma introdução inicial ao as sunto Dependendo de seu interesse específico na área pode ser muito difícil ou bastante fácil encontrar trabalhos que o auxiliem Talvez a melhor dica que pode ríamos fornecer neste sentido seria visitar os sistes dos 13 mais atuantes grupos de animação que cujos endereços se encontram nas referências bibliográficas no final do livro CAPÍTULO 7 Realismo Visual e Iluminação 71 Rendering 711 Fases do Processo de Realismo Visual 712 Realismo por Passadas 713 Acabamentos nãofotográficos 72 Rasterização 721 Algoritmo de Bresenham para traçado de linhas 722 Rasterização de Polígonos 723 Preenchimento de polígonos por scanline 724 Remoção de Linhas e Superfícies Escondidas 73 Iluminação 731 Tipo de Emissores 732 Reflexões 733 Refração 734 Transparência 735 Sombreamento Shading 736 Sombras 737 Modelo de Iluminação Global 738 Técnicas de Iluminação 74 Texturas 741 Mapas Procedurais 742 UVW Map 743 Texture Map 744 Environment Map ou Mapa de Reflexão 745 Bump Map 746 Light Map 747 MipMapping 75 HiperRealismo 751 High Dynamic Range Images HDRI 752 Atenuação Atmosférica 753 Area Light e Soft Shadow 754 SubSurface Light Scattering 755 Depth of Field DOF ou Profundidade de Campo 756 Motion Blur Desfoque por Movimento 757 Film Grain 758 Lens Flare 759 Glow 76 Realismo e Iluminação em OpenGL 761 Zbuffer 762 HiddenSurface Removal 763 Algoritmo de Recorte Culling 764 Iluminação 765 Texturas Criar imagens sintéticas realistas é o objetivo final da computação gráfica Basicamen te podemos definir o realismo visual como as técnicas de tratamento computa cional aplicadas aos objetos sintéticos gerados por modelagem de sólidos partículas fractais ou qualquer técnica de geração com objetivo de criarlhes uma imagem sin téticaomaispróximodarealidadequeseteriaseelesfossemconstruídosefilmados O realismo é fundamental nas simulações no entretenimento na educação e muitas outras aplicações Como exemplo de aplicação prática temos a utilização do realismo pelas construtoras para mostrar aos compradores de um apartamento por exemplo como será o ambiente de uma sala sua iluminação a vista que se terá de suas janelas o seu exterior as possibilidades de decoração ou seja para que se conheça a realidade que se poderá ter antes de ela ser realmente construída Você já deve ter se deparado com esse exemplo ao entrar em uma página de classificados para comprar um imóvel ou nos sites de construtoras Noentretenimentosãomuitoscitadospelasmídiasoscenáriosdefilmeseprogra mas Certamente você já sentiu nos jogos a importância de um cenário ou de um per sonagem mais real Na educação um ótimo exemplo são suas utilizações nas escolas de medicina e nos grandes hospitais Atualmente a reconstrução realística tridimen sional do corpo humano auxilia no planejamento de procedimentos cirúrgicos PLS ou Labs Surgical Planning e no ensino de anatomia Ela possibilita a visualização dos órgãos seu interior exterior vistas em fatias e interrelações o estudo dos diversos sistemas por exemplo digestivo circulatório nervoso a visualização em cortes ou camadas estruturais como ossos músculos órgãos Uma ótima idéia aqui é visitar as páginas da Internet onde podem ser vistos usados e até obtidos gratuitamente os atlas de anatomia resultantes do projeto Visible Man and Woman e os diversos soft wares como o 3DSlicer visualicuffbr biomedicalphtml Podemos considerar o realismo em duas etapas a estática e a dinâmica A dinâ mica está relacionada ao movimento da cena e seus personagens Sendo introduzi da no capítulo referente à animação Neste capítulo descreveremos as técnicas e teorias necessárias para gerar objetos e cenas estáticas com realismo fotográfico 71 RENDERING A computação gráfica trata da síntese de imagens através do computador Sintetizar uma imagem não é mostrála no computador digitalmente a partir da captura de algo existente Isso é tratado no Processamento de Imagens Sintetizar uma imagem uma cena ou um objeto é criála em termos da definição dos dados dos objetos que a compõem Isso se faz a partir da geometria da cena das informações sobre os materiais de que são feitos os objetos suas cores e suas texturas das condições de iluminação ambiente e da posição de observação da cena Nesse processo de criação sintética é denominado rendering a fase de Introdução nas cenas do realismo foto gráfico REALISMO VISUAL E ILUMINAÇÃO 249 Se você procurar uma tradução no dicionário para rendering achará 1 uma in terpretação de um drama ou uma composição musical 2 uma tradução ou 3 uma representação de um edifício interior etc executado em perspectiva Ou seja não existe uma tradução fora de nossa área adequada para essa palavra como não existe uma tradução literal para diversos outros termos técnicos que nos contextos onde são usados têm significado próprio Basicamente podemos descrevêla por realismo visual Podemos interpretar o processo de rendering como o de conver ter dados em uma imagem realística ou simplesmente sintetizar um objeto ou cena até terse deles uma aparência de algo real e não de formas inteiramente criadas no computador 711 Fases do Processo de Realismo Visual Este processo envolve sete fases distintas Nem todas usadas em todas as aplicações O mais usual é que um trabalho seja apresentado em um nível de realismo adequa do ao seu uso Principalmente porque ao aumentarse o realismo de uma cena au mentase também seu tempo de processamento e custo de geração Na primeira fase temse a construção do modelo que conterá todas as informa ções necessárias para o processo de realismo visual Essa primeira fase consiste na utilização de alguma técnica de modelagem A segunda fase consiste em aplicar transformações lineares ao modelo de modo que ele tenha aparência tridimensio nal nos diversos dispositivos de visualização geralmente bidimensionais Essa fase consiste então na utilização de projeções e perspectivas adequadas A fase se guinte considera a eliminação de polígonos ou faces escondidas devido à posição relativa entre os objetos da cena e o observador culling backfaces São com essas técnicas que iniciaremos nosso estudo de realismo visual nas próximas seções Mui tas delas usam os dados tridimensionais dos objetos e devem ser refeitas a cada mu dança de ponto de observação ou forma de projeção Na quarta fase são desconsideradas as partes das cenas que não serão mostradas são os chamados recortes Essa fase até o fim do capítulo ficará bem entendida mas agora talvez fique melhor explicada por uma analogia Imagine que você esteja vendo uma paisagem de sua janela Mesmo que você tenha uma infinidade de coisas para ver algumas para sua visão será limitada Por exemplo o que estiver atrás de paredes e não de vidros transparentes detalhes muito longe para serem bem per cebidos ou coisas muito pequenas que não merecem ou conseguem chamar sua atenção Assim para que a cena fique parecendo real muitos dados presentes no modelo vão deixar de ser mostrados embora estejam descritos pelos dados da cena Isso é chamado de clipping e nem se dê ao trabalho de procurar uma tradu ção no dicionário para isso como rendering o importante é o seu sentido no con texto de nossa área A quinta fase se preocupa em converter a representação tridimensional para pi xels Seja lá qual for o sistema de coordenadas que se esteja usando os dados serão 250 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA levados para um conjunto de coordenadas do dispositivo em que será mostrado Essa conversão de coordenadas leva os dados do modelo para o mundo digital Li nhas e áreas contínuas serão transformadas em conjuntos de pixels Esse processo é denominado de rasterization e iremos aqui denominálo usando um anglicismo rasterização Usamos isso no sentido de usar um termo técnico global que você identificará facilmente ao ler trabalhos escritos em qualquer língua A sexta fase é de certa maneira uma continuação da terceira pois trata também da eliminação de partes de um objeto que devem ser removidas Só que agora essas partes são devidas à interferência dos diversos objetos presentes na cena onde de vido à sua posição relativa pode ocorrer que uns fiquem na frente de partes de ou tros Muitos autores englobam essas duas partes no que se chama tratamento de partes escondidashiddenPreferimosseguiralinhadosqueusamseparálaspoisa maioria das eliminações de partes de objetos é feita em coordenadas do dispositivo depois de o processo passar pela quinta fase enquanto a eliminação de faces intei ras culling usa as coordenadas tridimensionais do objeto A última fase trata de colorir cada pixel individualmente usando um esquema incremental ou interpolador de sombreamento Nessa fase o realismo fotográfi co começa a ser realmente tratado e percebido E para que seja feito adequadamen te devese levar em conta as luzes presentes na cena suas intensidades e direções em relação aos objetos Também devem ser consideradas todas as características das superfícies representadas transparência brilho reflexão e textura Ainda de vem ser consideradas as sombras que os diversos objetos fazem entre si e nas super fícies em que se apóiam O nível de realismo dessa fase pode ser tão sofisticado quanto a aplicação precisar sendo necessário o uso de modelos físicos de repre sentação da luz e sua interação com os materiais para um tratamento adequado 712 Realismo por Passadas Pelo já comentado deve ter ficado claro que a construção de uma cena realística é um processo incremental Isso ocorre tanto no nível conceitual discutido anterior mente quanto no nível das técnicas e softwares disponíveis para a realização das di versas fases do processo Essa forma de criação de cenas realísticas é denominada de realismo por passadas Assim a renderização por passadas é a forma utilizada pela grande maioria dos sistemas para geração de cenas realísticas Esse processo permite que os atributos de uma cena sejam renderizados separadamente da sua geração ou modelagem e em muitos casos que diversas técnicas e softwares participem do processo de inclu são do grau de realismo desejado à cena Uma série de bons motivos tornou a renderização por passadas o padrão da com putação gráfica atual Um desses é a economia de memória pois com essa técnica não precisam ser colocados todos os objetos de uma vez para o render Isso torna possível a renderização de cenas complexas em um PC comum Outro é a facilida REALISMO VISUAL E ILUMINAÇÃO 251 de da introdução de modificações isso é se precisarmos alterar somente alguns elementos de uma cena como letras sombras ou cores não será necessário perder ou refazer todo o processo de renderização anterior Ele pode ser reiniciado ou alte rado a partir do ponto desejado Um outro motivo que torna mais eficiente essa forma de renderização é a possibi lidade de maior utilização das imagens estáticas Por exemplo se já temos em uma animação uma cena observada a partir de um ponto estático como um filme com câmera fixa por exemplo um quarto com um personagem andando não será ne cessário renderizar todo o quarto a cada passo do personagem só o personagem será modificado a cada quadro Essa técnica permite também a mixagem com objetos ou texturas reais obtidas por captura ou seja o render por passadas permite uma integração com imagens fotográficas acrescentando sombras texturas complexas ou elementos do mundo real como rostos à cena É possível a reciclagem de objetos e cenas geradas anteri ormente Uma boa técnica é a reutilização de objetos em diferentes momentos ou em cenas complexas Esses objetos não necessitarão ser completamente renderiza dos na renderização por passadas poderão apenas ter suas formas de iluminação alteradas para se integrarem ao ambiente da nova cena O render por passadas às vezes elimina a necessidade do cálculo de antialia sing substituindoo por um leve blur borramento Os sistemas de partículas também utilizam as passadas para inclusão de efeitos especiais Além dos citados poderíamos citar ainda diversos outros efeitos como por exemplo bumpmapdepthoffield simulação do foco das máquinas fotográficas e fil madoras ou glows incandescência que são introduzidos na última passada e ge ralmente são inclusões 2D na imagem final Agora que já entendemos a importância desta forma de criação de realismo em computação gráfica vamos entender como o processo é feito em nível de criação da cena ou seja como são os tipos de passada nos diversos sistemas disponíveis A primeira passada ou passada principal também chamada de difusse pass ou co lor pass corresponde ao momento em que se atribui cores aos objetos ou seja nela estão incluídos o modelo a iluminação ambiente e o mapa de cores Não estão incluí das formas de realismo mais complexas como as reflexões em superfícies espelhadas os brilhos e as sombras que se projetam dos objetos devido às luzes direcionais A passada seguinte inclui a luminosidade direcional o brilho e as ênfases da ce na Denominada de highlight pass ou também chamada de specular pass ela consi dera os brilhos especulares dos objetos Essa passada ocorre devido aos efeitos de pelo menos uma luz direcional na cena O resultado é uma imagem com os objetos bem iluminados sobre um fundo sem sombra A passada da reflexão inclui as reflexões dos objetos podendo substituir ou comple mentar a passada anterior Nela serão considerados os espelhos do cenário os assoa lhos encerados os espelhos dágua e outras superfícies que refletem as imagens 252 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA A passada de iluminação inclui os pontos de luz lâmpadas velas e suas intera ções na cena Em vez de utilizarmos a passada principal para renderizar toda a ilu minação de uma só vez podemos utilizar esse processo para mostrar a influência de uma luz ou grupo em um determinado elemento Isso permite a inclusão de di versos efeitos interessantes à cena como a idéia de luzes sendo progressivamente acendidas ou apagadas a inclusão do efeito de faróis passando de feixes de raios sendo disparados de fogos de artifício entre outros A passada seguinte inclui as sombras ou seja mostra a localização das sombras projetadas pelos objetos no solo ou nos outros objetos da cena A passada de efeitos especiais inclui efeitos como explosões curvaturas de len tes de aumento ou distorção nuvens de fumaça a visão através de água ou exaustão de turbinas Esses efeitos nem sempre presentes em uma cena são renderizados em separado nesta fase A passada de profundidade inclui na imagem informações para incluir a noção de profundidade à cena Diferente de uma imagem real onde os detalhes mais longe vão perdendo a nitidez pois se tornam fora de foco em uma imagem sintética gerada pela computação gráfica todos os dados permaneceram em cena a menos que essa noção seja introduzida artificialmente Isso é tratado nesta passada e pode ser feito através da inclusão de um filtro de bluring por exemplo 713 Acabamentos Nãofotográficos Os renders realísticos comentados na seção anterior tentam fazer uma imagem sintética indistinguível de uma fotografia Mas em contrapartida os acabamentos nãorealísticos ou nonphotorealistic rendering NPR também chamados de es tilizados stylistic rendering possuem uma variedade muito grande de aplicações Um exemplo é a simulação das pinceladas de pinturas reais Figura 71 efeitos criativos imitando serigrafias ou o estilo de expressão de um artista REALISMO VISUAL E ILUMINAÇÃO 253 FIGURA 71 RenderNPRsimulaçãodaspinceladasdepinturasvejatambémemcores Outra aplicação dos renders NPRs é a criação de imagens similares as do desenho tradicional onde somente os detalhes significantes para a particularidade da apli cação da imagem são mostrados Por exemplo uma fotografia perfeita do motor de um carro pode ser excelente para realizar a venda para o consumidor Porém se fôs semos utilizar essa imagem para ilustrar uma mudança significativa no modelo ela seria muito complexa e de impressão cara E ainda poderia não deixar claro algum detalhe específico que se desejasse salientar Dentre as técnicas dos renders NPRs que mais chamam a atenção podemos citar a Toon Shading mostrada na Figura 72 Essa técnica tenta simular as imagens de de senhos animados menos complexas e por isso de mais fácil entendimento pelas crianças assumindo um clima de fantasia O estilo toon shading vem sendo usado pela computação gráfica desde o início da década de 1990 para integrar modelos tridimensionais com células de animação bi dimensional O toon render ou cartoon render ganhou vários adeptos pelo mundo devido a sua potencialidade em comunicar emoções e à facilidade para geração de suas imagens comparada a outros estilos de NPR 72 RASTERIZAÇÃO Rasterização é o processo de conversão da representação vetorial para a matricial Ela permite realizar a conversão de um desenho tridimensional qualquer em uma representação inteira possível de ser armazenada na memória de vídeo ou impres são de um dispositivo raster A Figura 73 ilustra a rasterização de uma reta Grande parte dos dispositivos de entrada e saída tal como filmadoras digitais scanners vídeos e impressoras usam uma tecnologia matricial também denomi nada tecnologia raster Esses dispositivos possuem uma memória na qual é com posta a imagem a ser posteriormente exibida no dispositivo 254 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 72 Render NPR Toon Shading veja também em cores Um vídeo raster é composto de uma memória Figura 12 onde estão armazena das as informações que descrevem a imagem Essa memória de vídeo é uma área de armazenamento onde cada posição indica quando um determinado pixel na tela deve estar apagado ou aceso e em qual cor A Figura 74 mostra um exemplo no qual a cor é especificada na memória de ví deo na forma conhecida como tabela de cores Um circuito de hardware especial faz a leitura dessa memória e aciona a forma usada pelo hardware para acender o pixel Se o vídeo usar a tecnologia de tubo de raios catódicos CRT por exemplo o ca nhão de elétrons será sensibilizado de forma a compor na tela o mesmo desenho composto na memória de vídeo Figura 13 721 Rasterização de retas Normalmente gráficos são definidos através de primitivas geométricas como pontos retas círculos textos etc Pode parecer simples traçar uma reta no vídeo REALISMO VISUAL E ILUMINAÇÃO 255 A B FIGURA 73 Conversão da representação de uma reta na forma vetorial para a matri cial Em B é incluído um tratamento de antialiasing Memória de Vídeo Valor do PIxel Tabela de Cores 1 2 3 4 5 6 7 Blue Green Red Cor 253 30 2 255 123 178 25 40 2 0 203 43 23 2 253 253 209 69 3 FIGURA 74 Memória de vídeo e uso de tabela paleta de cores A determinação dos pontos de interseção não é feita necessariamente da esquer da para a direita Caso o polígono seja definido pela lista de vértices P1 P2 P3 P4 e P5 a seqüência das interseções será 8 6 4 1 Será necessário então ordenar a lista obtida ou seja 1 4 6 8 As interseções podem ser consideradas em pares Pixels contidos no intervalo formado por esses pares são desenhados na cor do polígono 724 Remoção de Linhas e Superfícies Escondidas A solução eficiente de problemas de visibilidade é o principal passo do processo de criação de cenas realísticas Esse problema lida freqüentemente com a determi nação da visibilidade de linhas e superfícies Na descrição das fases do processo de realismo visual no início deste capítulo essa fase foi denominada de eliminação de polígonos ou faces escondidas culling backfaces A Figura 42A exibe um cubo com todas as linhas e faces visíveis Embora exis tam doze arestas no objeto apenas nove deveriam ser exibidas para criar a impres são de um objeto sólido Figura 42B e C O problema também pode ser expresso em termos de superfícies ocultas considerando as faces do cubo Figura 450 Quando apresentamos um objeto em perspectiva nem todas as suas faces estarão visíveis Por exemplo sabemos que um cubo tem seis faces mas dependendo do ponto de vista do observador ele poderá ter uma duas ou no máximo três faces visíveis Fi gura 77 O uso apropriado de técnicas de projeção e de eliminação de superfícies e linhas nãovisíveis auxilia no objetivo de criar resultados mais realistas É preciso consi derar a posição relativa entre os objetos da cena e o observador tridimensional mente para essa consideração de que partes serão invisíveis por ele Para exibir objetos complexos é necessário descrevêlos internamente no siste ma Comumente são empregadas duas soluções uma primeira opção é a represen REALISMO VISUAL E ILUMINAÇÃO 259 H D F G C E A B FIGURA 77 Um cubo dependendo do ponto de vista pode ter 2 faces visíveis tação por um subconjunto de retas e curvas extraídas dos contornos do objeto de maneira a representálo A descrição matemática dessas retas e curvas é normal mente usada para gerar o objeto na memória do sistema e sua exibição Quando o objeto é gerado por essa representação interna a fase de realismo considerado é o tratamento das linhas sejam elas retas os curvas escondidas Uma segunda solução propõe a representação do sólido através de uma série de faces ou superfícies conectadas apropriadamente Uma aproximação interna sim ples pode ser utilizada para descrever cada face ou superfície e a exibição do objeto é produzida como o agregado dessas faces ou superfícies Quando o objeto é gerado por essa representação interna a fase de realismo considerada é a eliminação das superfícies sejam elas planares ou não escondidas Freqüentemente na descrição de superfícies utilizamos faces planas triangulares porque a triangulação de uma superfície qualquer é um processo relativamente sim ples A principal desvantagem dessa representação é a necessidade de um grande nú merodeplanosparaproduzirnavisualizaçãoaimpressãodeumasuperfíciesuave Se o objeto for representado na tela pelas suas linhas na forma chamada de re presentação em wireframe Figura 42 usualmente há três formas de se represen tar as linhas nãovisíveis tracejadas e da mesma cor das visíveis Figura 78 trace jadas com cor diferente das visíveis ou simplesmente não traçálas Figura 79 Normalmente não são traçadas as linhas nãovisíveis visto que o traçado delas pode prejudicar a visualização do objeto na sua forma final São consideradas visíveis todas as linhas de contorno das faces do objeto que possam ser vistas a partir de um determinado ponto de vista ou seja quando não houver barreiras entre o observador e a linha de contorno do objeto As linhas invi 260 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 78 Representação dos objetos em wireframe onde x y z representam as coordenadas do centróide da face Se o observador não es tiver na origem dos sistemas de coordenadas é possível usar a mesma expressão desde que x y z representem as diferenças entre as coordenadas do ponto onde está o observador e as coordenadas correspondentes do centróide da face em análise Como operações envolvendo raízes demandam maior quantidade de cálculos para serem realizados e o importante nesta análise são as posições relativas e não a dis tância real a forma que usa a soma das diferenças das coordenadas em módulo é normalmente usada D x y z Aqui e em outros pontos deste capítulo faremos menção a polígonos convexos e nãoconvexos Vejamos então qual seu significado Considerando um único polí gono este é dito ser convexo se em qualquer posição que se trace um segmento de reta por dois pontos distintos dele não houver interseção com o seu contorno Caso contrário havendo interseção é chamado de nãoconvexo ou seja se um segmento de reta unindo pontos do polígono estiver sempre no seu interior ele será convexo e se isso não acontecer será nãoconvexo A Figura 711 exemplifica essas duas defi nições A Figura 712 apresenta polígonos com formas simples que tornam complexa a identificação de qual estará na frente Como a visibilidade por prioridades baseiase na suposição de que uma superfície qualquer sempre domina o seu plano de visibi lidade ou seja se A bloqueia B então B não pode bloquear A o que só é sempre verdadeiro para polígonos convexos algumas incorreções podem ocorrer Polígonos nãoconvexos ou disposições exóticas podem bloquear uns aos outros A utilização de um polígono de contorno pouco usual pode acarretar erro no algo ritmo de determinação de visibilidade Na Figura 712B fica difícil determinar qual superfície aparecerá mas nesse caso é devido ao uso apenas do centróide das áreas para identificação das distâncias 264 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Polígono convexo Polígono nãoconvexo FIGURA 711 Exemplo de polígonos convexos e nãoconvexos A solução para o problema da determinação de visibilidade nos casos de polígo nos nãoconvexos é usar vários pontos dos polígonos na comparação das distân cias Ou seja dividilos em muitos polígonos convexos Já no caso de disposições exóticos apesar da aparente simplicidade as dificuldades que aparecem na reso lução das ambigüidades são maiores Isso geralmente ocorre quando as faces não têmtodososseuspontoscommesmadistânciaaoobservadoreestãodispostasdemo do que partes de alguma superfície sejam obscurecidas por partes de outra Isto é pro blemas podem ocorrer quando partes de objetos mais distantes obscurecem partes de objetos mais próximos Nesse caso será necessário uma série de testes para de terminar como os dois polígonos necessitam ser subdivididos e reordenados Essa bateria de testes para a resolução das ambigüidades torna esse algoritmo difícil de ser implementado e muito lento conforme o número de polígonos aumentar 7242 Algoritmo de Eliminação de Faces Ocultas pelo Cálculo da Normal Uma outra característica das superfícies que não a distância ao observador pode ser usada para determinar a sua visibilidade o ângulo que a sua normal faz com a di reção de observação Se observarmos diretamente uma superfície plana um cartão por exemplo verificaremos que não podemos observar o seu lado oposto Apenas vêse a face do plano da frente não importa qual sua distância ao observador Se você girar essa superfície de modo a ver a outra face alguma hora ela será visível apenas como um segmento de reta Nessa posição em que a superfície é vista como uma reta sua normal estará perpendicular 90º à direção dos seus olhos Assim podemos dizer através dessa experiência simples que uma superfície só é visível se sua normal estiver fazendo um ângulo entre 90º e 90º com o observador Essa característica é particularmente aplicável nas representações de superfícies visíveis de poliedros convexos fechados sendo a base do teste de visibilidade da REALISMO VISUAL E ILUMINAÇÃO 265 B A FIGURA 712 Polígonos com formas simples mas que dificultam identificação de qual estará na frente que as normais das suas diversas faces fazem com a direção de observação Para a determinação da normal de cada face primeiro devese obter dois vetores u e v do plano Esses podem ser obtidos a partir de três pontos quaisquer não alinhados contidos no plano A ordem em que esses pontos são utilizados no cálculo da nor mal do plano é relevante Neste exemplo usaremos a regra de orientar esses pontos sempre no sentido antihorário conforme ilustrado pela Figura 713 para determi nação da normal do plano definido por P1 P2 e P3 para fora do objeto 3D Assim o vetor u é definido ligandose P2 a P3 o vetor v é definido ligandose P2 a P3 Figura 710 e o vetor l é definido ligandose P2 a P posição onde está o obser vador A normal é obtida do produto vetorial de u e v e a resposta da fase ser visível ou não está associada ao produto interno da normal e l que é então dado pela ex pressão a seguir em termos das coordenadas de P P1 P2 e P3 A equação da normal de um plano definido por três pontos P1 P2 P3 pode ser obtida pelas seguintes expressões nx P3yP2yP1zP2zP1yP2yP3zP2z ny P3zP2zP1xP2xP1zP2zP3xP2x nzP3xP2xP1yP2yP1xP2xP3yP2y Onde nx ny nz representa a normal do plano Usando as coordenadas do observador definidas por Px Py Pz as coordenadas do vetor l serão lx Px P2x ly Py P2y lz Pz P2z de modo que o produto interno será definido como n l nx Px P2x ny Py P2y nz Pz P2z E o teste de visibilidade se reduz a verificar o resultado dessa expressão De modo que se n l 0 então o observador é está perpendicular ao plano Se n l 0 então o plano é visível ao observador Se nl 0 então o plano é invisível ao observador REALISMO VISUAL E ILUMINAÇÃO 267 P2 P1 P3 FIGURA 713 Determinação da ordem de definição no sentido antihorário dos pontos P1 P2 e P3 para a definição da normal à superfície A partir dessas informações básicas é possível identificar as faces visíveis e nãovisíveis de um objeto considerando o ponto de vista e tomar decisões quanto a traçálas ou não No caso de linhas escondidas e não faces a idéia é são consideradas visíveis as arestas das faces que forem visíveis De modo que o problema de identifica çãodelinhasinvisíveiséumasimplesextensãodoproblemadeidentificaçãodefaces Assim o algoritmo de definição de visibilidade pela normal pode ser descrito pe las seguintes tarefas Ler as coordenadas do objeto no espaço tridimensional considerando um ponto de referência e armazenálas em forma de matriz Localizar no espaço a posição do observador através da qual definirá os parâ metros de visibilidade Calcular o vetor normal de cada face do objeto Calcular o vetor da linha de visibilidade para cada face do objeto Realizar o teste de visibilidade calculando o produto escalar entre os dois ve tores Se n l 0 a face estará visível Se n l 0 a face estará invisível Definir os cantos das faces do objeto e armazenálos de forma matricial Verificar os cantos visíveis com seus respectivos posicionamentos Traçar as arestas das faces visíveis que revelarão o objeto como observado de um determinado ponto de vista Se desejável é possível traçar também as li nhas nãovisíveis naquele ponto de vista A eliminação de faces ocultas pelo método definido nesta seção por si só não constitui uma técnica completa para determinação de superfícies ocultas uma vez que sua aplicação é limitada como já dissemos apenas aos poliedros convexos fe chados No entanto a aplicação dessa técnica tem a capacidade de em muitos ca sos eliminar grande parte das superfícies a serem consideradas para cálculos de sombreamento e definição da cor das superfícies como veremos a seguir Como o tempo de processamento de muitas rotinas de determinação de faces ocultas cresce exponencialmente em função do número de faces principalmente devido às roti nas de ordenação a aplicação dessa técnica como um préfiltro costuma trazer uma redução no tempo de processamento de aproximadamente 75 em muitos processos de criação de cenas com realismo 7243 Algoritmo ZBuffer O algoritmo zbuffer desenvolvido inicialmente por Catmull Catmull 74 é um dos algoritmos de determinação de visibilidade de superfícies mais simples de se implementar tanto em software como em hardware e hoje é o mais popular dentre 268 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA os algoritmos de HSR Porém apresenta alto custo de memória e processamento Requer a alocação de até dois buffers ou matrizes em memória com dimensões idênticas à tela de apresentação normalmente denominados buffers de Imagem e de Profundidade O uso do buffer de Imagem é opcional devendo possuir a mesma profundidade de cor da tela de apresentação final Utilizase o buffer de Imagem como rascunho durante os cálculos de visibilidade dos objetos O buffer de Profundidade destinase a armazenar a distância de cada pixel da tela rascunho fictícia inicial ao plano de projeção sendo também chamado de zBuffer Daí o nome do método Os zBuffers são geralmente implementados em hardware com inteiros de 16 a 32bits mas as implementações por softwares devem usar valores de ponto flutuante para evitar problemas de aliasing Antes do cálculo e da projeção dos objetos do espaço no plano de projeção ini cializase o buffer de Profundidade ou zBuffer com os mais altos valores possíveis representando o valor de distância máxima todos os demais serão menores de um ponto ao plano de projeção O buffer de Imagem ou de rascunho deve ser iniciali zado com o valor das cores de fundo da imagem Os polígonos que compõem ou representam os objetos no espaço 3D são então projetados na tela de rascunho pixel a pixel Para cada novo pixel projetado na tela de rascunho é efetuado o cálculo de distância em relação ao plano de projeção Se essa distância for inferior à distância armazenada no zBuffer para aquela coorde nada então os valores de cor desse pixel substituem os valores anteriormente arma zenados na tela de rascunho e essa nova profundidade é armazenada no zBuffer para aquela posição Se os valores de distância forem maiores que os presentes no zBuffer então esse pixel está sendo bloqueado por um ponto previamente cal culado que já se encontra mais próximo do plano de projeção ZBuffer consiste em usar as coordenadas raster de todos os pontos Devemos manter a coordenada z de todos os pontos que colocarmos na tela raster em um enorme array Quando formos colocar outro ponto na tela no mesmo lugar em co ordenadas raster verificamos se ele está mais perto do observador do que o atual se não estiver descartamos o ponto Como você pode ver a única ação necessária é computar o valor de z para cada ponto A idéia básica é Criar e inicializar com a cor de fundo um array bidimensional que conterá a informação de cada pixel da tela Inicializar o array com o valor da máxima profundidade Achar a coordenada z para cada ponto do polígono Testar a profundidade z de ponto de cada superfície para determinar a mais próxima do observador Atualizar o valor nos arrays se z estiver mais próximo do observador REALISMO VISUAL E ILUMINAÇÃO 269 respectiva profundidade Para isso é necessário o cálculo inverso do ponto projeta do em função da equação da reta que a originou com o objetivo de determinar preci samente qual o ponto da reta no espaço que gerou a projeção Para as extremidades da reta esses pontos são evidentemente os seus pontos delimitadores no entanto em função da distorção imposta pela projeção em perspectiva a determinação dos pontos intermediários segue uma complicada regra de proporções de triângulos em função dos ângulos de visada É recomendável que superfícies complexas sejam de compostas em triângulos e que estes sejam preenchidos com o uso de scan lines Assim sendo todos os objetos serão descritos como uma sucessão de scan lines para as quais se efetua o cálculo da profundidade de seus pixels componentes A aplicação da scan line segue com o cálculo da projeção inversa a partir das coordenadas proje tadas na tela e da equação de reta para a determinação do ponto no espaço 3D que originou aquela projeção na tela De posse do ponto de origem no espaço aplicase en tão a equação padrão para cálculo de profundidade conforme abordado anterior mente e procedese à determinação de visibilidade pelo conteúdo de zBuffer O cál culo da projeção inversa é feito em função da evolução da scan line usando a coorde nada de x na tela e da esquerda para a direita com o objetivo de garantir que não ocorrerão brancos no preenchimento das linhas e para reduzir os efeitos de alia sing devidos à precisão finita das matrizes de profundidade 73 ILUMINAÇÃO A iluminação é um aspecto fundamental em qualquer composição Primeiramente vamos entender alguns aspectos técnicos da iluminação natural Ao nosso redor existe uma série de formas de energia física conhecidas em seu conjunto como ra diações eletromagnéticas Algumas características dessas formas de energia estão relacionadas a serem um fenômeno ondulatório Analisando um fenômeno ondulatório mais conhecido do nosso dia a dia como as ondas do mar podemos dizer que uma onda será completa quando estiver determi nada por uma crista positiva e uma crista negativa consecutiva também chamada pe ríodo A distância entre duas cristas iguais é denominada comprimento de onda e geralmente identificada pela letra grega Lambda como mostrado na Figura 715 Uma radiação onda eletromagnética consiste em um campo elétrico e um cam po magnético variáveis com o tempo e com a posição Um perpendicular ao outro e ambos perpendiculares à direção de propagação conforme ilustrado na Figura 715 A propagação dessas ondas no vácuo e no ar se faz com a velocidade de apro ximadamente 300000 kms As ondas eletromagnéticas são caracterizadas por di versas outras grandezas físicas além do já definido comprimento de onda As prin cipais são a freqüência e a energia A freqüência de uma onda é o número de vibrações por unidade de tempo O comprimento de onda também pode ser definido como a distância percorrida por 272 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA a inexistência de modelos completos e abrangentes levam os programadores a sim plificações do processo computacional Em conseqüência muitos modelos de ilu minação atualmente em uso em computação gráfica contêm simplificações sem ne nhum fundamento teórico mas que alcançam um bom resultado prático 731 Tipos de Emissores Retornando para o modelo de iluminação digital temos que neste modelo todo ob jeto em uma cena é potencialmente uma fonte de luz A luz pode ser emitida ou re fletida de objetos Geralmente fazemos uma distinção entre emissores de luz e re fletores de luz Os emissores são as fontes de luz lâmpadas velas fogo sol estre las e os refletores são normalmente os objetos que serão coloridos de maneira rea lística renderizados As fontes de luz são caracterizadas por suas intensidades e freqüências ou comprimento de onda enquanto os refletores são caracterizados pelas propriedades de suas superfícies como cor material e polimento A escolha do tipo a ser usado para representar uma fonte ou um emissor de luz de pende diretamente do ambiente da cena Enquanto cenas externas utilizam uma fonte natural como fonte principal de iluminação sol estrelas ou lua cenas internas geral mente utilizam diversas luzes artificiais que podem ter ou não mesma intensidade Po demos então classificar os tipos de emissores como natural ambiente ou artificial 7311 Emissor Natural Os emissores naturais tentam simular as duas principais fontes de luz da natureza o Sol e a Lua Para propósitos práticos a luz solar tem raios paralelos vindo de uma direção única A direção e o ângulo desses raios variam dependendo da hora do dia da latitude da região e da estação do ano A luz solar combina diversos comprimentos de onda de modo que geralmente é definida como branca mas pode ter algumas variações Em dia de céu claro a cor da luz solar é um amarelopálido com valores em RGB em torno de 250 255 175 Em dia nublado a luz solar pode atingir uma coloração azulada tendendo para cin za em dias tempestuosos No amanhecer e no pôrdosol a cor pode tender para la ranja ou vermelha Outra alteração ocorre pela presença de partículas no ar que po dem alterar a cor da luz solar para laranja ou marrom A luz solar ou da Lua é uma luz direcional Se for necessário para determinada aplicação por exemplo para mostrar a sombra produzida pelo sol do amanhecer ao entardecer pode ser animada com razoável precisão seguindo as coordenadas geográficas do local o movimento do sol em torno da Terra e o ângulo que faz com a posição dada Você deve considerar se todo realismo for necessário além da posi ção a data o horário e a orientação em relação aos pontos cardinais norte sul les te oeste sudoeste noroeste etc As sombras projetadas assim podem representar com precisão o passar das horas 274 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 7312 Luz Ambiente Uma luz é considerada como ambiente quando não tem uma direção possível de ser observável Esse modelo simula a iluminação geral vinda da reflexão da luz em mui tas superfícies difusas Essa luz determina o nível de iluminação das superfícies no ambiente É usada para cenas de exterior quando a iluminação do céu produz uma distribuição da luz refletida céu nublado Uma técnica muito comum para melho rar o realismo em cenas externas é alterar a cor da luz ambiente para complementar a luz principal 7313 Emissores de Luz Artificiais As luzes artificiais são todas aquelas que não são naturais Em computação gráfica geralmente simulam as lâmpadas convencionais Dentre as quais podemos citar as Luzes Fotométricas Luz Omni Luz Direcional e os Refletores 73131 Luzes Fotométricas Com as luzes fotométricas a atuação da iluminação depende diretamente da inten sidade de energia estando relacionada diretamente com as unidades fotométricas Nesse tipo de iluminação a fonte de energia pode ser direcionada para um ponto e ser representada nas formas pontual uma única lâmpada linear lâmpadas com determinado comprimento como as fluorescentes convencionais ou áreas ilumi nadas painéis luminosos A Figura 716 usada também para demonstrar a som bra nesse tipo de luz exemplifica uma luz fotométrica linear Essas luzes devem re presentar de forma realista a intensidade de energia e a influência do tipo de lâmpa da As lâmpadas podem ser do tipo incandescente fluorescente alógena mercúrio sódio ou um tipo definido pelo usuário A intensidade da iluminação é medida pela quantidade de Lumens ou Candelas e podem ser obtidas através de tabelas ou espe cificações dos fabricantes de lâmpadas reais As especificações podem ser utilizadas para simulações e teste de iluminação devendo seguir os padrões IES Illuminating Engineering Society CIBSE ou LTLI 73132 Luz Omni Uma luz omni lança os raios em todas as direções de uma origem única podendo criar sombras e projeções Figura 717 73133 Luz Direcional Direct Light Raios de luzes direcionais paralelos iluminam em uma direção única como o sol faz na superfície da Terra Figura 718 As luzes direcionais são principalmente usadas parasimularluzsolarVocêpodeajustaracordaluzposiçãoegirarnoespaço3D REALISMO VISUAL E ILUMINAÇÃO 275 73134 Luz Refletora Spot Light Um refletor lança um raio de luz focado levemente como uma lanterna ou um farol Figura 719 Esse tipo de emissor pode ser mapeado para produzir o efeito da luz como o utilizado no filme Batman Figura 720 276 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 717 Trajetória dos raios de luz de uma lâmpada Omni FIGURA 718 Trajetória dos raios de luz de uma lâmpada Direcional FIGURA 716 Exemplo de uma luz fotométrica e seu sombreamento REALISMO VISUAL E ILUMINAÇÃO 277 FIGURA 719 Trajetória dos raios de luz de uma lâmpada Refletora FIGURA 720 Mapeamento de um bitmap na lâmpada Refletora spot light FIGURA 721 Reflexão Ambiente aplicada em uma cena 732 Reflexões Em computação gráfica a manipulação da luz assume um papel fundamental no as pecto realístico da apresentação Os efeitos da luz sobre as superfícies e seus mate riais o obscurecimento de superfícies em função de sua posição orientação e carac terísticas da luz são portanto peçaschave A maioria dos objetos ao nosso redor não emite luz própria pelo contrário refle te a radiação neles incidente em diferentes comprimentos de onda A reflexão se deve à interação molecular entre a radiação incidente e o material que compõe a su perfície dos objetos 7321 Reflexão Ambiente A reflexão ambiente atinge as superfícies igualmente em todas as direções a partir de uma fonte de luz difusa nãodirecional Em ambientes reais há superfícies que não são iluminadas diretamente mas também não são completamente escuras Lu zes geradas por reflexão em outras superfícies servem para iluminar essas áreas O modelo de iluminação mais simples que é utilizado na geração de imagens di gitais usa a própria cor do objeto atenuada por um fator de iluminação ambiental Figura 721 Esse fator é fruto do cálculo das reflexões múltiplas da luz nas muitas superfícies presentes no ambiente Estas múltiplas reflexões combinadas dão ori gem ao fenômeno definido como luz ambiente Ao assumirse que a luz ambiente afeta igualmente todas as superfícies de uma cena em todas as direções podese re presentála como I Ia ra onde I é a intensidade da componente de luz do ambiente na superfície em estudo Ia é a intensidade da luz ambiente assumida como constante para todos os objetos A quantidade de luz ambiente refletida pela superfície de um objeto é determinada através do parâmetro ra ou coeficiente de reflexão da iluminação ambiente da su perfície que varia de 0 a 1 O coeficiente de reflexão ambiente é uma propriedade do material que compõe a superfície do objeto que se está sombreando e dos pig mentos que a cobrem A Figura 722 mostra um objeto que é sombreado segundo esse modelo percebese que todos os pontos do objeto refletem a luz com a mesma intensidade É possível imaginar esse modelo como não contendo nenhuma fonte de luz pon tual O coeficiente de reflexão ambiente é uma conveniência empírica e não corres ponde diretamente a qualquer propriedade física real dos materiais Além disso a luz ambiente é apenas uma entre outras componentes luminosas a serem conside radas na composição de um modelo mais adequado de sombreamento 278 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Na reflexão difusa cada superfície tem uma reflexão característica que determi na quanto da luz será refletida A quantidade de luz refletida não depende do ângulo de visão da superfície mas sim de sua orientação em relação a direção de luz Se a fonte de luz direcional for pontual a intensidade da reflexão difusa varia de ponto para ponto e é melhor caracterizada pela variação do ângulo entre a normal da su perfície e a fonte de luz I I r u u d d e n onde I Id e rd têm os mesmos significados das expressões anteriores mas ue repre senta um vetor unitário na direção da fonte de luz e un o vetor normal unitário da superfície em estudo 7323 Reflexão Especular Superfícies brilhantes polidas ou lustras apresentam variações drásticas de intensi dade da luz refletida em determinados ângulos de observação Tal efeito é conheci do por reflexão especular e é um fator importante a ser considerado na geração de imagens sintéticas por computador A reflexão especular é a componente responsável pelo brilho highlight da luz no objeto Nesse tipo de reflexão o fóton não interage com os pigmentos da superfí cie deixando a cor da luz refletida igual à cor original da luz incidente Basicamente determinados pontos da superfície atuam como espelho refletindo a luz incidente sem atenuações Figuras 726 e 727 REALISMO VISUAL E ILUMINAÇÃO 281 FIGURA 725 Reflexão Difusa aplicada em uma cena Existem vários modelos de iluminação diferentes que expressam e controlam os fatores que determinam a cor de uma superfície em função de um determinado con junto de luzes Alguns modelos de iluminação controlam o efeito da luz para cada pi xel na imagem enquanto outros consideram um modelo de iluminação para alguns poucos pixels e aplicam interpoladores para o cálculo dos demais Dentre os modelos que calculam a contribuição da componente especular estão o de Phong baseado em um modelo de fonte de luz pontual e o modelo de CookTorrance que considera a energia incidente sobre o objeto Recentes melhoramentos no modelo de reflexão es pecular permitem refletir luzes em formas e superfícies variadas O modelo de Phong para luz especular é o mais usado Esse modelo considera a reflexão especular como uma função do ângulo que a direção de reflexão faz com o observador Ele é função da cor apenas da fonte de luz Os modelos anteriores para a luz ambiente e a luz direcional eram função da cor dos objetos a serem modela 282 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 726 Reflexão Especular aplicada em um objeto FIGURA 727 Reflexão Especular aplicada em uma cena pixel na imagem enquanto outros consideram um modelo de iluminação para al guns poucos pixels e aplicam interpoladores para o cálculo dos demais A Computação Gráfica referese freqüentemente às regras da física ótica e à física das radiações para explicar a interação da luz nos objetos No entanto a complexi dade ou a inexistência de modelos completos e abrangentes levam os programado res a simplificações do processo computacional Em conseqüência muitos mode los de iluminação atualmente em uso em computação gráfica contêm simplifica ções sem nenhum fundamento teórico mas que alcançam um bom resultado práti co A primeira técnica de sombreamento não constante para polígonos genéricos foi desenvolvido por Gouraud em 1971 Watt e Policarpo Em 1975 Phong BuiTuong melhorou a técnica de Gouraud e tornoua mais adequada para os siste mas de computação gráfica 3D Mesmo nas novas técnicas de iluminação global como ray tracing e radiosidade o modelo Phong ainda é o mais usado no render dos softwares atuais Existe aqui um ponto que geralmente causa uma confusão Modelo de som breamento não é o mesmo que modelo de iluminação O processo de se aplicar um modelo de iluminação para vários pontos de uma superfície é chamado sombrea mento Existem duas considerações separadas para o sombreamento dos polígonos Pri meiro temos de considerar como calcular a luz refletida em qualquer ponto da su perfície do objeto chamamos isso de modelo local de reflexão Depois temos de calcular a intensidade da luz no pixel para o qual o polígono se projeta chamamos isso de algoritmos de sombreamento 7351 Modelo de Sombreamento Constante No modelo de sombreamento constante aplicase o cálculo da componente de luz refletida apenas uma vez por superfície plana da imagem determinandose um úni co valor de cor e intensidade da luz refletida que é utilizado para o preenchimento de toda a superfície Essa técnica é chamada também de flat shading faceted shading ou constant shading e é usada mais freqüentemente em primitivas poligonais Essa aproximação somente é aceitável se for possível supor que 1 A fonte de luz localizase no infinito fazendo com que o ângulo de incidência de cada um dos raios de luz que compõem o feixe de luz incidente possua o mesmo ângulo ao longo de toda a superfície plana Figura 730 e 731 2 O observador localizase no infinito assim os raios de luz que compõem o fei xe de luz refletida da superfície plana e que atingem o observador têm o mes mo ângulo Figura 731 3 As superfícies são representações de objetos realmente formados por faces planas e não apenas aproximados por faces planas Figura 730 288 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA atenue grandemente esse efeito ela não o elimina completamente pois o efeito também está associado à mudança da direção do degradê como mostrado na Figura 736 Para obter maior eficiência no cálculo da luz refletida é possível usar uma equa ção incremental como a apresentada para projeções paralelas com zBuffer Quan do se utiliza a projeção em perspectiva ou quando a superfície representada pelo polígono plano não é no modelo real uma figura plana esse modelo não pode ser aplicado com resultados satisfatórios A solução de Gouraud também mostrase pouco eficiente na apresentação das reflexões especulares quando essas ocorrem distantes dos pontos selecionados para o cálculo efetivo da componente de luz re fletida 7353 O Modelo de Phong Outra técnica bastante difundida para o cálculo da componente de luz refletida foi proposta por BuiTuong Phong 19421975 PHONG 75 propôs a interpolação linear dos vetores normais para o cálculo do sombreamento com o posterior cálcu lo da iluminação Ao contrário do modelo de Gouraud que interpola as intensida des da luz refletida o modelo de Phong interpola a variação do ângulo de incidência do feixe de luz na superfície possibilitando a determinação de pontos de reflexão especular afastados das extremidades dos polígonos O Modelo de Phong conside 292 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 735 Efeito de Bandas de Mach com a variação da intensidade do tom Cada um dos 10 trechos tem exatamente o mesmo tom embora próximo a mudança da intensida de o lado mais claro pareça mais claro e o lado mais escuro pareça mais escuro do que no restante do trecho de mesmo tom FIGURA 736 Efeito de Bandas de Mach com a variação da direção do degradê do tom Cada um dos três trechos tem exatamente o mesmo nível de variação do tom de claro para escuro e inversamente do escuro para o claro embora próximo à mudança da re gião a intensidade da variação parece maior que no centro do trecho ra desse modo que a normal da superfície é interpolada linearmente ao longo dos pontos das fases Phong assume uma normal para cada vértice O modelo de ilumi nação é aplicado em todos os pontos da superfície que estiver sendo sombreada sendo a normal em cada ponto o resultado da interpolação linear das normais dos vértices A Figura 737 ilustra o uso das normais em n0 e n1 para fazer a interpola ção linear dos pontos interiores Pa Pb e Pc O método proposto por Phong como o método proposto por Gouraud ade quase muito bem aos algoritmos de scan line usados geralmente para determina ção da visibilidade por zBuffer A interpolação do ângulo de incidência da luz refle tida pode ser feita durante a geração da imagem no buffer ou na própria tela A Figu ra 738 ilustra a projeção de um poliedro 3D sendo criada no buffer de imagem onde o ângulo de incidência da luz em na é resultado da interpolação linear de n1 e n2 e o ângulo em nb é resultado da interpolação linear de n1 e n4 A intensidade ao longo da scan line ns pode ser calculada durante o cálculo do zBuffer sendo o resul tado da interpolação linear de na e nb Para obter maior eficiência no cálculo do ângulo de incidência do feixe de luz é possível usar uma equação incremental como a apresentada para projeções pa ralelas com zBuffer Quando se utiliza a projeção em perspectiva esse modelo pode ser aplicado com resultados satisfatórios Uma grande vantagem da solu ção de interpolação de Phong está na real redução do efeito de bandas de Mach já que não usa as intensidades de luz Os resultados obtidos são geralmente bem melhores que o de Gouraud devido à sua capacidade de apresentar com realismo pontos de grande variação da intensidade luminosa como os que ocorrem com o uso de luzes pontuais intensas spotlights e highlights na cena ou nos casos de reflexão especular mesmo quando afastados dos pontos de amostra utilizados na interpolação REALISMO VISUAL E ILUMINAÇÃO 293 n0 na nb nc n1 P1 PC PB PA P0 FIGURA 737 Interpolação dos ângulos de incidência dos pontos do interior através da consideração das normais das extremidades em P0 e P1 em uma superfície plana FOLEY 93 Esse modelo de interpolação é também conhecido como normalvector interpola tion shading E não deve ser confundido com o modelo de luz especular do mesmo autor No modelo de luz de Phong descrito anteriormente neste capítulo a luz é composta das três componentes reflexão difusa diffuse reflexão especular spe cular e ambiente ambient Essas três componentes são combinadas de modo a determinar a iluminação ou cor de um ponto ou de um polígono O algoritmo de Phong para interpolação apesar de menos implementado em hardware do que o modelo de Gouraud devido à sua maior complexidade permite a obtenção de ima gens mais realistas pois emula melhor os efeitos locais da luz como as reflexões que podemos observar em superfícies brilhantes 736 Sombras As sombras são de fundamental importância para aumentar o realismo das imagens Elas estabelecem diversos níveis de realismo em uma imagem evitando que os obje tos pareçam estar flutuando no ar A análise realística das sombras se caracteriza pela presença de duas regiões Uma região de sombra ou umbra em Latim onde a inten sidade luminosa devido a uma certa fonte é nula Figuras 717 a 719 e uma região de penumbra onde a intensidade luminosa varia de zero até a intensidade de luz do am bienteFigura716Senoambientesóhouverumaúnicaluzpontualaregiãodepe numbra pode ser anulada A seguir daremos dois exemplos de algoritmos de geração de sombra São eles o de Volume de Sombra e o de Sombra Projetada 294 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA na nb Ys X2Ys X1Y1 X3Ys n4 n3 n2 ns n7 FIGURA 737 Geometria do cálculo do ângulo da luz refletida pela técnica de Phong du rante o processo de scan line Xichun Jennifer Guo 1996 7361 Volume de Sombra É um algoritmo geométrico que foi introduzido por FRANK CROW 77 Chama mos de volume de sombra de um objeto em relação a uma fonte de luz L pontual o conjunto dos pontos do espaço da imagem que não são visíveis por um observa dor se ele estiver colocado na posição da fonte isso é em L Ele é obtido pela criação de uma pirâmide de não iluminação ou sombra Essa pirâmide tem ápice na fonte de luz e nos lados formados pelos prolonga mentos dos raios luminosos a partir da fonte até os contornos do objeto cujo volu me da sombra se está definindo Nesse algoritmo ao fazer o cálculo da intensidade luminosa em um ponto é verificado se o ponto está dentro do volume de sombra de cada objeto de modo a fazer a atenuação necessária no cálculo da intensidade 7362 Sombra Projetada É também um algoritmo geométrico Só que é mais amplamente difundido entre os usuários de sistemas gráficos Ele consiste em modelar a região de sombra a partir da projeção do objeto cuja sombra se deseja definir Nessa projeção o ponto de vis ta assume o lugar da fonte de luz e o plano de projeção é considerado como superfí cie plana onde se deseja conhecer a sombra do objeto Esse método funciona bem e é eficiente no caso em que a sombra se projeta em uma única superfície plana piso parede face plana de outro objeto mas se torna complexo à medida que o número de superfícies planas onde a sombra se estende aumenta 7363 Algoritmo de AthertonWeilerGreeberg Este algoritmo cria um modelo constituído por recortes dos objetos do cenário que não são visíveis da fonte de luz Ao rasterizar e tonalizar um polígono levase em consideração se ele produz sombra ou não A principal restrição desse algoritmo é que só se aplica em cenas constituídas por objetos poligonais ATHERTON WEILERGREEBERG 78 7364 Algoritmo de Mapeamento Proposto por Lance William em 1978 o algoritmo de mapeamento trata as sombras como um problema de visibilidade a partir das fontes de luz Essa visibilidade é re solvida usando um método semelhante ao ZBuffer Ao calcular a iluminação da cena os dados de ZBuffer são usados para determinar as sombras 7365 Algoritmo de Appel Proposto em 1968 por Appel e posteriormente por Bouknight e Kelley em 1970 este algoritmo traça um raio de sombra para cada fonte de luz durante o processo de REALISMO VISUAL E ILUMINAÇÃO 295 rasterização testando se há uma obstrução Em caso positivo é determinada a parte da linha de varredura afetada pela sombra e os relacionamentos entre polígonos que causam sombra um nos outros A implementação desse algoritmo só é utilizá vel para modelos poligonais 7366 Sombreamento Anisotrópico Os prefixos gregos iso e aniso querem dizer igual e desigual respectivamente Dizse que um objeto um material ou um modelo é isotrópico quando tem as mes mas propriedades ou características físicas em todas as direções Esse conceito já foi considerado na modelagem de sólidos onde geralmente supomos que os objetos a serem modelados têm as mesmas características em todas as direções Assim algo é anisotrópico se suas propriedades dependem da direção de observação O sombreamento anisotrópico é um tipo de shading que prolonga reflexões e brilhos em uma dada direção geralmente na direção perpendicular às fibras ou ra nhuras de uma superfície Figura 739 e não é uniforme em todas as direções como os sombreamentos isotrópicos usuais isto é todos os comentados até aqui Como há muito mais curvaturas ao redor dos fios que ao longo dos fios a luz é refle tida pelos cabelos anisotropicamente produzindo um brilho na direção perpendi cular ao comprimento dos fios Aço escovado discos de vinil CDs e madeiras tam bém possuem essa característica devendo ser renderizados com shading anisotró pico isso é com mais brilhos na direção perpendicular às ranhuras Esse recurso está implementado nas melhores placas gráficas do mercado e por isso pode ser usa do em realtime rendering 737 Modelos de Iluminação Global Cada uma das técnicas já abordadas para a geração de imagens realistas em compu tador possui o seu conjunto de vantagens e desvantagens No entanto entre as téc 296 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 739 Exemplos de sombreamento anisotrópico nicas abordadas até aqui os modelos de iluminação global oferecem melhores re sultados na simulação de uma cena real Podemos chamar de iluminação global as técnicas que consideram todos os feixes de luz emitidos por fontes indiretas O céu por exemplo reflete a luz do sol com uma cor azulada esses raios de luz azulados também contribuirão para modificar o restante da cena Essa consideração não pode ser feita nos modelos de iluminação anteriores que por considerarem todos os objetos da cena como possíveis emitentes de luz precisam executar muito mais de cálculos que as anteriores Com a melhora da velocidade de processamento das máquinas diminui o tempo de cálculo das técnicas de iluminação global que estão sendo cada dia mais usadas e por isso de domínio obrigatório para os profissionais de CG Essas técnicas não representam o fim das demais ficando a cargo dos artistas julgar qual o melhor mé todo de iluminação para determinado tipo de trabalho Atualmente temos no mer cado uma diversidade enorme de softwares habilitados a trabalhar com iluminação global Dentre eles podemos citar o Brazil Mental Ray Vray ou Final Render Nas seções que seguem descrevemos as principais idéias e os métodos que as usam 738 Ray Tracing A técnica de Ray tracing é também usada simplesmente como um algoritmo de de terminação da visibilidade dos elementos de cena Nesse caso é geralmente deno minada de Raycasting É principalmente conhecida pelas possibilidades de inclu são na cena de sombras reflexão refração texturas e não apenas o sombreamento das superfície visíveis Os primeiros estudos sobre Ray tracing são da década de 1960 O Ray tracing foi desenvolvido em 1968 como um algoritmo para simulação de trajetórias de projé teis balísticos e partículas nucleares A Apple foi a primeira a apresentálo como uma ferramenta para o cálculo de sombras em Computação Gráfica Na época os computadores eram lentos demais para possibilitar o uso dessa técnica e as aproxi mações descritas anteriormente eram mais usadas À medida que os computadores foram ficando mais poderosos notouse que se ria interessante voltar atrás e implementar os modelos de iluminação global A par tir daí o algoritmo de Ray Tracing foi estendido e implementado Sua implementa ção inicial ocorreu em 1980 quando já era possível criar imagens com sombras re flexões transparência e refrações Em 1984 o algoritmo de Ray Tracing sofreu mo dificações possibilitando efeitos de penumbra motion blur depth of field veja seção hiperrealismo entre outros Hoje em dia Ray tracing é uma das mais populares e poderosas técnicas de sín tese de imagens de fácil implementação Ray tracing possibilita a representação de cenas complexas com muitos objetos e muitos efeitos como sombras e vários ti pos de reflexões O princípio do Ray tracing é simular a geometria ótica envolvi da no trajeto de alguns raios de luz que viajam pelo espaço da cena Por motivos REALISMO VISUAL E ILUMINAÇÃO 297 computacionais o modelo utilizado é o contrário do que realmente acontece quando vemos uma cena Isto é normalmente um raio de luz originário no objeto chega aos nossos olhos Nessa técnica supõese que um raio originário de nossos olhos chegue até o objeto que se quer renderizar Figura 740 Pelas leis da ótica essa reversão não provoca alteração alguma na geometria envolvida Devido à essa inversão ser tão comum raramente se usa o adjetivo reverso para Ray tracing Se desejarmos podemos classificar o Ray tracing como reverso usado na compu tação ou direto o algoritmo que segue o modelo físico real Na realidade uma ou mais fontes de luz iluminam uma cena com um número in finito de raios de luz Apenas uma pequena parte desses raios é refletida dos objetos da cena e atinge o olho do observador Como apenas esses raios nos interessam po demos traçálos de volta para o objeto e deste para cada fonte de luz Inserindo uma tela em algum ponto entre o observador e a cena traçase um raio do olho do obser vador até cada pixel da tela e deste para qualquer objeto que a fonte de luz ilumine O resultado final será que as cores e intensidades que serão associadas à tela produ zirão uma imagem como uma fotografia O algoritmo de Ray tracing considera os seguintes pontos Os raios são disparados de forma sistemática de modo que cada um deles corresponda a um pixel na tela Após o disparo o raio percorre o espaço podendo atingir um objeto ou sair da cena Se atingir algum objeto o ponto de intersecção é calculado As contribuições das fontes de luz para cada ponto levando em conta a sombra de outros obje tos também são calculadas 298 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Observador Luz Centro de Projeção Janela de Visualização FIGURA 740 Geometria do ray tracing repare o ângulo de visão da cena pelo obser vador a região de influência de cada pixel simbolizada pela grade retangular o ponto da cena real que corresponde a esse pixel e a fonte de luz que originou o raio Se o objeto for opaco a soma dessas contribuições será a intensidade lumino sa total naquele ponto Caso contrário as contribuições devidas aos reflexos e refrações serão tam bém computadas O pixel correspondente pode então ser exibido Se não houver interseção o pixel terá a cor de fundo O cálculo do ray tracing clássico é bastante simples e é constituído das seguintes tarefas efetuadas para cada pixel da tela 1 Trace um raio a partir do observador até a cena a ser representada através de um pixel da tela 2 Determine qual o primeiro objeto a interceptar esse raio 3 Calcule a cor ambiente da superfície do objeto no ponto de interseção basea do nas características do objeto e na luz ambiente 4 Se a superfície do objeto for reflexiva calcule um novo raio a partir do ponto de interseção e na direção de reflexão 5 Se a superfície do objeto for transparente calcule um novo raio a partir do ponto de interseção 6 Considere a cor de todos os objetos interceptados pelo raio até sair da cena ou atingir uma fonte de luz e use esse valor para determinar a cor do pixel e se há sombras O algoritmo de Ray Tracing então pode ser descrito como Considerando um centro de projeção no plano de visão Para cada linha horizontal de varredura da imagem scan line Para cada pixel da linha de varredura determinar raio que vai do centro de projeção ao pixel Para cada objeto da cena Se objeto for interceptado pelo raio é a interseção mais próxima até agora registrar interseção e o objeto interceptado atribuir ao pixel a cor do objeto da interseção mais próxima O objetivo da técnica de ray tracing é simular a propagação da luz no ambiente avaliando a sua interação com os objetos que o compõem e considerando a intera ção da luz com as suas superfícies Com o objetivo de limitar a grande quantidade de feixes de luz necessária para compor uma cena com razoável grau de realismo o ray tracing tira proveito da característica física dos controladores gráficos de com REALISMO VISUAL E ILUMINAÇÃO 299 Sex0y0z0forconsideradoocentrodeprojeçãoouoolhodoobservadornaFi gura 740 e x1 y1 z1 for o centro de um pixel na janela da mesma Figura 740 en tão t varia de 0 a 1 entre esses pontos Valores negativos de t representam pontos atrás do centro de projeção enquanto valores de t maiores que 1 correspondem a pontos depois da janela isso é mais distante do centro de projeção Assim precisamos achar uma representação para cada tipo de objeto que nos possibilite determinar t isto é o valor do parâmetro que define o ponto de interseção do objeto real com o raio Necessitase assim de uma representação que permita determinar a interseção de um raio com os objetos da cena em função de t de forma eficiente A forma das superfícies do objeto é que determinará a maneira como o cálculo das interseções pode ser otimizado Uma das formas de superfície dos objetos mais simples para esse propósito é a esfera talvez por isso seja tão usada como exemplo de cenas ren derizadas por essa técnica A superfície da esfera é definida pela posição das coorde nadas do seu centro xc yc zc e pelo comprimento de seu raio r podendo ser repre sentada pelo conjunto de pontos cujas coordenadas x y e z satisfazem a expressão x xc2 y yc2 z zc2 r2 ou x2 2 xc x xc 2 y2 2 yc y yc 2 z2 2 zc z zc 2 r2 Aplicandose a equação paramétrica da reta anterior em substituição a x y e z temos x0 tx1 x02 2 xcx0 tx1 x0 xc 2 y0 ty1 y02 2 yc y0 ty1 y0 yc 2 z0 tz1 z02 2 zc z0 tz1 z0 zc 2 r2 Essa equação de segundo grau como qualquer outra deste grau pode ter um dois ou nenhum valor numérico pertencente ao conjunto dos números reais que a solucione o que é chamado de raiz da equação Caso não possua raízes então o raio não cruza a esfera caso possua apenas uma raiz então o raio tangencia a esfera no ponto definido pela raiz t caso possua duas raízes então o raio cruza a esfera e a raiz de menor valor determina o ponto de entrada se estiver originalmente fora na esfera e a raiz de maior valor determina o ponto de saída Outro elemento muito necessário na renderização é a normal à superfície do ob jeto em um certo ponto Determinar essa normal é também muito simples para as superfícies esféricas Para uma esfera de raio r e centro xc yc zc a normal em um ponto da esfera de coordenadas x y z é descrita pelo vetor REALISMO VISUAL E ILUMINAÇÃO 301 1r x xc y yc z zc A interseção com polígonos isto é objetos com faces poligonais também pode ser facilmente obtida embora alguns cálculos adicionais sejam necessários A equa ção genérica do plano que contém um polígono pode ser definida pela equação ge ral do plano como Ax By Cz D 0 Aplicandose a equação paramétrica da reta anterior em substituição a x y e z temos Ax0 tx1 x0 By0 ty1 y0 Cz0 tz1 z0 D 0 De modo que resolvendo a equação temse t A x0 B y0 C z0 D A x1 x0 By1 y0 Cz1 z0 Essa é uma expressão do primeiro grau e matematicamente tem uma ou nenhuma solução Se o denominador parte de baixo da divisão for igual a zero então a equa çãonãotemsoluçãoissofisicamentesignificaqueoraiodeluzéparaleloaoponto Determinar a normal à superfície do objeto plano para a renderização é também direto pois em qualquer ponto do plano ela será definida simplesmente pelo vetor ABC Resta saber se o ponto de interseção do raio com o plano que contém o po lígono está contido no polígono Isso pode ser facilmente obtido em duas dimen sões ou seja utilizase a projeção ortogonal do polígono em um dos plano de proje ção como mostra a Figura 741 Por razões de precisão recomendase a utilização do plano no qual a projeção ortogonal do polígono seja maior 302 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Os pontos interiores Os pontos exteriores Raio y z x P P FIGURA 741 Técnicas de determinação da posição de um ponto em relação a um polígo no qualquer e ponto de interseção de um raio com um plano un vetor unitário normal à superfície do objeto J númerodasfontesdeluzqueiluminamopontoconsideradasnosomatório rt coeficiente de transmissão do material It intensidade do raio transmitido por refração rr coeficiente de reflexão do material Ir intensidade do raio refretido rs coeficiente de reflexão especular do material uh j vetor unitário na direção de máxima intensidade de reflexão H da jési ma fonte de luz n expoente que representa o polimento da superfície A cor de cada pixel é determinada individualmente através do cálculo da luz I que chega até o ponto de observação Essa luz segundo o modelo de Whitted tem duas componentes local e global A componente local é constituída pela parcela de iluminação que partindo das fontes de luz do cenário atinge diretamente uma superfície visível ao observador É composta por duas parcelas difusa e especular representadas respectivamente pelo segundo e terceiro termos da equação anterior A componente global é representada pelos demais termos da equação e é o grande diferencial do ray tracing Essa componente é responsável pelos efeitos de reflexão e refração exibidos na imagem O cálculo da componente global é obtido através da luz quechegaaopontodeinterseçãodoraiopelasdireçõesdereflexãoIrerefraçãoIt O cálculo do parâmetro Iré feito através do lançamento de um raio na direção de reflexão dada pela equação r i 2nii Essa equação está baseada nas propriedades de que os raios incidentes e refleti dos formam com a normal da superfície do objeto ângulos de incidência e reflexão iguais Considera ainda que os vetores normais n e de incidência i tenham com primento unitário Fisicamente existem infinitos raios de luz partindo de cada fonte de luz em uma cena Simular todos os raios seria uma tarefa impossível para um PC Por outro lado apenas os raios que são refletidos por objetos contribuem para a formação da imagem vista pelo observador Logo somente estes deverão ser simulados 304 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA i r n i r Determinados todos os pontos de interseção do raio com os objetos da cena po demos determinar qual o objeto mais próximo que será usado no cálculo da normal à superfície deste para uso na equação de iluminação descrita anteriormente Essa equação contém somatórias que consideram apenas as fontes que iluminam o ponto de interseção e não provocam sombras Precisamos então determinar quais fontes iluminam o ponto interceptado Essa determinação é feita lançandose no vos raios raios de sombra que partam do ponto de interseção em direção às fontes de luz A interseção de qualquer objeto por um raio de sombra indica que a fonte de luz provoca sombra no ponto considerado Nesta etapa o algoritmo já pode calcular a componente local da luz que determi na a cor de um dado pixel Podemos observar que o algoritmo de ray tracing é bastante simples pois seu nú cleo é constituído por uma rotina recursiva de lançamento de raios que forma a chamada árvore de raios 73712 Ray Tracing Parametrizado A técnica de ray tracing parametrizado foi introduzida formalmente em 1989 por Séquim e Smyryl A idéia desse algoritmo é armazenar as árvores de raios de cada pi xel e fazer uma reavaliação da equação correspondente à cor de cada pixel para cada mudança nos parâmetros ópticos obtendose uma nova imagem ajustada 73713 Monte Carlo Forward Ray Tracing O algoritmo de ray tracing Monte Carlo ao contrário de todos os outros algoritmos é baseado no método direto forward Isso significa que os raios partem da fonte de luz Em poucas palavras o método pode ser descrito assim Inicialmente escolhe mos randomicamente uma fonte de luz usando maior probabilidade para as fontes de maior intensidade No caso de fontes tubulares como lâmpadas fluorescentes onde a luz parte de todo o seu extenso cilindro um ponto em sua superfície é es colhido randomicamente Uma direção de raio é então escolhida randomicamente de acordo como a distribuição espacial da intensidade da fonte de luz O raio é então seguido até a interseção com algum elemento da cena ou até ele deixar o espaço da cena Quando ocorre a interseção devemos verificar o tipo de evento provocado ou seja se foi uma luz especular uma reflexão difusa uma refra ção se a luz foi absorvida etc A probabilidade de cada evento pode ser relacionada pelos coeficientes de reflexão transmissão ou absorção da superfície Se a absorção total for escolhida o raio não precisa mais ser seguido Para os outros casos uma nova direção é escolhida deterministicamente no caso da luz refletida especular ou estocasticamente no caso de dispersão difusa REALISMO VISUAL E ILUMINAÇÃO 305 Nesse algoritmo a energia do raio não muda durante o processo de rastreamento do raio ray tracing Cada evento que poderia mudar as propriedades da energia como uma absorção parcial passa a ser tratado na forma probabilística Durante o processo se um raio intercepta um triângulo no caso dos objetos serem formados por conjuntos de triângulos ou a malha da superfície os elementos do mapeamen to de iluminação light map são modificados para somar a energia trazida pelo raio O algoritmo de Monte Carlo trata as interseções dos raios com os pontos da ma lha da superfície necessitando somente das propriedades da superfície para aquele ponto A radiosidade trata a interseção dos raios considerando cada elemento da malha como um todo Como resultado a radiosidade fica limitada no cálculo das variações das propriedades da superfície dentro dos elementos da malha Na práti ca observamos que os algoritmos determinísticos podem produzir erros na textura quando usados na reflexão de superfícies curvas especulares 7372 Trabalhando com Ray Tracing Com o ray tracing é possível fazer duas reproduções com excelentes resultados reflexos e refrações Quando você estiver recriando a aparência de metal ou vi dro a partir de um material padrão quase nenhuma outra técnica superará o ray tracing Os reflexos gerados pelo ray tracing são mais precisos que os criados usando o mapa de reflexão O ray tracing permite também gerar reflexos em superfícies onde os mapeamentos falham Também é possível gerar diversos reflexos na superfície de um objeto Toda essa capacidade tem um preço alto e poderá demorar mais do que você imaginaria 73721 Reflexos Quando você usar o ray tracing para capturar as qualidades reflexivas de uma su perfície geralmente será mais importante considerar os reflexos da superfície do que sua rugosidade Isso acontecerá ao criar materiais metálicos 73722 Refrações A segunda capacidade real do ray tracing é a habilidade de copiar a aparência de ma teriais transparentes Quando a luz passa por uma superfície transparente ela ge ralmente é distorcida Essa distorção é conhecida como refração e a quantidade de refração é proporcional ao índice de refração IR O IR resulta variação da veloci dade relativa da luz quando ela muda de meio Em geral quanto mais denso for o objeto mais alto será o IR 306 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 73723 Metais com Ray tracing Uma das razões básicas para querer usar o ray tracing é produzir melhor reflexos em metal e em outros materiais reflexivos A maioria dos materiais reflexivos tem algum grau de rugosidade Pequenas imperfeições ou sujeira na superfície de um objeto mancharão o reflexo Marcas de dedos oleosos no vidro ou no alumínio poli do de uma roda de automóvel são bons exemplos desse efeito Manchando leve mente o reflexo em um material com ray tracing você poderá acrescentar muito rea lismo à superfície 73724 Ray Tracing em RealTime Rendering Apesar da grande redução no tempo de processamento proporcionada pelas técni cas de aceleração de ray tracing processamento paralelo ainda é necessário para atingir taxas próximas às necessárias ao realtime render Na verdade não existe nenhum computador pelo menos no mercado capaz de trabalhar com os algorit mos em RT2 Real Time Ray Tracing Essa limitação será uma questão de tempo afinal o algoritmo de ray tracing é inerentemente paralelo o que torna essa aplica ção especialmente interessante para implementação em máquinas de mais de um processador Alguns algoritmos interessantes surgiram no início da década de 1990 como o ray tracing incremental proposto por Murakami e Hirota o algoritmo de Monte Carlo e as estruturas hierárquicas para manipulação interativa de Brière e Polin Por enquanto quase todas as engrenagens 3D utilizam os light maps mapa de luz uma solução em que após o desenvolvimento da fase e posicionamento de lu zes fixas da cena um programa é executado uma única vez para calcular o ray trace a partir de um ponto fixo e armazenar a informação no mapa de luz 73725 Caustic Caustic é uma adição aos métodos de iluminação ray trace para rendering 3D que aumenta o realismo de uma imagem para perto do fotorrealismo ou hiperrealismo encontrando diversas aplicações para iluminação de animações games ou imagens estáticas Outras aplicações de cáustica referemse à engenharia onde são utilizadas na análise de superfícies e testes de resistência de material Basicamente podemos entender esse método observando a Figura 742 Quando um feixe de luz atinge uma superfície plana ele é refletido com o mesmo ângulo Quando a superfície não é plana os feixes são refletidos para diferentes ângulos podendo convergir para um mesmo ponto Essa concentração de raios em um de terminado ponto cria um efeito luminoso chamado caustic Figura 743 Mas e se a superfície for transparente REALISMO VISUAL E ILUMINAÇÃO 307 Podemos então dividir o caustic em duas formas o catacaustic e o diacaustic O catacaustic é o efeito provocado pela reflexão dos raios de luz na superfície O diaca ustic é o efeito provocado pela refração dos raios de luz ou seja quando o raio atra vessa a superfície Esses fenômenos são muito comuns na natureza e podem ser ob servados quando expomos copos de vidro ou águas à luz do sol Esse mesmo fenô meno pode ser observado em piscinas ou riachos Os primeiros estudos da superfície cáustica iniciaramse por volta de 1678 por Huy gens e Tschirnhaus Eles observaram que quando os raios da luz do sol entravam em um copo de água ocorria um fenômeno de iluminação intenso dentro do copo e uma sombra luminosa na superfície da mesa Essa região de concentração dos raios dentro do copo recebeu o nome de superfície cáustica e a sombra de shadow spot 308 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 742 Quando a superfície não é plana os feixes são refletidos para diferentes ângulos podendo convergir para um mesmo ponto FIGURA 743 Concentração de raios em um determinado ponto criando o efeito lumino so chamado Caustic Em 1986 Arvo propôs o primeiro algoritmo para a simulação desse fenômeno Ele propôs uma implementação com ray tracing de duas passadas onde a informação da primeira se comunica com a segunda Na primeira passada os raios de luz atingem os objetos da cena depositando uma quantidade de energia em seus light maps texture map que estão associados somente aos objetos com índice de reflexãorefração alte rando assim suas propriedades Na segunda passada os raios que atingem os objetos utilizarão o valor depositado para gerar a iluminação indireta Diversos sistemas para rendering 3D suportam o caustic todos com resultados obtidos por análises das propriedades dos materiais com fácil aplicação e entendi mento Existem ainda algumas técnicas de simulação de caustic muito utilizadas por jogos 3D para realtime rendering ou por interessados em agilizar o processo de render em cenas complexas O fenômeno natural da superfície cáustica é percebido instintivamente por nos sa mente merecendo uma atenção especial de interessados no desenvolvimento de imagens hiperrealistas 739 Radiosidade A técnica radiosidade tem diversas aplicações para iluminação de animações ga mes ou imagens estáticas Radiosidade é uma adição aos métodos de redering 3D que aumenta o realismo de uma imagem As imagens que resultam dessa renderiza ção são caracterizadas por sombras suaves e graduais Métodos convencionais de iluminação baseiamse na reflexão do raio de luz nos objetos até o olho do observa dor A radiosidade considera a reflexão de luz se transmitindo objeto para o outro até o olho do observador A proposta básica da radiosidade não considera reflexões especulares mas existem muitos trabalhos para possibilitar a combinação entre ra diosidade e reflexão especular Em muitas cenas principalmente em cenas de interiores existem zonas que não são diretamente iluminadas pelas fontes de luz A iluminação de tais zonas é produ to da luz refletida uma ou mais vezes por superfícies refletoras nãoespeculares Para tratar esses casos os métodos de ray tracing empregam um termo de ilumina ção ambiente constante cujo cálculo nem sempre é suficientemente preciso O em prego dessa técnica faz com que as superfícies indiretamente iluminadas aparentem uma iluminação uniforme em vez de uma variação de sombreamento gradual e sua ve o que conduz a diferenças abruptas de iluminação entre zonas diretamente ilu minadas e zonas que lhes são contíguas e não são diretamente iluminadas O méto do da radiosidade tem por objetivo o cálculo da iluminação e do sombreamento em cenas em que predominam superfícies refletoras difusas é deriva do cálculo das trocas de radiação térmica entre superfícies empregada em Transmissão de Calor adaptado à computação gráfica Na Figura 744 podemos observar uma variação de sombreamento gradual de uma luz oriunda da parte superior descoberta clara bóia e que ilumina o interior da parte coberta REALISMO VISUAL E ILUMINAÇÃO 309 Contudo diversos programas para rendering 3D já possuem a opção para rende ring com radiosidade ajustada como padrão O Lightflow é um exemplo possuindo um método eficiente e rápido de cálculo da radiosidade Na verdade quase todos os programas tem disponível diferentes métodos de radiosidade porém por mais rá pido que esses métodos possam ser não serão rápidos o suficiente para uso em am biente realtime rendering No entanto aplicar a radiosidade em ambiente realtime devemos reduzir um pouco o seu realismo para obter uma melhor performance do algoritmo Essa técnica foi aplicada em alguns jogos mas foi substituida por uma so lução ainda melhor O método utilizado pelas melhores engrenagens 3D baseiase em light maps ou radiosity mapping uma solução onde após o desenvolvimento da fase e posicionamento de luzes fixas do jogo é executado uma única vez o cálculo da radiosidade total de um objeto a partir de um ponto fixo e depois para to dos os outros pontos do objeto O resultado será uma variação da iluminação depo sitada nos mapeamentos Esse método é realmente muito eficiente mas possui al gumas limitações quando trabalhando com luzes móveis objetos distantes ou grandes mapeamentos Outra possibilidade é a implementação do algoritmo no hardware das acelerado ras gráficas Essa possibilidade ainda está em estudo devido a existência de infinitos métodos disponíveis no mercado 7391 Radiosidade com Luzes Dinâmicas Como vimos anteriormente na maioria dos jogos ou sistemas realtime a radiosi dade é précalculada para a fase chão paredes céu ou qualquer coisa fixa e que isso funciona muito bem desde que não exista uma fonte de luz móvel Porém sempre que disparamos um projétil ou míssil estamos criando uma fonte de luz mó vel Recalcular toda a radiosidade de todos os objetos da fase seria impossível A so lução nesse caso é segmentação do que é ou não relevante para ser recalculado Todo objeto que tiver uma grande probabilidade de mudança na radiosidade deve rá ser recalculado Geralmente só é feito o recálculo dos light maps para os objetos que estiverem próximos da luz dinâmica ou dos cantos entre objetos diferentes 7392 Refinamento Progressivo Em 1988 Cohen Chen Wallace Greenberg publicaram o artigo chamado A Pro gressive Refinement Approach to Fast Radiosity Image Generation que descrevia uma nova solução para geração rápida de imagens com radiosidade A idéia básica do refinamento progressivo é encontrar na cena a superfície que pode contribuir com maior energia A energia dessa superfície é então misturada com todas as outras superfícies e em seguida é feito um render da cena Após finali zar o render o processo se dá novamente localizandose a nova superfície que pos sui maior energia nem sempre será a mesma misturandose a outras superfícies 312 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Então um novo render é feito até que o observador progressivamente possa avaliar o resultado e assim ficar ou não satisfeito Esse processo permite ainda em tempo de execução o ajuste de iluminação ou cor da superfície O processo de render com ra diosidade reduzindo a necessidade de memória e de processador 7310 Técnicas de Iluminação A iluminação é uma poderosa ferramenta capaz de atrair a atenção passar emoções ou iludir o espectador Grandes estúdios contratam especialistas em iluminação real para trabalhar em conjunto com equipes de computação gráfica Na verdade a iluminação é um dos pontos mais difíceis e demorados de um projeto Portanto não se sinta frustrado se após horas de modelagem perfeita com texturas maravi lhosas o seu projeto não ficar como imaginado Como dica recomendamos obser var como a luz se manifesta na natureza e nos ambientes utilizando sempre as dire trizes para iluminação usada por fotógrafos diretores e desenhistas durante o pro cesso de instalação da iluminação para as cenas Geralmente os sistemas possuem um modelo de iluminação padrão Esse mode lo também chamado de modo de trabalho consiste de duas lâmpadas omni posicio nadas uma como luz principal e outra como luz de preenchimento Essa ilumina ção padrão não atinge um nível de realismo satisfatório forçando o acréscimo de novas lâmpadas Acrescentar novas lâmpadas significa não só escolher o tipo de lâmpada mas também saber posicionálas 73101 Luz Principal Key Light Antes de iniciarmos o processo de iluminação devemos retirar a iluminação padrão dosistemaEsseprocessogeralmenteéautomáticoquandoinserimosumanovaluz A luz principal cria a iluminação principal da cena representando a fonte domi nante como o sol ou uma lâmpada no centro do quarto A luz chave é a mais intensa das lâmpadas e a responsável pela sombra Geralmente essa luz é do tipo direcional e posicionada de 15 a 45 graus em rela ção à câmera Figura 745 Embora essa posição forneça uma boa visão do objeto o resultado é uma imagem plana e sem vida com sombras marcadas e muito pronun ciadas Além disso a cena parecerá sempre escura demais porque não há uma luz ambiente natural para iluminar as áreas sombreadas 73102 Luz de Preenchimento Fill Light A luz de preenchimento suaviza e estende a iluminação provida pela luz principal torna o objeto alvo mais visível fornecendo a noção de profundidade e a sensação de realidade à cena Geralmente usamos uma ou mais lâmpadas posicionadas no ân gulo oposto ao ângulo da luz principal simulando uma iluminação indireta Figura REALISMO VISUAL E ILUMINAÇÃO 313 746 Para isso a lâmpada ou a soma delas deve ter seu brilho reduzido à metade do valor da luz principal 73103 Luz de Recuo Back Light Também conhecida como luz de fundo ou luz de borda Figura 747 O objetivo da luz de recuo é auxiliar a visualização do objeto alvo separandoo do fundo Essa luz é posicionada atrás do objeto e oposta a câmera 74 TEXTURAS Os modelos de iluminação não são apropriados para descrever todas as proprieda des da superfície de um objeto por exemplo rugosidade e padronagem Em princí pio é possível modelar esses detalhes com o acréscimo de detalhes na geometria da superfície ou usando materiais de propriedades óticas distintas Essa forma torna o processamento muito complexo de modo que na prática esses efeitos são modela dos com o uso de mapas de textura 314 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Key Imagem Resultante 1545 FIGURA 745 A luz principal responsável pelas sombras e pela iluminação da cena FIGURA 746 A luz de preenchimento suaviza e estende a iluminação provida pela luz principal A idéia básica é reproduzir sobre a superfície do objeto as propriedades de algu ma função ou mapeamento bidimensional Para trabalhar com mapas de texturas é fundamental e ter um bom programa de composição e tratamento de imagens Você poderá também usar bibliotecas de tex turas disponíveis na Internet 741 Mapas Procedurais Um bitmap é uma imagem produzida por uma matriz fixa de pixels coloridos Os ma pas procedurais por exemplo um tabuleiro de xadrez pode ser gerado por um algo ritmo Esses mapas dispensam a utilização de imagens e podem ser inclusive tridi mensionais por isso são muito usados para a síntese de cenas complexas ou aplicações em realtime Eles também são boas fontes para mapeamento de textura sintéticas Dentre os mapas procedurais o mapa de ruído tem recebido uma atenção espe cial Esses mapas têm produzido uma variedade de imagens bastante realistas com texturas geradas por algoritmos fractais Figura 748 742 UVW Map A maior parte dos mapas de materiais são planos 2D atribuídos à superfície de objetos 3D O sistema de coordenadas usado para descrever a colocação e trans formação de mapas é diferente do sistema de coordenada X Y e Z usado para des crever o objeto Especificamente os mapas de coordenadas usam as letras U V e W a três letras que precedem as X Y e Z no alfabeto empregadas no sistema de co ordenadas do objeto U é o equivalente de X e representa a direção horizontal do mapa V é o equivalen te de Y e representa a direção vertical do mapa W é o equivalente de Z e representa a direção perpendicular do plano UV O eixo W é geralmente usado para mapas proce durais tridimensionais ou para girar os mapas na superfície dos objetos o segundo caso ocorre quando trocamos os sistemas de coordenadas de VW para WU REALISMO VISUAL E ILUMINAÇÃO 315 FIGURA 747 Aluzderecuoauxiliaavisualizaçãodoobjetoalvoseparandoodofundo O mapeamento aplicado deve se deformar com o objeto Figura 749 Quando trabalhamos com objetos simples como cubos e esferas estes já possuem o seu mapa de coordenadas predefinido que pode ser utilizado no mapeamento do plano VV para a superfície dos objetos Porém objetos criados a partir de scanners ou ma lhas não possuem um mapa de coordenadas forçando a criar mapeamentos com plexos para que as texturas fiquem devidamente aplicadas ou usar mapeamentos em passados 743 Texture Map Texture Map foi tradicionalmente usado para adicionar realismo nas imagens gera das por computador Nos últimos anos essa técnica saiu do domínio de sistemas de render por software para hardwares de alta performance Essa técnica foi inicialmente proposta por CATMULL 74 Em sua forma bási ca o mapa de textura aplica uma imagem ou seja uma textura sobre um objeto na cena Por ser muito útil e simples passou a ser considerado como padrão para as in terfaces de softwares e hardwares gráficos Os mapas de texturas podem ser usados em cenas complexas com um baixo custo de processamento Quando mapeamos uma textura em um objeto a cor do objeto em cada pixel é modificada pela cor correspondente na textura Para aplicar a imagem nos objetos devemos antes seguir alguns passos 316 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 748 Exemplo de Mapas Procedurais FIGURA 749 UVW Map A textura deve ser armazenada como um array A textura deve ser mapeada para adaptarse a superfícies do objeto e a uma visão da cena em perspectiva A textura deve ser tratada para retirarse imperfeições devidas ao aliasing É importante considerar que as imagens de textura não precisam ser necessaria mente bidimensionais No caso tridimensional uma fatia bidimensional deve ser selecionada para descrever as propriedades da superfície usadas no cálculo da ilu minação e sombreamento Uma generalização da técnica chamada de projective textures propõe a proje ção da imagem sem coordenadas fixas O resultado é uma imagem deslizando sobre a superfície Essa técnica permite simular animações de água ou refletores Projecti ve texture é também muito útil na simulação de sombras Nesse caso uma imagem é construída representando a distância da fonte de luz em relação ao polígono Ao técnicas de mapeamento podem também representar objetos transparentes ou semitransparentes Essa técnica é muito usada na simulação de nuvens e árvores onde mapas 2D são inseridos na cena em retângulos 744 Environment Mapping ou Mapa de Reflexão Os environment maps são usados para fazer o render de objetos reflexivos Esse modelo foi inicialmente proposto por Blinn Newell em 1976 e é capaz de simular efeitos de ray tracing a baixo custo Environment mapping é o tipo de mapeamento que reflete na superfície dos objetos os elementos que compõem a cena Essa técnica pode ser alcançada de duas formas A primeira forma tomando um cubo como exemplo requer seis imagens de textura uma para cada direção conten do as informações dos objetos que compõem o ambiente Para cada vértice do polí gono um vetor de reflexão é calculado Esse vetor indica uma das seis imagens Esse método não é muito exato mas bem convincente O segundo método é gerar uma única imagem de uma esfera refletindo o ambiente Figura 750 Cada hemis fério da esfera representará um hemisfério do ambiente Um dos problemas dessa técnica é que o objeto não reflete a si mesmo o que pode resultar em erros na imagem de objetos não convexos 745 Bump Map Quando utilizamos uma fotografia de uma superfície áspera como mapa de textura a superfície renderizada não fica muito correta porque a direção da fonte de luz uti lizada para criar o mapeamento é diferente da direção da iluminação do sólido Blinn desenvolveu uma técnica para amenizar esse efeito dando uma perturbação nanor mal à superfície antes de aplicar o modelo de iluminação Essa perturbação produz um deslocamento virtual na posição dos pontos da superfície REALISMO VISUAL E ILUMINAÇÃO 317 Bump Map é uma técnica usada para adicionar realismo sem modificar a geome tria ao objeto Essa técnica adiciona um sombreamento nos pixels produzindo uma ilusão de relevo no objeto renderizado A cor de uma superfície está relaciona da com ângulo entre o vetor normal da superfície e a direção da luz Em uma super fície plana o vetor normal é o mesmo para toda a superfície logo a cor da superfície será sempre a mesma No bump map as propriedades de refração da luz são usadas para indicar quais partes são mais escuras ou mais claras Figura 751 Para isso a técnica irá perturbar o vetor normal em vários pontos da superfície criando uma ilusão de que algumas partes da superfície estariam elevadas ou rebaixadas Com a finalidade de uma perturbação adequada da normal para produzir deter minado efeito usamos um mapa de altura Height Map fazendo com que zonas de maior intensidade de cor branco pareçam em altorelevo e as de menor intensida de preto pareçam em baixorelevo ou viseversa Na Figura 752 é apresentado o mapa de textura com seu height map usada para o mapeamento maçã As superfíci es que aparentam ter uma rugosidade são boas candidatas para os bump maps Ótimo exemplo dessa técnica é o muro de tijolos da Figura 753 observe como o muro da direita apresenta os relevos entre os tijolos 318 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 750 Environment Mapping Em uma superfície plana todas as áreas são igualmente brilhantes Em uma superfície modificada com bump criase um falso relevo B B B B B E Brilhante Escuro Raio Incidente Raio Refletido E B B E FIGURA 751 As propriedades de refração da luz em Bump Map 7451 Emboss Bump Map O tipo mais comum de bump mapping é o emboss map Essa técnica usa os mapas de textura para gerar os efeitos de bump map sem precisar de um render específico Os passos desse algoritmo são os seguintes Figura 754 Renderiza a imagem com uma textura Deslocase as coordenadas da textura Rerenderizase a imagem com textura sobrepondose a primeira imagem REALISMO VISUAL E ILUMINAÇÃO 319 FIGURA 752 Mapa de Textura Bump Map e efeito sobre um objeto FIGURA 753 Paredes da esquerda sem Bump Map e da direita com Bump Map 746 Light Map Os light maps foram inicialmente usados em 1987 por Arco e Kirk para simular ray tracing em duas passadas Suas motivações se devem à aplicação do método de ar mazenamento da iluminação difusa para viabilizar a implementação de um modelo de iluminação global que pudesse ser executado em um tempo razoável Porém aplicações recentes utilizam esse recurso para iluminação e sombreamento em apli cações de tempo real Os light maps possibilitam um précálculo da luz para armazenamento em mapa de textura bidimensional e são usados para dar velocidade no render de objetos 3D com iluminação complexa Na teoria não existe nenhuma limitação para light maps tridimensionais mas na prática exigirá uma grande quantidade de memória Em vez de calcularmos o efeito provocado pela luz no objeto em realtime armaze namos uma amostra da contribuição da fonte de luz previamente calculada e aplica mos como textura no objeto 3D Figura 755 Uma das grandes vantagens é a pos sibilidade de se usar o resultado de métodos como radiosidade ou outros de ilumi nação global que poderiam demorar até 1 hora para serem calculados É importan te perceber que quando o observador ou o objeto muda sua posição as coordena das do mapeamento devem ser corrigidas De qualquer forma quando lidamos com uma iluminação complexa modificar as coordenadas será ainda muito mais rápido do que calcular o efeito da iluminação em cada superfície Outra importante carac terística do light map é a capacidade de prover um highlight shading mais realísti co sem sacrificar a velocidade de render Esse benefício é ainda mais acentuado quando lidamos com superfícies reflexivas ou muito brilhantes Apesar de todos os benefícios obtidos com os light maps existem algumas li mitações quanto ao seu uso Primeiro a fonte de luz deve ser estática Se deseja mos utilizar os light maps para uma luz móvel como por exemplo um projétil os light maps podem ser recalculados as coordenadas do mapeamentos altera das ou redimensionadas Recalculálos completamente para todos os objetos da cena seria impossível A solução neste caso é segmentar o que é ou não relevan REALISMO VISUAL E ILUMINAÇÃO 321 Textura Light Map Texture Light Map FIGURA 755 Amostra da contribuição da fonte de luz aplicada na textura te para ser recalculado Todo objeto que tiver uma grande probabilidade de mu dança na sua luz deverá ser recalculado geralmente os objetos que estiverem próximos da luz móvel ou cantos entre objetos diferentes Se sua placa gráfica não suporta multitexturing recurso desenvolvido para ace lerar o trabalho de misturar diversas texturas em um objeto o render representará muito custo de tempo Outra limitação pode ser constatada quando utilizamos os light maps em máquinas lentas podendo ocorrer um atraso na inicialização da cena Essa limitação pode ser contornada com a utilização de light maps customi zados Quase todas as engrenagens 3D utilizam os light maps Nelas os light maps são utilizados para simular os efeitos de luzes locais estacionárias e móveis produzindo um ótimo resultado final Um light map deve ser aplicado a uma superfície como o mapa de textura de uma cena modulando a intensidade da superfície para simular os efeitos de uma luz local Porém quando trabalhamos com realtime não podemos ficar mu dando a textura da memória o que consumiria um tempo valioso Nesse caso podemos criar um light map com características de intensidade e cor de algumas luzes e aplicálo em diferentes superfícies alterando somente as coordenadas e dimensões do mapeamento simulando diferentes tamanhos e distâncias da lu zes A Figura 756 cortesia da Paralelo Computação wwwfly3dcombr apre senta um light map de uma fase da engrenagem Fly3D Nesse light map todas as contribuições de iluminação da cena são armazenadas em uma única imagem guardando as respectivas coordenadas 322 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 756 Light Map de uma fase da engrenagem Fly3D Cortesia da Paralelo Com putação 747 MipMapping MipMapping é um tipo de mapeamento que propõe a solução de dois problemas no mapeamento de objetos em cenas de animação ou realtime rendering O pri meiro problema ocorre com o afastamento do observador em relação aos objetos Quando as texturas destes ficam maiores do que a quantidade de pixels disponí veis o render terá de aplicar o antialising realizando uma média final dos pixels da imagem produzindo como resultado final ruidos de fundo especialmente orien tado moiré Figura 757 Além desse indesejado ruído devemos somar o tem po de processamento para o cálculo da média Para se ter uma idéia imagine uma textura de 256x256 pixels 65536 pixels a ser renderizada em um cubo que ocu pa 8x8 pixels 64 pixels da tela Isso significará que cada pixel deverá conter a in formação de 65536641024 pixels O segundo problema ocorre com a aproximação do objeto alvo revelando deta lhes indesejados da textura geralmente por baixa resolução Esse problema pode ser contornado aumentando a resolução da imagem mas isso significaria mais me mória tempo de processamento e ruídos provocados pelo primeiro problema Para solucionar esses problemas o mipmapping propõe a utilização de mais de uma imagem como textura onde cada imagem possui um nível de resolução decrescente conforme o observador se afasta Por exemplo enquanto caminha através de uma galeria virtual os quadros ou obras de arte próximos ao observa dor teriam uma resolução alta que permitiria a visualização dos detalhes da obra enquanto isso as obras distantes receberiam uma imagem de baixa resolução Isso significará uma melhor qualidade do render com economia de memória e processador Vamos supor uma textura de tamanho 128x128 Se reduzirmos nossa textura por um fator 2 teremos no final uma textura igual menos detalhada com um ta manho 64x64 Nesse caso a perda do detalhe não será percebida porque você terá se afastado do objeto Seguese esta idéia até 2x2 onde a textura terá somente uma cor Figura 758 REALISMO VISUAL E ILUMINAÇÃO 323 Ruído FIGURA 757 Ruído provocado pela redução de pixels disponíveis Esse tipo de mipmapping é o que podemos chamar de mipmapping convencio nal e é usado pela maioria das engrenagens e placas 3D Um outro tipo de mip mapping é o mipmapping bidirecional Nesse tipo a textura não recebe uma re dução igual em ambas as direções mas uma redução diferente no sentido horizon tal U e outra na vertical V O mipmapping bidirecional apresenta um resultado melhor sempre que a redução for diferente em cada sentido Figura 759 75 HIPERREALISMO As técnicas de hiperrealismos são adições aos métodos de rendering que aumen tam o realismo de uma imagem para o fotorrealismo Os métodos de iluminação global ray tracing caustic e radiosidade são exemplos clássicos da síntese de imagens realistas Grande parte desses métodos ocorre na passada de iluminação ou efeito Esses recursos geralmente não estão disponíveis no render padrão dos sistemas forçando os artistas a buscar técnicas de simulação Porém você poderá incorporar esses recursos instalando plugins como o Final Render ou Render Brazil 324 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 128 x 128 64 x 64 32 x 32 16 x 16 8 x 8 4 x 4 2 x 2 FIGURA 758 Redução da textura pelo fator 2 FIGURA 759 Mipmapping bidirecional 751 High Dynamic Range Images HDRI Geralmente ao se criar uma cena 3D os objetos distantes como montanhas nu vens lagos árvores e todo cenário de fundo não são modelados para não sobrecar regar inutilmente o softwarehardware deixandoo lento e travado Nesses casos são usadas imagens como fundo backgrounds essas imagens são incorporadas a cena mas não interagem com os objetos ou seja não contribuem na iluminação Os arquivos de extensão hdr possuem propriedades de energia passando ao pro grama quais regiões da imagem são fontes de luz O que ocorre é que as imagens HDR possuem mais informações além dos canais de cores RGB Essas informa ções adicionais dizem quais são os pixels da imagem que contêm atributos de ener gia luminosa Sendo assim em uma foto convencional de um céu onde existe o Sol por exemplo a área que corresponde a ele seria no máximo branca com informa ções de RGB em 255255255 mas na verdade deveriam existir bem mais intensi dades e estas deveriam contribuir para a iluminação da cena O mapa de imagem com HDR corrige essa deficiência incluindo na imagem informações de intensidade de luz Uma das coisas mais interessantes deste método é que em muitos casos será desnecessária a utilização de qualquer tipo de lâmpadas na cena ficando a ilumina ção total a cargo do mapa HDR Objetos iluminados com HDR parecem realmente fazer parte de todo o cenário Isso possibilita um fotorealismo impressionante e quase sempre as cenas não pre cisam conter uma única fonte direta de luz A Figura 760 apresenta duas imagens com mapeameto HDR de diferentes intensidades Observe que nessa cena não exis te nenhuma lâmpada e que a luz parte da própria imagem 752 Atenuação Atmosférica Neste modelo os objetos que estão mais distantes do observador vão parecer estar mais foscos Isso ocorre no mundo físico por causa de materiais presentes na atmos REALISMO VISUAL E ILUMINAÇÃO 325 FIGURA 760 High Dynamic Range Images HDRI fera como poeira vapor dágua ou fumaça O que acontece é que a fonte de luz emite raios que quando se encontram com as camadas atmosféricas são em parte é refle tidos e em parte é dispersados Figura 761 753 Area Light e Soft Shadow Quando temos uma fonte de luz os raios emitidos na maioria dos casos não deri vam de um único ponto No caso de uma lâmpada fluorescente tubular a luz parte de todo o seu extenso cilindro Ao projetar sombras essas luzes chamadas de Áreas de Luz formam uma som bra suave que se dispersa à distância Figura 716 Isso permite um sombreamento mais convincente e verdadeiro Essas sombras são típicas de cenas que usaram ra diosidade ou iluminação global e por isso o uso simulado desse tipo de iluminação serve também para ajudar na produção de falsa radiosidade 754 SubSurface Light Scattering Sub Surface Light Scattering é um aprimoramento das técnicas de radiosidade que leva em conta o material utilizado no objeto Se colocarmos nossa mão próxima a uma lâmpada veremos que a luz atravessa a mão produzindo uma coloração aver melhada A essa propriedade damos o nome de translucidez cuidado para não con fundir com transparência A translucidez está presente em diversas obras de arte como estátuas e em uma infinidade de elementos na natureza Na Figura 762 uma das estátuas recebeu o tratamento enquanto a outra não 326 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 761 Efeito provocado pela atenuação atmosférica Neste contexto existem mais duas técnicas BRDF Bidirectional Reflectance Distri bution Function e BSSRDF Bidirectional Surface Scattering Distribution Function A BSSRDF descreve com maior precisão do que a BRDF a forma como a luz en tra e sai de um material BSSRDF pode descrever os movimentos da luz no momen to em que entra e sai do material enquanto BRDF assume que o raio de luz entra e sai do material no mesmo ponto Sub Surface Light Scattering utilizará BSSRDF para descrever a mudança do ân gulo da luz provocada pela particularidade do material A Figura 763 apresenta o detalhamento interno da superfície de uma folha REALISMO VISUAL E ILUMINAÇÃO 327 FIGURA 762 SubSurface Light Scattering aplicado em um objeto transparente FIGURA 763 Detalhamento interno da superfície de uma folha com Scattering 755 Depth of Field DOF ou Profundidade de Campo Ao fotografar ou filmar algo com uma câmera temos de ajustar o foco para o objeto alvo Figura 764 Esse ajuste faz com que todos os objetos que estiverem em ou tras profundidades na frente ou atrás apareçam borrados O efeito de DOF simula na iluminação esse efeito em 3D causado pela lente da câmera é um recurso muito útil para conseguir mais inteligibilidade em uma cena 756 Motion Blur Desfocagem por Movimento Quando fotografamos um objeto em movimento observamos que ele aparece desfocado embaçado em relação aos outros exceto quando aumentamos muito a velocidade do diafragma No processo físico o desfoque por movimento ocorre em conseqüência do tempo de exposição do filme à luz Os sistemas tentam simu lar esse efeito calculando a posição dos objetos nos quadros anteriores e nos pos teriores e misturando todas essas diferentes posições num único quadro Esse efei to é muito simples e fácil de ser usado podendo ser aplicado nos objetos ou na cena inteira 757 Film Grain Este efeito recria o efeito granulado das películas filmes Pouco utilizado pela maio ria dos usuários de computação gráfica é um dos efeitos mais importantes existen tes Um pequeno toque de ruído na cena pode tirar em grande parte aquele visual e limpo de imagens geradas por computador 328 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 764 Depth of Field DOF ou Profundidade de Campo 758 Lens Flare São pequenos círculos que você normalmente veria saindo da fonte de luz Eles são causados pela refração da luz nos diversos elementos de lente na máquina fotográfi ca ou vídeo Repare na Figura ColorPlate 4 o pequeno círculo ao lado do sol e o ar coíris formado pela lente 759 Glow Adiciona uma aura ao redor do objeto Por exemplo para sistema de partícula ou uma explosão adicionando o glow as partículas parecerem mais brilhantes e quentes O glow é muito usado para simular a exaustão em turbinas de avião mas se você observar esse efeito na natureza na forma de estrelas anéis listras ou outras formas Na maioria das vezes essas formas ocorrem em conjunto 76 REALISMO E ILUMINAÇÃO EM OPENGL 761 Zbuffer Buffers são áreas reservadas de memória utilizadas para determinados propósitos Em aplicações de animação por exemplo o doublebuffer permite que as sucessi vas renderizações sejam feitas de modo suave sem o efeito indesejável de piscar en tre cada atualização da janela de visualização Para isso o comando auxInitDisplayMode deve ser utilizado com o parâmetro AUXDOUBLE e o comando auxSwapBuffers deverá ser acrescentado ao final dos comandos de renderização O zbuffer também é bastante comum em aplicações gráficas e é utilizado para calcular a distância do observador e remover superfícies ou partes ocultas de obje tos sobrepostos Para ativar este recurso utilizamos o comando auxInitDisplay Mode com o parâmetro AUXDEPTH o comando glClear com o parâmetro GLDEPTHBUFFERBIT e acrescentamos o comando glEnable com o parâme tro GLDEPTHTEST antes dos comandos de renderização glDepthRangeznear zfar default 0 1 762 HiddenSurface Removal While 1 pegaropontodevistadaposiçãodomouse glClearGLCOLORBUFFERBIT draw3dobjectA draw3dobjectB REALISMO VISUAL E ILUMINAÇÃO 329 763 Algoritmo de Eliminação de Faces Culling O Comando glCullFaceGlenum mode indica se alguma face ou se todo o objeto deve ser descartado antes de serem convertidos para a coordenada de vídeo As op ções destecomandoincluemGLBACKparaexclusãodafaceposteriorGLFRONT para exclusão da face dianteira e GLFRONTANDBACK para exclusão de todo o objeto 764 Iluminação 7641 Modelo de Tonalização O modelo de tonalização pode ser estabelecido com o comando glShadeModelGLenum mode onde mode especifica o modelo de tonalização sendo o padrão GLSMOOTH modelo de Gouraud onde a cor de cada ponto da primitiva é interpolada a partir da cor calculada nos vértices O outro modelo é GLFLAT onde a cor não varia 7642 Propriedades de Iluminação do Material O comando glMaterial e suas variações estabelecem os parâmetros do material que serão usados pelo modelo de iluminação As variações desse comando são glMaterialfGlenum face GLenum pname GLfloat param glMaterialiGLenum face GLenum pname GLint param glMaterialfvGLenum face GLenum pname const GLfloat params glMaterialivGLenum face GLenum pname const GLint params onde face determina se as propriedades do material dos polígonos que estão sen do especificadas são front GLFRONT back GLBACK ou ambas GLFRONTANDBACK pname para as duas primeiras variações especifica o parâmetro de um úni co valor que está sendo determinado para as duas últimas variações que recebem um vetor como parâmetro pode determinar as seguintes pro priedades do material GLAMBIENT GLDIFFUSE GLSPECULAR GLEMISSION GLSHININESS GLAMBIENTANDDIFFUSE ou GLCOLORINDEXES param GLfloat ou GLint especifica o valor que será atribuído para o parâ metro determinado por pname params GLfloat ou GLint é um vetor de números reais ou inteiros que contém as componentes da propriedade que está sendo especificada 330 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Através dessa função é possível determinar as propriedades de reflexão do mate rial As propriedades GLAMBIENT GLDIFFUSE e GLSPECULAR afetam a ma neira na qual as componentes de luz incidente são refletidas GLEMISSION é usa do para materiais que possuem luz própria GLSHININESS pode variar de 0 a 128 quanto maior o valor maior é a área de highlight especular na superfície GLCOLORINDEXES é usado para as propriedades de refletância do material no modo de índice de cores 7643 Modelo de Iluminação O comando glLightModel com suas variações estabelece os parâmetros do modelo de iluminação usado por OpenGL É possível especificar quantos modelos desejar GLLIGHTMODELAMBIENT é usado para especificar a luz ambiente padrão para uma cena GLLIGHTMODELTWOSIDE é usado para indicar se ambos os lados de um polígono são iluminados O padrão ilumina somente o lado frontal GLLIGHTMODELLOCALVIEWER modifica o cálculo dos ângulos de refle xão especular As variações desse comando são glLightModelfGLenum pname GLfloat param glLightModeliGLenum pname GLint param glLightModelfvGLenum pname const GLfloat params glLightModelivGLenum pname const GLint params onde pname especifica o modelo de iluminação param GLfloat ou GLint para GLLIGHTMODELLOCALVIEWER um valor 00 indica que os ângulos da componente especular tomam a dire ção de visualização como sendo paralela ao eixo z e qualquer outro valor indica que a visualização ocorre a partir da origem do sistema de referência da câmera para GLLIGHTMODELTWOSIDE um valor 00 indica que somente os polígonos frontais são incluídos nos cálculos de ilumina ção e qualquer outro valor indica que todos os polígonos são incluídos nos cálculos de iluminação params GLfloat ou GLint para GLLIGHTMODELAMBIENT ou GLLIGHTMODELLOCALVIEWER aponta para um vetor de núme ros inteiros ou reais para GLLIGHTMODELAMBIENT o conteúdo do vetor indica os valores das componentes RGBA da luz ambiente REALISMO VISUAL E ILUMINAÇÃO 331 7644 Fonte de Luz O Comando glLight e suas variações estabelecem os parâmetros da fonte de luz para uma das oito fontes de luz disponíveis As variações desse comando são glLightfGLenum light GLenum pname GLfloat param glLightiGLenum light GLenum pname GLint param glLightfvGLenum light GLenum pname const GLfloat params glLightivGLenum light GLenum pname const GLint params onde light especifica qual fonte de luz está sendo alterada varia de 0 a GLMAXLIGHTS valores constantes de luz são enumerados de GLLIGHT0 a GLLIGHT7 pname especifica qual parâmetro de luz está sendo determinado pela chama da dessa função GLAMBIENT GLDIFFUSE GLSPECULAR GLPO SITION GLSPOTDIRECTION GLSPOTEXPONENT GLSPOTCUT OFF GLCONSTANTATTENUATION GLLINEARATTENUATION GLQUADRATICATTENUATION param GLfloat ou GLint para parâmetros que são especificados por um único valor param esses parâmetros válidos somente para spotlights são GLSPOTEXPONENT determina a concentração da luz GLSPOTCUT OFF especifica a largura do cone GLCONSTANTATTENUATION GLLINEARATTENUATION e GLQUADRATICATTENUATION ti pos de atenuações params GLfloat ou GLint um vetor de valores que descrevem os parâ metros que estão sendo especificados As duas primeiras variações requerem apenas um único valor para determinar uma das seguintes propriedades GLSPOTEXPONENT GLSPOTCUTOFF GLCONSTANTATTENUATIONGLLINEARATTENUATIONeGLQUADRA TICATTENUATION As duas últimas variações são usadas para parâmetros de luz que requerem um vetor com múltiplos valores GLAMBIENT GLDIFFUSE GLSPECULAR GLPOSITION e GLSPOTDIRECTION Para eliminar o brilho do objeto como se o material fosse opaco basta eliminar a componente especular Programa Exemplo de Iluminação float pos4 3331 float color4 1111 float sp4 1111 float matspecular 1111 glEnableGLDEPTHTEST glEnableGLCOLORMATERIAL 332 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA glEnableGLLIGHTING glEnableGLLIGHT3 glEnableGLLIGHT5 glEnableGLLIGHT6 glLightfvGLLIGHT3 GLSPECULAR sp glLightfvGLLIGHT5 GLSPECULAR sp glLightfvGLLIGHT6 GLSPECULAR sp color1color20 glLightfvGLLIGHT3 GLDIFFUSE color color00 color11 glLightfvGLLIGHT5 GLDIFFUSE color color10 color21 glLightfvGLLIGHT6 GLDIFFUSE color glLightfvGLLIGHT3 GLPOSITION pos pos0 3 glLightfvGLLIGHT5 GLPOSITION pos pos00pos13 glLightfvGLLIGHT6 GLPOSITION pos glMaterialfvGLFRONT GLSPECULAR matspecular glMaterialfGLFRONT GLSHININESS 1280 765 Texturas OpadrãoOpenGLexigequeasdimensõesdasimagensdetexturassejamempotências de 2 As imagens de textura podem também ter 1 ou dois pixels de borda sobre suas ex tremidades para definir a cor dos polígonos que estão fora da imagem de textura O uso de texturas requer a execução de dois passos distintos a carga e a aplica ção da textura Em OpenGL cada textura recebe um número de identificação atra vés da função glGenTextures que é usado para definir a textura corrente Sempre que for necessário trabalhar com uma textura para carga ou aplicação devese chamar a função glBindTexture que define a textura corrente através do número de identificação 7651 Carga de uma Textura Pararealizaratarefadecargadeumatexturaénecessárioseguirosseguintespassos Habilitar o uso de texturas glEnable GLTEXTURE2D GLTEXTURE2D define que será usada uma textura 2D REALISMO VISUAL E ILUMINAÇÃO 333 Definir a forma de armazenamento dos pixels na textura 1 alinhamento por byte glPixelStorei GLUNPACKALIGNMENT 1 Definir quantas texturas serão usadas no programa GLuint textureidMAXNOTEXTURES vetor com os números das texturas glGenTextures 1 textureid 1 uma textura textureid vetor que guarda os números das texturas Definir o número da textura do cubo textureid0 1001 Definir a textura corrente glBindTexture GLTEXTURE2D textureid0 carregar uma imagem TGA imaget tempimage tgaLoad TGAImagetga tempimage TGAFREE TGALOWQUALITY 7652 Aplicando uma Textura Para a aplicação da textura é preciso criar uma relação entre os vértices da textura e os vértices dos polígonos sobre os quais se deseja mapear a textura escolhida O processo de mapeamento de texturas em OpenGL consiste em aplicar a imagem 2D sobre o polígono 3D de forma que os pontos A B C e D Figura 765 sejam en caixados sobre os pontos A1 B1 C1 e D1 Para permitir a construção dessa corres pondência entre a imagem 2D e o polígono 3D usase a função glTexCoord2f antes da definição do ponto 3D Por exemplo glTexCoord2f00f 00f glVertex3f10f 10f 10f define que o ponto 00 00 da textura 2D corresponde ao ponto 10 10 10 do polígono 3D O Código para aplicação da textura segue como 334 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA FIGURA 765 Relação entre os vértices para aplicar texturas em OpenGL Define a textura corrente glBindTexture GLTEXTURE2D textureid0 associa cada vértice do polígono a um ponto da textura glTexCoord2f10f 00f glVertex3f10f 10f 10f glTexCoord2f10f 10f glVertex3f10f 10f 10f glTexCoord2f00f 10f glVertex3f10f 10f 10f glTexCoord2f00f 00f glVertex3f10f 10f 10f 7653 MipMapping A OpenGL e grande parte das placas de vídeo suportam texturas com múltiplas imagens A técnica mipmapping seleciona a imagem de textura para um polígono mais próximo da resolução da tela A carga da texturas mipmapped leva um pouco mais de tempo do que uma textura padrão mas os resultados visuais são melhores Além disso as texturas mipmapped podem melhorar a performance de exibição re duzindo a necessidade de filtros de imagem GLLINEAR As texturas mipmapped são definidas fornecendo um parâmetro específico de ní vel para cada imagem Os níveis de imagem são especificados no primeiro parâme tro da chamada glTexImage1D A imagem nível 0 é a primária com a maior reso lução para a textura A imagem nível 1 é metade do tamanho da imagem primária e assim por diante Quando polígonos com uma textura mipmapped são desenhados é necessário o uso de filtros redutores GLTEXTUREMINFILTER veja a se guinte tabela Filtro Descrição GLNEARESTMIPMAPNEAREST Usa a imagem mais próxima da resolução da tela polígono Usa o filtro GLNEAREST quando faz a texturização com essa imagem GLNEARESTMIPMAPLINEAR Usa a imagem mais próxima da resolução da tela polígono Usa o filtro GLLINEAR quan do faz a texturização com essa imagem GLLINEARMIPMAPNEAREST Interpola linearmente entre duas imagens mais próximas da resolução da tela polígono Usa o filtro GLNEAREST quando faz a texturiza ção com essa imagem GLLINEARMIPMAPLINEAR Interpola linearmente entre duas imagens mais próximas da resolução da tela polígono Usa o filtro GLLINEAR quando faz a texturização com essa imagem REALISMO VISUAL E ILUMINAÇÃO 335 766 Fog névoa O uso de névoa no OpenGL é bem simples bastando ativar através do comando glEnable GLFOG Os parâmetros de densidade início e fim são especificados com o comando GlFogGlenum pname TYPE param Exemplo glEnableGLFOG glFogiGLFOGMODE GLLINEAR especifica o fator da névoa podendo ser também GLEXP padrão ou GLEXP2 glFogiGLFOGINDEX 32 especifica a cor glFogfGLFOGSTART 10 especifica onde inicia a névoa glFogfGLFOGEND 40 especifica onde termina a névoa 336 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Índice Ábaco aceleraçã AIDS aliasing alpha amortecimento anatômicas animatic anisotrópico antialiasing antropomórfica aramada Arquitetura Arte astronomia autosimilaridade axiomas axométricas bastonetes Bernstein Bézier bicúbica bilinear biomecânica bípede blur booleanas Brep Bresenham BSP BSpline buffer bump cabinet câmeras captura cartoon Catmull cavaleira cena ciclo cinemática cinética cisalhamento colisão colorimetria cones cônicas coordenadas criaturas CRT culling DaVinci decomposição deficiência deformáveis Descarte desenho designers difusa dimensões dimétricas dinâmicos Disney disparidades DNA DOFs educação efeitos elástico eletromecânicos eletrostática elipsóide emissores engenharia escala espelhamento esqueleto estéreo estereoscópicas estímulo estocástico Euclides Euler extrusão fantasia fenômenos FK flexíveis flexores flipbooks fluidos fogo fonema fotografia fotométrico fotorealismo fractais fronteira fuzzy genus Gouraud gradiente Hermite highlight homogêneas HSR IK inbetweening incandescentes indústria inércia interação interface Interpolações invisível isométrica jogos keyframe kinematics lâmpadas laser lentes malha Mandelbrot manifold Mäntylä marcadores mecânica medicina memória meshSmooth meteorologia mola NASA natureza Newton NURBS NURMS observador oclusão octante octree olho opacidade óticos paisagismo paramétrica partícula patches pêlos percepção perspectiva Phong Pitágoras pivô pixel poliedros ponteiros popularização PosetoPose primitivas procedural programadores projeção projeto quadrúpedes quadtree QWERTY radiosidade raio raster rasterização raytracing Realidade Virtual realismo realizáveis realtime reciclagem reconstituição recorte Reeves reflexão refração resistência resolução respiração reticulado retina Riemann rigidez robótica rotação rotoscopia ruídos RV satélite scanline scanners script sensores serrilhamento shading shearing SIGGRAPH simulações sincronização síntese sintética slices solar sólidos sombra sombra sombreamento sons sotaques stacks Stereoscopic storyboard suavização subdivisão sweeping tecidos temporeal topologia track trajetória transparência triangulação tricromáticas trilineares unicidade varredura visão viscosos voxels Warps WingedEdge wireframe ZBuffer 338 COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA Preencha a ficha de cadastro no final deste livro e receba gratuitamente informações sobre os lançamentos e as promoções da Editora Campus Consulte também nosso catálogo completo e últimos lançamentos em wwwcampuscombr 2003 Editora Campus Ltda uma empresa Elsevier Todos os direitos reservados e protegidos pela Lei 9610 de 19021998 Nenhuma parte deste livro sem autorização prévia por escrito da editora poderá ser reproduzida ou transmitida sejam quais forem os meios empregados eletrônicos mecânicos fotográficos gravação ou quaisquer outros Copidesque Michele MacCulloch Editoração Eletrônica Estúdio Castellani Projeto Gráfico Editora Campus Ltda A Qualidade da Informação Rua Sete de Setembro 111 16º andar 20050006 Rio de Janeiro RJ Brasil Telefone 21 39709300 FAX 21 25071991 Email infocampuscombr Filial Campus Rua Elvira Ferraz 198 04552040 Vila Olímpia São Paulo SP Tel 11 38458555 ISBN 85352 CIPBrasil Catalogaçãonafonte Sindicato Nacional dos Editores de Livros RJ 03 04 05 06 07 5 4 3 2 1 A todos que foram meus alunos nos mais diversos cursos nestes anos de magisté rio principalmente aos mais curiosos e indagadores Dedico aos meus pais que sempre me ensinaram a buscar o valor da inteligência no trabalho e no que é importante além das superficialidades Aura Conci A computação gráfica salva vidas vê a vida de outras formas acha novas formas de vida recria a vida e emociona Mas ela pode iludir pode manipular e destruir Este livro é para as pessoas que querem imaginar e criar Dedicado aos meus avós o escritor Dióscoro Campos e o professor Ruy Azevedo Aos meus pais Mara Campos e Ruy Azevedo Agradecimentos aos meus tios primos e amigos ao Prof Ferraz e equipe Profa Marisa Ortegoza Profa Paula Maciel Sebastião Lago Jr e equipe Ronaldo Gueraldi irmãos Bonnet Fabio PolicarpoFrancisco Meirelles e equipe Sergio Canabrava Kimura Lee e Ana Cecília Azevedo Eduardo Azevedo Em memória de tios avós e amigos jovens vítimas da violência Sumário CAPÍTULO 1 VISÃO GERAL 1 11 Computação Gráfica Arte e Matemática 3 12 Origens da Computação Gráfica4 121 Escala Temporal 5 13 Áreas da Computação Gráfica8 14 O Mercado da Computação Gráfica 8 15 Percepção Tridimensional10 151 Informações monoculares 11 1511 Perspectiva 11 1512 Conhecimento prévio do objeto 11 1513 Oclusão12 1514 Densidade das texturas 12 1515 Variação da reflexão da luz 13 1516 Sombras e sombreamentos 13 152 Informações visuais óculomotoras13 1521 Acomodação 13 1522 Convergência 13 153 Informações visuais estereoscópicas 13 16 Representação Vetorial e Matricial de Imagens 14 17 Arquitetura de Hardware 15 171 Dispositivos Gráficos de Entrada16 Dispositivos de entrada 3D 17 172 Dispositivos Gráficos de Saída18 18 OpenGL25 Integração do OpenGL com Windows95982000XP 27 O Primeiro Programa 28 Sintaxe de Comando29 CAPÍTULO 2 TRANSFORMAÇÕES GEOMÉTRICAS NO PLANO E NO ESPAÇO 31 21 Matrizes em Computação Gráfica 33 SUMÁRIO VII 22 Pontos Vetores e Matrizes 33 23 Aritmética de Vetores e Matrizes34 24 Sistemas de Coordenadas36 241 Sistema de Referência do Universo SRU 37 242 Sistema de Referência do Objeto SRO37 243 Sistema de Referência Normalizado SRN 37 244 Sistema de Referência do Dispositivo SRD 38 245 Transformações entre Sistemas de Coordenadas38 25 Transformações em Pontos e Objetos 38 251 Transformação de Translação 38 252 Transformação de Escala 40 253 Transformação de Rotação41 254 Transformação de Reflexão Espelhamento ou Flip47 255 Transformação de Cisalhamento49 26 Coordenadas Homogêneas 50 27 Projeções Geométricas 52 271Classificação das Projeções Geométricas 53 272 Projeções Paralelas Ortográficas56 273 Projeções Paralelas Axométricas58 274 Projeção Perspectiva ou Cônica59 28 Especificação dos pontos de fuga 63 29 Câmera Virtual 64 210 Transformações Geométricas com OpenGL 66 2101 Transformação de Translação 66 2102 Transformação de Escala 66 2103 Transformação de Rotação66 2104 Matrizes de transformação67 2105 Armazenando as transformações na matriz 67 2106 Alterando a matriz de transformação 68 2107 Montando transformações hierárquicas 68 2108 Desfazendo o vínculo de hierarquia 69 2109 Matriz genérica de projeção69 21010 Projeção paralela ortogonal 69 21011 Projeção em perspectiva 70 21012 Posição da câmera 70 CAPÍTULO 3 CURVAS E SUPERFÍCIES 73 31 Representação de Curvas 75 311 Conjunto de Pontos 75 312 Representação Analítica 76 313 Formas nãoParamétricas de Representar Curvas 77 314 Formas Paramétricas de Representar Curvas 79 315 Curvas Paramétricas de Terceira Ordem81 VIII COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 316 Hermite 81 317 Bézier87 318 Splines92 3181 Splines Uniformes e Periódicas 94 3182 Splines NãoPeriódicas 94 3183 Splines NãoUniformes 95 3184 Desenvolvimento da Formulação Genérica de BSplines96 3185 CatmullRom Splines97 319 Curvas Racionais 99 32 Superfícies 101 321 Superfícies de Revolução 101 322 Superfícies Geradas por Deslocamento102 323 Superfícies Geradas por Interpolação Bilinear 103 324 Interpolações Trilineares 105 325 Superfícies de Formas Livres106 326 Superfícies Paramétricas Bicúbicas 106 327 Superfícies de Hermite107 328 Superfícies de Bézier107 329 Superfícies de BSpline108 3210 Normais a Superfícies 109 3211 Superfícies Racionais 110 3212 NURBS 110 32121 NURBS em OpenGL113 3213 Subdivisão de Superfícies com CatmullClark e NURMS 114 CAPÍTULO 4 REPRESENTAÇÃO E MODELAGEM 119 41 Pivô 121 42Sólidos uni bi e tridimensionais 122 43 Sólidos realizáveis 123 44 Formas de representação de objetos124 441 Representação Aramada Wire Frame125 442 Representação por Faces ou Superfícies Limitantes 125 443 Representação por Faces Poligonais 127 444 Fórmula de Euler 129 445 Operadores de Euler130 446 Estrutura de dados baseada em vértices 131 447 Estrutura de dados baseada em arestas 132 448Estrutura de dados WingedEdge e Half WingedEdge 133 449Utilização de Operações Booleanas com Brep134 4410Representação por Enumeração da Ocupação Espacial 135 4411 Representação por Decomposição do Espaço em Octrees136 4412 Notação Linear 137 4413 Representação por Decomposição do Espaço em Quadtrees137 SUMÁRIO IX 4414 Quadtrees e Octrees Lineares 137 4415 Quadtrees e Octrees híbridas139 4416 Representação por Partição Binária do Espaço Binary SpacePartitioning BSP139 4417 Representação Implícita140 45 Técnicas de Modelagem Geométrica 140 451 Instanciamento de Primitivas 141 452 Objetos de Combinação142 453 Operações Booleanas e Booleanas Regularizadas 142 454 Geometria Sólida Construtiva CSGConstructive Solid Geometry144 455 Connect144 456 Modelagem por Varredura Sweep ou Deslizamento 145 4561 Varredura Translacional Extrusão 145 4562 Varredura Rotacional146 457 Modelagem por Seções Transversais146 458 Modelagem por Superfícies 146 46 Modificadores 147 461 Bend ou Curvatura147 462 Lattice ou Malha148 463 MeshSmooth ou Suavização 148 464 Optimize 149 465 Bevel 149 466 Melt 149 467 Skew 150 468 Squeeze e Stretch 151 469 Taper151 4610 Twist 152 4611 Displace ou Deslocamento152 4612 Space Warps 152 47 Interfaces para Modelagem Geométrica153 471 Tape Fita de Medida 153 472 Protractor Transferidor153 473 Compass Bússola153 474 Array Vetor 153 48 Modelagem Geométrica com OpenGL154 481 Desenhando um Ponto154 482 Desenhando uma Linha 154 483 Desenhando um Polígono 155 484 Primitivas 155 485 Objetos Sólidos155 486 Wireframe156 49 Modelagem pelo Número de Ouro156 491 A Seqüência de Fibonacci 158 410 Modelagem Fractal 159 4101 Os Objetos de Mandelbrot162 X COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 411 Shape from X Reconstrução Tridimensional 163 4111 Implementação169 412 Sistemas de Partículas 171 4121 Distribuição de partículas no sistema 173 4122 Noção de centro de massa 174 4123 Velocidade do centro de massa 174 4124 Quantidade de movimento 174 4125 Aceleração do centro de massa 175 4126 Movimento de uma partícula em relação ao seu centro de massa176 4127 Choque 176 4128 Quantidade de movimento de um sistema de duas partículas 177 4129 Energia de um sistema de duas partículas 177 41210 Conceito de Sistemas de Partículas177 Posição 179 Velocidade 179 Cor 179 Transparência 179 Tamanho 179 Tempo de Vida180 41211 Renderizando as Partículas 180 41212 Características dos Sistemas de Partículas 181 CAPÍTULO 5 CORES 183 51 Sistema Visual Humano 185 52 Descrição da Cor da Luz 189 53 As Ondas Eletromagnéticas 191 54 Sistemas de Cores Primárias 193 55 Sistemas de Cores Aditivas 195 56 Sistemas de Cores Subtrativas196 57 Famílias de Espaços de Cor 197 571 Modelo fisiológico 197 572 Modelo baseado em medidas físicas 197 573 Modelo de sensações oponentes 198 574Modelo psicofísico198 58 O Modelo RGB198 59 O Modelo CMYK199 510 Espaço de percepção subjetiva 199 511 O modelo HSV201 512 O Modelo HSL202 Vantagens dos modelos HSV e HLS JACK 94 203 Desvantagens dos modelos HSV e HLS JACK 94203 513 O Modelo YIQ 203 514 Transformação dos Espaços de Cor 204 SUMÁRIO XI 5141 De RGB para XYZ204 5142 De RGB para EixosOponentes OPP 206 5143 De RGB para HSV206 515 Uso de Cores nas Imagens 207 516 Descrição das Cores 208 Branco 208 Preto 208 Cinza 208 Vermelho209 Amarelo209 Verde 209 Azul 210 517 Histograma de cores 210 518 Espaço de Cores Oponentes 211 519 Ilusões Relacionadas às Cores 213 520 Problemas com Cores na Computação 213 521 Cores em OpenGL214 5211 Transparência214 CAPÍTULO 6 ANIMAÇÃO 217 61 Histórico 219 62 Aplicações da Animação 220 63 Animação por Computador 220 64 Formas de Animação221 641 Animação por QuadroChave Keyframe 221 642 Animação por Script221 643 Animação Procedural222 644 Animação Representacional222 645 Animação Estocástica223 646 Animação Straight Ahead223 647 Animação PosetoPose 223 648 Animação por Comportamento ou Comportamental 223 649 Animação Track Based223 65 Canal Alpha 223 66 Composição 224 661 Filmagem da Cena Real 225 662 Reconstrução da Cena em 3D 226 67 Captura de Movimento 226 671 Rotoscopia 226 672 Sistemas de Captura227 6721 Ótico 228 6722 Mecânico 228 6723 Magnético228 XII COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 6724 Acústico 228 673 Cartoon Motion Capture 228 68 Animação de personagens 3D229 681 Cinemática 230 6811 Cinemática Direta 230 6812 Cinemática Inversa 232 682 Ossos232 683 Articulações 233 6831 Junta de Revolução 233 6832 Junta esférica 233 6833 Grau de Liberdade 233 684 Esqueleto 235 6841 Controladores IK 237 6842 Ciclo de Animação238 6843 Sistemas de Animação IK239 685 Músculo Flexor 240 686 Cabelos e Pêlos241 687 Animação Facial 242 6871 Sincronização Labial 243 6872 Seqüência de Texturas 243 6873 Morphing 243 6874 Esqueleto 243 6875 Free Form Deformation243 6876 Weighted Morphing243 69 Animação de Superfícies Deformáveis 244 610 Produção de Animação 246 611 Princípios da Animação 247 612 Cena de Animação248 613 A Animação no Processo de Aprendizado 249 CAPÍTULO 7 REALISMO VISUAL E ILUMINAÇÃO 251 71 Rendering253 711 Fases do Processo de Realismo Visual 254 712 Realismo por Passadas 255 713 Acabamentos nãofotográficos257 72 Rasterização 258 721 Algoritmo de Bresenham para traçado de linhas 260 722 Rasterização de Polígonos 261 723 Preenchimento de polígonos por scanline 262 724 Remoção de Linhas e Superfícies Escondidas263 7241 Algoritmo de Visibilidade por Prioridade ou Algoritmo do Pintor 267 SUMÁRIO XIII 7242 Algoritmo de Eliminação de Faces Ocultas pelo Cálculo da Normal 269 7243 Algoritmo ZBuffer272 73 Iluminação 276 731 Tipo de Emissores 278 7311 Emissor Natural 278 7312 Luz Ambiente278 7313 Emissores de Luz Artificiais 279 732 Reflexões280 7321 Reflexão Ambiente281 7322 Reflexão Difusa 283 7323 Reflexão Especular285 733 Refração 289 734 Transparência 291 735 Sombreamento Shading 292 7351 Modelo de Sombreamento Constante292 7352 Sombreamento de Gouraud294 7353 O Modelo de Phong 296 736 Sombras298 7361 Volume de Sombra298 7362 Sombra Projetada 298 7363 Algoritmo de AthertonWeilerGreeberg 299 7364 Algoritmo de Mapeamento 299 7365 Algoritmo de Appel 299 7366 Sombreamento Anisotrópico299 737 Modelo de Iluminação Global 300 7371 Ray Tracing 301 Reflexos310 Refrações 310 Metais com Ray tracing 311 7372 Caustic 311 7373 Radiosidade 313 738 Técnicas de Iluminação 317 7381 Luz Principal Key Light 318 7382 Luz de Preenchimento Fill Light 318 7383 Luz de Recuo Back Light 319 74 Texturas 319 741 Mapas Procedurais 320 742 UVW Map320 743 Texture Map 321 744 Environment Mapping ou Mapa de Reflexão 322 745 Bump Map323 7451 Emboss Bump Map 324 7452 Environment Mapped Bump Mapping 325 7453 PerPixel Shading325 XIV COMPUTAÇÃO GRÁFICA TEORIA E PRÁTICA 746 Light Map 326 747MipMapping328 75 HiperRealismo 329 751 High Dynamic Range Images HDRI 330 752 Atenuação Atmosférica 330 753 Area Light e Soft Shadow331 754 SubSurface Light Scattering 331 755 Depth of Field DOF ou Profundidade de Campo 333 756 Motion Blur Desfoque por Movimento333 757 Film Grain 333 758 Lens Flare 334 759 Glow 334 76 Realismo e Iluminação em OpenGL334 761 Zbuffer334 762 HiddenSurface Removal 334 763 Algoritmo de Recorte Culling335 764 Iluminação 335 7641 Modelo de Tonalização 335 7642 Propriedades de Iluminação do Material 335 7643 Modelo de Iluminação 336 7644 Fonte de Luz337 Programa Exemplo de Iluminação337 765 Texturas 338 7651 Carga de uma textura338 7652 Aplicando uma Textura339 7653 MipMapping 340 766 FOG névoa341 SUMÁRIO XV FIGURA 1 Render NPR Toon Shading FIGURA 2 Render NPR simulação das pinceladas de pinturas FIGURA 3 Detalhe do sistema de elevação da escavadeira FIGURA 4 Água e nuvens criadas com fractais FIGURA 5 SistemadePartículassimulandoáguaemcolisãocomaspedras FIGURA 6 Processo aditivo das cores primárias FIGURA 7 Processo subtrativo das cores secundárias FIGURA 8 Processo de obtenção das cores secundárias Azul Magenta Vermelho Amarelo Verde Turquesa FIGURA 9 Subespaço do modelo RGB FIGURA 10 O sistema de Munsell FIGURA 11 O espaço de Munsell Tonalidade Saturação Valor FIGURA 12 O modelo HSV Tonalidade Brilho FIGURA 13 O modelo HLS Y Z RGB Todas as Cores X FIGURA 14 Distribuição no espaço XYZ do sistema RGB FIGURA 16 Cena com adição da iluminação e reflexões FIGURA 15 Cena com adição de texturas FIGURA 18 Light Map de uma fase da engrenagem Fly3D Cortesia da Paralelo Computação FIGURA 17 Radiosidade e sua variação de sombreamento gradual

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®