Computação Gráfica: Rendering e Rasterização

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

Real Time Rendering.
Z-Buffer Método que opera no espaço da imagem
Reconhecimento de Padrões Métodos, Técnicas e Ferramentas para Aprendizado e Classificação de Dados Módulo II Introdução ao Processamento de Imagens.
DCA-0114 Computação Gráfica
PERCEPTRON (CONTINUAÇÃO)
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Prof. Alex Fernandes da Veiga Machado
Dispositivos de Visualização e Rasterização
Projeções e OpenGL Alex F. V. Machado.
Computação Gráfica (Slide 5)
INTRODUÇÃO À FOTOGRAFIA
Clipping. b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping,
COMPUTAÇÃO GRÁFICA.
Parte 1 – Conceitos de Real Time Rendering. a. Pipeline Gráfico.
Rasterização de linhas e polígonos
Ismael Andrade Pimentel
Parallax Mapping Rodrigo Martins FCG 2005/1.
A terceira dimensão.
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica Teórica
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula8: Iluminação
Computação Gráfica: Aula3: Cores
Computação Gráfica: Aula9: Renderização 3D
Computação Gráfica: Aula6: Iluminação
Computação Gráfica Teórica
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
Visible-Surface Ray Tracing
An Improved Illumination Model for Shaded Display
Computação Gráfica Pipeline Gráfico.
Computação Gráfica Aula 1 – Visão Geral
REFLEXÃO DA LUZ î r Ponto de incidência raio incidente
Computação Gráfica: Aula6: Iluminação
Sistemas Multimídia e Interface Homem-Máquina
RECONSTRUÇÃO 3D Equipe: Amora Cristina (acat) Anália Lima (alc5)
Visibilidade em Computação Gráfica
Modelos de reflexão Trabalho 1 Pablo Bioni.
Visão Computacional Shape from Shading
INTELIGÊNCIA ARTIFICIAL
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
DISCIPLINA: SR, Geoprocessamento I e II e Cartografia A tecnologia do Geoprocessamento – Aplicações e Potencialidades 12/3/ Aula 5.
Computação Gráfica aula 01
Prof. Leandro da Silva Taddeo
Computação Gráfica – Visibilidade
Visualização Tridimensional (Câmera Sintética)
Visão Computacional
Renderização em Tempo Real
Image Based Cartoon Style Rendering Jeronimo Silvério Venetillo Fabio Issao Nakamura.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Ray Tracing Estocástico e Distribuido Aruquia Barbosa.
Caminho do raio de luz.
INF 1366 – Computação Gráfica Interativa Rasterização
Introdução à Computação Gráfica
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Plano de Aulas  Estruturas de aceleração  Descarte contra volume de visão  Descarte por oclusão  Grafo de cena: OpenSceneGraph  Traçado de raios em.
Operações para entrada de dados –Compilação de dados codificação de dados geográficos de uma forma conveniente para o sistema; incluem a digitalização,
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Rendering Por Adinan Aguiar.
Introdução à Computação Gráfica Rasterização
Nossos 2 olhos formam imagens ligeiramente diferentes do mundo A diferença entre as posições de objetos nas 2 images é chamada de disparidade O termo disparidade.
1/6/2016 Computação Gráfica
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
Transcrição da apresentação:

Computação Gráfica: Rendering e Rasterização

Conteúdo: Rendering Fases do Processo de Realismo Visual Realismo por Passadas Acabamentos não-fotográficos Rasterização Algoritmo de Bresenham para traçado de linhas Rasterização de Polígonos Preenchimento de polígonos por scanline Remoção de Linhas e Superfícies Escondidas Biografia: Computação Gráfica: Teoria e Prática; Eduardo Azeredo e Aura Conci; Editora Campus; (Volume Antigo!!!)

O que é o Rendering Processo de criação sintética, é denominado rendering a fase de Introdução nas cenas, do realismo fotográfico. 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.

Exemplos de Rendering

Rendering

Fases do Processo de Realismo Visual Construção do modelo Transformações lineares Eliminação de polígonos ou faces escondidas Clipping Rasterização Culling Coloração, Textura e Iluminação

Realismo por passadas Vantagens do realismo por passadas: a)economia de memória b)facilidade de introdução de modificações c)maior utilização das imagens estáticas d)pode eliminar o anti-alizing e)integração f)reciclagem g)deph of field (simulação de foco) h)glows (incandescência)

Realismo por passadas Tipos de passadas: a)Cores b)Iluminação c)Reflexões d)Sombras e)Efeitos Especiais f)Profundidade

Rasterização Processo de conversão da representação vetorial para a matricial.

Rasterização de Retas Algoritmo de Bresenham para Traçado de Linhas x = x1 y = y1 Dx = x2 – x1 Dy = y2 – y1 m = Dy/Dx e = m – 1/2 for i = 1 to Dx do desenhaPonto(x,y) while e >= 0 do y = y + 1 e = e – 1 end while x = x + 1 e = e + m end for

