A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Visualização do OpenGL

Apresentações semelhantes


Apresentação em tema: "Visualização do OpenGL"— Transcrição da apresentação:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 Transformações de um vértice
OpenGL Spec

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

14 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

15 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

16 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.

17 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

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

19 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

20 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 );

21 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

22 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


Carregar ppt "Visualização do OpenGL"

Apresentações semelhantes


Anúncios Google