Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLuã Verissimo Alterado mais de 10 anos atrás
1
Parte 1 – Conceitos de Real Time Rendering
2
a. Pipeline Gráfico
3
Pipeline Gráfico - Pipeline / Estágios - Gargalo - Otimização - Tipos de Processamento Paralelo referência Real Time Rendering – Second Edition Akenine-Möller, Haines
4
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
5
Representação de modelos geométricos
6
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...
7
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 Material:r255b255b255a0
8
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.
9
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
10
Transformação de Modelo e Visão Coordenadas de Modelo Coordenadas de Mundo Eye Space camera z x
11
Transformações Homogeneas Permite concatenação de matrizes Vetores: (a b c 0) Pontos: (a b c 1)
12
Transformações Homogeneas Processo de homogenização de um ponto (p x /p w, p y /p w, p z /p w, 1)
13
Transformação Observação: vetores não sairão do lugar
14
Rotação
16
Escala
17
Composição de Transformações Como rotacionar um objeto ao redor de um ponto p? T(p).R z ( ).T(-p)
18
Transformações de corpos rígidos Distância relativa entre os vértices não é alterada
19
Desfazer as Transformações X = T(t)R = X -1 = (T(t)R) -1 = R -1 T(t) -1 = R T T(-t)
20
Exercício Crie uma matriz de transformação para o movimento abaixo
21
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.
22
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 ]
23
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
24
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.
25
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)
26
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
27
Motivação
28
Modelos de iluminação
29
Conceitos de Raios de Luz luz visão reflexo
30
Forward Raytracing
31
Problema do Forward Raytracing
32
Backward Raytracing
33
Traçamento de Raios
35
Interseção do Raio com um objeto
36
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
37
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
38
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.
39
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
40
Iluminação -Se houver iluminação?
41
41 Componentes da Iluminação – Ambiente
43
Componentes da Iluminação – Radiosidade
44
44 Componentes da Iluminação – Radiosidade
45
Componentes da Iluminação – Ambiente Cor a = materia. I a
46
Normal de uma Superfície N
47
Modelo Phong - Difuso N L Iluminação cos Iluminação cos = L. N
48
Componentes da Iluminação – Difuso Cor d = Material. cos cos N. L Cor d = K. (N. L)
49
Componentes da Iluminação – Especular Normal (N) Reflexo (R) Luz (L) Observador ( O )
50
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
51
Modelo Phong N L Iluminação cos Iluminação cos = L. N I total = I ambiente + I difusa + I especular
52
Iluminação
53
Reflexo e Refração
54
Recursividade do Ray Tracing
55
N L Reflexo Transmissão P
56
Recursividade do Ray Tracing I total = I Phong ( P ) + Raytracing (Reflexo) + Raytracing (Transmissão)
57
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)
58
Iluminação por polígonos N 1 cálculo de iluminação por polígono
59
Iluminação por vértice N2 4 cálculos de iluminação por polígono N1 N3 N4
60
Iluminação por vértice
61
Iluminação por pixel n cálculos de iluminação por polígono
62
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
63
Projeção q z x p Z= -d pzpz qxqx pxpx q x -d p x p z = q x -d p x pzpz =
64
Exercício: Encontre a matriz de Projeção Perspectiva
65
Projeção Perspectiva
66
Clipping
67
Algoritmo de Z-Buffer
68
b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping, etc.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.