Computação Gráfica - 12

Documentos relacionados
Computação Gráfica. Rasterização. Aula 4. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Computação Gráfica Aula 0. Alexandre de Barros Barreto - Ms

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

O Problema de Visibilidade. Computação Gráfica Recorte. Onde Acontece? O que é Recorte? Renato Ferreira

Introdução ao Processamento e Síntese de imagens Recorte 2D

Conversão por Varrimento

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Pipeline de Visualização 3D

António Costa. Paulo Roma Cavalcanti

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

Introdução à Computação Gráfica

Mídias Discretas. Introdução à Ciência da Informação

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Objetos definidos no seu próprio sistema de coordenadas

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 1. Apresentação

Visibilidade. Apontamentos CG + Edward Angel, Sec Instituto Superior Técnico Computação Gráfica 2009/2010

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

Pipeline de Visualização 2D

Realismo Visual. Aula 11 UFF

Computação Gráfica. Prof. André Yoshimi Kusumoto

Imagem Vetorial x Imagem Matricial. Conversão Matricial de Primitivas Gráficas. Sistema de Coordenadas do Dispositivo. Problema

Introdução à Computação Gráfica Visibilidade. Claudio Esperança Paulo Roma Cavalcanti

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Computação Gráfica. Representação e Modelagem

Computação Gráfica e Processamento de Imagens. recorte ( clipping ) de : o segmentos de retas o polígonos o textos. Prof.

Imagem Digital. Claudio Carvilhe

Sumário. Traçado de Retas. Antialiasing e OpenGL. 1 Introdução. 2 Conversão Segmento de Reta. 3 Algoritmo DDA. 4 Algoritmo de Bresenham

Processamento Digital de Imagens

Processamento Digital de Imagens

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

Computação Gráfica - 09

Computação e Imagens: PI, CG e Visualização. Computação Visual

Remoção de Superfícies Escondidas

Exame de Época Especial Computação Gráfica

Resumo. Ray Tracing. Introdução. Ray Casting Básico. Idéia

CIV2802 Sistemas Gráficos para Engenharia

Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial.

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Computação Gráfica. Computação Gráfica. Visão Geral. Sistema Gráfico. Introdução à Computação Gráfica e areas relacionadas

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

Computação Gráfica - 11

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Determinação de Superfícies Visíveis

Computação Gráfica. Prof. MSc André Yoshimi Kusumoto

Prof. Regis de Castro Ferreira

Tópicos Especiais em Engenharia de Software (Jogos II)

Computação Gráfica Introdução

4 Impostores com Relevo

Computação Gráfica - 09

Modelagem Numérica do Terreno. Prof. Maria Isabel C. de Freitas Adaptado de INPE - DPI

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 3. Transformações Geométricas

Processamento Digital de Sinais. Conversão A/D e D/A. Prof. Dr. Carlos Alberto Ynoguti

Processamento Digital de Imagens

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Mapas e suas representações computacionais

10 PROBLEMAS + COMUNS NO V-RAY E COMO CORRIGI-LOS. Problemas ou Erros?

Algoritmos de Recorte em 2D

Frederico Damasceno Bortoloti. Adaptado de: Claudio Esperança Paulo Roma Cavalcanti

Tutorial. Georreferenciamento de Imagens. versão /08/2008. Autores: Rafael Bellucci Moretti, Vitor Pires Vencovsky

Computação Gráfica - 13

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006

Computação Gráfica OpenGL 05 3D

Algoritmos de Visibilidade. Computação Gráfica Visibilidade. Backface Culling. Outras abordagens. Renato Ferreira

Introdução à Computação Gráfica

Processamento de Malhas Poligonais

Transcrição:

Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 12 jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Realismo Visual Criar imagens sintéticas realistas é o objetivo final da computação gráfica. O realismo visual é composto pelas técnicas de tratamento computacional aplicadas aos objetos sintéticos gerados, com o objetivo de criar-lhes uma imagem o mais próxima da realidade que se teria se eles fossem construídos e filmados. O realismo é fundamental nas simulações, no entretenimento, na educação e muitas outras aplicações.

Realismo Visual Podemos considerar o realismo em duas etapas. Estática: Onde são tratados os objetos e cenas estáticas é trabalhado o chamado realismo fotográfico. Dinâmica: A parte dinâmica esta relacionada ao movimento da cena e seus personagens, chamada de animação.

Rendering A computação gráfica trata da síntese de imagens através do computador. Sintetizar uma imagem (uma cena ou objeto) é criá-la em termos da definição dos dados dos objetos que a compõem. Isso se faz a partir da geometria da cena, das informações sobre os materiais de que são feitos os objetos (suas cores e texturas), das condições de iluminação ambiente e da posição de observação da cena. Nesse processo de criação sintética, é denominado rendering a fase de introdução nas cenas, do realismo fotográfico.

