Parte 1 – Conceitos de Real Time Rendering. a. Pipeline Gráfico.

Slides:



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

Daniel de Vasconcelos Campos
II Projeto de PG Thiago Augusto Souza do Nascimento.
Distâncias.
Retas.
Planos.
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Real Time Rendering.
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Projeções e OpenGL Alex F. V. Machado.
Modelos de ILuminação Alex F. V. Machado.
Clipping. b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping,
Claudio Esperança Paulo Roma Cavalcanti
O que é Iluminação? Fenômeno físico resultante da interação de fótons com uma superfícieFenômeno físico resultante da interação de fótons com uma superfície.
Transformações Geométricas em C.G.
Triangle Strips Strips: É possível descrever um triângulo com menos de 3 vértices? Para n triângulos, n+2 vértices Cada Triangulo: V i, V i+1, V i+2 Problema.
Geometria Computacional Primitivas Geométricas
Introdução à Computação Gráfica Colorização
Iluminação e Sombreamento
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
Estrutura e movimento a partir de imagens
Transformações Geométricas
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Transformações Geométricas Coordenadas Homogêneas e Rotações.
Computação Gráfica Interativa - Gattass
Parâmetros Geométricos de Câmeras
Transformações Geométricas na Imagem Amostragem e Reconstrução.
Transformações Geométricas Coordenadas Homogêneas e Rotações.
A terceira dimensão.
Computação Gráfica: Aula5: Rendering e Rasterização
Formato OBJ.
Computação Gráfica: Aula8: Iluminação
Computação Gráfica: Rendering e Rasterização
Computação Gráfica: Aula6: Iluminação
Ray Tracing.
PSI-2652: Processamento, Síntese e Análise de Imagens II Rodrigo Debczynski Fernandes – n°USP Prof. Marcio Lobo.
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
Visible-Surface Ray Tracing
Vetores no Plano e no Espaço
Computação Gráfica: Aula6: Iluminação
ÓPTICA FÍSICA: Estuda os fenômenos luminosos cuja explicação depende das teorias relativas á natureza da luz (onda ou partícula). GEOMÉTRICA: Estuda os.
RECONSTRUÇÃO 3D Equipe: Amora Cristina (acat) Anália Lima (alc5)
Introdução à Computação Gráfica Projeções
Modelos de reflexão Trabalho 1 Pablo Bioni.
Fundamentos da Computação Gráfica Thiago Marques Toledo
Visão Computacional Shape from Shading
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
Estimação da direção de múltiplas fontes de luz Baseado no artigo Estimation of Illuminant Direction and Intensity of Multiple Light Sources, de W. Zhou.
Vetores no Espaço Simbologia Segmento Orientado Definição
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Computação Gráfica Aula 3 Transformações Geométricas
Ray Tracing Anderson Tavares Bacharelado em Ciência da Computação
Computação Gráfica – Visibilidade
Definições e Transformações Projetivas
Renderização em Tempo Real
Radiosidade Rafael Decker Prof. Dr. Paulo Roberto Gomes Luzzardi.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Introdução à Multimídia
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Prof. Marcelo Gattass Gustavo Lopes Mourad.
Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica: Aula6: Iluminação
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Introdução à Computação Gráfica Iluminação
Introdução à Computação Gráfica Rasterização
Álgebra Vetorial e Linear para Computação
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
Prof. Paulo Salgado Geometria Analítica Prof. Paulo Salgado
Transcrição da apresentação:

Parte 1 – Conceitos de Real Time Rendering

a. Pipeline Gráfico

Pipeline Gráfico - Pipeline / Estágios - Gargalo - Otimização - Tipos de Processamento Paralelo referência Real Time Rendering – Second Edition Akenine-Möller, Haines

Pipeline Gráfico Aplicação Geometria Rasterização Física Entrada de Dados Inteligência Artificial Culling Rendering Transformação Iluminação de vértice Projeção Recorte Z-Buffer Texturização Iluminação por pixel

Representação de modelos geométricos

Lista de Vértices V1: x1, y1, z1 V2: x2, y2, z2... Lista de Faces F1: v1, v2, v3 F2: v2, v3, v4... Lista de materiais M1: F1, F2, F3 M2: F4, F5, F6...

modelos geométricos – 3DS MAX ASCII Named Object: Quadrado Tri-mesh, Vertices: 8 Faces: 12 Vertex list: Vertex 0: X: y: z: Vertex 1: X: y: z: Vertex 2: X: y: z: Vertex 3: X: y: z: Face List: Face 0: A:2 B:3 C:1 AB:1 BC:1 CA:1 Material:r255b255b255a0 Face 1: A:2 B:1 C:0 AB:1 BC:1 CA:1 Material:r255b255b255a0

Trabalho 1 Defina uma classe que seja uma estrutura de dados para descrever um modelo 3D extensível e otimizado. Escreva um método que determine o tamanho do modelo, em bytes. Simule o método para uma malha com 1000 triângulos, 6 materiais diferentes Um número inteiro é dado por 2 bytes e um número real por 4 bytes.

Estágio de Geometria Transformação de Modelo e visão Iluminação por vértice Projeção Clipping Mapeamento Em tela Aproximadamente 100 operações de ponto flutuante para esta aplicação

Transformação de Modelo e Visão Coordenadas de Modelo Coordenadas de Mundo Eye Space camera z x

Transformações Homogeneas Permite concatenação de matrizes Vetores: (a b c 0) Pontos: (a b c 1)

Transformações Homogeneas Processo de homogenização de um ponto (p x /p w, p y /p w, p z /p w, 1)

Transformação Observação: vetores não sairão do lugar

Rotação

Escala

Composição de Transformações Como rotacionar um objeto ao redor de um ponto p? T(p).R z ( ).T(-p)

Transformações de corpos rígidos Distância relativa entre os vértices não é alterada

Desfazer as Transformações X = T(t)R = X -1 = (T(t)R) -1 = R -1 T(t) -1 = R T T(-t)

Exercício Crie uma matriz de transformação para o movimento abaixo

Quaternions Em simulações dinâmicas é preferivel usar quaternions unitários a matrizes de rotação (corpos rígidos), devido ao acumulo de erros numéricos na matriz de rotação.

Quaternions - Definição Um quaternion q é uma estrutura algébrica constituída de duas partes: um escalar s e um vetor v = (v x, v y, v z ), ou q = [s,v]. A multiplicação de dois quaternions q 1 e q 2 é definida como q 1 q 2 = [s 1,v 1 ][s 2,v 2 ] = [s 1 s 2 v 1 ·v 2, s 1 v 2 +s 2 v 1 +v 1 ×v 2 ]

Quaternions - Definição Um quaternion unitário é um quaternion onde s 2 +v 2 x +v 2 y +v 2 z = 1. Assim, se u for um vetor unitário, pode-se dizer que: q = (cos sin u é unitário DEMONSTRE

Quaternions - Definição Uma rotação de um ângulo em torno do eixo u (normalizado) é representada pelo quaternion unitário: q = [s,v] = [cos( /2),sen( /2)u] A rotação inversa q1 é definida invertendo-se o sinal de s ou de v na equação acima, mas não de ambos.

Quaternions - Definição Para rotacionar um ponto P(x, y, z) por um quaternion q, escreve-se o ponto P como o quaternion p = [0, (x,y, z)] e efetua-se o produto: p rot = q [0, (x´,y´, z´)] q 1 = q p q 1, Escreva uma forma simplificada para rotacionar um ponto ao redor do eixo z = (0, 0, 1)

O que é Iluminação? Fenômeno físico resultante da interação de fótons com uma superfícieFenômeno físico resultante da interação de fótons com uma superfície

Motivação

Modelos de iluminação

Conceitos de Raios de Luz luz visão reflexo

Forward Raytracing

Problema do Forward Raytracing

Backward Raytracing

Traçamento de Raios

Interseção do Raio com um objeto

Interseção Raio com esfera Raio: R(t) = R0 + t * Rd, t > 0 Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd] X = X0 + Xd * t Y = Y0 + Yd * t Z = Z0 + Zd * t Esfera: Sc = [xc, yc, zc] S: (xs - xc) 2 + (ys - yc) 2 + (zs - zc)2 = Raio 2

Interseção Raio com esfera Substituindo a equação do raio na equação da esfera: (X0 + Xd*t - Xc) 2 + (Y0 + Yd*t - Yc) 2 + (Z0 + Zd*t - Zc) 2 = Raio 2 Desenvolvendo a equação e juntando as constantes: Teremos uma equação da forma: At 2 + Bt + C Onde A = Xd 2 + Yd 2 + Zd 2 B = 2*(Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc)) C = (X0 - Xc) 2 + (Y0 - Yc) 2 + (Z0 - Zc) 2 – Raio 2 Para que de fato a equação resulte numa interseção: At 2 + Bt + C = 0

Interseção Raio com esfera -Se as raizes t 0 e t 1 forem números complexos: não há raízes reais e portanto não há interseção -Se t 0 = t 1 : houve tangencia da reta e a esfera -Se t 0 e t 1 forem distintas e reais: houve interseção. Deve-se calcular qual o ponto mais próximo do observador.

Exercício: Interseção Raio com plano Equação do Plano: Ax + By + Cz = d Determine a equação para interseção com o raio: R(t) = R0 + t * Rd, t > 0 Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd] X = X0 + Xd * t Y = Y0 + Yd * t Z = Z0 + Zd * t

Iluminação -Se houver iluminação?

41 Componentes da Iluminação – Ambiente

Componentes da Iluminação – Radiosidade

44 Componentes da Iluminação – Radiosidade

Componentes da Iluminação – Ambiente Cor a = materia. I a

Normal de uma Superfície N

Modelo Phong - Difuso N L Iluminação cos Iluminação cos = L. N

Componentes da Iluminação – Difuso Cor d = Material. cos cos N. L Cor d = K. (N. L)

Componentes da Iluminação – Especular Normal (N) Reflexo (R) Luz (L) Observador ( O )

Componentes da Iluminação – Especular Cor e = Material. (cos n cos O. R Cor e = K. (O. R) n n = 2 n = 5 n = 30

Modelo Phong N L Iluminação cos Iluminação cos = L. N I total = I ambiente + I difusa + I especular

Iluminação

Reflexo e Refração

Recursividade do Ray Tracing

N L Reflexo Transmissão P

Recursividade do Ray Tracing I total = I Phong ( P ) + Raytracing (Reflexo) + Raytracing (Transmissão)

Implementação do Ray Tracing Ray_Tracing (VETOR) Para cada Pixel da Imagem OBJETO_MAIS_PRÓXIMO = NENHUM DISTANCIA_MINIMA = INFINITO Crie um raio do observador ao pixel Para cada Objeto da Cena Se o raio tem interseção com este objeto Se DISTANCIA_MINIMA < distancia (camera até este objeto) OBJETO_MAIS_PRÓXIMO = este objeto Se OBJETO_MAIS_PRÓXIMO == NENHUM Pixel = COR_DE_FUNDO Senão REFLEXO = Calcula_Reflexo (OBJETO_MAIS_PRÓXIMO, LUZ) TRANSMISSÃO = Calcula_Transmissão (OBJETO_MAIS_PRÓXIMO, N) Pixel = Phong(OBJETO) + Ray_Tracing (REFLEXO) + Ray_Tracing (TRANSMISSÃO)

Iluminação por polígonos N 1 cálculo de iluminação por polígono

Iluminação por vértice N2 4 cálculos de iluminação por polígono N1 N3 N4

Iluminação por vértice

Iluminação por pixel n cálculos de iluminação por polígono

Projeção Projeção Ortográfica Assumindo que os vértices estão em coordenadas de eye space A matriz não possui inversa, pois a determinante é nula. Assim, esta é uma transformação sem volta Linhas paralelas permanecem paralelas

Projeção q z x p Z= -d pzpz qxqx pxpx q x -d p x p z = q x -d p x pzpz =

Exercício: Encontre a matriz de Projeção Perspectiva

Projeção Perspectiva

Clipping

Algoritmo de Z-Buffer

b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping, etc.