cg - apontamentos teóricos

55
INTRODUÇÃO E CONCEITOS BÁSICOS Taxionomia das Aplicações Gráficas A – Características dos objectos e modo como são visualizados Dimensionalidade dos objectos. Os objectos podem ser subdivididos consoante o espaço em que estão definidos: espaços 2D e espaços 3D. Dimensionalidade do espaço. Local onde estão definidos os objectos. É possível definir um ponto num espaço 1D, 2D ou 3D assim como uma curva, uma linha poligonal ou um texto num espaço 2D ou 3D. No entanto não é possível definir uma superfície num espaço 2D. Tipo de imagens. Em relação ao tipo de imagens produzidas existe uma dependência relativamente ao espaço em que os objectos estão definidos. Assim uma curva definida num espaço 2D pode ser visualizada como uma linha poligonal ou pelo lugar geométrico dos pontos que pertencem à curva. Pelo outro lado a curva pode ser representada com um padrão (por exemplo traço linha), com diferentes níveis de cinzento ou a cores. Se considerarmos uma superfície esta pode ser representada através de linhas poligonais (arames ou wire-frame), as quais podem, além dos atributos que existem em 2D incluir também a remoção de linhas ocultas. Se a superfície for definida como uma malha de facetas (polígonos planares) ou como o lugar geométrico dos pontos que lhe pertencem podem ser retirados os elementos ocultos. Iluminação. No mundo real para ser possível visualizar um objecto é necessário iluminá-lo. Este conceito de iluminação, aplicável quer a cenas definidas no espaço 2D ou 3D tem impacte no modo como o objecto é visualizado. Considerando que no mundo real não existem objectos 2D é comum que tais objectos, em CG, tenham uma textura e/ou cor não sendo necessário iluminá-los para se obter a sua imagem. Variação em função do tempo. No que se designa por Animação por Computador, os objectos podem estar estáticos ou qualquer um dos seus atributos pode variar em função do tempo, quer se trate da geometria, cor, textura ou modo como o objecto é visualizado (câmara em movimento). É ainda possível estender a área da Computação Gráfica a outros media tais como o som, o tacto ou o cheiro. Dos 5 sentidos unicamente o gosto não tem sido considerado. B – Interacção pessoa máquina Representação passiva. Existe uma descrição dos objectos a visualizar limitando-se o utilizador a mandar desenhar as imagens, quer se trate de uma ferramenta de visualização num ecrã, da impressão num plotter ou da sensibilização de um filme de 35mm, recorrendo a um equipamento apropriado ligado ao computador. Estas representações podem ter sido criadas, por exemplo, por outras pessoas e enviadas como parte de uma comunicação pessoa- pessoa assíncrona.

Upload: anahnarciso

Post on 11-Jun-2015

1.171 views

Category:

Documents


1 download

DESCRIPTION

Apontamentos das aulas teóricas de Computação Gráfica, tudo o que precisa para passar no exame teórico!

TRANSCRIPT

Page 1: CG - Apontamentos Teóricos

INTRODUÇÃO E CONCEITOS BÁSICOS Taxionomia das Aplicações Gráficas A – Características dos objectos e modo como são visualizados

• Dimensionalidade dos objectos. Os objectos podem ser subdivididos consoante o espaço em que estão definidos: espaços 2D e espaços 3D. • Dimensionalidade do espaço. Local onde estão definidos os objectos. É possível definir um ponto num espaço 1D, 2D ou 3D assim como uma curva, uma linha poligonal ou um texto num espaço 2D ou 3D. No entanto não é possível definir uma superfície num espaço 2D. • Tipo de imagens. Em relação ao tipo de imagens produzidas existe uma dependência relativamente ao espaço em que os objectos estão definidos. Assim uma curva definida num espaço 2D pode ser visualizada como uma linha poligonal ou pelo lugar geométrico dos pontos que pertencem à curva. Pelo outro lado a curva pode ser representada com um padrão (por exemplo traço linha), com diferentes níveis de cinzento ou a cores. Se considerarmos uma superfície esta pode ser representada através de linhas poligonais (arames ou wire-frame), as quais podem, além dos atributos que existem em 2D incluir também a remoção de linhas ocultas. Se a superfície for definida como uma malha de facetas (polígonos planares) ou como o lugar geométrico dos pontos que lhe pertencem podem ser retirados os elementos ocultos. • Iluminação. No mundo real para ser possível visualizar um objecto é necessário iluminá-lo. Este conceito de iluminação, aplicável quer a cenas definidas no espaço 2D ou 3D tem impacte no modo como o objecto é visualizado. Considerando que no mundo real não existem objectos 2D é comum que tais objectos, em CG, tenham uma textura e/ou cor não sendo necessário iluminá-los para se obter a sua imagem. • Variação em função do tempo. No que se designa por Animação por Computador, os objectos podem estar estáticos ou qualquer um dos seus atributos pode variar em função do tempo, quer se trate da geometria, cor, textura ou modo como o objecto é visualizado (câmara em movimento). • É ainda possível estender a área da Computação Gráfica a outros media tais como o som, o tacto ou o cheiro. Dos 5 sentidos unicamente o gosto não tem sido considerado.

B – Interacção pessoa máquina

• Representação passiva. Existe uma descrição dos objectos a visualizar limitando-se o utilizador a mandar desenhar as imagens, quer se trate de uma ferramenta de visualização num ecrã, da impressão num plotter ou da sensibilização de um filme de 35mm, recorrendo a um equipamento apropriado ligado ao computador. Estas representações podem ter sido criadas, por exemplo, por outras pessoas e enviadas como parte de uma comunicação pessoa-pessoa assíncrona.

Page 2: CG - Apontamentos Teóricos

• Representação interactiva. O utilizador manipula os objectos, construindo a cena de modo incremental, grava a cena, incluindo a sua iluminação, posição das câmaras e, sempre que entender, obtém uma imagem no suporte mais apropriado. • Sistemas de navegação. A cena está pré-definida podendo o utilizador controlar não só o modo de iluminar a cena mas também definir e controlar várias câmaras virtuais e navegar num espaço, normalmente, tridimensional. Estes sistemas designam-se por de Tempo Real, sendo uma das ferramentas mais populares: os navegadores VRML. Considerando o facto da cena ser estática existem algoritmos optimizados que permitem a visualização da cena com elevado grau de realismo (algoritmos baseados no conceito de radiosidade). • Ambiente de realidade virtual. Também de Tempo Real é possível não só navegar mas também alterar a cena, incluindo a geometria e restantes atributos dos objectos. Os navegadores VRML suportam também esta funcionalidade. • Agentes autónomos. Com a crescente importância dos agentes autónomos, em particular nos jogos de computador, é de considerar um novo tipo de interacção pessoa máquina na qual a máquina detém características, usualmente designadas por humanas, tais como a inteligência (dita artificial), autonomia, personalidade, emoções e muitas outras. • Cooperação suportada em Avatars. Classe de aplicações em que os objectos gráficos são as representações complexas de outra pessoa com a qual o utilizador está a interactuar. Esta classe de aplicações aparece nos sistemas de comunicação pessoa-pessoa, síncrona, através de canais de comunicação de baixo débito. Em primeiro lugar envia-se a geometria do avatar e informação sobre os elementos a parametrizar. Durante a comunicação basta enviar os parâmetros que variam em função do tempo (sorrir, erguer o sobrolho)

C – Papel desempenhado pela imagem

• Criação de imagens ou sequências de imagens. A produção de publicações electrónicas, de pinturas ou de animações são exemplos desta situação. Por outro lado, para um cartógrafo o mais importante é o rigor da informação que é medida no Mundo Real e não a simples produção de mapas. • Criação da cena. Representação de um produto que irá ser produzido quer se trate de um edifício ou de um produto electromecânico

D – Modo como as imagens são apresentadas

• Coerência espacial. Quando existe coerência espacial é apresentada uma imagem de cada vez seja no ecrã, sob a forma de um álbum de fotografias, ou numa impressora, num plotter ou sob a forma de uma imagem holográfica • Coerência temporal. Quando existe também coerência temporal entre as imagens elas podem ser apresentadas numa cadência que esteja bem definida (por exemplo 50 imagens / segundo), vulgo animação, ou numa cadência definível, vulgo simulação. A apresentação da sequência de imagem pode ser efectuada no ecrã de um computador ou ser gravada em vídeo e apresentada em cinema, televisão ou no próprio ecrã de um computador.

Page 3: CG - Apontamentos Teóricos

Arquitectura e Normas Gráficas

Representação Vectorial e de Quadrícula Num projecto de engenharia a geometria tem um papel central, pelo que a representação vectorial afigura-se como a mais correcta, quando é necessário criar representações do Mundo, por exemplo a partir de imagens obtidas por satélite, a representação em quadrícula é a mais correcta. Modelo Conceptual Uma norma como o GKS (Graphic Kernel System) permite o cálculo de primitivas gráficas tais como linhas poligonais, polígonos, marcas, texto e, apesar de se tratar de uma norma vectorial, mapas de quadrículas. Como as primitivas gráficas eram 2D a distinção entre Modelo e Vistas sobre o Modelo não era fácil de apreender. Para efectuar o cálculo de uma vista sobre o modelo é utilizado o que se designa por Pipeline de Visualização, isto é, um conjunto de operações algorítmicas necessárias à transformação dos dados que descrevem um modelo nos dados necessários ao desenho de uma vista específica numa superfície de visualização.

Page 4: CG - Apontamentos Teóricos

Em primeiro efectua-se o recorte identificando-se que parte do Mundo é que poderá ser vista através de uma área poligonal. Segue-se a transformação de coordenadas entre os dois espaços de coordenadas. A fase final, necessária em CG em quadrícula, efectua-se a discretização da vista vectorial, com o cálculo da representação em quadrículas da vista sobre o modelo.

Deslocação da janela sobre o Mundo (Panning)

Page 5: CG - Apontamentos Teóricos

TRANSFORMAÇÕES Utilidade das transformações para a CG ► Construção de objectos por composição hierárquica ► Aumento do realismo - Objectos e câmara usam movimentos realistas ► Realimentação cinestésica ao manipular objectos ou câmara ► Câmara sintética / parâmetros de visualização Transformações planas elementares

Translação

Escala Rotação

- Para deslocar polígonos é necessário aplicar a translação a cada um dos vértices - Preserva comprimentos (isométrica) - Preserva ângulos (conforme)

- Não preserva comprimentos - Não preserva ângulos (excepção: escala uniforme)

- Rotação de vectores de um ângulo β - Preserva comprimentos e ângulos - Demonstração através da soma de ângulos

Tipos de transformações Lineares → Transformam linhas em linhas ou pontos. A imagem do vector (0,0) é sempre (0,0) Afins → Transformam linhas paralelas em linhas paralelas. A imagem do vector (0,0) nem sempre é (0,0) Projectivas → Não preservam necessariamente o paralelismo das linhas. A imagem de uma linha é um ponto ou outra linha, nunca uma curva Coordenadas Homogéneas • Pontos 2D escrevem-se como vectores de (1 x 3): [x y 1] • Transformações geométricas como matrizes: (3 x 3) • w = 1 para transformações afins em 2D

Page 6: CG - Apontamentos Teóricos

Problema: Rotação definida em relação a (0,0) Como rodar em torno de um ponto qualquer?

Resposta: Sequência de 3 transformações básicas Composição de transformações • Em geral não é comutativa (produto de matrizes não o é) • Alguns pares comutativos - translação + translação - escala + escala - rotação + rotação Transformações Básicas 3D

Translação T(dx, dy, dz) Escala S(Sx, Sy, Sz)

Rotação Rx (θθθθ): em torno do eixo

dos XX Ry (θθθθ): em torno do eixo

dos YY Rz (θθθθ): em torno do eixo

dos ZZ

Page 7: CG - Apontamentos Teóricos