O termo Rendering Não existe uma tradução fora da área computacional adequada para essa palavra; Basicamente, podemos descrevê-la por realismo visual Podemos interpretar o processo de rendering como o de converter dados em uma imagem realística ou simplesmente sintetizar um objeto ou cena até ter-se deles uma aparência de algo real e não de formas inteiramente criadas no computador.

Fases do processo de Realismo Visual Este processo envolve sete fases distintas. Nem todas usadas em todas as aplicações. O mais usual é que um trabalho seja apresentado em um nível de realismo adequado ao seu uso. Principalmente porque ao aumentar-se o realismo de uma cena aumenta-se também seu tempo de processamento e custo de geração.

Fases do processo de Realismo Visual Na primeira fase, tem-se a construção do modelo que conterá todas as informações para o processo de realismo visual. Essa primeira fase consiste na utilização de alguma técnica de modelagem. A segunda fase aplica transformações lineares no modelo de modo que ele tenha aparência tridimensional nos diversos dispositivos (geralmente bidimensionais). Essa fase consiste, então, na utilização de projeções e perspectivas adequadas.

Fases do processo de Realismo Visual Na terceira fase, considera a eliminação de polígonos ou faces escondidas devido a posição relativa entre os objetos da cena e o observador (culling back-faces). Na quarta fase, são desconsideradas as partes das cenas que não serão mostradas, são chamados recortes. Imagine que você tenha uma infinidade de coisas para ver, para algumas sua visão será limitada, por que estão encobertas ou não chamam atenção. Isso é chamado de clipping (assim como o rendering não tem um significado literal) tem sentido no contexto.

Fases do processo de Realismo Visual A quinta fase se encarrega em converter a representação tridimensional para pixels. Seja lá qual for o sistema de coordenadas que se esteja usando, os dados serão levados para um conjunto de coordenadas do dispositivo em que será mostrado. Essa conversão de coordenadas leva os dados do modelo para o mundo digital. Linhas e áreas serão transformadas em conjuntos de pixels. Esse processo é chamado rasterização.

Fases do processo de Realismo Visual A sexta fase é de certa maneira uma continuação da terceira, pois trata também da eliminação de partes de um objeto que devem ser removidas. Só que agora essas partes são devidas à interferência dos diversos objetos presentes na cena,onde, devido a sua posição relativa, pode ocorrer que uns fiquem na frente de partes de outros. Muitos autores englobam estas duas partes no que se chama tratamento de partes escondidas (hidden).

Fases do processo de Realismo Visual Na última fase, o realismo fotográfico começa a ser realmente tratado e percebido. E para que seja feito adequadamente deve-se levar em conta as luzes presentes na cena, suas intensidades e direções (em relação aos objetos). Também devem ser consideradas todas as características das superfícies representadas: transparência, brilho, reflexão e textura. Ainda devem ser consideradas as sombras que os diversos objetos fazem entre si e nas superfícies em que se apóiam. O nível de realismo dessa fase pode ser tão sofisticado quanto a aplicação precisar.

Realismo por passadas A construção de uma cena realística é um processo incremental. Essa forma de criação de cenas realísticas é denominada de realismo por passadas. É a forma utilizada pela grande maioria dos sistemas para geração de cenas realísticas Esse processo permite que os atributos de uma cena sejam renderizados separadamente da sua geração ou modelagem. Diversas técnicas e softwares participam do processo de inclusão do grau de realismo desejado a cena.

Realismo por passadas Uma série de bons motivos tornou a renderização por passadas o padrão da computação gráfica atual. Economia de memória: pois nessa técnica não precisam ser colocados todos os objetos de uma vez para o render. Facilidade da introdução de modificações: se precisarmos alterar somente alguns elementos de uma cena como luzes, sombras ou cores, não será necessário perder ou refazer todo o processo de renderização anterior.

Realismo por passadas Um outro motivo que torna mais eficiente essa forma de renderização é a possibilidade de maior utilização das imagens estáticas. Por exemplo, se já temos em uma animação uma cena observada a partir de um ponto estático (como um filme com uma câmera fixa), não será necessário renderizar toda a cena, apenas os pontos que sofrerem modificações. Essa técnica permite também a mixagem com objetos ou texturas reais obtidas por captura, ou seja, o render por passadas permite uma integração com imagens fotográficas, acrescentando sombras, texturas complexas ou elementos do mundo real (como rostos) à cena.

