COMPUTAÇÃO GRÁFICA #01 TÓPICOS DESENVOLVIDOS NESTE MÓDULO - PDF
Download "COMPUTAÇÃO GRÁFICA #01 TÓPICOS DESENVOLVIDOS NESTE MÓDULO"
Vinícius Cunha Porto
1 COMPUTAÇÃO GRÁFICA #01 TÓPICOS DESENVOLVIDOS NESTE MÓDULO Que é Computação Gráfica Quais as Áreas da Computação Gráfica Dimensões 2D e 3D Primitivas Gráficas Imagem Matricial e Imagem Vetorial Rasterização e Renderização Tamanho da Imagem e Resolução 1. INTRODUÇÃO, CONCEITUAÇÃO E TERMINOLOGIA Computação Gráfica (CG) é uma área da Ciência da Computação. Está presente em diversos segmentos da atividade humana, nas artes, na medicina, arquitetura, segurança pública, propaganda, processamento de dados, lazer, educação, etc... e a cada dia surgem mais aplicações para esta caixa de ferramentas tecnológica. Praticamente tudo que poderíamos realizar por meios tradicionais usando imagens pode ser tratado com mais rapidez e eficiência com a CG. Contudo, para o usuário final, a CG não se constitui em um fim em si. O domínio de sua tecnologia não fará do indivíduo um artista, um médico, ou arquiteto, mas nas mãos de tais profissionais, o domínio de suas ferramentas pode levá-lo à realizações inimagináveis anteriormente. Por outro lado, para o cientista da computação, engenheiro, ou o analista de sistemas de informação a CG pode ser vista como um fim em si, pois cabe a esses profissionais o desenvolvimento e a integração das ferramentas que virão a ser utilizadas por outros profissionais no desenvolvimento de seus produtos. Assim, podemos definir a Computação Gráfica de várias maneiras, mais ou menos abrangentes: "Computação Gráfica é a área da Ciência da Computação que trata a geração, manipulação e interpretação de modelos matemáticos, na forma de imagens, utilizando o computador." "A Computação Gráfica consiste no conjunto de métodos e técnicas de converter dados para um dispositivo gráfico, via computador." A computação gráfica é a área da ciência da computação que estuda a transformação dos dados em imagem. Esta aplicação estende-se à recriação visual do mundo real por intermédio de fórmulas matemáticas e algoritmos complexos. <pt.wikipedia.org> Sendo uma das grandes área da Ciência da Computação podemos subdividir a Computação Gráfica, didaticamente, em três subáreas a saber: Síntese de Imagens Processamento (Manipulação) de Imagens Análise de Imagens (Visão Computacional) Para alguns autores, a Visão Computacional seria uma quarta subárea da CG. Cada uma dessas subáreas, embora interligadas e, muitas vezes, sobrepostas, goza de certa independência das demais, requerendo o desenvolvimento de competências específicas. Na SÍNTESE DE IMAGENS consideramos as representações visuais de objetos criados pelo computador a partir de especificações geométricas e visuais de seus componentes, ou seja, da 1
2 representação gráfica da informação. Exemplos: elaboração de um gráfico representativo da distribuição de freqüências de um determinado evento registrado em uma planilha, o registro digital de uma imagem por meio de um scanner ou câmera, a criação de imagem de uma cena para um filme de animação. O PROCESSAMENTO DE IMAGENS considera o tratamento da imagem em sua forma digital, suas transformações e melhoramentos. Exemplos: A restauração de uma fotografia antiga utilizando meios digitais, o realce de detalhes de uma imagem de uma câmera de segurança, a vetorização de uma imagem cartográfica (isso já não seria objeto da área de análise?). Já a ANÁLISE DE IMAGENS considera a especificação dos componentes da imagem a partir de sua representação visual. Exemplos: o reconhecimento de caracteres em um texto digitalizado (OCR Optical Character Recognition), o estudo de manchas urbanas, áreas de desmatamento, levantamento topográfico, etc.... a partir de imagens de satélite ou aerofotogrametria. Para os autores que consideram a VISÃO COMPUTACIONAL como uma quarta subárea da CG, sua utilização amplia as aplicações em computadores, como por exemplo, navegação móvel por robô, tarefas complexas de manufatura, etc. procurando oferecer, de modo mais eficiente possível, uma vasta quantidade de informações ao sistema computacional para que este possa agir como esperado. O reconhecimento de padrões está engajado no campo da visão computacional com atuações e perspectivas importantíssimas para alcançar e realizar a "máquina inteligente". PRÁTICA REFLEXIVA: Escreva com suas próprias palavras uma definição de Computação Gráfica, considerando as três definições já sugeridas acima 2. DIMENSÃO O conceito de dimensão permite várias interpretações, conforme a área de aplicação ou interesse. No sentido comum, dimensão pode se referir ao tamanho de um objeto, referindo-se às diferentes medidas de tamanhos ou extensões de um objeto (comprimento, largura, altura, profundidade...). Em Matemática a dimensão de um espaço é o número de parâmetros necessários para identificar um ponto dentro de um determinado espaço (2, 3, 4 dimensões, etc...). Nesse caso, por exemplo, um simples ponto (point) possui dimensão zero (não há espaço dentro de um ponto!), enquanto que uma linha, seja ela reta ou curva, possui dimensão 1 (o seu comprimento). Uma área superficial possui duas dimensões (largura e altura), enquanto que um certo volume é tridimensional (largura, altura e profundidade). Em CG, como na Matemática, o conceito de dimensão assume a interpretação de DIMENSÃO DO ESPAÇO. Se uma representação (imagem ou objeto) é realizada sobre uma superfície plana ela é dita ser de 2 dimensões (ou 2D), uma vez que o espaço plano requer dois parâmetros (normalmente x e y) para identificar seus pontos. Se desejamos representar objetos dispostos espacialmente então dizemos que a imagem é de 3 dimensões (ou 3D). Uma vez que os dispositivos de saída gráfica mais comuns são dispositivos bidimensionais, como as telas dos monitores CRT, LCD e etc..., mesmo as cenas manipuladas tridimensionalmente devem ser reduzidas, matematicamente por projeção, para imagens bidimensionais. PRÁTICA REFLEXIVA: Aqui temos duas questões para refletir: a) Cada um dos nossos olhos possui uma área (2D) onde a imagem se forma, a retina. Então como os dois olhos juntos podem formar EM NOSSO CÉREBRO uma imagem tridimensional da realidade exterior. 2
3 b) Frequentemente, Matemáticos e Cientistas precisam elaborar representações gráficas de objetos com 4, 5 6 dimensões ou mais! Para isso, recorrem à computação gráfica fazê-lo com mais "facilidade". Contudo, humanamente não conseguimos visualizar objetos com mais de 3 dimensões, da mesma forma como a tela do computador não consegue desenhar objetos com mais de 2 dimensões. Por que isso ocorre? 3. O CONCEITO DE PRIMITIVAS GRÁFICAS O termo PRIMITIVA GRÁFICA possui duas conotações bem distintas: Primeiro, chamamos de primitivas gráficas os elementos básicos de gráficos/desenhos a partir dos quais são construídos outros objetos, mais complexos, por exemplo: Em 2D: pontos, linhas, retângulos, circunferência, elipse, etc.... Em 3D: planos, caixas, esferóides, cilindros, cones, etc.... Uma outra conotação para o termo seriam os comandos e funções que manipulam e alteram os elementos gráficos de uma imagem, como por exemplo: Em 2D: WritePixel(x,y,cor), cor = GetColor(x,y), Form1.Canvas.Pixel[x,y]:=RGB(r,g,b) Em 3D: plane{ y,0 texture{pigment{color rgb <r,g,b>}}}} PRÁTICA REFLEXIVA: a) Escolha um desenho simples ou um objeto e procure decompô-lo como uma união de formas ou objetos mais simples. b) Certamente você teve aulas de C# na disciplina de LPE. Pesquise como é possível desenhar uma primitiva gráfica nesta linguagem. 4. DUAS FORMAS DE REPRESENTAÇÃO DA IMAGEM: MATRICIAL & VETORIAL Uma imagem digital é a representação de uma imagem bidimensional usando números binários codificados de modo a permitir seu armazenamento, transferência, impressão ou reprodução, e seu processamento por meios eletrônicos. Há duas formas distintas de imagens em CG, cada uma com suas vantagens, desvantagens e aplicações: As imagens matriciais (raster, rasteio, ou varredura) e As imagens vetoriais Na representação matricial, a imagem é descrita por conjunto de células em um arranjo espacial bidimensional, uma MATRIZ (array). Cada célula representa um elemento da imagem matricial, ou PIXEL. Trata-se da forma mais comum de representação, utilizada em monitores (CRT, LCD, etc...) e impressoras matriciais. As principais vantagens da representação matricial são estrutura simples; operações de superposição são facilmente e eficazmente implementadas; altas variabilidades espaciais são eficazmente representadas; operações de modelagem e simulação são facilitadas porque cada unidade espacial tem a mesma forma e tamanho. Por outro lado, há desvantagens importantes na representação matricial, como que ocupa muito espaço de memória; a forma dos elementos geométricos são difíceis de serem reconhecidas; transformações de projeção consomem muito tempo; 3
4 O uso de grandes pixels, para reduzir o volume de dados, pode significar perda de informação das estruturas mais finas Figura 1: Imagem Matricial: imagem digital, binária (esquerda), imagem no dispositivo raster (direita) Na representação vetorial, a imagem é descrita em termos de elementos geométricos básicos, as primitivas gráficas, representados situados num sistema de coordenadas bi (2D) ou tridimensional (3D), e produzidos por meio de sua descrição matemática. As primitivas geométricas servem de base para a criação/composição de modelos mais complexos e elaborados e, uma vez possuindo seus pontos referenciados em X, Y e Z, para isso podem ser manipuladas por meio de operações de transformação. A principal vantagem da representação vetorial é sua estrutura de dados compacta. Por outro lado, ela tem a desvantagem dessa estrutura de dados ser complexa, dificultando a implementação de operações de superposição e, sobretudo, necessitando que a imagem ser rasterizada ou renderizada para que seja representada matricialmente nos dispositívos gráficos de saída (monitores, impressoras, etc ) PRÁTICA REFLEXIVA: Para armazenar as imagens digitais os programas se utilizam de formatos padronizados. Alguns são de domínio público, mas outros são formatos proprietários. Na Internet é comum encontrarmos formatos cujos arquivos recebem as extensões JPG, GIF e SVG. No sistema WINDOWS há o BMP, o WMF e outros. Faça uma lista de extensões mais comuns de arquivos de imagens indicando se são formatos de armazenagem de imagens matriciais ou vetoriais. Não deixe de considerar as extensões acima. 5. RASTERIZAÇÃO E RENDERIZAÇÃO Dois termos muito empregados em Computação Gráfica e Processamento de Imagens são RASTERIZAÇÃO (rastering) e RENDERIZAÇÃO (rendering). Na Wikipédia (pt.wikipedia.org) encontramos definições bastante simples para ambos: Rasterização, é a tarefa de tomar uma imagem descrita vetorialmente e convertê-la em uma imagem raster (matriz de pixel) para a saída em vídeo ou impressora. Renderização é o processo pelo qual se pode obter o produto final de um processamento digital qualquer, ou ainda, Processo de gerar uma imagem a partir de modelos em um mundo tridimensional. PRÁTICA REFLEXIVA: Por que na definição fornecida pela wikipédia a RASTERIZAÇÃO é tratada como uma TAREFA e a RENDERIZAÇÃO como um PROCESSO? 4
5 6. A MAIS PRIMITIVA DAS PRIMITIVAS GRÁFICAS EM 2D: O PONTO Em CG o PONTO matemático (point), sem dimensão, transforma-se no PIXEL, a menor unidade gráfica manipulável em um arranjo matricial (PIXEL: de PIcture ELement). Ao contrário do PONTO, o PIXEL tem forma, dimensão, (o pixel pode ser um quadrado, um retângulo, um círculo, etc...) mas estes atributos não são, em geral, manipuláveis diretamente através de funções e dependem do hardware. Por outro lado, em CG, tanto o PONTO quanto o PIXEL são primitivas de um desenho que fazemos em um espaço bidimensional. No caso do ponto matemático tal espaço (uma folha de papel) pertence ao R 2. Já o pixel é um elemento de uma matriz (tela do computador) de tamanho W x H (Width-largura e Height-altura, em pixels, da matrix do dispositivo gráfico de saída), onde W, H pertencem ao N 2. (R é o conjunto dos números reais e N é o conjunto dos naturais). Assim, podemos atribuir ao pixel duas propriedades fundamentais: COR e POSIÇÃO. Como as coordenadas do PONTO, que formam um VETOR com valores no espaço real, e as coordenadas do PIXEL são elementos de uma MATRIX, possuindo coordenadas inteiras e positivas, devemos converter os valores adequadamente (rasterização). Esse cálculo é denominado de MAPEAMENTO WINDOW-TO-VIEWPORT. (ou JANELA-TO- VIEWPORT) 7. O TAMANHO OU RESOLUÇÃO EM PIXELS RESOLUÇÃO é a capacidade que um sistema de captura/reprodução de imagens tem para reproduzir detalhes. Quanto maior a resolução, mais detalhes podem ser reproduzidos por um determinado sistema Embora o termo RESOLUÇÃO seja freqüentemente usado como uma contagem de pixels em imagens digitais (sua largura e altura em pixels), o correto é considerar como resolução a DENSIDADE, ou seja, QUANTOS PONTOS (DOTS) POR POLEGADA (dpi - dots per inch), ou quantos pixels por polegada (ppi - pixels per inch). Observe que há dois tipos de PONTOS, o ponto matemático, abstrato, em inglês point, e o PONTO físico, material, em inglês dot. Enquanto que o PONTO matemático é convertido para o PIXEL, a maioria dos dispositivos gráficos necessita de um ou mais pontos (dots) para representá-lo. Por exemplo, uma velha impressora matricial usa um sistema de agulhas para imprimir a tinta de uma fita no papel. Pois bem, cada agulha se constitui em um dot e um único pixel da tela pode requerer vária "agulhadas" para ser desenhado no papel. Mas a menos que se esteja interessado em saber qual será o TAMANHO de uma imagem impressa, o usual é descrever a RESOLUÇÃO EM PIXELS como o conjunto de dois números positivos inteiros, em que o primeiro número é a quantidade de colunas (largura) de pixels e o segundo é número de linhas (altura) de pixels; algo como 640 X 480, por exemplo. Outra forma muito popular é citar a resolução como a quantidade total de pixels na imagem, tipicamente informada como o número de megapixels, os quais podem ser calculados multiplicando-se as colunas de pixels pelas linhas de pixels e dividindo-se o resultado por um milhão (Mega). Assim, uma imagem de tamanho (ou dimensões) 800 x 600 pixels contém 0.48 megapixels (800 x 600 = pixels) e se impressos em uma impressora com resolução é de 300 ppi a imagem terá 2,67 x 2 polegadas ou 6,8 x 5 centímetros. PRÁTICA REFLEXIVA: Que é ASPECT RATIO ("Aspecto" ou "Proporção de Tela" em português) e como ele é calculado? 5
6 QUESTÕES RESOLVIDAS R1. Presente em diversos segmentos da atividade humana, como nas artes, medicina, arquitetura, segurança pública, propaganda, processamento de dados, lazer, educação, etc. a Computação Gráfica (CG) é a área da Ciência da Computação que mobiliza os recursos matemáticos para gerar, manipular e interpretar imagens com a ajuda do computador. Praticamente tudo que poderíamos realizar usando imagens por meios tradicionais pode ser tratado mais rápida e eficientemente com a CG. Uma vez entendida a real natureza desta verdadeira caixa de ferramentas tecnológica é incorreto afirmar que: (a) Computação Gráfica é a área da Ciência da Computação que trata da geração, manipulação e interpretação da informação, de maneira visual, utilizando o computador (b) Computação Gráfica é a área da Ciência da Computação que estuda representações visuais a partir de especificações geométrica de seus componentes. (c) Computação Gráfica é a área da Ciência da Computação que trata da imagem em sua forma digital, suas transformações e melhoramentos. (d) Computação Gráfica é a área da Ciência da Computação que cuida da especificação dos componentes da imagem a partir de sua representação visual. (e) Computação Gráfica é uma disciplina do curso de Ciência da Computação ou Sistemas de Informação onde se aprende a desenhar e manipular imagens através de softwares apropriados. RESP.: Alternativa (e). Embora possa haver cursos em que seja fundamental aprender a usar programas de manipulação gráfica, como cursos de nível técnico, Comunicação Visual, Design Gráfico e etc, onde a CG não é caracterizada como um fim em si, nos cursos de Ciência da Computação, Sistemas de Informação e Engenharia da Computação, onde o objetivo é desenvolver os aplicativos que irão servir para manipulação gráfica, ou desenvolver pesquisa científica e tecnológica para seu avanço enquanto área da Ciência da Computação, a disciplina de CG deve enfatizar o uso da lógica de programação e algoritmos mobilizando todos os recursos matemáticos necessários para sua realização. R2. Assinale a alternativa que melhor indica os elementos fundamentais de um sistema de visualização gráfica. (a) Memória RAM e Processador (b) Processador, Controladora Gráfica e Monitor de Vídeo (c) Memória RAM, Controladora Gráfica e Monitor de Vídeo (d) Processador, Controladora Gráfica e Memória RAM (e) Memória RAM, Processador e Monitor de Vídeo RESP.: Alternativa (b). Um sistema de visualização gráfica é constituído por três elementos fundamentais: o sistema de processamento de dados, a controladora gráfica e o monitor de vídeo. O sistema de processamento de dados tem como função processar os dados relativos às imagens que pretendemos visualizar na tela do monitor de vídeo. A controladora gráfica atua como uma interface entre o processador e o monitor, tendo como principal função armazenar e converter os sinais de vídeo enviados pelo processador. O monitor de vídeo é um dispositivo de saída, que tem como função mostrar as imagens em uma tela, atuando como uma interface entre as aplicações e o usuário. 6