PIPELINE DE VISUALIZAÇÃO Arquitectura Global O tradicional sistema gráfico baseado num pipeline de visualização é constituído por três grandes blocos: • as operações de construção da cena;

• as operações geométricas que basicamente actuam sobre os vértices dos polígonos e que incluem as operações de pré-remoção de polígonos não visíveis (Culling), o recorte de polígonos (Clipping), a aplicação da transformação perspectiva, a determinação da luminosidade por aplicação do modelo de iluminação, a segmentação opcional de polígonos em triângulos (ou triangulação) e a operação de mapeamento nas coordenadas físicas do dispositivo de visualização • a rasterização responsável pelo cálculo dos pixeis, remoção de superfícies ocultas e sombreamento

Sistemas Coordenados De forma a facilitar a modelação de um determinado objecto, opta-se geralmente por descrever os seus diversos componentes (isto é, especificar os vértices dos polígonos que o constituem) em função de um ponto localizado dentro ou perto do próprio objecto. Nesta situação, os objectos dizem-se descritos em termos de um Sistema de Coordenadas Local. O passo seguinte consiste em colocar o objecto na cena que se pretende visualizar. Cada objecto que constitui a cena tem o seu referencial local. Todos os objectos são transformados de forma a poderem ser representados em função de um referencial único, o que permite especificar o seu posicionamento relativo. Este referencial comum é denominado Sistema de Coordenadas do Mundo. A descrição de cena é complementada com a especificação das posições das fontes luminosas e da posição da câmara, em particular, do ponto de observação e da direcção de observação. Em CG recorre-se ao conceito de câmara virtual para definir um novo referencial, denominado Sistema de Coordenadas da Câmara, cuja origem coincide com o centro de projecção (posição da câmara) e cujo eixo dos ZZ é normal ao plano de visualização e representa a direcção de observação. O último espaço de coordenadas em que os objectos são transformados está relacionado com as técnicas de projecção dos objectos da cena no plano de visualização. Define-se, nesse sentido, um volume de visualização que delimita o volume do espaço que será visualizado. Nota: Uma cena é composta por objectos, parâmetros de visualização e fontes luminosas

Page 8: CG - Apontamentos Teóricos

Interface de Visualização Um sistema de Visualização consiste num conjunto de parâmetros através dos quais um utilizador pode estabelecer uma transformação que conduza ao mapeamento de pontos definidos em coordenadas do Mundo (WCS) em pontos sobre uma superfície de visualização (2D). O utilizador tem que definir a posição da câmara, a posição e a orientação do Plano de Visualização no sistema de coordenadas WCS e o volume de visualização dentro do qual reside a porção da cena a visualizar. Parâmetros de posição e orientação de um observador: • Posição da câmara: VRP (View Reference Point) em WCS

• Direcção para onde a câmara aponta: VPN (View Plane Normal) ou seja, a direcção de visualização define imediatamente o plano de visualização • Vertical: VUV (View Up Vector) define o ângulo de rotação em torno do VPN • Distância do plano de visualização ao VRP, sobre a direcção VPN: D

A área rectangular, no plano de visualização, aonde irá ser projectada a cena, tem o nome de Janela de Visualização e no modelo de câmara virtual simples está centrada simetricamente relativamente ao VRP O Volume de Visualização contém a parte da cena que está visível na direcção do observador, ou seja, tudo aquilo que a câmara “vê”. A topologia do volume de visualização depende do tipo de projecção utilizada. No modelo de câmara virtual simples pode especificar 2 tipos de projecção: projecção perspectiva e projecção ortogonal.

Page 9: CG - Apontamentos Teóricos

Projecção Perspectiva

Projecção Ortogonal

O volume de visualização é definido por um tronco de pirâmide infinito cujo ápice se localiza no VRP e lados sobre a janela de visualização. Fazendo o recorte da cena sobre este volume, não ficam projectados objectos que se encontrem atrás do centro de projecção.

O volume de visualização é definido por um paralelepípedo infinito passando pelos lados da janela de visualização e de arestas paralelas à direcção VPN

Existem consequências negativas na utilização de volumes de visualização infinitos, que são particularmente evidentes no caso das projecções em perspectiva. Os objectos muito afastados, depois de transformados ponto a ponto, podem reduzir-se a uma pequena mancha no ecrã, o que corresponde a um desperdício de tempo de computação. Por outro lado, projecções de objectos demasiado próximos, podem gerar resultados caóticos, impossibilitando deste modo uma correcta visualização. A solução passa por definir planos de recorte paralelos ao plano de projecção, através da sua distância ao ponto VRP e medida ao longo da direcção VPN. Resumo:

Page 10: CG - Apontamentos Teóricos

Construção de uma vista arbitrária 3D Transformação de Visualização resume-se a colocar os objectos da cena de acordo com a posição e a direcção de um observador e é implementada por uma translação e uma rotação cujas matrizes são: Então, a transformação de visualização será: A conversão para o volume canónico ortogonal implica a realização de 2 passos:

• Translação do paralelepípedo de F unidades na direcção segundo Z, de modo a que o plano anterior se localize na origem • Escalar para que -1 ≤ x , y ≤ 1 e 0 ≤ z ≤ 1. A estas transformações correspondem as matrizes de transformação

A transformação completa para o cálculo do volume canónico ortogonal será então: Para obter o volume canónico perspectivo há que escalar o volume de visualização genérico nas duas direcções x e y de modo a que se obtenha um declive unitário para os planos laterais Por outro lado, z não pode ser maior que 1, isto significa escalar o plano z = B A transformação completa para o cálculo do volume canónico perspectivo será então:

Page 11: CG - Apontamentos Teóricos

Transformação total a ser aplicada aos objectos da cena antes da execução do algoritmo de recorte, para cada tipo de projecção:

Projecção Ortogonal Projecção Perspectiva Transformação Perspectiva Na projecção ortogonal, os cálculos destinados a determinar se dois pontos P1 e P2 se encontram sobre o mesmo raio projector são bastante simples pois consistem em verificar se x1 = x2 e y1 = y2. Esta simplicidade decorre do facto de os raios projectores na projecção ortogonal do modelo de câmara virtual simples serem paralelos ao eixo dos ZZ. No caso da projecção perspectiva, os cálculos complicam-se pois os raios projectores são convergentes num centro de projecção e, portanto, oblíquos. Isto implica imediatamente que o cálculo de visibilidade se revele dispendioso sobre o frustum canónico. A solução para este problema passa por converter o frustum normalizado no paralelepípedo canónico através de uma operação conhecida por Transformação Perspectiva que opera num espaço 3D e de que resultam pontos ainda num espaço 3D. As vantagens inerentes à utilização desta transformação são:

• A determinação da possibilidade de oclusão entre dois pontos é realizada por

simples comparações das duas primeiras coordenadas (x1 = x2 e y1 = y2)

• O recorte é especializado apenas para o volume canónico ortogonal

• No desenho 2D utiliza-se a projecção ortogonal

O uso desta transformação tem as seguintes consequências: • Transforma vértices do frustum em vértices do paralelepípedo canónico

• O vértice da pirâmide (centro de projecção) desloca-se para -∞

• Plano anterior, localizado em k, é deslocado para a origem

• Os valores de z variam entre 0 e 1

Page 12: CG - Apontamentos Teóricos

PROJECÇÕES

Projecções Geométricas Planas

Projecção Perspectiva

Projecção Paralela

• Determinada pelo centro de projecção (CDP) • Distância do CDP ao plano finita • Os raios projectores são convergentes

• Determinada por direcção de projecção • Distância ao CDP ao plano infinita • Os raios projectores são paralelos entre si

Projecções Paralelas Existem dois tipos distintos de projecções paralelas, em função de: • direcção de projecção • normal ao plano de projecção As Projecções Ortogonais são projecções cuja direcção de projecção coincide com a normal ao plano. Quando a normal ao plano está alinhada com um dos eixos obtém-se as vistas (planta, alçado frontal, alçado lateral). Se a normal ao plano não estiver alinhada com nenhum dos eixos então obtém-se as Projecções Axonométricas (Isométricas – ângulos de 120º entre eixos; Dimétricas – 2 ângulos iguais; Trimétrica – 3 ângulos diferentes). As projecções ortogonais são usadas em desenhos técnicos (engenharia civil e mecânica, arquitectura). A vantagem deste tipo de projecção é que utiliza medidas precisas e tem todas as vistas na mesma escala. As limitações das projecções ortogonais é que não é possível “visualizar” objectos 3D e são necessárias múltiplas vistas para definir uma peça. As Projecções Obliquas são projecções cujos raios projectores formam um ângulo oblíquo com o plano de projecção. O plano de projecção é normal a um dos eixos principais. As vantagens das projecções obliquas é que mostra a forma exacta de uma face do objecto projectado, permite a comparação de dimensões e transmite a ideia de um objecto 3D. As desvantagens é que dependendo do plano de projecção a aparência pode aparecer distorcida e tem alguma falta de realismo.

Page 13: CG - Apontamentos Teóricos

Alguns exemplos de projecções obliquas são o caso da Projecção Cavaleira, que tem um ângulo entre os projectores e a normal de 45º e as faces são perpendiculares à escala. Um outro exemplo é a Projecção Gabinete, cujo ângulo entre os projectores e a normal é arctg(2), ou seja, 63.4º e as faces do objecto são perpendiculares à escala de 50% Cavaleira Gabinete Projecções Perspectivas A aplicação de projecções perspectivas é mais utilizada em publicidade, arquitectura, desenho industrial, engenharia, artes gráficas, entre outras. Este tipo de projecções garante maior realismo mas alteram a geometria dos objectos. Características: • Linhas paralelas (não ao plano de projecção) convergem em pontos de fuga

• Linhas paralelas aos eixos definem pontos de fuga axiais (máximo de 3)

• Não mantém proporcionalidade entre distâncias

• Tamanho dos objectos diminui com a distância

• Só mantém a amplitude dos ângulos em faces paralelas ao plano de projecção

Pontos de fuga:

• Número de pontos de fuga é igual ao número de eixos coordenados intersectados pelo plano de projecção

• Só para formas

- Faces em ângulos rectos

- Normais às faces perpendiculares aos eixos coordenados

Page 14: CG - Apontamentos Teóricos

Transformação Perspectiva Plano de Projecção: • normal ao eixo dos ZZ • em z = d • mapeado na superfície de visualização do dispositivo • origem do espaço de coordenadas de visualização é igual à intersecção do plano com o eixo ZZ Transformação Ortogonal • Plano de projecção perpendicular à direcção de projecção • Simplificar: - Direcção de projecção coincidente com o eixo ZZ - Raios projectores paralelos a ZZ

Page 15: CG - Apontamentos Teóricos

ILUMINAÇÃO E SOMBREAMENTO Para ser possível obter a imagem de uma cena esta terá que ser iluminada por uma ou mais fontes de luz e têm que ser definidas as propriedades de interacção entre os objectos que existem na cena e a energia luminosa que incide em cada um deles. O processo de sombreamento consiste no cálculo da cor de cada uma das quadrículas que foram identificadas no processo de rasterização dos elementos da cena. Quando se consideram unicamente as contribuições da energia que é emitida pelas fontes de luz e reflectida por uma única superfície designa-se por Modelos de Iluminação Local, que requerem um esforço computacional baixo e conduzem a imagens com uma qualidade aceitável para muitas aplicações. Nos Modelos de Iluminação Global é considerada também a iluminação que é reflectida ou refractada por outras superfícies. Estes modelos são fisicamente mais correctos e produzem imagens com maior grau de realismo, mas requerem um esforço computacional elevado. Modelo de Iluminação Local de Phong Este modelo permite calcular o valor da intensidade de um raio reflectido por uma superfície em função da orientação da superfície, da posição da câmara, da posição da fonte de luz e das propriedades da superfície. O modelo de iluminação de Phong considera que os materiais, quanto ao modo como reflectem a energia luminosa, são uma combinação linear de um material que reflecte toda a energia numa única direcção, reflexão especular e de um material que reflecte toda a energia luminosa de igual modo em todas as direcções, reflexão difusa. O modelo considera ainda a existência de uma componente de Luz Ambiente a qual simula a existência de iluminação global, isto é, de energia luminosa que é reflectida por todas as restantes superfícies presentes numa cena e que ilumina a superfície. Luz Ambiente Se uma superfície, mesmo visível, não estiver directamente iluminada por um raio de luz, não será desenhada. Para resolver esse problema, o modelo assume que todas as superfícies da cena vão ser iluminadas por uma fonte de luz ambiente, de valor constante, a qual resulta de múltiplas reflexões da luz nas superfícies da cena. Reflexão Difusa Na reflexão difusa a energia luminosa é reflectida com igual intensidade em todas as direcções, segundo uma semiesfera, e o seu valor depende unicamente do ângulo de entre o raio incidente e a normal à superfície do objecto

