Sunteți pe pagina 1din 13

COMPUTAÇÃO GRÁFICA

AULA 1

INTRODUÇÃO

Origens da Computação Gráfica

A Computação Gráfica está presente em todas as áreas, desde os mais


inconseqüentes 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 seqüencialmente, 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
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 seqüê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

Apostila de Introdução à Computação Gráfica – Aula 01 1 / 13


é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 Man-
Machine Graphical Communication System"), propunha uma forma de inteção
muito semelhante ao que hoje chamados de interfaces WIMP – Window-Icon-Menu-
Pointer.
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
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 dêem conta
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).

Apostila de Introdução à Computação Gráfica – Aula 01 2 / 13


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 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 vôo e de choques de veículos,
programas para documentação de projetos e outros. Um grande salto foi dado com o

Apostila de Introdução à Computação Gráfica – Aula 01 3 / 13


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.
O diagrama da figura 1 ilustra o relacionamento entre a Computação Gráfica, o
Processamento de Imagens, o Reconhecimento de Padrões e o Processamento de
Dados convencional, convencional, segundo a visão da ISO.

Relacionamento da Computação Gráfica com outras áreas

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 idéia do número de
cálculos envolvidos em operações dessa natureza.

Apostila de Introdução à Computação Gráfica – Aula 01 4 / 13


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 em 3 sub-áreas:

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. É freqüentemente 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 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...

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étricas elementares que a
compõem).

Apostila de Introdução à Computação Gráfica – Aula 01 5 / 13


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 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.
A obtenção de imagens matriciais a partir do mundo real é normalmente
realizada por câmaras de TV, dispositivo capaz de captar diferenças de tonalidades.
Algumas vezes,dependendo da aplicação, pode ser necessária a conversão de
imagens de uma forma para outra. Nestes casos, aplicam-se processos de vetorização
e matriciação (conversão de imagens definidas por pontos em descrição por linhas ou
de desenhos definidos por linhas em forma de matriz de pontos).
Esta área é básica para a visão de robôs

A figura acima apresenta o relacionamento entre as 3 subáreas da Computação


Gráfica.
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,
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,

Apostila de Introdução à Computação Gráfica – Aula 01 6 / 13


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.
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 tri-
dimensionais 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.

Apostila de Introdução à Computação Gráfica – Aula 01 7 / 13


Aplicações da Computação Gráfica

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
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 idéia deste
crescimento constantemente 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, Industria, 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 conseqüente 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
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

Apostila de Introdução à Computação Gráfica – Aula 01 8 / 13


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 freqüentes transformações geométricas dos componentes da imagem
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, utiliza-
se, 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
sofrerá alterações ou transformações como, por exemplo a texturização de superfícies
tridimensionais.

Apostila de Introdução à Computação Gráfica – Aula 01 9 / 13


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
padronizada e ordenada de comunicação entre as várias partes de um sistema gráfico
interativo.

Apostila de Introdução à Computação Gráfica – Aula 01 10 / 13


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
para o 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
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 GINO-
F, 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

Apostila de Introdução à Computação Gráfica – Aula 01 11 / 13


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+) provêem 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 da 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 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
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.

Apostila de Introdução à Computação Gráfica – Aula 01 12 / 13


- 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.

Apostila de Introdução à Computação Gráfica – Aula 01 13 / 13

S-ar putea să vă placă și