Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 1 INTRODUÇÃO À COMPUTAÇÃO GRÁFICA Introdução: Origens da Computação Gráfica A Computação Gráfica está presente em todas as áreas, desde os mais inconsequentes joguinhos eletrônicos até o projeto dos mais modernos equipamentos para viagens espaciais, passando também pela publicidade, com as mais incríveis vinhetas eletrônicas e pela medicina onde a criação de imagens de órgãos internos ao corpo humano possibilitando o diagnóstico de males que em outros tempos somente seria possível com intervenções cirúrgicas complicadas e comprometedoras. Uma imagem vale mais do que mil palavras..... Esta conhecida frase já era proferida muito antes do nascimento dos computadores e, portanto, em época em que era difícil imaginar a possibilidade de que desenhos poderiam, um dia, vir a serem criados e interpretados automaticamente. Hoje, através da Computação Gráfica, isto e muito mais, faz parte do dia-a-dia de inúmeras pessoas, desde os apaixonados por videogames até os projetistas de carros e aviões. E é agora, quando a Computação Gráfica vem mostrando cada vez mais utilidades em um número crescente de aplicações, que esta frase é repetida com mais insistência em livros, palestras ou discussões sobre o assunto. E com razão, pois ela resume, muito bem, uma característica do ser humano, comprovada não só na prática como em estudos científicos, e que é utilizada pela Computação Gráfica: o homem consegue absorver e transmitir um número muito maior de informações quando estas estão sob a forma de imagens. De acordo com estudos sobre o cérebro humano, este possui uma área destinada à interpretação e criação de imagens e outra voltada para a linguagem. A primeira processa informações em paralelo, ou seja, capta correlaciona e interpreta dados instantaneamente. A segunda trabalha sequencialmente, analisando uma única informação por vez. A zona cerebral voltada para as imagens é também a responsável pelo pensamento criativo, enquanto que na zona dedicada às linguagens são CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 2 realizados os raciocínios lógicos. Antes de vir a manipular imagens, o computador atingia apenas esta última zona do cérebro. Durante muito tempo a comunicação entre o homem e o computador foi realizada através de sequências intermináveis de números e letras, só possíveis de serem manipuladas por especialistas. Faltava ao computador a capacidade de apresentar e receber imagens. Quando se criaram os equipamentos para geração de desenhos (como o tubo de televisão e o traçador gráfico) e captação de imagens (como a câmara e a mesa digitalizadora) foi possível cobrir tal deficiência. Hoje, aquela frase inicial continua valendo, mas ganhou também um novo sentido, igualmente verdadeiro, ao se falar de imagens em computadores: para que estes possam manipula-las, elas devem ser codificadas e armazenadas em memória digital e aí, normalmente, são necessárias milhares de palavras (de memória) para o armazenamento de uma única imagem. Parece existir consenso entre os pesquisadores da história da Computação Gráfica de que o primeiro computador a possuir recursos gráficos de visualização de dados numéricos foi o "Whirlwind I" (furacão), desenvolvido, em 1950, com finalidades acadêmicas e também possivelmente militares pois logo em seguida o comando de defesa aérea dos EUA desenvolveu um sistema de monitoramento e controle de vôos (SAGE - Semi-Automatic Ground Enviroment) que convertia as informações capturadas pelo radar em imagem em um tubo de raios catódicos (na época uma invenção recente) no qual o usuário podia apontar com uma caneta ótica. Ocorre que nesta época os computadores eram orientados para fazer cálculos pesados para físicos e projetistas de mísseis não sendo próprios para o desenvolvimento da Computação Gráfica. Em 1962, surgiu uma das mais importantes publicações de Computação Gráfica de todos os tempos, a tese do Dr. Ivan Sutherland ("Sketchpad - A ManMachine Graphical Communication System"), propunha uma forma de inteção muito semelhante ao que hoje chamados de interfaces WIMP – Window-Icon- MenuPointer. Esta publicação chamou a atenção das indústrias automobilísticas e aeroespaciais americanas. Os conceitos de estruturação de dados bem como o núcleo CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 3 da noção de Computação Gráfica interativa levaram a General Motors a desenvolver o precursor dos primeiros programas de C.A.D. Logo em seguida diversas outras grandes corporações americanas seguiram este exemplo sendo que no final da década de 60 praticamente toda a indústria automobilística e aeroespacial se utilizava de softwares de CAD. O Crescimento da Computação Gráfica Dois fatores, entretanto, foram fundamentais para o desenvolvimento da Computação Gráfica tal como a conhecemos hoje: a) O desenvolvimento da tecnologia de circuitos integrados durante a década de 70 que permitiu o barateamento e a conseqüente popularização das máquinas; b)O fim da idéia de que os fabricantes de computadores devem fornecer apenas a máquina e o sistema operacional e que os usuários devem escrever seus próprios aplicativos. A popularização dos aplicativos prontos e integrados (planilhas, editores de texto, editores gráficos, processadores de imagem, bancos de dados, etc) permitiram a popularização da Computação Gráfica na medida em que possibilitaram que o usuário comum sem conhecimento ou tempo para desenvolver aplicativos gráficos (nem sempre tão simples de serem programados) pudessem se utilizar das facilidades da mesma. Como se vê, a Computação Gráfica é uma área bastante abrangente, já que a imagem pode ser tratada de inúmeras formas diferentes pelo computador. Mas, enfim: O Que é a Computação Gráfica? A Computação Gráfica engloba todos os métodos e técnicas relacionadas com a conversão de dados de (e para) dispositivos gráficos, através de computador. Logo, qualquer aplicação computacional que envolva imagens se utiliza, na verdade, de técnicas de Computação Gráfica. A manipulação de imagens pelo computador está presente hoje, no dia-a-dia de praticamente todas as pessoas, apesar de que nem sempre elas se deem conta CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 4 disso. Vinhetas televisivas, videogames, desenhos animados, projetos de aeronaves, automóveis ou arquitetônicos, gráficos estatísticos, efeitos especiais cinematográficos, desenvolvimento de máquinas de alta precisão e, até mesmo, simuladores de guerra. Antigamente os computadores só eram capazes de emitir resultados sob a forma de listagens numéricas. Muitas vezes a apresentação de resultados sob a forma de gráficos ficaria muito mais clara, o que fez com que os programadores utilizassem, em alguns casos, os próprios símbolos alfanuméricos dispostos na forma de gráficos(como na figura a seguir). Imagens artísticas também podiam ser obtidas pela composição de símbolos alfanuméricos em listagens de computador (conforme a imagem abaixo). Com o surgimento de equipamentos próprios para a geração de desenhos,os programas passaram a contar com a possibilidade de apresentarem saídas na forma gráfica. Muitos aplicativos de estatística, educacionais e outros, utilizam-se da imagem para a comunicação homem-máquina. Mas hoje é também possível que a máquina receba e interprete imagens. Esta capacidade é bastante utilizada em CENTRO UNIVERSITÁRIOCARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 5 inúmeras aplicações como: prover visão a robôs, análise de eletrocardiogramas e outros gráficos, introdução de desenhos gerados manualmente, retoques e composição de fotografias, criação de desenhos animados, interpretação de desenhos. Mas a Computação Gráfica não para por aí. Com os terminais de vídeo, gráficos e computadores velozes, tornou-se possível a geração de imagens em tempo real e a criação de videogames, simuladores de voo e de choques de veículos, programas para documentação de projetos e outros. Um grande salto foi dado com o surgimento da Computação Gráfica Interativa, que permite ao usuário interferir em um desenho e visualizar o resultado imediatamente. Com mais este recurso a Computação Gráfica passou a ter vida própria, deixando de ser apenas uma interface com o fim de melhorar a comunicação homem-máquina. A própria imagem passou a ser o objetivo principal de aplicativos voltados para a documentação, criação de logotipos, desenvolvimento de projetos e outros. A área de informática que maior proveito vem tirando da Computação Gráfica Interativa é a de CAD/CAM. Com a Computação Gráfica Interativa o projetista pode, por exemplo, direcionar o andamento do projeto de um carro, com o computador fazendo os cálculos necessários e apresentando os resultados na forma de imagens que podem ser alteradas pelo projetista. Segundo a ISO ("International Standards Organization") a Computação Gráfica pode ser definida como o conjunto de métodos e técnicas utilizados para converter dados para um dispositivo gráfico, via computador Se tomarmos como base a definição da ISO, duas áreas tem uma estreita relação com a Computação Gráfica, são elas: a) Processamento de Imagens: envolve técnicas de transformação de imagens. As transformações visam, em geral, melhorar características visuais da imagem como por exemplo aumentar o contraste, melhorar o foco ou ainda reduzir o ruído e as eventuais distorções. b) Reconhecimento de Padrões, também conhecida como Análise de imagens: busca isolar e identificar os componentes de uma imagem a partir de sua representação visual. CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 6 O diagrama da figura 1 ilustra o relacionamento da Computação Gráfica pelas suas subáreas: Modelagem de dados (processamento de dados), Visualização (síntese de imagens), Processamento de imagens, Visão (análise de imagens). Já Rogers e Adams classificam a Computação Gráfica em passiva e interativa. Como Computação Gráfica Passiva entende-se o uso do computador para definir, armazenar, manipular e apresentar imagens gráficas. O computador prepara e apresenta dados armazenados sob a forma de figuras e o observador/usuário não interfere nesse processo. Exemplos desse tipo de atividade podem ser simples como a geração automática de um gráfico de barras a partir de uma tabela, bem como a simulação do movimento de um veículo espacial a partir de dados coletados em campo. Computação Gráfica Interativa também se utiliza do computador para preparar e apresentar imagens. Nesse caso, entretanto, o observador/usuário pode interagir em tempo real com a imagem. A manipulação de imagens em tempo real apresenta como principal problema o número de cálculos envolvidos para se trabalhar com imagens relativamente complexas. Por exemplo, a rotação de um objeto tridimensional exigirá, para cada ponto, sua multiplicação por uma matriz 3x3, resultando em duas somas e quatro multiplicações. Tomando-se um objeto de 1000 pontos essa operação requer 4000 multiplicações e 2000 adições. Esse exemplo serve para dar uma ideia do número de cálculos envolvidos em operações dessa natureza. CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 7 Para contornar esse tipo de problema podem ser adotadas soluções tais como: o utilizar máquinas mais rápidas; o melhorar os algoritmos tornando-os mais eficientes; o construir módulos de "hardware" dedicados a certos tipos de operações (por exemplo um módulo dedicado a multiplicação de matrizes) e o reduzir a complexidade da imagem. Nesse caso corre-se o risco de produzirem-se imagens de qualidade insuficiente conforme a aplicação. Por outro lado alguns autores apresentam a Computação Gráfica como a área da ciência da computação que estuda a geração, a manipulação e a interpretação de modelos e imagens de objetos utilizando computador. Tais modelos vêm de uma variedade de disciplinas, como física, matemática, engenharia, arquitetura, etc. Dessa forma, considerando-se o aspecto tratamento de imagens, pode-se subdividir a Computação Gráfica nas seguintes subáreas: Visualização ou Síntese de Imagens: subárea que se preocupa com a produção de representações visuais a partir das especificações geométrica e visual de seus componentes. É frequentemente confundida com a própria Computação Gráfica. Envolve todas as técnicas destinadas à criação e manipulação de imagens artificiais, a partir de modelos matemáticos e geométricos. As imagens podem possuir sombreamento, se constituir apenas de linhas, ser definida em duas ou três dimensões, possuir cor ou não, etc... A Síntese de Imagens parte da descrição de objetos tais como segmentos de reta, polígonos, poliedros, esferas e produz uma imagem, atendendo às especificações, em algum meio que possa, em última instância, ser visualizado. As imagens CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 8 sintetizadas são exibidas em terminais, traçadas em papel, impressionadas em filme fotográfico ou impressas. Em quaisquer dessas formas as imagens configuram uma representação visual de objetos bi ou tridimensionais descritos abstratamente nas especificações. As principais aplicações destas técnicas são: criação de imagens abstratas, visualização de modelos matemáticos, geração de gráficos matemáticos e estatísticos, edição de desenhos (criação e alteração) e simulações. Processamento de Imagens: envolve as técnicas de transformação de Imagens, em que tanto a imagem original quanto a imagem resultado apresentam-se sob uma representação visual (geralmente matricial). Estas transformações visam melhorar as características visuais da imagem (aumentar contraste, foco, ou mesmo diminuir ruídos e/ou distorções). O Processamento de imagens é a união entre as técnicas de síntese e análise, com o fim de se manipularem imagens do mundo real, analisando-as e enriquecendo as com imagens sintéticas. O Processamento de Imagens parte de imagens já prontas para serem visualizadas captadas por recursos os mais diversos: digitalização de fotos, tomadas de câmaras de vídeo ou imagens de satélites. Estas imagens são então transformadas em outras com uma representação visualizável onde características visuais são alteradas. Um exemplo típico é a correção da deformação de imagens de satélites decorrentes da curvatura da superfície terrestre. Algumas aplicações nesta área: retoques de fotografias, montagens, efeitos especiais, processamento de imagens de satélite, tomografia computadorizada, etc... CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 9 Visão ou Análise de Imagens: subárea que procura obter a especificação dos componentes de uma imagem a partir de sua representação visual. Ou seja através da informação pictórica da imagem (a própria imagem!) produz uma informação não pictórica da imagem (por exemplo, as primitivas geométricaselementares que a compõem). A Análise de Imagens é, portanto, o processo inverso ao da síntese. Aqui a imagem já existe e de alguma forma é passada ao computador, normalmente através de uma mesa digitalizadora, câmaras ou outro dispositivo qualquer digitalizador. Cabe ao computador captar da imagem a sua descrição digital. A partir da imagem digitalizada e convertida para uma estrutura de descrição adequada o computador pode realizar atividades tais como reconhecer padrões, fazer levantamentos estatísticos, ou armazenar imagens fotográficas. A análise pode também ser aplicada sobre imagens que já se encontram descritas na forma apropriada para o tratamento computacional, não sendo estão necessário o processo de digitalização. Para a análise de imagens obtidas no mundo real, estas devem passar por um processo de digitalização, ou seja, conversão dos níveis analógicos de intensidade luminosa e cor, para descrições digitais (numéricas). Estas descrições podem ser classificadas em dois tipos principais: vetorial e matricial. Na descrição vetorial a imagem é definida através de linhas, como em uma planta de arquitetura. O dispositivo gráfico mais indicado para a captação de um desenho para ser convertido para a forma vetorial é a mesa digitalizadora. Na descrição matricial uma imagem é dividida em um grande número de pontos através de um reticulado imaginário. Cada um desses pontos recebe uma cor, de modo que, no conjunto, estes pontos CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 10 configurem a imagem digitalizada. Este tipo de representação é indicado onde se necessita de realismo de imagens, como fotografias, que são definidas por tons e sombras e não por linhas. Modelagem de Dados: subárea que procura obter a especificação dos componentes de uma imagem manipulando apenas dados. A modelagem de Dados envolve as técnicas de transformação de Imagens do ponto de vista dos dados. O processo de refinando melhora a qualidade da imagem aumentando o número de informações da imagem; já o processo de simplificando reduz a quantidade de informações da imagem, tornando mais simples o processo de visualização da imagem. Na última década adicionou-se a esse contexto a área de Visualização de Dados, também chamada Visualização Computacional, que usa técnicas de Computação Gráfica para representar informação, de forma a facilitar o entendimento de conjuntos de dados numéricos de alta complexidade. Exemplos de áreas de aplicação são: visualização de imagens médicas, meteorologia, dados financeiros, CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 11 visualização de programas, dinâmica dos fluidos, e muitas outras. Nelas, o que existe em comum é que as representações gráficas (superfícies, partículas, ícones) são geradas automaticamente a partir do conjunto de dados. Ao usuário cabe definir parâmetros e atributos da imagem para melhor 'navegar' seu conjunto de dados. Dessa maneira, a visualização de dados partilha de características da síntese, do processamento e da análise de dados. Atualmente a Computação Gráfica é altamente interativa: o usuário controla o conteúdo, a estrutura e a aparência dos objetos e suas imagens visualizadas na tela, usando dispositivos como o teclado e o mouse. Entretanto, até o início dos anos 80, a computação gráfica era uma disciplina restrita e altamente especializada. Devido, principalmente, ao alto custo do hardware, poucos programas aplicativos exploravam gráficos. O advento dos computadores pessoais de baixo custo, como o IBM-PC e o Apple Macintosh, com terminais gráficos de varredura (raster graphics displays), popularizou o uso de gráficos na interação usuário-computador. Os displays gráficos de baixo custo possibilitaram o desenvolvimento de inúmeros aplicativos baratos e fáceis de usar, que dispunham de interfaces gráficas - planilhas, processadores de texto, programas de desenho... As interfaces evoluiram e introduziu-se o conceito de desktop - uma metáfora para uma mesa de trabalho. Nessas interfaces gráficas, através de um gerenciador de janelas (window manager) o usuário pode criar e posicionar janelas que atuam como terminais virtuais, cada qual executando aplicativos independentemente. Isto permite que o usuário execute vários aplicativos simultaneamente, e selecione um deles a um simples toque no mouse. Ícones (icons) são usados para representar arquivos de dados, programas e abstrações de objetos de um escritório - como arquivos, caixas de correio (mailboxes), impressoras, latas de lixo - nas quais são executadas operações análogas às da vida real. Para ativar os programas, o usuário pode selecionar ícones, ou usar buttons e menus dinâmicos. Objetos são manipulados diretamente através de operações de pointing e clicking feitas com o mouse. Atualmente, mesmo aplicativos que manipulam texto (como processadores de texto) ou dados numéricos (como planilhas) usam interfaces desse tipo, reduzindo sensivelmente a interação textual através de teclados alfanuméricos. CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 12 A computação gráfica não é mais uma raridade: é parte essencial de qualquer interface com o usuário, é indispensável para a visualização de dados em 2D e 3D e tem aplicações em áreas como educação, ciências, engenharia, medicina, publicidade, lazer, militar. A computação gráfica cuida da síntese de imagens de objetos reais ou imaginários a partir de modelos computacionais. Processamento de imagens é uma área relacionada que trata do processo inverso: a análise de cenas, ou a reconstrução de modelos de objetos 2D ou 3D a partir de suas imagens. Note que a síntese de imagens parte da descrição de objetos tais como segmentos de reta, polígonos, poliedros, esferas, etc.; e produz uma imagem que atende a certas especificações e que pode, em última instância, ser visualizada em algum dispositivo (terminal de vídeo, plotter, impressora, filme fotográfico...). As imagens em questão constituem uma representação visual de objetos bi ou tridimensionais descritos através de especificações abstratas. O processamento de imagens parte de imagens já prontas para serem visualizadas, as quais são transferidas para o computador por mecanismos diversos - digitalização de fotos, tomadas de uma câmera de vídeo, ou imagens de satélite - para serem manipuladas visando diferentes objetivos. Como já foi visto, qualquer um dos tipos de técnicas apresentados anteriormente podem ser utilizados tanto de forma passiva (ou não interativa) como com a interação do usuário. Esta classificação diz respeito, logicamente, à maneira com a qual o usuário interfere no processo. Na Computação Gráfica Passiva (ou Não Interativa), uma vez disparado o processo, como num gerador de gráficos estatísticos, o usuário não consegue mais interferir no mesmo, somente podendo reprocessar os dados após a verificação do resultado. Já na Computação Gráfica Interativa o usuário pode, durante o processo de síntese e/ou de análise, interferir no sistema de geração do resultado procurado conduzindo-o no sentido desejado, como nas estações gráficas. Perguntar quais as aplicações da Computação Gráfica é como querer saber todas as utilidades do “Bom-Bril”. Literalmente, existem milhares de empregos para CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 13 esta fantástica aplicação da tecnologia da Informática, e os seus novos usos continuam crescendo num ritmo espantoso. Para que se possa dar uma ideia deste crescimentoconstantemente são lançados no mercado centenas de novos produtos para e nesta área, tanto na forma de hardware como de software. Na realidade, cada autor consultado, dependendo do critério utilizado para classificação das aplicações, as apresenta de uma determinada forma. Assim, procurando abstermos de qualquer classificação, faremos uma breve citação de diversas aplicações possíveis, tecendo, ao final, alguns pequenos comentários sobre as que julgamos de maior difusão ai sim, enquadrando-as numa classificação mais ampla. Citamos como aplicações de Computação Gráfica, entre outras: Interface com o usuário; Traçado interativo de gráficos; Editoração Eletrônica; Animação; Geração de Efeitos Especiais; Comunicação Visual; Manufatura assistida por computador; Projetos assistidos por computador; Simulações; Videogames. Dessa forma, podemos verificar que as aplicações de Computação Gráfica se distribuem em praticamente todas as áreas da atividade humana. Artes Gráficas, Artes Plásticas, Administração de Empresas, Publicidade, Lazer, Medicina, Engenharia, Arquitetura, Meteorologia, Cartografia, Indústria, Educação, Militar... Não há como negar que as áreas de publicidade, artes gráficas e lazer sofreram grande impacto com a evolução desta tecnologia, com o seu desenvolvimento e com a consequente redução de seus custos. Entretanto, foram, e ainda são, as aplicações técnicas que impulsionaram o seu desenvolvimento. A qualidade exigida por estas atividades condicionou o CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 14 surgimento de equipamentos e softwares cada vez mais sofisticados e especializados justificando os altos investimentos com a redução de custos e riscos do treinamento. Hoje a Computação Gráfica é uma realidade inquestionável. A maioria dos aplicativos para computadores pessoais ou estações de trabalho dispõem de interface gráfica baseada em janelas, menus dinâmicos e ícones; os softwares para a editoração gráfica de documentos que combinam texto, gráficos e tabelas tornaram-se ferramentas sem as quais é praticamente impossível realizar-se uma boa administração; os sistemas de CAD (Computer Aided Design – Projeto Assistido por Computador) são essenciais para a criação e desenvolvimento de peças de alta precisão pois, assim como os Sistemas de Simulação permitem que sejam evitados gastos e riscos; a animação e os efeitos especiais trouxeram uma nova geração de filmes, jogos e comerciais; o Controle de Processos como tráfego aéreo e funcionamento industrial ganharam novo nível de eficiência; à Educação foram implantados novos métodos. Padronização Gráfica Naturalmente não pode haver Computação Gráfica sem processadores e periféricos de entrada e saída gráficos. O número de dimensões (pelo menos duas) da informação gráfica trás, entretanto, uma maior complexidade ao processamento gráfico e ao seu uso. Os programas convencionais dialogam com o usuário através de uma estrutura bastante rígida e determinista. A cada evento que exige interação do usuário, o sistema computacional solicitará uma resposta única e de forma rígida. Os programas gráficos se caracterizam pela sua interatividade com o usuário e seu objetivo, que é a criação de imagens. O método do diálogo com o operador tem que ser necessariamente mais flexível, já que as respostas do usuário a uma determinada situação poderão ser várias, dependentes do resultado visado. O grande número de variáveis e parâmetros, a diversidade de periféricos gráficos e as frequentes transformações geométricas dos componentes da imagem CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 15 tornam a programação de aplicações envolvendo recursos gráficos uma tarefa não trivial. Os programas gráficos recorrem à manipulação de matrizes complexas, utilizase, intensamente Trigonometria Plana e Espacial, aplicam-se recursos da Teoria da Probabilidade, Estatística e Álgebra Superior. Finalmente, os programas gráficos exigem a visualização gráfica, ao contrário do que acontece com os programas convencionais, que só precisam mostrar cadeias de caracteres. Estrutura Geral de um Programa Gráfico A figura abaixo ilustra o diagrama de blocos de um programa gráfico interativo. Segundo esse modelo, um programa gráfico pode ser dividido em 4 (quatro) módulos lógicos, os quais podem ou não estar separados fisicamente, em termos da modularização do software aplicativo. O primeiro módulo, o dos chamados drivers, sempre aparece separado do programa aplicativo. Os drivers são programas tradutores que permitem o diálogo entre os diversos dispositivos físicos (periféricos) do sistema gráfico e o aplicativo propriamente dito. O módulo gráfico interpreta as informações provindas dos drivers de entrada e saída e serve de interface de ligação com o módulo Interface do Usuário. Este módulo executa as funções que são comuns a todos os dispositivos: transformações de coordenadas e gerenciamento de imagens. O módulo denominado Interface do Usuário constitui o núcleo do programa gráfico. O interpretador de comandos traduz as entradas do operador em ações apropriadas e conforme o solicitado. Ele garante que a solicitação seja realizada apropriadamente e de acordo com os parâmetros fornecidos pelo operador. Em programas mais avançados, ou a critério do programador, poderá existir mais um módulo, chamado de Núcleo de Aplicação. Ele servirá de apoio ao módulo de Interface do Usuário. Nele, as ações processadas pelo interpretador de comandos CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 16 sofrerá alterações ou transformações como, por exemplo, a texturização de superfícies tridimensionais. Estrutura de um programa gráfico Evolução dos Padrões Gráficos Como o interesse em CG cresceu, foi e continua sendo importante escrever aplicações que possam rodar em diferentes plataformas. A diversidade de sistemas gráficos e principalmente a dependência que muitos pacotes gráficos apresentavam de periféricos específicos abalavam a portabilidade de aplicações que ficavam sujeitas a grandes modificações quando da migração para outras instalações. Um padrão para desenvolvimento de programas gráficos facilita a tarefa de programação eliminando a necessidade de escrever código para um driver gráfico distinto para cada plataforma na qual a aplicação deve rodar. Para padronizar a construção de aplicativos que se utilizam de recursos gráficos e torná-los o mais independentes possível de máquinas, e portanto facilmente portáveis, foram desenvolvidos os chamados Sistemas Gráficos que procuram reunir técnicas e modelos pelo consagrados pelo uso e que mantêm .uma segura distância da especificidade de periféricos e equipamentos. Generalizando pode-se dizer que cada padrão gráfico se endereça ao problema da interface entre hardware e software, procurando estabelecer uma forma CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 17 padronizada e ordenada de comunicação entre as várias partes de um sistema gráfico interativo. Estrutura dos Padrões gráficos A seguir serão relacionados os principais padrões existentes. IGES (Initial Graphics Exchange Standard) – define um formato para desenhos de engenharia que possa ser lido ou gravado por um programa aplicativo; ‰ GKS (Graphic Kernel System) – é um padrão gráfico a ser utilizado pelos programadores pra o gerenciamento das entradas e saídas gráficas e parao seu processamento matemático interno. Essencialmente, ele estabelece uma norma de codificação para as rotinas gráficas. O GKS foi o primeiro padrão gráfico a ser desenvolvido e sancionado internacionalmente; ‰ PHIGS (Programmer’s Hierarchical Interactive Graphics Standard) – surgiu depois do GKS, preocupado em resolver os problemas relacionados com a geração de imagens tridimensionais de alta complexidade; ‰ VDI (Virtual Device Interface) – define padrões que permitem traduzir as generalidades dos programas gráficos para as características e CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 18 peculiaridades dos vários dispositivos físicos de entrada e saída. O VDI é, portanto, o padrão para se escrever drivers; ‰ VDM (Virtual Device Metafile) – estabelece linguagem e formatos padronizados para se codificarem os dados gerados por uma aplicação, permitindo que eles sejam armazenados em bancos de dados. Note-se, portanto, que existem vários padrões gráficos, sendo que nenhum deles integra todos os aspectos do desenvolvimento dos programas gráficos. O esforço de padronização e a experiência de diversos grupos de pesquisa geraram três propostas básicas: A primeira tentativa foi o Sistema Core - Core Graphics System - (1977 e 1979) pelos americanos, a segunda foi o chamado GINOF, na Inglaterra e a terceira o GKS, na Alemanha. Mas a primeira especificação gráfica realmente padronizada, como já dissemos, foi o GKS - Graphical Kernel System, pela ANSI e ISO (International Standard Association) em 1985. O GKS é uma versão mais elaborada que o Core. O GKS suporta um conjunto de primitivas gráficas interrelacionadas, tais como: desenho de linhas, polígonos, caracteres, etc., bem como seus atributos. Mas não suporta agrupamentos de primitivas hierárquicas de estruturas 3D. Um sistema relativamente famoso é PHIGS (Programmer’s Hierarchical Interactive Graphics System). Baseado no GKS, PHIGS é um padrão ANSI. PHIGS (e seu descendente, PHIGS+) proveem meios para manipular e desenhar objetos 3D encapsulando descrições de objetos e atributos em uma display list. A display list é utilizada quando o objeto é exibido ou manipulado, uma vantagem é a possibilidade de descrever um objeto complexo uma única vez mesmo exibindo-o várias vezes. Isto é especialmente importante se o objeto a ser exibido deve ser transmitido por uma rede de computadores. Uma desvantagem do display list é a necessidade de um esforço considerável para reespecificar um objeto que está sendo modelado interativamente pelo usuário. Uma desvantagem do PHIGS e PHIGS+ (e GKS) é que eles não têm suporte a recursos avançados como mapeamento de textura. Um sistema gráfico que tem se tornado bem popular é o OpenGL (GL - Graphics Library) que provê características avançadas e pode ser utilizador em modo imediato ou com display list. OpenGL é um padrão relativamente novo (sua primeira versão é de 1992) e é baseado CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 19 na biblioteca GL das workstations IRIS da Silicon Graphics. Atualmente um consórcio de industrias é responsável pela gerenciamento da evolução do OpenGL. Existe uma implementação livre (código fonte disponível) do OpenGL conhecida com MesaGL ou Mesa3D. Como os outros sistemas gráficos, OpenGL oferece uma interface entre o software e o hardware gráfico. A interface consiste em um conjunto de procedimentos e funções que permitem a um programador especificar os objetos e as operações que os envolvem produzindo imagens de alta qualidade. Como o PEX, o OpenGL integra a manipulação de objetos 3D desenho ao X, mas também pode ser integrado em outros sistemas de janela (por exemplo, Windows/NT) ou pode ser usado sem um sistema de janela. OpenGL provê controle direto sobre operações gráficas fundamentais em 3D e 2D. Incluindo a especificação de parâmetros como matrizes de transformação e coeficientes de iluminação, métodos de antialiasing e operações sobre pixels, mas não provê mecanismos para descrever ou modelar objetos geométricos complexos. Vantagens da Padronização Gráfica Acredito que para a maioria dos programadores a existência de padrões se autojustifica. O padrão direciona o processo de codificação, oferece estruturas eficientes e testadas e permite diálogo entre configurações distintas. Mesmo assim julgo importante destacar alguns pontos que fornecem fundamentos para se continuar o esforço de padronização, principalmente a nível nacional. Vamos imaginar um padrão perfeito que ofereça total independência entre o código básico (Interface do Usuário) e os diversos dispositivos periféricos conectados à estação gráfica. Suas vantagens podem ser resumidas no que se segue: - O usuário poderá escolher seus periféricos, modulando seu sistema, alterando essa configuração com amplo grau de liberdade, sem perder a utilidade do aplicativo que escolheu como adequado para seu trabalho. Suas necessidades de preço, tamanho e desempenho serão atendidas sem prejuízo ao software comprado anteriormente. Quando migrar de um sistema para outro, continuará a poder utilizar seu software. - Programas que independem dos dispositivos físicos (idealmente até do sistema operacional) atenderão a um público maior de usuários do que aqueles que CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 20 estabelecem limites em termos de configuração. Isto tem significado reflexo sobre a economia de escala desse produto, mas se reflete também sobre os equipamentos comercializados. O benefício é múltiplo: da softhouse, dos fabricantes de equipamentos periféricos e, principalmente, do usuário. - Um padrão gráfico, tal como anteriormente idealizado, facilitará a migração de programas de um sistema para outro. Por exemplo, um software desenvolvido com o GKS poderá migrar com relativa facilidade de máquinas de 16 bits (sistema operacional MS-DOS) para máquinas de 32 bits (S.O. Unix). Desde que o programador tenha se fixado no padrão, a recompilação do código no novo sistema, em geral, permite seu imediato uso. - Na falta de um padrão, aqueles que quisessem escrever programas gráficos teriam que desenvolver suas próprias rotinas e módulos de codificação. O padrão diminui em muito o esforço exigido do programador, facilitando e acelerando o desenvolvimento do programa gráfico. - Os padrões evitam a chamada "elitização" da programação. Eles facilitam e franqueiam o acesso à computação gráfica de um número cada vez maior de programadores, assim como de usuários, já que todos falam a mesma linguagem. Paradigmas dos 4 Universos Esse paradigma nos ajuda a entender o processo de sair do mundo real, onde os sinais são contínuos, e ir para o mundo do computador ode tudo é discreto. Universo Físico, onde estão os objetos do mundo real. Universo Matemático, onde formulamos descrições abstratas desses objetos. O Universo de Representação vai permitir trazer essas descrições abstratas para o mundo digital, e é onde se dará a discretização dos sinais. O Universo de Implementação é onde é feita a codificação do sinal discretizado na memória do computador de uma estrutura de dados. CENTRO UNIVERSITÁRIO CARIOCA COMPUTAÇÃO GRÁFICA Catiúscia A. B. Borges 21 Assim, para estudar um determinado fenômeno, ou objeto da natureza, no computador, nós precisamos associá-lo a um modelo matemático e então encontrar uma representação discreta para esse modelo que pode ser implementada no computador. A codificação dos dados pode ser decodificadae depois reconstruída para podermos voltar com o fenômeno estudado. Ferramentas de Programação O desenvolvimento de um programa que tenha uma interface gráfica interativa requer duas ferramentas básicas: - um Sistema Gráfico para gerar imagens em janelas gerenciadas pelo sistema gráfico. - um Sistema de Interface com o usuário. Gerencia os elementos do tipo de janelas, menus e botões. Ou seja, o sistema de interface gerencia elementos do tipo de janelas, menus e botões enquanto que o sistema gráfico desenha primitiva geométricass do tipo pontos, linhas e polígonos e/ou imagens digitais nos elementos de interface denominados de canvas ou forms.
Compartilhar