Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nome: Makson Vinicio Ferreira de Sousa RA: 2019013197 I. Questão sobre Computação Gráfica Abaixo é demonstrado o fluxo de projecção dos sistemas de referenciais abordados. Figura 1. Fluxo de projeção. Sistema de referencial do universo, e o espaço em que se encontram todos os elementos que compõem uma cena de interesse, como as formas geométricas, as fontes de luz, e a câmera virtual, Uma das finalidades neste espaço e seu posiciona relativamente aos elementos da cena; portanto, deve-se transformar as coordenadas do espaço local de cada elemento para as deste espaço, este referencial é denominado sistema de coordenadas de universo WC. Esse sistema descreve os objetos em termos das coordenadas utilizadas pelo usuário, cada tipo das suas aplicações especifica o seu universo de trabalho próprio, além de que cada um destes sistemas tem uma escala e seus limites extremos(coordenadas mínimas e máximas do universo). O espaço de câmera, e o espaço em que o centro óptico e o eixo óptico da câmera e do observador coincidem, respectivamente, a origem e o eixo 'z' do referencial. O uso deste espaço pode facilitar a interpretação das coordenadas dos pontos e simplificar a aritmética de projeção. O referencial utilizado para especificar este espaço é o conhecido como sistema de coordenadas de câmera - VRC. Normalmente é neste espaço que são especificadas as dimensões do volume de visão de interesse, ou seja campo da visão em conjunto com a sua profundidade. Figura 2. Sistema de espaço de câmera VRC. O espaço normalizado, e o espaço em que as coordenadas dos elementos de uma cena são normalizadas com respeito ao volume de visão de interesse. O sistema referencial deste espaço é conhecido como sistema de coordenadas normalizado - NDC. O uso deste espaço aumenta a sua reusabilidade, já que as suas coordenadas dos elementos da cena ficariam normalizadas em um padrão pré-estabelecido, independentemente das dimensões do volume de visão. O referencial de espaço da imagem, e o espaço onde uma projeção de cena de interesse é exibida, este espaço é conhecido como viewport. As coordenadas dos elementos da cena, em pixels, são dadas em relação a um sistema de referencial de nome sistema de coordenadas da imagem - DC. O sistema de projeção é determinado, sob o ponto de vista geométrico, pelas seguintes variáveis. ● Centro óptico, ● eixo óptico, ● orientação da câmera, ● plano de projeção ● tipo de projeção (paralela ou perspectiva). Dependendo da aplicação, estas variáveis são desdobradas em parâmetros variados. Um modelo normalmente possui, os seguintes parâmetros, dados no seu referencial de universo. 1. view reference point - VRP (posição de um ponto do plano de projeção) 2. view plane normal - VPN (vetor normal do plano de projeção) 3. view up vector - VUP (orientação da câmera) 4. projection reference point - PRP (posição da câmera) 5. tipo de projeção. 2.1 Algoritmos 2.1.1 Cohen-Sutherland Na computação gráfica são utilizados alguns algoritmos de recorte, como por exemplo o de recorte de segmentos, de polígonos, e também alguns algoritmos de visibilidade, como de linhas e superfícies. Um dos algoritmos de recorte de segmentos e o algoritmo de Cohen-Sutherland, ele se baseia em uma simple constatação: um segmento está totalmente contido em uma região, se e somente se, os seus pontos extremos estão contidos nela, e um segmento está totalmente fora dela, se os seus pontos extremos estiverem em um semi-espaço que não contenha a região. O algoritmo divide o espaço em sub-espaços de tal maneira que uma operação lógica, bit a bit, é o suficiente para separar os segmentos que não interceptam com os lados da região. Sua principais características são. ● Vértices do segmento são classificados com relação a cada semi-escopo do plano que delimita a janela. ○ 𝑥 ≥ 𝑥𝑚𝑖𝑛 𝑒 𝑥 ≤ 𝑥𝑚𝑎𝑥 , 𝑦 ≥ 𝑦𝑚𝑖𝑛 𝑒 𝑦 ≤ 𝑦𝑚𝑎𝑥 ● Se ambos os vértices classificados como fora, descarta o segmento ● Se ambos classificados como dentro, deste o próximo semi-escapo ● Se um vértice dentro e outro fora, computa o ponto de inserção Q e continuar o algoritmo com o segmento cortado (P1-Q ou P2-Q) ● Recorte só é necessário se há um vértice dentro e outro fora Abaixo pode-se ver a aplicação do algoritmo junto alguns resultados de bits nos seus segmentos. Figura 3. Aplicando o algoritmo Cohen-Sutherland no segmento. 2.1.2 Liang-Barsky / Cyrus-Beck O algoritmo de Cyrus-Beck, foi publicado em 1978, um algoritmo de recorte de segmentos em relação a qualquer janela conversa de arestas. Eles utilizaram representação𝑛 paramétrica para descrever segmentos. Esta representação não só permite reduzir 𝑛 coordenadas em um único parâmetro , como também simplifica o procedimento para achar𝑡 os sub-segmentos totalmente contidos na janela de exibição. Adicionalmente, ele definiram como vetor normal de um lado. Características do Cyrus-Beck ● Recorte de segmentos em relação a qualquer janela de n arestas Já o algoritmo Liang-Barsky, e uma apresentação de uma versão mais eficiente do algoritmo de Cyrus-Beck para casos específicos de janelas retangulares . A𝑋𝑚𝑖𝑛, 𝑋𝑚𝑎𝑥, 𝑌𝑚𝑖𝑛, 𝑌𝑚𝑎𝑥 tabela abaixo mostra a representação desse algoritmo em uma janela retangular. Figura 4. Coordenadas de pontos. Pode-se observar que se escolhermos apropriadamente as coordenadas dos pontos , pode𝑃𝐸𝑖 simplificar o tanto o cômputo de , quanto de .𝑇𝑖 θ𝑖 Características do Liang-Barsky ● Versão mais eficiente do Cyrus-Beck para casos específicos de janelas retangulares. ● Refinamento que consiste em representar a reta em forma paramétrica ● E mais eficiente visto que não precisamos computar pontos de interseção irrelevantes ● Porção da reta não recortada deve satisfazer ● Linha infinita intercepta semi-espaços planos para os seguintes valores do parâmetro 𝑡. : Figura 5. Valores do parâmetro t. Figura 6. Algoritmo de Liang-Barsky. 2.1.3 Sutherland-Hodgman Ao invés de determinar a parte do polígono que se encontra dentro da janela, foi proposto por Hodgman e Sutherland em 1974, um procedimento de recortá-lo sucessivamente pelos lados da janela. Características ● Polígono é dado como uma lista circular de vértices ● Vértices e arestas são processados em sequência e classificados contra o semi-espaço ○ Vértice: Dentro copia para a saída, fora, ignora ○ Aresta: Intercepta o semi-espaço do plano, não intercepta, ignora ● O algoritmo termina após avaliar cada um dos vértices e arestas para cada plano de referência ● O polígono final gerado possui os vértices da área de corte ● Facilmente generalizável para 3D ● Pode ser adaptado para implementação em hardware, cada vértice gerado pode passar pelo pipeline para o recorte contra o semi-espaço do plano ● Pode gerar arestas "fantasma", irrelevante para o propósito de desenhos, e podem ser eliminadas Os algoritmos de visibilidade são amplamente utilizados na computação gráfica, os principais citados são o de Culling, Z-Buffer, Warnock e o do Pintor. 2.1.4 Culling A ideia dos algoritmos de culling é determinar a visibilidade dos objetos antes que eles sejam enviados para a placa gráfica e sejam processados desnecessariamente. Com números reduzidos de objetos, o algoritmo de culling pode ser tratado no nível de triângulos como é o caso do back-face culling, uma das principais técnicas desenvolvidas para a área de culling. Outra técnica bem conhecida é chamada de view-frustum culling que elimina os objetos que não estão dentro do frustum. O occlusion culling trata os casos onde os objetos estão totalmente encobertos por outro e se torna interessante descartá-los o quanto antes, pois ele não contribui em nada para a imagem final. Já o algoritmo de portal culling traz otimizações em cenas indoor. Sua ideia básica é dividir as cenas em setores e identificar a ligação entre elas chamadas de portais. Todos os objetos não visíveis entre setores diferentes a partir do ponto de vista do portal serão descartados.Figura 7. Técnicas de Culling. 2.1.5 Z-Buffer O algoritmo de visibilidade de superfícies mais difundido entre as placas de vídeo e o z-buffer. Ele consiste em colorir cada pixel com a cor da faceta que estiver mais próxima do observador. Após as transformações nas figuras geometricas para o espaço da câmera normalizado, a avaliação da profundidade de cada ponto em relação ao observador pode ser diretamente pelos valores da coordenada .𝑛 Características: ● Um valor de profundidade(também chamado de valor z) e armazenado para cada pixel da imagem em buffer de profundidade ● Assim que cada primitiva é rasterizada, a profundidade de cada pixel que o cobre na imagem é calculada e comparada com o valor de profundidade atual. ● O pixel é desenhado no buffer de cor somente se o valor de profundidade da primitiva está mais próximo do observador. Figura 8. Cena com e sem Z-buffer. Figura 9. Como funciona o algoritmo Z-buffer. Vantagem: Sempre funciona e é fácil de implementar. Desvantagem: Alteração frequente no valor dos pixels e, como consequência, a obrigatoriedade no cálculo da cor. Problemas de aliasing são de difícil solução. Ele trabalha no sistema do dispositivo, ou raster, isto é, os objetos já foram projetados para 2D e transformados em inteiros. Idéia básica: • Criar e inicializar com a cor de fundo um array tridimensional, que conterá a informação de cada pixel da tela; • Inicializar o array com o valor da profundidade máxima; • Achar a coordenada Z para cada ponto do polígono; • Testar a profundidade Z de um ponto de cada superfície para determinar a mais próxima do observador; • Atualizar o valor nos arrays se Z estiver mais próximo do observador. 2.1.6 Warnock O Algoritmo subdivide cada área de projeção em quatro quadrados iguais. Em cada etapa do processo de subdivisão recursiva, a projeção de cada polígono tem um de quatro tipos de relacionamento, como a sua área de interesse. 1. Polígono envolvente, aquele que contém completamente a área de interesse, figura 10-a. 2. de intersecção, quando cruza a área, Fig. figura 9-b 3. Polígono contido, está completamente dentro da área, figura 10-c. 4. Polígono disjuntor, está completamente fora da área, Fig. figura 10-d Figura 10. Quatro tipos de relacionamento da projeção de um polígono com uma área de interesse. a) Envolvente. b) Intersecção. c) Contido. d) Disjunto Características: 1. Todos os polígonos são disjuntos. A cor de fundo pode ser exibida na área 2. Há somente um polígono contido ou um polígono de interseção. A área é preenchida primeiramente pela cor de fundo, logo depois, a parte de poligonal contida na área e exibida 3. Há um polígono envolvente, mas nenhum polígono de intersecção e nenhum polígono contido. A área é preenchida pela cor do polígono envolvente. 4. Mais de um polígono é interessante, contido, ou envolvente na área, mas um deles é um polígono envolvente mais próximo ao observador, então toda a área é preenchida com a cor do polígono envolvente. Vantagens ● Explora coerência de área, apenas as que contém arestas precisam ser subdivididas até o nível de pixel ● Pode ser adaptado para suportar transparência ● Levando a recursão até o tamanho de subpixel, pode-se fazer filtragem de forma elegante ● Pinta cada pixel apenas uma vez Desvantagens ● Testes são Lentos ● Aceleração por hardware improvável 2.1.7 Algoritmo do Pintor O Algoritmo do Pintor é uma versão simplificada do Algoritmo de Ordenamento de Profundidade, desenvolvido por Newell em 1972. A ideia fundamental neste algoritmo é pintar os polígonos no frame buffer em ordem decrescente, ou seja, do objeto mais afastado terminando no objeto mais próximo. O algoritmo conta com três passos. 1. Ordenar, de forma decrescente, os polígonos pela distância ou profundidades, em relação ao observador 2. Resolver as ambiguidades na ordenação, dividindo os polígonos 3. Desenhar na memória de exibição os polígonos, dos mais distantes para os mais próximos, sendo os valores gravados anteriormente sempre sobrescritos pelos novos valores. Figura 11. Algoritmo do Pintor. a) Primeiro se pinta as montanhas distantes. b) Depois, pinta-se o prado. c) Finalmente, pintam-se as árvores, as quais são os objetos mais próximos. Características: ● Exibicao de primitivas usando lista de prioridades ● Objetos são desenhados na ordem em que um pintor de tela a óleo pintaria os objetos em um quadro ● Objetos mais próximos do observador sobrepõem os mais distantes, preservando assim as relações de oclusão ● A cena é desenhada numa ordem de profundidade de trás para frente com relação ao plano de projeção ● Primitivas podem ser ordenadas em relação a coordenada z no espaço da câmera ● Desempenho ● Uma vez que a primitiva mais próxima e desenhada por último, ela estará no topo e, portanto, será visualizada corretamente. ● Podem surgir ambiguidades na ordenação por profundidade II. Questão sobre Processamento de Imagem Primeiro conjunto de imagens, cana-de-açúcar, aplicação do filtro não linear Median filter. O Median Filter é uma técnica de filtragem digital não linear, frequentemente usada para remover ruído de uma imagem ou sinal. Essa redução de ruído é uma etapa típica de pré-processamento para melhorar os resultados do processamento posterior (por exemplo, detecção de bordas em uma imagem).O median filter é grande utilização no processamento de imagens digitais porque, sob certas condições, preserva as bordas enquanto remove na imagem o ruído contido. No código foi importada uma imagem, e aplicado ruído nela para posteriormente aplicar o filtro de mediana, para poder detectar melhor o funcionamento de tal filtro. Figura 12. Imagem de cana-de-açúcar após o Median Filter Pode-se notar que notar que o filtro deu maior enfoque às áreas das mudas e desfocou e removeu nitidez nas areas onde nao se contem as mudas da cana, houve uma mudança de coloração e tonalidades diferentes, com vários traços em branco, e as áreas das mudas ganharam enfoque com maior intensidade. Já no segundo foi aplicado um filtro de frequência Passa Alta, na conjunto de imagens de folhas. O filtro realiza o aguçamento de detalhes da imagem que pode ser obtido no domínio da frequência pela filtragem de Passa Alta, que atenua componentes de baixa frequência sem afetar as informações de alta frequência na transformada de Fourier. É um filtro que permite a passagem de frequências altas e reduz a amplitude de frequências baixas. Isso faz com que os detalhes finos da imagem sejam enfatizados. Atenuam ou eliminam as baixas frequências, realçando as altas frequências e são normalmente usados para realçar os detalhes na imagem Figura 13. Imagem de folhas após o filtro Passa Alta Após a aplicação do filtro Passa Alta, pode-se notar as regiões de coloração mais amarronzada e os furos foram destacados em tons mais escuros, e consegue se notar de forma mais explícita a separação entre as regiões, dando maior nitidez às diferentes regiões. Consequentemente aumentou o ruído das imagens, além de um contraste de preto mais exagerado, desfigurando um pouco o degradê da imagem. Figura 14. Fluxograma Median Filter Figura 15. Fluxograma filtro Passa Alta. REFERÊNCIAS NAKASHIMA NATASHA . Aula 8. Disponível em: sigaa.com. Acesso em: 5 abr. 2021. PUC-RIO. Http://www2.dbd.puc-rio.br/pergamum/tesesabertas/0711276_09_cap_02.pdf. Disponível em: http://www2.dbd.puc-rio.br/pergamum/tesesabertas/0711276_09_cap_02.pdf. Acesso em: 5 abr. 2021. UFF. Computação Gráfica I. Disponível em: http://www.ic.uff.br/~anselmo/cursos/CGI/slidesGrad/CG_aula11(projecoesecameras).pdf. Acesso em: 5 abr. 2021. UNICAMP. Visibilidade em Computação Gráfica. Disponível em: https://www.dca.fee.unicamp.br/courses/IA725/1s2011/projetos/vidalon-nakashima/Algoritm os.html#:~:text=Algoritmo%20de%20Warnock.-,Algoritmo%20de%20Warnock,como%20a% 20%C3%A1rea%20de%20interesse.. Acesso em: 5 abr. 2021. UNIVASF. Computação Gráfica. Disponível em: http://www.univasf.edu.br/~jorge.cavalcanti/comput_graf05_sist_refer_tranf_geom.pdf.Acesso em: 5 abr. 2021. WU, SHIN - TING. Sistema de informações gráficas. Disponível em: sigaa.com. Acesso em: 5 abr. 2021.
Compartilhar