Rasterização Representação Vetorial x Matricial Normalmente, gráficos são definidos através de primitivas geométricas como pontos, segmentos de retas, polígonos, etc Representação vetorial Dispositivos gráficos podem ser pensados como matrizes de pixels (rasters) Representação matricial Rasterização é o processo de conversão entre representações vetorial e matricial Técnicas de antialiasing podem ser empregadas, usualmente extraindo um custo em termos de desempenho

Rasterização Rasterização é um processo de amostragem Domínio contínuo discreto Problemas de aliasing são esperados Cada primitiva pode gerar um grande número de pixels Rapidez é essencial Em geral, rasterização é feita por hardware

Rasterização de Segmentos de Reta Segmento de reta entre P 1 = (x 1, y 1 ) e P 2 = (x 2, y 2 ) Já foi recortado com relação ao viewport Objetivo é pintar os pixels atravessados pelo segmento de reta Na verdade, nem todos, apenas os mais próximos Reta de suporte dada por a x + b y + c = 0 Queremos distinguir os casos Linhas ~ horizontais computar y como função de x Linhas ~ verticais computar x como função de y

Amostragem, Aliasing, e Anti-aliasing A linha, que no universo físico é contínua, é amostrada em uma matriz finita 2D de pixels. Tal discretização pode causar distorções visuais como cisalhamento ou efeito de escada. Essas distorções são chamadas de aliasing. Para reduzir o problema,usa-se uma técnica chamada antialiasing. A técnica consiste em uma superamostragem (uma vez que o aliasing é causada por uma subamostragem)

Superamostragem Superamostragem = Amostrar um objeto numa resolução maior do que será reconstruído. Dividir os pixels em subpixels (i.e. 9), aplicar o algoritmo de Bresenham nesses sub-pixels Contar o número de sub-pixels acesos por pixel O pixel será aceso com intensidade proporcional ao número de sub-pixels acesos. 3 3 1 3 3 2

Exemplo de Anti-aliasing em Linhas Observe que quando a cor de fundo não é preto, o antialiasing deve fazer uma composição da intensidade com a cor de fundo. Anti-aliasing é necessário não só para linhas, mas também para polígonos e texturas (o que já é mais complicado)

Remoção de elementos ocultos Remoção de elementos ocultos (eliminação de linhas e superfícies escondidas). A solução eficiente de problemas de visibilidade é o principal passo do processo de criação de cenas realísticas. Esse problema lida freqüentemente com a determinação da visibilidade de linhas e superfícies. Existem diversos algoritmos usados para determinar as linhas, arestas, superfícies ou volumes que são visíveis ou não para um observador localizado em um ponto específico no espaço. Atualmente, são implementados nas placas gráficas. Algoritmos Z-Buffer, do Pintor, Cálculo da Normal...

Remoção de elementos ocultos E

Remoção de elementos ocultos É importante existir uma forma de identificação de linhas, arestas ou superfícies visíveis e não visíveis. Decidir se a mesma deverá ser traçada ou não Conservar a fidelidade, resolução e agilidade de representação Algoritmos de remoção de faces ocultas (HSR) foram desenvolvidos na década de 70, mas foram abandonados por que requeriam alto processamento e grande quantidade de memória O avanço tecnológico e barateamento de memória reintroduziram alguns desses algoritmos. Os diferentes algoritmos deverão realizar as seguintes tarefas: Ler e armazenar em matriz as coordenadas 3D dos objetos Localizar no espaço 3D a posição do observador, para definição dos parâmetros de visibilidade Cálculo do vetor normal 3D de cada face do objeto Cálculo do vetor da linha de visibilidade para cada face do objeto

Remoção de elementos ocultos Os diferentes algoritmos deverão realizar as seguintes tarefas (cont.): Realizar o teste de visibilidade, verificando o ângulo da normal da face com a linha de visibilidade. Se 90º < < 180º - Superfície invisível Se - 90º < < 90º - Superfície visível Definir os vértices ou cantos das faces do objeto e armazená-los Verificar os cantos visíveis, com seus respectivos posicionamentos Traçar as arestas das faces visíveis, que revelarão o objeto sob determinado ponto de vista.

Z-Buffer Z-buffer Buffers são áreas reservadas de memória utilizadas para determinados propósitos. Em aplicações de animação, por exemplo, o double-buffer permite que as sucessivas renderizações sejam feitas de modo suave, sem o efeito indesejável de piscar entre cada atualização da janela de visualização. O z-buffer é bastante comum em aplicações gráficas e é utilizado para calcular a distância do observador e remover superfícies ou partes ocultas de objetos sobrepostos. glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH)