Visualização do OpenGL

Slides:



Advertisements
Apresentações semelhantes
Daniel de Vasconcelos Campos
Advertisements

Distâncias.
Planos.
Estratégias Pipelined
Visibilidade MO603/MC930.
ADT – Arvore Binária de Pesquisa
Java: Comandos Básicos
Percurso não recursivo e impressão em árvores binárias Drozdek.
Computação Gráfica I Conteúdo: Professor: - Recorte 2D
Árvores de Busca. 2 Uma árvore que suporta eficientes operações de busca, inclusão e exclusão é chamada de árvore de busca. A árvore é usada para armazenar.
Claudio Esperança Paulo Roma Cavalcanti
Recorte e seleção de linhas e polígonos
Caracteristicas de Imagens II Fitting. Etapas p Borda Borda=cadeia de pixels Borda=tem um modelo Finding Connected Components Fitting.
Renderização de Isosuperficies Baseada em Cell Projection Marcos Machado 10/12/2004.
Computação Gráfica Interativa - Gattass
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Sistemas de Interfaces com o Usuário e OpenGL/Glut
Algoritmo de Rastreamento de Raios
Calibração de Câmeras Cap. 6 Trucco & Verri.
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
INF 1366 – Computação Gráfica Interativa Clipping (Recorte)
Linha de produção de imagens com o OpenGL™ (OpenGL Rendering Pipeline)
Descarte por visibilidade
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
Computação Gráfica Módulo III – Geometria
Alberto B. Raposo e Marcelo Gattass
Visão estéreo - correspondência e reconstrução -
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Capítulo 4 Controle de fluxo. 2Capítulo 4 – Controle de fluxo Controle de fluxo if / else switch / case while do / while for break / continue Instruções.
Espelhos planos e esféricos
MÉTRICA ds2=dx2+dy2 Distância entre dois pontos numa superfície
(projetado sobre o plano)
Algoritmos com Seleção
Juiz Virtual: uma aplicação de modelagem baseada em imagens Paulo Cezar P. Carvalho (IMPA) Flávio Szenberg (PUC-Rio) Marcelo Gattass (PUC-Rio)
Rasterização de linhas e polígonos
Modulo 2E: - transformações - cores - luz Marcus G. Pivatto
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
TE804 Eletrodinâmica Computacional
Visão Computacional Shape from Shading e Fotométrico Eséreo
Visão Computacional Calibração de Câmeras
Visão Computacional Radiometria
OpenGL Computação Gráfica. O que é OpenGL? Uma linguagem de programação gráfica de baixo nível Projetada para gráfico interativo 2D e 3D Uma interface.
Computação Gráfica Visualização 3D
Computação Gráfica - LM
Computação Gráfica Geometria de Transformações
OpenGL Computação Gráfica. O que é OpenGL? Uma linguagem de programação gráfica de baixo nível Projetada para gráfico interativo 2D e 3D Uma interface.
8. Uma Função de duas Variáveis Aleatórias
Slides: Prof. João Fabro UTFPR - Curitiba
Prof. Ernesto Lindstaedt
Introdução à Computação Gráfica Projeções
Transformações Geométricas
HandyBoard & Interactive C. HandyBoard Especificações –Clock de 2 MHz –32 Kb de RAM –7 entradas para sensores analógicos –9 entradas para sensores digitais.
Análise Sintática – Parte 1
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é.
Skyline Pigeon Elton John Turn me loose Solte-me
Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Computação Gráfica – Transformações Projetivas
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Algoritmo de Rastreamento de Raios
Objetos 3D. Modelos de Sólidos Construtivos Fronteiras Decomposição Conjunto de pontos no R 3.
Viewport.
Modelo e Câmera e Projeção no OpenGL
Geometria Epipolar Correspondência a partir da calibração das câmeras ou Forma a partir de correspondências.
Algoritmo Z-Buffer e Árvores BSP Raphael Chiavegati Oliveira Matheus Cayres Mello.
Visibilidade Edward Angel, Cap. 7 Apontamentos CG
Linha de produção de imagens com o OpenGL™ (OpenGL Rendering Pipeline)
Computação Gráfica Interativa - Gattass
Transcrição da apresentação:

Visualização do OpenGL Computação Gráfica Interativa - Gattass 3/23/2017 Visualização do OpenGL Modelo de Camera do OpenGL

Simplificação da projeção cônica Computação Gráfica Interativa - Gattass 3/23/2017 Simplificação da projeção cônica Projeção cônica Projeção ortográfica eye plano de projeção direção de projeção plano de projeção Modelo de Camera do OpenGL

Computação Gráfica Interativa - Gattass 3/23/2017 Problema do clipping ye P2 P1 ze xe n n n+f -1 nŸf 1 n -1 1 -n n -n2 n+f -1 nŸf = 1 n -1 = = n n2+2nf -n-2f 1 -n 1 xe ye ze ¸ w P’1 P’2 Modelo de Camera do OpenGL

Clipping em coordenadas homogêneas Computação Gráfica Interativa - Gattass 3/23/2017 Clipping em coordenadas homogêneas xd yd zd 1 -1 near far right left bottom top x Î [left, right] y Î [bottom, top] z Î [near, far] -1 £ x £ 1 -1 £ y £ 1 -1 £ z £ 1 -1 £ xh/w £ 1 -1 £ yh/w £ 1 -1 £ zh/w £ 1 Modelo de Camera do OpenGL

Clipping em coordenadas homogêneas Computação Gráfica Interativa - Gattass 3/23/2017 Clipping em coordenadas homogêneas x Î [left, right] y -1 £ xh/w £ 1 x xh £ w , se w>0 -1 1 xh/w £ 1 xh ³ w , se w<0 OpenGL Spec Modelo de Camera do OpenGL

Clipping em coordenadas homogêneas Computação Gráfica Interativa - Gattass 3/23/2017 Clipping em coordenadas homogêneas y x Î [left, right] -1 1 x -1 £ xh/w £ 1 xh -w = 0 1 -1 x xh £ w xh £ -w não serve! w < 0 (ze>0) w xh ³ w -1 xh ³ -w -xh -w = 0 Modelo de Camera do OpenGL

Computação Gráfica Interativa - Gattass 3/23/2017 Equação de um plano N.P = Ax + By + Cz N.P = N.(P0 + D P) = N.P0 = d (N.DP = 0) d = Ax + By + Cz N=(A,B,C) z Ax + By + Cz +D = 0 P0 D P d P=(x,y,z) (A, B, C) = N e D = -d = N.(-P0 ) O y x Modelo de Camera do OpenGL

Distância de um ponto a um plano Computação Gráfica Interativa - Gattass 3/23/2017 Distância de um ponto a um plano N.P = Ax + By + Cz N=(A,B,C) N.P =N.(Pp +D P ) D P P=(x,y,z) N.P = d + N.D P z N.D P = Ax + By + Cz+D Pp O y x Modelo de Camera do OpenGL

Interseção de reta com plano Computação Gráfica Interativa - Gattass 3/23/2017 Interseção de reta com plano P1 d1 = | Ax1 + By1 + Cz1+D | d1 P d2 = | Ax2 + By2 + Cz2+D | z d2 P2 P = d1 P2 + d2 P1 d1 + d2 y x Modelo de Camera do OpenGL

Cálculo das distâncias Computação Gráfica Interativa - Gattass 3/23/2017 Cálculo das distâncias /* ===================== Distance ====================== ** ** This function computes and returns the distance between a ** point and a plane. Normal points toward out. */ double Distance(double x, double y, double z, double w, int plane ) { switch( plane ) case 0: return( -w - x ); case 1: return( -w + x ); case 2: return( -w - y ); case 3: return( -w + y ); case 4: return( -w - z ); case 5: return( -w + z ); } return( 0.0 ); Modelo de Camera do OpenGL

Transformação para o Viewport Computação Gráfica Interativa - Gattass 3/23/2017 Transformação para o Viewport void glViewport(GLint x0, GLint y0, GLsizei width, GLsizei height ); xw = x0 + w*(xd -(-1)) / 2 yw = y0 +h*(yd -(-1)) / 2 zw = zd / 2 + 1/2 yw xd yd zd 1 -1 h w xw zw[0..1] Modelo de Camera do OpenGL

Transformações de um vértice OpenGL Spec

Computação Gráfica Interativa - Gattass 3/23/2017 Modelo do Pintor profundidade z Modelo de Camera do OpenGL

Problemas na ordenação de faces Computação Gráfica Interativa - Gattass 3/23/2017 Problemas na ordenação de faces (b) (a) + + za zb Modelo de Camera do OpenGL

BSP trees: Binary Space Partion Trees 1 2 3 4 5a 5b 3 frente atrás 1 2 5a 4 5b 1 2 3 4 5a 5b 3 frente atrás 2 4 5b atrás frente 5a 1 1 2 3 4 5a 5b 3 2 4 5a 1 5b

Exibição de uma BSP void bspDisplay(bspTree *tree) { if (arvore não é vazia) { if (observador está a frente da raiz) bspDisplay(tree®backChild); DisplayPolygon(tree®root); bspDisplay(tree®frontChild); } else Mostra a árvore de trás, a raiz e a árvore da frente. Mostra a árvore da frente, a raiz e a árvore de atrás.

BSP trees: Dois exemplos de exibição 1 2 3 4 5a 5b 5a, 2, 1, 3, 5b, 4 1 2 3 4 5a 5b 4, 5b, 3, 5a, 2, 1

Computação Gráfica Interativa - Gattass 3/23/2017 ZBuffer: idéia básica z MATRIZ DE PROFUNDIDADES Modelo de Camera do OpenGL

Rasterização de Polígonos e Linhas Computação Gráfica Interativa - Gattass 3/23/2017 Rasterização de Polígonos e Linhas Modelo de Camera do OpenGL

ZBuffer - pseudo-código void ZBuffer( void) { int x,y; for (x=0; x<w; x++) { for (y=0;y<h; y++) { WritePixel(x,y, bck_color); WriteZ(x,y,0); } for (each primitive) { for (each pixel in the projected primitive) { double pz = z coordinate of the (x,y) pixel; if (pz <= ReadZ(x,y)) { WritePixel(x,y, color); WriteZ(x,y,pz); } /* Zbuffer */ void glEnable( GL_DEPTH_TEST );

Computação Gráfica Interativa - Gattass 3/23/2017 Interpolação de cores void glShadeModel (GL_SMOOTH); void glShadeModel (GL_FLAT); Modelo de Camera do OpenGL

Suavização da tonalização Computação Gráfica Interativa - Gattass 3/23/2017 Suavização da tonalização Gouraud c1 c4 c2 c3 c12 c43 c Phong N1 N4 N N12 N43 c N2 N3 Modelo de Camera do OpenGL