Page 16: CG - Apontamentos Teóricos

A intensidade da energia luminosa reflectida não depende da posição do observador Reflexão Especular Na reflexão especular as propriedades do material são tais que toda a energia que incide num ponto segundo uma dada direcção fazendo um ângulo com a normal à superfície, é reflectiva segundo o mesmo ângulo. Sendo θ o ângulo entre o vector unitário normal à superfície, N, no ponto de incidência e o vector unitário da fonte de luz, L. A existência de superfícies especulares perfeitas é uma aproximação muito limitativa da realidade. Só seria possível visualizar a superfície se o raio reflectido coincidisse com a direcção de visão. Para ultrapassar este problema considera-se a existência de superfícies reflectoras especulares imperfeitas, onde a reflexão se verifica dentro de um ângulo sólido em torno de raio reflectido. É possível obter o que se designa por brilho quando se observa o objecto segundo um ponto de vista próximo do raio reflectido Combinando todas as componentes descritas obtém-se a expressão global do modelo de reflexão de Phong

Page 17: CG - Apontamentos Teóricos

Atenuação Atmosférica Para melhorar o realismo da imagem devia ser possível considerar a absorção da energia luminosa pelo meio de transmissão que é usado no percurso entre o objecto e o ponto de vista. Este efeito, designado por Depth Cueing, permite representar com menor intensidade luminosa os objectos que se encontrem mais afastados do ponto de vista. No modelo de reflexão de Phong tal efeito de atenuação é obtido através da dependência da distância entre o objecto e o ponto de vista do seguinte modo Métodos de Sombreamento Sombreamento Constante Neste modelo é utilizada a normal à faceta para calcular uma cor a qual é usada para sombrear toda a faceta. Os resultados que se obtêm com este método de sombreamento são de baixa qualidade uma vez que ficam visíveis as diferenças de cor nas fronteiras entre facetas, produzindo imagens muito pouco realistas. Os fracos resultados do método resultam do facto de aplicar um modelo de iluminação local a cada faceta, não tendo em consideração que as facetas são partes de um único objecto. Sombreamento de Gouraud A influência de facetas adjacentes é contemplada através do cálculo de normais em cada vértice da malha de facetas. Estas normais são obtidas por interpolação das normais de todas as facetas que partilham um mesmo vértice. A maior limitação do método de sombreamento de Gouraud resulta do modo como é efectuada a interpolação. Sombreamento de Phong No método de sombreamento de Phong, a partir das normais aos vértices, que são calculadas do mesmo modo que no sombreamento de Gouraud, é calculada a normal a cada quadrícula através da interpolação das normais. A normal calculada para cada quadrícula é então usada no modelo de iluminação de Phong para calcular a intensidade da energia luminosa reflectida. Este método é computacionalmente mais pesado uma vez que é necessário calcular a cor, por aplicação do modelo de sombreamento de Phong a todas as quadrículas da faceta. Limitações das Aproximações Interpoladas Sendo a normal o único elemento geométrico utilizado no modelo de reflexão de Phong, a geometria da silhueta de qualquer objecto modelado através de malha de facetas aparecerá pouco realista.

Page 18: CG - Apontamentos Teóricos

Uma segunda limitação resulta do facto da interpolação de intensidade ser executada em coordenadas de ecrã, embora partindo de vectores normais calculados em coordenadas do mundo. Não tendo impacte negativo no cálculo da imagem de uma cena, poderá no entanto conduzir a perturbações perceptíveis em sequências animadas. Um último problema está relacionado com o aparecimento de falsos alisamentos entre facetas adjacentes. Método de Sombreamento Misto Considerando as vantagens de cada um dos métodos de sombreamento, em particular a rapidez do método de Gouraud e a boa capacidade em tratar a componente especular do método de Phong, existe toda a conveniência em combinar a aplicação dos 2 métodos na criação de imagens.

Page 19: CG - Apontamentos Teóricos

RAY TRACING Algoritmo Fundamental de Ray Tracing Os algoritmos de ray tracing são algoritmos para determinar a visibilidade dos objectos de uma cena, operando ao nível de precisão da imagem. O algoritmo fundamental de ray tracing considera raios com origem no centro de projecção em que cada um dos raios passa pelo ponto correspondente a um pixel da imagem sobre o plano de projecção da cena a representar. Se um raio não intersectar nenhum objecto da cena, é atribuída ao pixel da imagem por onde o raio passa a cor de fundo da cena e ao pixel correspondente ao raio é atribuída a cor do ponto de intersecção mais próximo da origem do raio. A determinação da cor de cada pixel da imagem depende do cálculo da iluminação no ponto da cena que o raio atinge. Esta depende da iluminação directa deste ponto pelas fontes de luz da cena, da iluminação global da cena e da iluminação devida à luz reflectida pelos objectos da cena que atinge esse ponto. Existem três componentes que contribuem para a iluminação:

• luz proveniente de outros objectos, onde foi reflectida na direcção do objecto

cuja iluminação se pretende determinar

• luz refractada transmitida através do objecto e que ilumina o ponto

• luz proveniente directamente das fontes de luz e que é reflectida pelo objecto

A determinação de cada uma destas componentes requer cálculos próprios, sendo necessário inspeccionar as origens prováveis de cada uma delas. Para isto empregam-se os chamados raios secundários, traçados em sentido inverso ao da propagação da luz correspondente a cada uma das componentes. • raios reflectidos

• raios refractados

• raios de iluminação directa ou de sombra

A determinação das intersecções destes raios secundários com os objectos da cena permite então calcular as características da luz proveniente desses objectos e a sua contribuição para a iluminação do ponto de intersecção do raio primário com o objecto original. Cálculo de Intersecções Os algoritmos para o cálculo de intersecções não devem realizar quaisquer cálculos significativos antes de verificar se existe ou não intersecção dos raios com os objectos. Equação paramétrica de um Raio Em ray tracing, a origem dos raios primários encontra-se no centro de projecção, enquanto corresponde ao centro do pixel cujas propriedades se pretende determinar. O valor de t corresponderá então às seguintes situações:

Page 20: CG - Apontamentos Teóricos

• t < 0 pontos para trás do centro de projecção e que não pertencem ao raio

• 0 ≤ t ≤ 1 pontos localizados entre o centro de projecção e o plano de projecção

• t > 1 pontos situados para lá do plano de projecção Interacção da Luz com as Superfícies Reflexão especular perfeita Ocorre em superfícies lisas e brilhantes, normalmente espelhadas, metálicas ou de vidro. O raio reflectido existe no plano definido pelo raio incidente e pela normal à superfície e o ângulo de reflexão é igual ao ângulo de incidência. Reflexão difusa perfeita Nas superfícies rugosas não existe uma direcção pré-determinada segundo a qual a luz incidente é reflectida. Todas as direcções são igualmente prováveis e, segundo o modelo de reflexão difusa, a intensidade da luz reflectida é igual em todas as direcções. Transmissão especular perfeita e refracção A luz propaga-se através dos objectos transparentes ou translúcidos. Os objectos aparentam estar mais próximos do observador do que realmente se encontram. A lei de Snell estabelece a relação entre os dois ângulos e os índices de refracção (η) dos dois meios O índice de refracção de um meio depende das propriedades ópticas desse meio e varia de meio para meio. O valor do índice de refracção de um meio depende também da frequência (ou do comprimento de onda) da luz.

Page 21: CG - Apontamentos Teóricos

Reflexão total na interface entre dois meios Um raio luminoso sofre uma refracção ao atravessar a interface entre dois meios de densidade óptica diferente. Mas, quando a passagem se dá de um meio mais denso para outro menos denso, o raio pode ser reflectido na interface em vez de ser refractado. Este fenómeno é denominado de reflexão total e a sua ocorrência depende do ângulo de incidência do raio luminoso e dos índices de refracção dos dois meios. O valor máximo que o ângulo θt pode assumir é 90º. Existirá então um valor limite do ângulo θi a partir do qual deixa de se dar a refracção e passa a verificar-se a reflexão dos raios incidentes na interface entre os dois meios

Ângulo crítico: Extensão do modelo de iluminação de Phong O modelo de iluminação de Phong não inclui a contribuição da luz transmitida através de objectos transparentes ou translúcidos para a iluminação. É necessário estender este modelo para que possa ser empregue pelos algoritmos de ray tracing, adicionando um termo correspondente à luz assim transmitida. Iluminação directa e determinação de sombras A iluminação de intersecção de um raio primário com um objecto da cena a representar pode ser directa se o objecto for directamente iluminado por uma ou mais das fontes de luz existentes na cena. Para verificar se esta condição ocorre é necessário determinar se o ponto de intersecção se encontra em linha directa de visão com cada uma das fontes de luz. Se tal acontecer, o ponto será directamente iluminado pela fonte de luz e a respectiva contribuição para a iluminação do ponto deve então ser calculada. Caso contrário, o objecto encontrar-se-á na sombra em relação a essa fonte de luz. Para efectuar esta verificação empregam-se raios secundários do tipo raios de iluminação.

Page 22: CG - Apontamentos Teóricos

Algoritmo Completo O algoritmo básico de ray tracing encontra-se incompleto porque se limita a atribuir a cada pixel da imagem a cor do ponto de intersecção do raio primário correspondente ao pixel com o objecto mais próximo da origem do raio, sem atender a outras contribuições para a iluminação desse ponto de intersecção que não seja a sua iluminação directa. É necessário inspeccionar recursivamente a cena através da geração de raios secundários. O algoritmo recursivo parte do nível zero com o valor negro atribuído à cor e com a direcção e origem do raio primário correspondente ao pixel cuja cor se pretende determinar. Se o raio não intersectar qualquer objecto, então a cor do pixel será a cor de fundo da cena e o processo recursivo terminará. Caso contrário determina-se a cor local devida à iluminação directa através de raios de iluminação. Seguidamente determinam-se os raios secundários correspondentes às direcções cujos raios reflectido e transmitido coincidem com a direcção do raio corrente e calculam-se as respectivas contribuições para a cor do ponto corrente que, devidamente ponderadas, serão somadas com a cor local à cor anteriormente determinada para o raio que está a ser calculado. Estratégias de Optimização A carga computacional da geração de imagens pelo algoritmo de ray tracing é bastante pesada devido ao cálculo das intersecções dos raios com os objectos da cena. Para resolver este problema existem quatro tipos de soluções: Transformação da cena segundo o raio A localização espacial das intersecções de um raio com os objectos de uma cena só é conhecida depois de essas intersecções terem sido calculadas. Se o raio coincidir com o eixo dos ZZ da cena, sabe-se que todas as intersecções corresponderão a pontos para os quais X = 0 e Y = 0. Pode-se, então, fazer uso deste conhecimento, não procurando intersecções do raio com todos os objectos que não possuam pontos com valor nulo das coordenadas X e Y. Esta estratégia apresenta no entanto a desvantagem computacional devida à necessidade de aplicar uma transformação específica para cada raio, e de cada transformação ter que ser aplicada a todos os objectos da cena. Intersecção com volumes envolventes Testar a existência de intersecção entre o raio e o volume envolvente do objecto cuja intersecção com o raio é mais fácil e rapidamente determinada. Se o resultado for afirmativo, existe grande probabilidade de existência de intersecção entre o raio e o objecto e, então, deverão ser realizados cálculos mais detalhados de intersecção com os elementos descritores do objecto. Caso contrário, pode-se passar ao objecto seguinte da lista de objectos da cena e poupa-se cálculos demorados que iriam contribuir para tornar o processamento da imagem muito mais demorado. O volume envolvente deve ser tal que o objecto o preencha o mais completamente possível, para que não ocorram muitas situações em que, existindo intersecção entre o raio e o volume envolvente do objecto, não exista intersecção do raio com o objecto envolvido pelo volume.

