Real Time Rendering.

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.
Planos.
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Métodos de Culling e Otimizações
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.
Introdução à Computação Gráfica Geometria
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.
Parte 1 – Conceitos de Real Time Rendering. a. Pipeline Gráfico.
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.
Formato OBJ.
Computação Gráfica: Rendering e Rasterizaçã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
Funções.
Computação Gráfica: Aula6: Iluminação
Algoritmos em Grafos Conceitos principais Prof. André Renato
Norma e produto interno
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.
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Questão 1: Seja M uma matriz quadrada de ordem 3. Sabendo
Ray Tracing Anderson Tavares Bacharelado em Ciência da Computação
Computação Gráfica – Visibilidade
Definições e Transformações Projetivas
FÍSICA.
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
Introdução à Multimídia
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
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.
Maria Augusta Constante Puget (Magu)
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
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
GEOMETRIA ANALITICA VETORES.
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
PC - Semana61 MODELANDO SISTEMAS LTI NO DOMÍNIO DA FREQUÊNCIA.
Transcrição da apresentação:

Real Time Rendering

a. Pipeline Gráfico

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

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

Representação de modelos geométricos

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

Representação de modelos geométricos

Representação de modelos geométricos

Outras Representações Half-Edge Meshes – Similar ao HE, mas com simplificação para um predecessor e um sucessor (ao invés de 2). Quad-Edge Meshes – Similar, porém sem referencia às faces Corner-Table – Armazena os vértices numa tabela pré-definida de acordo com a ordem ditada pelo polígono

modelos geométricos – 3DS MAX ASCII Named Object: “Quadrado” Tri-mesh, Vertices: 8 Faces: 12 Vertex list: Vertex 0: X: -1.00000 y: -1.00000 z: -1.00000 Vertex 1: X: -1.00000 y: -1.00000 z: 1.00000 Vertex 2: X: 1.00000 y: -1.00000 z: -1.00000 Vertex 3: X: 1.00000 y: -1.00000 z: 1.00000 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

Trabalho 1 Para um cubo composto por faces triangulares (12 triangulos), calcule: O tamanho, em Bytes, para cada uma das estruturas citadas Como responder as seguintes perguntas: Quantas faces usam um determinado vértice? Que arestas usam este vértice? Que faces tem esta aresta como borda? Que arestas estão contidas nesta face? Que faces são adjacentes a esta face?

Aproximadamente 100 operações de ponto flutuante para esta aplicação 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 x camera Eye Space z

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

Transformações Homogeneas Processo de “homogenização” de um ponto (px/pw, py/pw, pz/pw, 1) 16

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

Rotação

Rotação

Escala

Composição de Transformações Como rotacionar um objeto ao redor de um ponto p? T(p).Rz(a).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 = RTT(-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 = (vx, vy, vz), ou q = [s,v]. A multiplicação de dois quaternions q1 e q2 é definida como q1q2 = [s1,v1][s2,v2] = [s1s2−v1 ·v2, s1v2+s2v1+v1×v2]

Quaternions - Definição Um quaternion unitário é um quaternion onde s2+v2x+v2y+v2z= 1. Assim, se u for um vetor unitário, pode-se dizer que: q = (cosq, sinq u ) é unitário DEMONSTRE

Quaternions - Definição Uma rotação de um ângulo q em torno do eixo u (normalizado) é representada pelo quaternion unitário: q = [s,v] = [cos(q /2),sen(q /2)u] A rotação inversa q−1 é 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: prot = q [0, (x´,y´, z´)] q−1 = q p q−1,

O que é Iluminação? Fenô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 visão reflexo

Forward Raytracing

Problema do Forward Raytracing

Backward Raytracing

Traçamento de Raios

Traçamento de Raios

Interseção do Raio com um objeto

Interseção Raio com esfera 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 = Raio2

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 = Raio2 Desenvolvendo a equação e juntando as constantes: Teremos uma equação da forma: At2 + Bt + C Onde A = Xd2 + Yd2 + Zd2 B = 2*(Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc))‏ C = (X0 - Xc)2 + (Y0 - Yc)2 + (Z0 - Zc)2 – Raio2 Para que de fato a equação resulte numa interseção: At2 + Bt + C = 0

Interseção Raio com esfera Se as raizes t0 e t1 forem números complexos: não há raízes reais e portanto não há interseção Se t0 = t1 : houve tangencia da reta e a esfera Se t0 e t1 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?

Componentes da Iluminação – Ambiente 45

Componentes da Iluminação – Ambiente

Componentes da Iluminação – Radiosidade

Componentes da Iluminação – Radiosidade 48

Componentes da Iluminação – Ambiente Cora= materia . Ia

Normal de uma Superfície

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

Cord = Material . cos  cos N . L Cord = K . (N . L)‏ Componentes da Iluminação – Difuso Cord = Material . cos  cos N . L Cord = K . (N . L)‏

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

Core = Material . (cos n cos O . R Core = K . (O . R)n Componentes da Iluminação – Especular n = 2 n = 5 n = 30 Core = Material . (cos n cos O . R Core = K . (O . R)n

 Iluminação N cos  Iluminação L cos  = L . N Modelo Phong  Itotal = Iambiente + Idifusa + Iespecular

Iluminação

Reflexo e Refração

Recursividade do Ray Tracing

Recursividade do Ray Tracing L N Reflexo P Transmissão

Recursividade do Ray Tracing Itotal = IPhong( 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)‏

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

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

Iluminação por vértice

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

Linhas paralelas permanecem paralelas Projeção Linhas paralelas permanecem paralelas 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” 66

Projeção pz p Z= -d q x qx px z qx -d qx -d px = = px pz pz 67

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

Projeção Perspectiva 69

Clipping

Mapeamento para Coordenada de Tela 71

Algumas Otimizações 72

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

Triangle Strips Strips: É possível descrever um triângulo com menos de 3 vértices? Problema Para n triângulos, n+2 vértices Cada Triangulo: Vi, Vi+1, Vi+2

Triangle Strips Problema

Triangle Fans Cada Triangulo: V1, Vi+1, Vi+2

Rasterização

Algoritmo de Z-Buffer 78