Remoção de Linhas e Superfícies Escondidas

Os diferentes algoritmos deverão realizar as seguintes tarefas: Ler as coordenadas tridimensionais do objeto e armazená-las em forma de matriz. Localizar no espaço 3D a posição do observador, através da qual definirá os parâmetros de visibilidade. Calcular o vetor normal 3D de cada face do objeto. Calcular o vetor da linha de visibilidade para cada face do objeto. Esse vetor é definido pela ligação de algum ponto da face ao observador.

Remoção de Linhas e Superfícies Escondidas Realizar o teste de visibilidade. Isso é feito verificando a magnitude do ângulo formado pela normal à face em consideração e a linha de visibilidade. Esse é o ângulo identificado com a letra grega beta ß. Se o valor absoluto do ângulo ß estiver entre 90° e 180°, a superfície estará invisível. A superfície estará visível se esse ângulo estiver entre –90° e 90°. O teste de visibilidade é feito através do ângulo em um dos lados de um cubo. O teste de visibilidade é o ponto central do algoritmo de culling.

Remoção de Linhas e Superfícies Escondidas Definir os vértices (ou cantos) das faces do objeto e armazená-los de forma matricial (raster). Verificar os vértices (ou cantos) visíveis, com seus respectivos posicionamentos. Traçar as arestas das faces visíveis, que revelarão o objeto como enxergado de um determinado ponto de vista. Se desejado, é possível traçar também as linhas não-visíveis (tracejadas ou não) naquele ponto de vista.

Hidden Surface Removal (HSR): Algoritmos de remoção de superfícies escondidas Algoritmo de Visibilidade por Prioridade ou Algoritmo do Pintor; Algoritmo de Eliminação de Faces Ocultas pelo Cálculo da Normal; Algoritmo Z-Buffer.

Algoritmo de Visibilidade por Prioridade ou Algoritmo do Pintor Usando uma linha simplificada de raciocínio como: se um objeto A bloqueia a visão de um objeto B e ambos os objetos encontram-se na mesma linha de visão do observador, então o objeto B está mais distante do observador que o objeto A, é possível criar um algoritmo que calcule a distância dos objetos ao observador, e que dê prioridade à visualização dos objetos mais próximos ao observador. Calcula-se a distância ao observador de todas as faces poligonais da cena (que chamaremos de D); Ordenam-se todos os polígonos pelo valor da sua distância ao observador,D; Resolvem-se as ambigüidades nos casos em que as distâncias ao observador (D) de dois polígonos forem iguais (verificando se ocupam as mesmas posições rasterizadas ou não); Desenham-se primeiro os polígonos que tiverem mais distantes do observador (ou seja, os que tiverem maior valor de D).

Algoritmo de Visibilidade por Prioridade ou Algoritmo do Pintor

Eliminação de Faces Ocultas pelo Cálculo da Normal Ler as coordenadas do objeto no espaço tridimensional, considerando um ponto de referência e armazená-las em forma de matriz; Localizar no espaço a posição do observador, através da qual serão definidos os parâmetros de visibilidade; Calcular o vetor normal de cada face do objeto; Calcular o vetor da linha de visibilidade para cada face do objeto; Realizar o teste de visibilidade calculando o produto escalar entre os dois vetores: Se n. l > 0, a face estará visível Se n. l < 0, a face estará invisível Definir os cantos das faces do objeto e armazená-los em forma matricial; Verificar os cantos visíveis, com seus respectivos posicionamentos; Traçar as arestas das faces visíveis, que revelarão o objeto como observado de um determinado ponto de vista. Se desejável, é possível traçar também as linhas não-visíveis naquele ponto de vista.

Algoritmo Z-Buffer O algoritmo z-buffer, desenvolvido inicialmente por Catmull [Catmull, 74], é um dos algoritmos de determinação de visibilidade de superfícies mais simples de se implementar, tanto em software quanto em hardware, e hoje é o mais popular dentre os algoritmos de HSR. Porém, apresenta alto custo de memória e processamento. Requer a alocação de até dois buffers, ou matrizes, em memória, com dimensões idênticas à tela de apresentação, normalmente denominados buffers de Imagem e de Profundidade. Criar e inicializar com a cor de fundo um array bidimensional, que conterá a informação de cada pixel da tela; Inicializar o array com o valor da máxima profundidade; Achar a coordenada z para cada ponto do polígono; Testar a profundidade z de cada ponto da superfície para determinar a mais próxima do observador; Atualizar o valor nos arrays se z estiver mais próximo do observador.

Algoritmo Z-Buffer Para cada polígono P da cena Para cada pixel (x, y) de um polígono P computar z_depth na posição x, y se z_depth < z_buffer (x, y) então defina_pixel (x, y, color) troque o valor : z_buffer (x, y) = z_depth