Page 23: CG - Apontamentos Teóricos

Esta estratégia permite diminuir a carga computacional de cálculo de intersecção entre um raio e os objectos, pois elimina imediatamente o objecto contido num volume envolvente se este volume não for intersectado. Hierarquização do espaço Os volumes envolventes podem ser organizados hierarquicamente, construindo uma árvore onde os volumes envolventes de cada objecto singular correspondem às folhas de cada ramo e em que cada nó intermédio representa um volume que envolve todos os volumes situados nos ramos que dele dependem. Se num dado nó existir intersecção entre o respectivo volume envolvente e o raio, dever-se-á então inspeccionar todos os ramos com origem nesse nó. Se não existir intersecção com o volume envolvente a esse nível, então não existirão quaisquer intersecções do raio com os volumes correspondentes aos ramos com origem nesse nó e a determinação de intersecções pode ser imediatamente terminada para o ramo corrente. Partição do espaço Dividir o espaço da cena em volumes envolventes paralelepipédicos dispostos segundo uma grelha tridimensional. Cada partição do espaço assim obtida poderá ou não conter objectos, não sendo necessário que cada objecto esteja totalmente contido numa única partição. Dado um raio, esta estratégia consiste então em determinar a intersecção do raio com as partições seguindo uma ordem de teste por distância crescente das partições à origem do raio. Uma partição intersectada pelo raio é liminarmente eliminada se não contiver quaisquer objectos. Caso contrário calculam-se então as intersecções do raio com os objectos contidos na partição para, no final, reter a intersecção correspondente à menor distância à origem do raio, aplicando a cada partição uma lógica em tudo semelhante à aplicada a toda a cena quando se não considera a sua partição. Antialiasing em Ray Tracing A precisão dos algoritmos de ray tracing depende da resolução da quadrícula empregue, que se encontra no espaço de imagem. Por este motivo, os algoritmos de ray tracing estão sujeitos a fenómenos de aliasing que podem ser contrariados por técnicas de antialiasing de pré-filtragem. A cor de um pixel é determinada calculando a cor no ponto de intersecção do raio primário correspondente ao pixel com o objecto intersectado no espaço do objecto. Em lugar de se empregar apenas um raio primário por cada pixel, poder-se-ão empregar vários raios primários cobrindo uniformemente a área correspondente ao pixel. A cor do pixel será, então, a média das cores determinadas por cada um dos raios, o que equivale a realizar uma pré-filtragem por sobre amostragem. Amostragem adaptativa Emprega inicialmente menos raios primários por cada área, normalmente em número de cinco, em que um deles se localiza no centro da área e os outros quatro nos quatro cantos dessa cena. Se as cores determinadas por cada um dos cinco raios forem semelhantes, pode-se concluir que os raios intersectam o mesmo objecto e emprega-se a cor média para a cor do pixel da imagem correspondente a essa área.

Page 24: CG - Apontamentos Teóricos

Um problema desta técnica reside em arbitrar quando é que existe ou não uma diferença significativa entre as cores. Por outro lado, não é óbvio que a amostragem seja significativa apenas porque as cores dos cinco raios de uma área são idênticas ou semelhantes, pois pode acontecer que exista na área um objecto de pequena dimensão que não seja detectado por qualquer dos cinco raios. A causa deste problema está na natureza regular da malha definida pelos cinco raios. Amostragem estocástica Esta técnica permite calcular cores médias mais correctas, pois os raios encontram-se melhor distribuídos dentro da área correspondente a cada pixel, mas introduz ruído devido à distribuição aleatória. Esta técnica produz resultados de melhor qualidade visual, principalmente em zonas de sombra parcial onde não existem arestas vivas. Persistem os problemas associados ao número de raios a calcular e à correspondente carga computacional. Podem existir pixeis para os quais nove raios primários são ainda insuficientes, como o caso de um pixel a que corresponda uma área de padrão axadrezado que contenha 16 cores diferentes. A solução consiste no aumento sucessivo do número de raios primários até que, estatisticamente, se possa determinar que a cor calculada é a cor correcta com uma dada probabilidade de certeza.

Page 25: CG - Apontamentos Teóricos

RADIOSIDADE O método da radiosidade tem por objectivo o cálculo da iluminação e do sombreamento em cenas em que predominam superfícies reflectoras difusas, e deriva do cálculo das trocas de radiação térmica entre superfícies empregue em Transmissão de Calor adaptado à Computação Gráfica. A primeira diferença entre o método da radiosidade em Transmissão de Calor e em Computação Gráfica está em que, na primeira, a radiação a ter em conta se encontra na zona do espectro electromagnético cuja radiação produz efeitos térmicos ao atingir os corpos, a zona dos infravermelhos, enquanto que na segunda a radiação a tratar corresponde à radiação na zona visível do espectro, a luz. A segunda diferença consiste em que, em Computação Gráfica, o objectivo do método é determinar a luz proveniente de uma superfície, a radiosidade da superfície, enquanto que em Transmissão de Calor o objectivo é determinar a temperatura das superfícies que trocam radiação térmica ou o saldo da radiação trocada entre superfícies. Para calcular as radiosidades de uma cena, dividem-se as superfícies desta em áreas em que a radiosidade possa ser considerada uniforme e, seguidamente, estabelecem-se as equações de balanço para cada uma das áreas. A precisão dos resultados depende assim do número de áreas consideradas, do tamanho destas áreas e da sua adequação em reproduzir os gradientes de sombreamento existentes na realidade. O método da radiosidade é um método que opera no espaço dos objectos e não depende da vista de cena que se pretende gerar. Equação da Radiosidade Irradiação total A energia radiante total que atinge uma dada superfície pode ser por esta absorvida, reflectida ou transmitida em proporções que dependem das propriedades físicas da superfície e do respectivo corpo. • Absorsividade (α) – fracção da irradiação total que é absorvida

• Reflectividade (ρ) – fracção da irradiação total que é reflectida

• Transmissividade (τ) – fracção da irradiação total que é transmitida através do corpo da superfície

Radiosidade total e radiosidade A energia radiante total proveniente de uma superfície é designada como a radiosidade total dessa superfície.

• Irradiação (I) – energia incidente numa superfície por unidade de área da superfície

• Poder Emissivo (E) – energia emitida por uma superfície por unidade de área de superfície

• Radiosidade (B) – energia radiante que abandona uma superfície por unidade de área de superfície

Page 26: CG - Apontamentos Teóricos

Factores de forma Os factores de forma assumem um significado geométrico preciso correspondente à forma como cada superfície “vê” outra superfície. Isto corresponde ao ângulo sólido do campo de visão da superfície que “vê” ocupado pela superfície que é “vista”. Os factores de forma dependem unicamente da geometria das superfícies e da sua disposição espacial relativa Propriedades dos factores de forma

• Reciprocidade • Aditividade • Fecho

Equação da Radiosidade Esta equação tem que ser resolvida para cada uma das áreas em que a cena a calcular se encontra decomposta. Método do Hemicubo O método do hemicubo tem por base a analogia de Nusselt:

“ Se duas superfícies diferentes ocupam a mesma parte do horizonte visual de uma terceira superfície, os factores de forma desta última para cada uma daquelas são iguais “

A analogia de Nusselt permite substituir o cálculo de factores de forma de geometrias complexas pelo cálculo de factores de forma de geometrias mais simples, recorrendo a geometrias para as quais existam expressões analíticas e cuja carga computacional não seja demasiado elevada (rectângulos paralelos e rectângulos perpendiculares). Considera-se duas superfícies para as quais se pretende determinar os factores de forma e define-se um cubo centrado numa dessas superfícies, envolvendo-a completamente, e em que um dos eixos coincide com a direcção da normal à superfície. Para efeitos da determinação dos factores de forma, considera-se apenas a metade do cubo e descarta-se a outra metade.

Page 27: CG - Apontamentos Teóricos

Optimização Os algoritmos anteriormente descritos para o cálculo das radiosidades de uma cena resolvem alguns dos principais problemas encontrados, mas deixam ainda por resolver dois tipos de problemas: • Grau de discretização da cena

• Velocidade de convergência do método de resolução do sistema de equações lineares a resolver

A solução a estes dois problemas baseia-se em:

• Subdivisão Adaptativa – consiste em identificar as áreas de maiores gradientes de radiosidade e subdividi-las quando se verifique que a divisão inicial foi demasiado grosseira face aos gradientes calculados

• Radiosidade Progressiva

Page 28: CG - Apontamentos Teóricos

MODELAÇÃO GEOMÉTRICA Modelação geométrica é o conjunto de operações que concorrem para a definição da geometria e das propriedades dos objectos a ela associadas. Os objectivos da modelação não se limitam à mera construção de modelos dos objectos para produzir imagens de cenas. A modelação geométrica permite definir as formas e propriedades dos objectos antes de os mesmos serem manufacturados e determinar que processos de fabrico deverão ser empregues na sua fabricação. A modelação geométrica desempenha também um papel importante na modelação conjunta de objectos com componentes móveis e na montagem de componentes. A modelação deve ter em conta o realismo das representações dos objectos. Propriedades Desejáveis para as Representações Existem vários tipos de representação para a modelação geométrica de sólidos em que cada forma pode ainda apresentar variantes. Esta multiplicidade tem origem nos requisitos particulares decorrentes dos objectivos de cada tipo de representação. A modelação dos objectos deve ser a mais exacta possível para que o tipo de representação não introduza quaisquer artefactos indesejáveis. Convém que as representações sejam universais, isto é, possam representar todos os objectos imagináveis e não apenas um número restrito. Como tal é impossível na prática, as representações deverão então poder representar o maior número possível de objectos. Os objectos devem também ser fielmente representados para que não possam existir ambiguidades de interpretação quanto ao objecto representado. As representações devem ser únicas, o que implica que cada tipo de representação não possa representar um objecto por mais do que uma forma. Se não houvesse uma representação única, poder-se-ia concluir que dois objectos eram diferentes embora se tratasse do mesmo objecto representado de duas maneiras. A representação de objectos deve ser precisa, isto é, não deve conter aproximações pois disto depende o realismo da sua visualização e a correcção com que poderá ser manufacturado. Exige-se que os processos de criação de representações apresentem menores probabilidades de ocorrência de erros. O processamento de representações dos modelos geométricos de sólidos requer que estas sejam compactas para que ao processamentos sejam rápidos e que estes possam igualmente ser realizados através de algoritmos eficientes.

Page 29: CG - Apontamentos Teóricos

Tipos de Representação Instanciação de primitivas É uma das representações mais usadas devido à sua grande simplicidade e flexibilidade de emprego. Este tipo de representação tem por base a definição de objectos geométricos tridimensionais, as primitivas, que possuem atributos, os parâmetros, cujos valores são definidos pelo utilizador no momento da criação de uma nova instância. As primitivas serão postas à disposição dos utilizadores em bibliotecas ou repertórios mais ou menos complexos mas sempre adequados aos fins em vista. Os objectos modelados por instanciação de primitivas são agrupáveis para construir objectos mais complexos. Não é, no entanto, possível definir uma nova primitiva com parâmetros próprios à custa das primitivas existentes. Para criar uma nova primitiva é necessário criar um novo objecto e definir os seus parâmetros e os procedimentos de cálculo de propriedades como o volume e o centro de massa. A hierarquização é uma propriedade importante da representação da modelação de sólidos por instanciação de primitivas. Representação por varrimento A representação de sólidos tridimensionais por varrimento tem por base a descrição do volume gerada quando um objecto é deslocado segundo uma dada trajectória e varre um dado volume. No caso dos sólidos gerados por extrusão e rotação a partir de secções bidimensionais simples, os varrimentos produzem volumes com propriedades geométricas fáceis de calcular. Esta facilidade complica-se um pouco se as secções bidimensionais que varrem os volumes apresentarem formas irregulares. Estes cálculos tornam-se bastante mais difíceis nos chamados volumes varridos gerais. Nestes, a secção bidimensional que varre os volumes pode variar de ponto para ponto da trajectória, normalmente de forma contínua. Uma outra desvantagem é a dificuldade em aplicar operações a objectos modelados por varrimento. Em geral, a realização de operações entre volumes descritos por varrimento implica a conversão prévia das representações dos operandos para representações em que as operações sejam fáceis de realizar.

Page 30: CG - Apontamentos Teóricos

Representação de fronteira A modelação geométrica de sólidos por representação de fronteira descreve os objectos a representar por meio das superfícies que os limitam e das arestas e vértices que estas superfícies apresentam. De entre os vários tipos de representação de fronteira consideram-se os seguintes: • Representação por poliedros

A representação de fronteira por malha poligonal é a representação mais comum de modelação de sólidos por poliedros. A representação por malha poligonal tem a vantagem adicional de permitir a visualização rápida do sólido modelado através da representação das suas arestas. Este tipo de representação, denominado modelo de arames, permite verificar visualmente e de forma rápida a correcção da malha poligonal e transmite ainda uma imagem bastante aproximada dos sólidos modelados. • Representação por arestas estendidas ou arestas com alas Este tipo de representação resolve o problema de dada uma aresta de uma dada face, determinar que outra face da fronteira partilha essa aresta com ela. Basta para isso associar estruturas de dados a cada aresta, vértice e face da malha poligonal. A criação destas estruturas ordenadas implica um esforço adicional do cálculo inicial que é posteriormente compensado no processamento da representação, pois as relações de adjacência passam a ser explícitas e removem a necessidade de efectuar buscas em listas mais ou menos longas. • Representações não poliédricas Em situações em que seja necessário calcular (prever) colisões de um cilindro assim aproximado com um furo que também apresenta forma cilíndrica, é provável que se obtenha colisões que não deveriam ocorrer. Se o cilindro puder encaixar no furo, a animação da rotação do cilindro poderá não ser possível porque será detectada uma colisão com o modelo do furo logo que o modelo aproximado do cilindro (prisma) seja rodado. A solução para estes problemas passa por representações de fronteira não planas com o emprego de técnicas especiais.

Representação por partição do espaço Esta representação consiste em representar sólidos por meio de conjuntos de sólidos elementares que, quando justapostos e sem se intersectarem, reproduzem o volume ocupado pelos sólidos a representar. Pode-se considerar quatro tipos de representação de sólidos por partição do espaço: • Decomposição em células

Esta representação tem por base a decomposição dos objectos a representar em células ou elementos primitivos paramétricos. Este tipo de representação é semelhante à representação facultada pela linguagem VRML. A decomposição do espaço proíbe expressamente a intersecção e impõe a justaposição das primitivas que partilham pontos, arestas ou faces. Não permite qualquer ambiguidade, mas pode não ser única, isto é, podem existir várias representações para um dado sólido.

Page 31: CG - Apontamentos Teóricos

• Enumeração da decomposição do espaço Decompõe o espaço segundo uma grelha tridimensional composta por volumes de forma a dimensões idênticos, os volumes elementares, também denominados por voxeis. A representação de um sólido consiste então em arbitrar a discretização pretendida, ou seja, determinar a dimensão dos voxeis, e, seguidamente, enumerar quais os voxeis ocupados pelo sólido a representar. Tal representação é única e não contem quaisquer ambiguidades. A simplicidade desta representação permite detectar colisões entre objectos e a sua adjacência de forma explícita, através da inspecção das células contíguas às células das fronteiras dos objectos. O inconveniente mais grave consiste no número elevado de volumes elementares necessários. Um voxel está sempre completamente ocupado ou vazio. • Representação por árvore de octantes Tem por objectivo eliminar a desvantagem principal da representação por enumeração do espaço. Esta representação aplica a estratégia de dividir para conquistar, dividindo o espaço em oito octantes pelo plano médio segundo cada direcção do espaço. Cada octante assim obtido é sucessivamente subdividido em sub-octantes até que estes se encontrem todos ocupados ou todos livres, ou ainda se atinja o nível máximo de subdivisões permitido. Depois de uma subdivisão, se os octantes resultantes forem homogéneos, os octantes são substituídos pelo octante que lhes deu origem e o processo de subdivisão termina para esse octante. • Representação por árvore de partição binária Pretende optimizar a estratégia de subdivisão aplicada na representação por árvore de octantes. A subdivisão de um octante em oito octantes é feita cegamente, sem qualquer critério, segundo o plano médio de cada umas das três direcções do espaço, quando uma melhor localização do plano bissector resultaria em dois sub espaços em que em deles estaria ocupado pelo objecto e o outro estaria vazio. Nesta representação o espaço é dividido em apenas dois sub espaços por um plano arbitrário colocado de forma a coincidir com a superfície ou parte da superfície do objecto a representar. Uma vantagem deste tipo de representação é a maior fidelidade obtida na representação das fronteiras do objecto.

Operações Lógicas em Modelação Geométrica Uma operação de associação não tem um resultado único pois depende de que tipo de associação se pretende efectuar. A associação de sólidos para modelar um novo sólido depende do tipo de associação pretendido, isto é, depende da operação lógica a realizar entre os volumes dos operandos. Os operadores lógicos empregues em modelação de sólidos permitem adicionar dois volumes, isto é, calcular a sua união (∪), determinar o volume comum, ou seja, a sua intersecção (∩), e a sua diferença (-), de que resulta um volume que é igual ao volume de um dos dois operandos menos o volume da sua intersecção e depende da ordem dos operandos.

Page 32: CG - Apontamentos Teóricos

O resultado de operações lógicas sobre volumes não é necessariamente um volume e depende ainda de se considerar se a fronteira faz ou não parte do volume que limita. Chama-se regularização de um objecto à operação que determina a fronteira que envolve todos os pontos interiores de um volume aberto. Um objecto cujo conjunto de pontos constituintes é idêntico ao seu fecho denomina-se objecto regular. Modelo de Malha Poligonal O modelo de malha poligonal é um modelo de representação geométrica de sólidos por representação da fronteira que descreve as superfícies dos objectos através de uma colecção de polígonos. Um modelo de malha poligonal corresponde à enumeração de uma colecção de arestas, vértices e polígonos interligados numa malha que, no seu conjunto, descreve a fronteira dos objectos a representar. Operações sobre modelos de malha poligonal Existem várias formas de representar uma malha poligonal. Cada uma delas emprega ema estrutura de dados própria. O tipo de estrutura de dados a empregar em cada caso concreto depende de que operações irão ser realizadas ao processar a malha poligonal. Estas poderão ser a representação dos objectos modelados em dispositivos de saída gráfica ou a verificação da consistência e correcção da malha poligonal que os descreve. Operações mais comuns efectuadas sobre malhas poligonais: • Representar a malha em dispositivos de saída gráfica

• Determinar que arestas concorrem num dado vértice

• Determinar os vértices de uma dada aresta

• Determinar os polígonos que partilham uma dada aresta ou um dado vértice

• Verificar a consistência da malha, determinando faltas de arestas, vértices ou polígonos

É o tipo de processamento pretendido que determina que operações serão realizadas sobre os modelos de malha poligonal.

Page 33: CG - Apontamentos Teóricos

Malha poligonal de lista explícita Cada polígono é descrito por um conjunto de termos ordenados em que cada termo contém as coordenadas de um vértice do polígono. Este tipo de modelo de malha poligonal não possui qualquer informação sobre os vértices e arestas comuns a dois ou mais polígonos. Qualquer aresta comum a dois ou mais polígonos é desenhada em dispositivos de saída gráfica tantas vezes quanto o número de polígonos a que a aresta pertença. Uma forma de evitar o desenho duplicado de arestas consiste em, antes de desenhar uma dada aresta percorrer todos os polígonos anteriormente desenhados para determinar se a aresta pertence a algum deles e, portanto, foi já desenhada. A utilização deste tipo de malhas é pouco eficiente quando se pretende alterar as coordenadas dos vértices. A alteração destas é extremamente lenta, pois implica percorrer toda a lista de polígonos para alterar as coordenadas de todas as ocorrências do vértice a modificar. Malha poligonal de lista de vértices Baseia-se na construção de um conjunto de termos ordenados contendo as coordenadas de cada vértice. Esta lista não contém vértices duplicados. Cada polígono é descrito por uma lista de vértices em que cada elemento corresponde ao número de ordem desse vértice na respectiva lista ou uma referência para a estrutura que contém as coordenadas do vértice. Esta descrição é mais compacta do que a descrição por lista explícita pois evita o gasto de memória provocado pela duplicação do armazenamento das coordenadas dos vértices. Por outro lado, a operação de alteração das coordenadas de um dado vértice passa a ser explícita, sendo a alteração dessas coordenadas realizada uma única vez. As arestas comuns a dois ou mais polígonos continuam a ser desenhadas duas ou mais vezes nos dispositivos de saída gráfica. Esta representação contínua a não ser eficiente na determinação de adjacências de polígonos, uma vez que é necessário percorrer toda a lista de polígonos para determinar se e quais polígonos referenciam um dado vértice ou uma dada aresta. Malha poligonal de lista de arestas Permite executar de forma eficiente a operação de determinação das adjacências que nas representações anteriores é demasiado lenta. A representação por lista de arestas constrói uma lista de vértices únicos e uma lista de arestas únicas que referenciam os respectivos vértices e os polígonos a que pertencem. Estas referências encontram-se numa estrutura associada a cada aresta e referem os dois vértices e, pelo menos, dois polígonos se a malha for fechada. Mantém-se a lista de polígonos mas agora existe uma estrutura associada a cada polígono que referencia um mínimo de três arestas. A alteração das coordenadas de um vértice é uma operação simples e explícita e não existe duplicação de informação que implique gastos desnecessários de espaço de armazenamento.

Page 34: CG - Apontamentos Teóricos

As vantagens principais da representação por listas de arestas são tornar explícita a determinação da adjacência de polígonos e eliminar o desenho duplicado de arestas em dispositivos de saída gráfica, pois para desenhar as arestas basta percorrer a lista de arestas na qual cada aresta é única. Estas vantagens traduzem-se na redução do trabalho realizado pelo pipeline de visualização no recorte, transformação e conversão dos segmentos de recta correspondentes ao desenho das arestas. A única desvantagem consiste na impossibilidade de determinação explícita de que arestas concorrem num dado vértice dado que a estrutura associada a cada vértice contém apenas as respectivas coordenadas. Verificação da consistência de malhas poligonais A verificação da consistência de uma malha deverá atender aos seguintes critérios: • Todos os polígonos devem ser fechados

• Todas as arestas devem ser referenciadas pelo menos uma vez e não mais do que um determinado número de vezes. Este número depende da forma da superfície descrita pela malha

• Cada vértice deve ser usado por, pelo menos, duas arestas Em malhas fechadas deve-se verificar se existem lacunas devidas à falta de polígonos. Em malhas poligonais representando superfícies conectadas deve ser possível ligar um vértice a um outro vértice qualquer percorrendo as arestas e passando por cada aresta uma única vez. Em malhas topologicamente planas, deve verificar-se se os polígonos com mais do que três arestas são planos ou não, isto é, se todos os pontos do polígono existem no mesmo plano. Critérios complementares: • Uma aresta não deve ser usada duas ou mais vezes num mesmo polígono

• Um vértice deve pertencer a, pelo menos, um polígono

• As arestas não podem apresentar comprimento nulo

• Na representação por listas de arestas, a referência entre arestas e polígonos tem que ser recíproca. Um polígono não pode referenciar uma aresta se esta, por sua vez, não referenciar o polígono

Verificação de malhas topologicamente planas Esta verificação só faz sentido se na malha existirem polígonos que não sejam triângulos, pois um triângulo é uma figura geométrica intrinsecamente plana. A verificação se todos os vértices de um polígono pertencem ao mesmo plano consiste em determinar a equação do plano do polígono a partir de três dos vértices do polígono, seguida da verificação se os restantes vértices do polígono pertencem ao plano. Se a malha for topologicamente plana, os restantes vértices do polígono deverão existir no plano cujos coeficientes acabam de ser determinados. Esta condição poderá não se verificar, quer porque o método de geração da malha é inadequada, caso em que se deverá optar por outro método, quer por erro numérico.

Page 35: CG - Apontamentos Teóricos

COR E LUZ A cor confere realismo às imagens e cenas a visualizar. Quanto maior for a fidelidade da reprodução da cor maior será o realismo e a naturalidade dos resultados observados. Para obter uma reprodução fiel da cor deverão ser empregues modelos de cor correctos e precisos. A cor desempenha um papel importante na visualização de propriedades associadas aos objectos visualizados. A cor permite visualizar o não visível adicionando informação aos objectos visualizados. A cor desempenha a função de destacar e chamar a atenção para a informação e dar-lhe significado. Caracterização Perceptual da Cor O modelo de cor de Munsel estabelece como parâmetros a cor (hue), o valor (luminosidade) e a croma (saturação). É intrinsecamente subjectivo dado que depende do julgamento pessoal de cada observador ajuizar se duas cores são ou não idênticas. Em artes visuais empregam-se termos como cor pura, pastel, sombreado e tom. O sombreado é o resultado da adição de um pigmento negro a um pigmento de cor pura em que o pigmento negro retira luminosidade ao pigmento puro. Uma cor pastel resulta da adição simultânea de um pigmento branco a uma cor, diminuindo a saturação. Um tom resulta da adição simultânea de um pigmento negro e um pigmento branco a uma cor, reduzindo a saturação e a luminosidade proporcionadas pelo pigmento da cor original. Os modelos anteriores são modelos inteiramente baseados na percepção da cor e incluem um grau de subjectividade que não é desprezável e impede uma definição precisa da cor e a sua correcta reprodução Espectro Visível Cores visíveis e cores espectrais Cores espectrais são cores a que correspondem comprimentos de onda bem determinados do espectro visível. A observação de um espectro visível mostra que nele não se encontram todas as cores visíveis. As cores não espectrais são devidas à mistura de luzes com diferentes comprimentos ou gamas de comprimentos de onda.

Page 36: CG - Apontamentos Teóricos

Fisiologia da visão O funcionamento do olho humano é semelhante ao funcionamento dos equipamentos de registo de imagem, pelo menos na recepção e detecção da luz. O olho humano foca a luz que recebe e fá-la convergir na retina onde se forma uma imagem invertida. Na retina existem células sensíveis à luz, os bastonetes e os cones, que transformam os fotões que absorvem em impulsos nervosos. Existem cones sensíveis à luz na zona do vermelho (cones do tipo ρ), na zona do verde (cones do tipo γ) e na zona do azul (cones do tipo β). A maior sensibilidade do olho humano deverá verificar-se na gama de comprimentos de onda detectada pelos cones γ e ρ, a zona intermédia entre o vermelho e o verde. Teoria dos três estímulos É a diferença entre as respostas dos três tipos de cones que permite interpretar diferentes comprimentos de onda como correspondendo a cores diferentes. Esta interpretação é conhecida como teoria dos três estímulos. Esta teoria postula que qualquer cor (comprimento de onda) do espectro visível pode ser reproduzida através da adição dos resultados obtidos pelo estímulo dos três tipos de cones de forma diferente. A cor percepcionada depende unicamente da relação entre os três estímulos. Esta teoria tem outra consequência que é a verificação de que da combinação de cores diferentes pode resultar uma cor única. Chama-se cores metâmeras ou metâmero a duas cores espectralmente diferentes mas que produzem a sensação de uma mesma cor. Outras consequências na percepção da cor A primeira consequência respeita à capacidade de distinção entre cores puras próximas. O olho humano é capaz de discriminar o que corresponde a 128 cores. Uma análise das respostas combinadas dos três tipos de cones da retina leva a considerar que deverá existir maior facilidade de discriminar entre cores sombreadas na zona do amarelo e uma menor facilidade na zona do azul. O olho humano consegue distinguir um máximo de 23 cores sombreadas na zona do amarelo e 16 cores sombreadas na zona do azul. Modelação da Cor Tendo em conta a teoria dos três estímulos, é imediato que qualquer modelo de cor deverá possuir três parâmetros. O problema essencial da modelação da cor está na definição de que grandezas devem ser associadas a cada um dos três parâmetros. A luz emitida segundo um comprimento de onda preciso produz uma cor pura do espectro visível.

Page 37: CG - Apontamentos Teóricos

Modelo CIE A incapacidade de modelos baseados na mistura de cores vermelhas, verdes e azuis poderem representar todas as cores do espectro visível levou a que a CIE criasse um modelo com três cores primárias denominadas X, Y e Z, que substituíam as cores primárias vermelha, verde e azul, e que possuíam funções peso de X, Y e Z, intrinsecamente positivas e tais que passasse a ser possível representar todas as cores do espectro visível. Modelo RGB É um modelo de cor concebido com base nos dispositivos de saída gráfica com três cores primárias: vermelho, verde e azul. Este modelo descreve as cores como o resultado da adição das três cores primárias, cada uma delas com uma intensidade que pode variar entre 0 e 1. A cor branca corresponde à representação simultânea das três cores primárias, todas à sua intensidade máxima, e a cor preta à cor que é obtida quando todas as cores primárias apresentam intensidade mínima. O modelo RGB está intimamente associado às superfícies emissoras de luz. O modelo é omisso quanto ao que é uma cor primária pura, ou seja, não define qual o comprimento de onda a que corresponde cada uma das três cores primárias. Modelo CMY É um modelo de cor baseado nas cores complementares: cião, magenta e amarelo. Este modelo tem por base os fenómenos que se verificam quando a luz incide em superfícies. Estas podem absorver, reflectir ou refractar a luz de forma desigual consoante o comprimento de onda. A absorção da luz em determinados comprimentos de onda é a razão pela qual o modelo CMY é também designado por modelo subtractivo da cor, em oposição ao modelo RGB que é designado por modelo aditivo da cor.

Page 38: CG - Apontamentos Teóricos

Quando a intensidade de uma componente CMY é nula, a cor aditiva primária que a complementa não é absorvida e é totalmente reflectida. Toda a luz branca incidente é reflectida e a superfície é percepcionada como sendo branca. De modo semelhante, quando uma componente CMY tem a intensidade máxima, a cor aditiva primária complementar é totalmente absorvida. A superfície será percepcionada como sendo de cor preta, dado que não reflectirá qualquer luz. As impressoras a cores empregam o modelo CMY por deposição sobre o papel de tintas correspondentes às cores primárias complementares. Tal como no modelo RGB, o modelo CMY também não define os comprimentos de onda das cores primárias. Modelo HSV É mais intuitivo que os modelos RGB e CMY. A sua sigla corresponde às três variáveis deste modelo: Hue (cor, matiz, cambiante de cor), Saturation (saturação) e Value (valor). O modelo HSV aproxima-se muito do modelo intuitivo empregue em artes visuais que emprega os conceitos qualitativos de matiz, luz e tonalidade. A saturação de uma cor corresponde à quantidade de cor branca que a cor apresenta. Uma saturação de 1 significa que a cor é pura, enquanto uma saturação de 0 significa que a cor é totalmente branca e, neste caso, o valor do parâmetro H é irrelevante. O parâmetro V corresponde à intensidade da cor e varia entre 0 (cor negra em que os valores de H e S são irrelevantes) e 1 (intensidade máxima) Modelo HLS É também um modelo muito intuitivo tal como o modelo HSV. A sigla corresponde aos nomes dos três parâmetros deste modelo: Hue (cor, matiz, cambiante da cor), Lightness (luminosidade) e Saturation (saturação).

Page 39: CG - Apontamentos Teóricos

O parâmetro H corresponde ao ângulo em que a cor se encontra, o parâmetro S tem o mesmo significado que no modelo HSV e o parâmetro L pode variar entre 0, que corresponde a uma luminosidade nula, e 1 que equivale à luminosidade máxima. Modelos YIQ e ICbCr (YUV) Estes modelos foram criados para permitir as emissões dos sistemas de televisão a cores fossem compatíveis com os receptores a preto e branco. Os dois modelos são muito semelhantes, baseando-se ambos na separação dos sinais de cor RGB em um sinal de luminosidade, ou luminância, e dois sinais de cromaticidade ou diferença de cor. Os dois modelos de cor diferem ainda nos padrões de cor empregues na calibração dos aparelhos receptores de televisão. O modelo YCbCr, para além da sua aplicação à televisão a ao vídeo, é também empregue por alguns formatos digitais de imagem, dos quais o mais importante é o formato JFIF. A vantagem deste modelo é a separação da cor em componentes de luminância e de crominância.

Page 40: CG - Apontamentos Teóricos

FORMATOS DE IMAGEM Mapa de cores A introdução de mapas de cor permitiu reduzir o tempo de transmissão de uma imagem. Um mapa de cores é uma estrutura que declara as componentes RGB das cores empregues pela imagem a que se encontra associada, atribuindo a cada cor um índice único. Entrelaçamento Foi para permitir a observação do conteúdo de uma imagem sem dispor de todos os seus pixéis que foi desenvolvida a técnica do entrelaçamento a partir de uma técnica semelhante empregue na transmissão de imagens de televisão. A técnica básica de transmissão parcial e progressiva de imagens por entrelaçamento consiste em reordenar as linhas das imagens, organizando-as em vários grupos. Cada grupo contém parte das linhas da imagem total e, se uma linha for atribuída a um grupo, essa linha não fará parte de qualquer outro grupo. A transmissão da imagem grupo a grupo permite que o utilizador comece a formar uma ideia da imagem após algumas linhas terem sido transmitidas. Um outro tipo de entrelaçamento processa pixéis individuais em lugar de processar linhas. Os pixéis a transmitir em cada passagem são determinados por um padrão de n x n pixéis de que são feitas tantas cópias quanto as necessárias para cobrir toda a imagem, estando as cópias justapostas. Full Color e True Color A designação High Color corresponde à possibilidade de utilizar 16 bits para cada cor ou intensidade de tons de cinzento, e permite o emprego de até 65536 cores diferentes numa imagem. A designação True Color corresponde a equipamentos que empregam 24 bits para representar uma cor, ou seja, é possível apresentar imagens que empreguem até 224 cores. Este número de cores é mais do que suficiente para representar imagens de qualidade fotográfica. As imagens dos tipos High Color e True Color não empregam mapas de cores. Compressão A ocorrência de grupos de pixéis consecutivos da mesma cor (ex.: gráficos) propicia o emprego de algoritmos de compressão do tipo RLE que substituem tais grupos por duas unidades de informação: o número de pixéis do grupo e o índice de cor dos seus pixéis. Os algoritmos do tipo LZ detectam sequências de pixéis (ex.: imagens) que, embora não apresentem todos os pixéis da mesma cor, apresentam a mesma sequência de cores.

Page 41: CG - Apontamentos Teóricos

Numa imagem digital de qualidade fotográfica o tipo de algoritmos empregue são os baseados na Transformada Discreta do Co-Seno. Na prática, existem perdas de carácter numérico que ocorrem durante a realização de operações aritméticas com representação limitada do número de algarismos dos operandos e perdas originadas pela eliminação de termos. Formatos PBM A definição original deste formato teve em vista permitir a transmissão de imagens por meio de correio electrónico que, à data da definição, ainda não permitia a transmissão de ficheiros anexados, binários ou não. A designação de formato de imagem PBM engloba três formatos:

• PBM (Portable BitMap) – imagens a preto e branco

• PGM (Portable GrayMap) – imagens em tons de cinzento

• PPM (Portable PixMap) – imagens a cores

Vantagens Desvantagens • Fácil de gerar • Três subtipos para diferentes tipos de imagens

• Ficheiros de grande tamanho • Não permite compressão

Formatos DIB Na origem da designação DIB está o facto de que este formato descreve as cores de uma forma que é independente do processo empregue por cada placa gráfica e respectivo monitor para apresentar a cor dos pixéis das imagens. No formato DIB, as imagens são descritas por varrimentos ascendentes das linhas, sendo os pixéis de cada linha varridos da esquerda para a direita. O formato DIB permite descrever imagens a cores com 1, 4, 8 ou 24 bits por pixel, representando assim imagens com 2, 16, 256 ou 224 cores, respectivamente, empregando um mapa de cores em todos os casos excepto no último. Este formato permite ainda a compressão opcional do conteúdo de imagens com 16 ou 256 cores pelo algoritmo RLZ adaptado ao número de bits por pixel.

Vantagens Desvantagens • Cores reais • Múltiplos subtipos para diferentes tipos de imagens

• Ficheiros de grande tamanho • Compressão limitada a subtipos • Compressão inadequada a imagens de qualidade fotográfica

Formato GIF Foi inicialmente concebido para a transmissão de imagens através das linhas de comunicação de muito baixo débito existentes na altura.

Page 42: CG - Apontamentos Teóricos

O formato permite armazenar ou transmitir imagens com um máximo de 256 cores, definidas sempre por meio de mapas de cores. O conjunto dos índices que compõem cada imagem está comprimido pelo algoritmo LZW. O formato é na realidade um protocolo entre uma fonte emissora de imagens e uma aplicação de destino que realiza a apresentação das imagens. Um ficheiro, ou canal de dados, no formato GIF pode conter mais do que uma imagem. Blocos de controlo inseridos entre imagens sucessivas determinam o tempo durante o qual cada imagem persistirá na unidade gráfica de saída, permitindo assim a apresentação sequenciada de várias imagens.

Vantagens Desvantagens • Canal de dados • GIFs animados • Ficheiros de pequeno tamanho

• Limite de 256 cores • Formato e algoritmo de compressão proprietários • Impróprio para imagens de qualidade fotográfica • Transparência de uma única cor

Formato PNG O formato PNG surgiu como resposta às limitações técnicas e às restrições legais derivadas dos direitos de propriedade do formato GIF. A definição do novo formato PNG reteve algumas das características mais vantajosas do formato GIF.

Vantagens Desvantagens • Suporta todos os tipos de imagem • Algoritmo de compressão do domínio público • Filtragem opcional das linhas melhora a qualidade • Transparência por canal alfa • Permite sequências de imagens • Bytes armazenados segundo convenção neutra • Guarda a correcção gama (opcional)

• Algoritmo de compressão impróprio para imagens com qualidade fotográfica

Formato JFIF (JPEG) Define uma família de algoritmos de compressão e descompressão, com e sem perda, para imagens de qualidade fotográfica, também designadas por imagens de tons contínuos.

Page 43: CG - Apontamentos Teóricos

É um formato de imagens simples e que, embora apresente limitações, é relativamente fácil de implementar e permite imagens a cores reais. Um dos factores que mais contribuíram para esta aceitação foi a expansão da WWW cujos utilizadores necessitavam poder transmitir imagens com mais cores do que o máximo de 256 cores permitido pelo formato GIF, mas de comprimento reduzido para diminuir o respectivo tempo de carregamento. O formato JFIF não utiliza o modelo de cor RGB, mas o modelo YCbCr com quantização da cor que, logo à partida, reduz o conteúdo da imagem a metade do seu tamanho original, mas acarreta perda de informação. A compressão JPEG empregue por este formato utiliza algoritmos de compressão e descompressão do tipo da transformada discreta do co-seno.

Vantagens Desvantagens • Recomendado para imagens de qualidade fotográfica • Algoritmo de compressão normalizados

• Há sempre perda (mas a visão não detecta) • Impróprio para imagens com variações súbitas de cor

Page 44: CG - Apontamentos Teóricos

RASTERIZAÇÃO O objectivo da rasterização é determinar quais as quadrículas que representarão as primitivas gráficas A rasterização de primitivas gráficas é uma operação que é executada milhões de vezes e, portanto, faz todo o sentido que os algoritmos desenvolvidos, além de específicos, devam ser eficientes para que o desenho das primitivas seja o mais rápido possível. Rasterização de Segmentos de Rectas A rasterização de segmentos de recta consiste em, num dispositivo de quadrícula, dados os dois pixéis extremos de um segmento de recta, determinar que pixéis localizados entre eles devem ser seleccionados para compor visualmente o segmento. Algoritmo Imediato Tomando como base a equação da recta Calculam-se os coeficientes dos extremos do segmento P1(x1,y1) e P2(x2,y2) Para x1 ≤ x ≤ x2 calcula-se a ordenada usando a equação da recta arredondando o resultado para as coordenadas do pixel a desenhar O custo computacional do cálculo do valor de y para cada valor de x corresponde à realização de três operações de vírgula flutuante e à operação de truncatura de um valor real para valor inteiro. Algoritmo Incremental Básico Considera-se o valor de y para dois valores consecutivos de x que diferem entre si de uma unidade O valor de y para xi+1 é Para calcular o valor de y para um novo pixel cujo valor da coordenada x dista uma unidade do valor anterior, basta adicionar o declive da recta ao anterior valor de y. É ainda necessário proceder ao arredondamento matemático do valor calculado.

Page 45: CG - Apontamentos Teóricos

O número de operações de vírgula flutuante a realizar reduz-se a duas adições e uma truncatura. Como a multiplicação é uma operação mais cara que uma adição em termos computacionais é de esperar um aumento significativo do desempenho. Este algoritmo apresenta um problema de acumulação de erros devido ao número limitado de algarismos significativos. Algoritmo de Bresenham O algoritmo de Bresenham realiza a rasterização de segmentos de recta empregando apenas operações de aritmética de inteiros e, portanto permite um maior desempenho. O algoritmo baseia-se no critério do ponto médio. O algoritmo pode ser apresentado da seguinte forma: • Calcular dx = x2 – x1 dy = y2 – y1 d = 2dy – dx incE = 2dy incNE = 2(dy - dx) • Inicializar x = x1 e y = y1 e marcar o pixel com estas coordenadas • Repetir os passos seguintes enquanto x < x2

• Se d ≤ 0, incrementar d de incE, caso contrário incrementar d de incE e incrementar y de uma unidade • Incrementar x de uma unidade e marcar o pixel com as coordenadas x e y.

Rasterização de Circunferências A rasterização de circunferências emprega a propriedade de simetria que as circunferências apresentam. Algoritmo completo para a rasterização de circunferências: • Calcular d = 1 – R deltaE = 3 deltaSE = -2R + 5

• Inicializar x = 0 e y = R e marcar os 4 pixéis da circunferência correspondentes • Repetir os passos 4 a 5 enquanto y > x

Page 46: CG - Apontamentos Teóricos

• Se d < 0 incrementar d de deltaE, deltaE de 2 e deltaSE de 2 caso contrário

incrementar d de deltaSE, deltaE de 2, deltaSE de 4 e decrementar y de uma unidade

• Incrementar x de uma unidade e marcar os 8 pixéis da circunferência correspondentes às coordenadas x e y

Preenchimento de Polígonos A operação de preenchimento de polígonos tem por objectivo atribuir a cor do polígono aos pixéis pertencentes ao polígono. Algoritmo básico de preenchimento de polígonos • Traçar sucessivas linhas de varrimento horizontais (scan lines)

• Calcular as intersecções entre scan line e arestas arredondando os valores para o interior do polígono • Ordenar os pontos de intersecção por abcissa crescente (x1 < x2 < x3 < x4) • Preencher cadeias de pixéis (“spans”) entre pares de pontos delimitando as regiões interiores ao polígono (x1 a x2: in x2 a x3: out x3 a x4: in)

A determinação das intersecções de uma linha de varrimento com os lados de um polígono apresenta dois casos particulares: Duplicação de intersecções Ocorre quando a linha de varrimento intersecta um vértice de um polígono onde concorrem sempre dois lados do polígono. A solução para este caso passa por eliminar um dos lados do polígono. Se, por convenção, não se considerar o lado do polígono que num dado vértice atinge o valor máximo da sua ordenada, elimina-se aquela duplicação. Esta solução apresenta apenas um pequeno inconveniente que consiste em que, no vértice superior de um polígono, já não existam quaisquer lados a serem intersectados pela linha de varrimento e, portanto, o pixel correspondente ao vértice superior não será desenhado. Lados horizontais A intersecção de um lado horizontal com uma linha de varrimento, também horizontal, resulta não num ponto, mas no próprio lado. Porém, cada um dos vértices de um lado horizontal é também o vértice de um outro lado do polígono e, portanto, existirá um lado à esquerda e outro à direita do lado horizontal. Eliminando este, aqueles dois lados definirão dois pontos de intersecção que criarão um span coincidente com o lado horizontal eliminado e assim ficará resolvido o problema.

Page 47: CG - Apontamentos Teóricos

Lados, Lados Activos e Tabelas de Lados Diz-se que um lado se encontra activo quando está a ser intersectado pela linha de varrimento. É apenas sobre os lados activos num dado momento que devem ser calculadas as suas intersecções com a linha de varrimento corrente, pois é inútil tentar calcular intersecções da linha de varrimento com lados que não se encontrem activos. Constrói-se uma lista de lados que, inicialmente, contém todos os lados do polígono, excepto os lados horizontais, e uma lista de lados activos que se encontra vazia. Quando um lado se torna activo, esse lado é retirado da lista de lados e colocado na lista de lados activos, passando a pertencer ao conjunto de lados com os quais são calculadas as intersecções. Finalmente, quando a ordenada da linha de varrimento atinge o valor do ymax do lado, o lado deve ser retirado da lista de lados activos e eliminado pois não será mais intersectado por qualquer linha de varrimento. A estrutura de dados de cada lado deve conter os valores de ymax, x e 1/m, em que, inicialmente, é atribuído a x o valor de x(ymin). Esta estrutura não necessita de quaisquer outros valores depois de calculado o valor de 1/m. É usual incluir nesta estrutura a referência ao lado que se lhe segue na lista. Exemplo:

Page 48: CG - Apontamentos Teóricos

Aliasing e Antialiasing A discretização de uma grandeza contínua implica perda de informação. Por vezes a informação perdida não é significativa e é possível reconstruir quase fielmente a grandeza original mas, a partir de uma certa perda, os valores discretos medidos são insuficientes para que se possa proceder à reconstrução da grandeza original. Quando tal sucede, a reconstrução produz informação que pouco ou nada tem a ver com a informação original. Este fenómeno tem o nome de aliasing. Existem várias técnicas designadas genericamente por técnicas de antialiasing para resolver de modo satisfatório, mas nunca total, os problemas criados pelo fenómeno de aliasing nas suas várias manifestações. Estas técnicas baseiam-se na filtragem da informação que pode ser realizada tanto no espaço da imagem como no espaço dos objectos. A filtragem realizada no espaço dos objectos designa-se por pré-filtragem, enquanto a realizada a partir da informação que existe no espaço da imagem é designada por pós-filtragem.

Page 49: CG - Apontamentos Teóricos

REMOÇÃO DE SUPERFÍCIES OCULTAS Estratégias Algorítmicas Precisão Imagem • Para cada pixel da imagem é necessário determinar o objecto mais próximo visível através do pixel e desenhar o pixel com a cor correcta.

• Precisão dependente da resolução do dispositivo de visualização; visibilidade determinada em cada pixel • Algoritmos orientados para dispositivos “raster”

• Susceptíveis ao fenómeno de aliasing

• Para n objectos e p pixéis a complexidade algorítmica é de n x p

• Operações elementares e de baixa carga computacional Precisão Objecto • Para cada objecto da cena é necessário determinar as partes visíveis do objecto e desenhar essas partes com a cor correcta • Precisão finita; resolução da visibilidade ao nível de porções dos objectos

• Algoritmos inicialmente orientados para dispositivos vectoriais

• Para n objectos presentes na cena tem-se uma carga computacional proporcional a n2

• As operações individuais são tipicamente complexas e de elevada carga computacional Faces Traseiras Partindo da hipótese que se tem um objecto que é um poliedro sólido (faces poligonais envolvem o volume) e o interior não é exposto pelo recorte não é possível saber se a face em questão é traseira ou não. A solução para este problema consiste em determinar o produto interno entre as normais às faces e o vector de visualização com origem no centro da projecção e terminando em qualquer ponto do polígono. Se o resultado do produto interno for < 0 Polígono visível = 0 Arestas visíveis > 0 Polígono invisível (back-face) Este cálculo é efectuado no sistema de coordenadas de visualização Em polígonos convexos a remoção de superfícies ocultas fica completa com a eliminação de back-faces Em poliedros côncavos algumas front-faces podem estar totalmente ou parcialmente ocultas

Page 50: CG - Apontamentos Teóricos

Algoritmo Z-Buffer Este algoritmo baseia-se na estratégia de precisão de imagem. Tem como requisito o Frame-Buffer com profundidade em Z. Não necessita de ordenação de polígonos nem de cálculos de intersecções. Algoritmo:

Inicializa o Zbuffer com a profundidade máxima e Frame-Buffer com a cor de fundo Para cada polígono Para cada ponto do polígono: pz = valor de z (x, y) se pz < ReadZ (x, y) WriteZ (x, y, pz) WritePixel (x, y, cor em (x, y))

Vantagens Desvantagens

• Independente do número de polígonos • Aplicável a qualquer forma • Realizado em hardware

• Melhora o desempenho se a ordenação for feita em Z • Problemas de aliasing

AlgoritmoDepth-Sort Este algoritmo baseia-se em desenhar os polígonos na ordem decrescente da distância ao observador (referencial de visualização orientado mão direita) Algoritmo:

• Ordenar todos os polígonos constituintes da cena por ordem crescente da sua menor coordenada Z (ou ordem decrescente da sua maior coordenada Z num referencial mão esquerda)

• Resolver situações ambíguas, nalguns casos em que os intervalos de ocupação dos polígonos segundo ZZ se sobrepõem. Por vezes, a resolução dessas ambiguidades passa pela fragmentação dos polígonos

• Rasterizar os polígonos (originais e resultantes da fragmentação) por ordem crescente da sua menor coordenada (desenhar os polígonos por ordem decrescente de profundidade)

Algoritmo do Pintor Consiste numa versão simplificada do algoritmo Depth-Sort onde os polígonos pertencem a planos com Z constante Resolução de ambiguidades Antes de rasterizar o primeiro polígono (P) da lista, ou seja, o mais afastado do observador, compará-lo com todos os polígonos (Q) cujos intervalos de ocupação segundo z sobreponham o intervalo z do primeiro. O processo de comparação tem por objectivo provar que P não obstrui a visibilidade de Q. Basta que uma das 5 condições seguintes se verifique:

Page 51: CG - Apontamentos Teóricos

1) Os intervalos de ocupação de P e Q, segundo XX , não se sobrepõem.

2) Os intervalos de ocupação de P e Q, segundo YY , não se sobrepõem.

3) P encontra-se totalmente contido no semi-espaço definido pelo plano de Q, oposto aquele em que se encontra o ponto de observação da cena.

4) Q encontra-se totalmente contido no mesmo semi-espaço, definido pelo plano de P, em que se encontra o ponto de observação da cena.

5) As projecções de P e Q no plano (x, y) não se sobrepõem. Se P passa no teste de não obstrução com todos os polígonos Q pode ser rasterizado e o próximo polígono da lista passa a ser o novo polígono P. Se o teste falha com um dos polígonos Q, deve fragmentar-se P segundo um plano de corte coplanar com Q (ou vice-versa), descartar o polígono original, inserir na lista os fragmentos resultantes por ordem crescente de Zmin e repetir o algoritmo. Algoritmo Scan-Line Coerência de linha de varrimento e de aresta Algoritmo: • Construção da tabela de arestas (ET) para todas as arestas não horizontais de todos os polígonos, projectadas no plano de visualização, ordenadas com base na menor coordenada Y e em cada tabela no declive, contendo: - coordenada X do vértice com menor Y - coordenada Y do outro vértice - incremento em X (dx é o inverso do declive) - identificação do polígono

• Polígonos organizados em tabela de polígonos (PT) contendo: - coeficiente equação do plano - cor do polígono - etiqueta de entrada/saída (inicialmente a falso)

• Manipulação da tabela de arestas activas (AET) Se os polígonos não se interpenetram • Alguns cálculos de profundidade podem ser evitados.

• Com base na coerência de profundidade se estão presentes na AET de uma linha de varrimento os mesmos lados estavam na AET da linha anterior, e pela mesma ordem, então as relações de profundidade entre polígonos permanecem inalteradas em todos os intervalos da linha (spans).

• Para polígonos interpenetrantes deve calcular-se a intersecção entre polígonos, criar um falso lado, e com ele fragmentar um dos polígonos originais em dois novos polígonos não penetrantes.

Page 52: CG - Apontamentos Teóricos

• O plano de fundo da cena pode ser tratado de uma das seguintes formas: - inicializar o “frame-buffer” com a cor de fundo

- modificar o algoritmo para atribuir cor de fundo a todos os pixéis tratados nas situações em que todos os polígonos estão “out” - introduzir na cena um polígono de grandes dimensões, paralelo ao plano de projecção e mais afastado do observador que qualquer outro polígono (atribuir cor e sombreamento desejados).

Page 53: CG - Apontamentos Teóricos

RECORTE Neste capítulo pretende-se identificar quais os objectos que se encontram totalmente dentro do volume canónico, os quais são trivialmente aceites, e quais os que se encontram parcialmente dentro do volume, pelo que têm que ser recortados pelas faces da fronteira do volume canónico. O objectivo do recorte será eliminar as partes dos objectos da cena que se encontrem fora do volume canónico Recorte de Linhas O recorte de segmentos de recta consiste em identificar os valores das coordenadas X, Y e Z que correspondem aos pontos de intersecção com cada uma das faces do volume canónico, caso esses pontos existam. Algoritmo da Força Bruta Efectua o cálculo de recorte de um segmento de recta através do cálculo da sua intersecção com cada uma das arestas que limitam o rectângulo de recorte. Algoritmo: • Testar extremos do segmento com rectângulos de recorte

• Tratar os casos triviais de inclusão total

• Casos não triviais: usar equação paramétrica da recta

• Resolver equações simultâneas para segmento de recta (taresta) e os 4 lados do rectângulo (tseg). Existe intersecção se:

Algoritmo de Cohen-Sutherland O algoritmo inicia-se com o cálculo do sub espaço em que se encontra cada um dos vértices do segmento de recta a recortar. Para simplificar a identificação dos sub espaços em que se encontram os vértices recorre-se a uma codificação dos 9 sub espaços usando uma codificação com 4 bits (outcodes), em que cada um dos bits define a posição do sub espaço relativamente a uma das arestas do polígono de recorte.

Page 54: CG - Apontamentos Teóricos

Considera-se que OC0 é o código do sub espaço dentro do qual se encontra o primeiro vértice do segmento de recta a recortar e que OC1 é o código do sub espaço dentro do qual se encontra o segundo vértice do segmento.

Nas situações em que é necessário subdividir o segmento de recta tem que se calcular a intersecção com a recta sobre a qual assenta uma das arestas do rectângulo de recorte. O algoritmo de Cohen-Sutherland não garante que o cálculo de intersecções seja efectuado só quando necessário. Este algoritmo é eficiente nas situações em que a maioria dos segmentos de recta são trivialmente aceites ou trivialmente rejeitados. Sempre que o rectângulo de recorte é muito pequeno comparado com a cena a maioria dos segmentos de recta são trivialmente rejeitados. Sempre que o rectângulo é muito grande a maioria dos objectos são trivialmente aceites. O algoritmo é facilmente estendido para 3D, bastando para tal identificar 27 sub espaços e utilizar códigos compostos por 6 bits. Algoritmo Paramétrico de Cyrus-Beck Algoritmo que permite o recorte de um segmento de recta por qualquer polígono convexo, em 2D, ou de um segmento de recta em 3D por qualquer poliedro convexo. Tal como o nome indica, este algoritmo baseia-se na equação paramétrica da recta Este algoritmo aplica-se sucessivamente a cada uma das arestas do polígono convexo. É ainda necessário identificar se o primeiro vértice do segmento de recta está no exterior e o segundo no interior, situação em que a intersecção é definida como Potencialmente de Entrada (PE), ou em que a intersecção é definida como Potencialmente de Saída (PS). Identifica-se a intersecção do tipo PE que corresponde ao maior t e a intersecção do tipo PS que corresponde ao menor t e comparam-se os dois valores de t. Se o valor de t da intersecção do tipo PE for superior ao valor de t da intersecção do tipo PS, então todo o segmento de recta pode ser rejeitado. Se o valor de t da intersecção do tipo PE for inferior ao valor de t na intersecção do tipo PS, então usam-se os dois valores para obter as coordenadas dos vértices do segmento de recta recortado.

Page 55: CG - Apontamentos Teóricos

Recorte de Polígonos O recorte de polígonos implica a identificação do lugar geométrico dos pontos que simultaneamente pertencem ao polígono a recortar e ao polígono de recorte. Algoritmo de Sutherland-Hodgman Este algoritmo permite o recorte de qualquer tipo de polígono por um polígono convexo de recorte. Baseia-se na aproximação de “dividir para conquistar” segundo a qual se obtém um polígono recortado por recorte sucessivamente efectuado por cada uma das arestas de suporte de cada uma das arestas do polígono de recorte. Dada a descrição de um polígono através de uma lista de vértices, o algoritmo consiste em, ao recortar o polígono contra cada uma das rectas sobre a qual assenta uma aresta do polígono de recorte, obter uma nova lista de vértices, ou mais do que uma lista se houver lugar ao aparecimento de polígonos degenerados que são separados. Cada uma destas listas descreve um dos polígonos recortados contra cada um desses limites. Em primeiro lugar é necessário identificar se o 1º vértice se encontra dentro ou fora do polígono de recorte. Este vértice é colocado na lista de vértices do polígono já recortado se o vértice se encontrar dentro do polígono de recorte, caso contrário, a lista permanecerá vazia.

• Transição Interior-Interior: Quando ambos os vértices estão contidos no semi-plano interior, o 2º vértice da aresta é adicionado à lista de vértices do polígono recortado

• Transição Interior-Exterior: Quando ocorre uma transição do semi-espaço interior para o exterior é necessário calcular o vértice de intersecção o qual é adicionado à lista de vértices do polígono recortado

• Transição Exterior-Exterior: Quando ambos os vértices estão contidos no semi-plano exterior nada é adicionado à lista de vértices do polígono recortado

• Transição Exterior-Interior: Quando ocorre uma transição do semi-espaço exterior para o interior é necessário calcular o vértice de intersecção o qual é adicionado à lista de vértices do polígono recortado, assim como o 2º vértice da aresta