Computao Grfica Transformaes Projetivas Profa Mercedes Gonzales Mrquez
- Slides: 34
Computação Gráfica – Transformações Projetivas Profa. Mercedes Gonzales Márquez
Tópicos l l l Conceito de Projeção Paralela (Ortográfica) e Projeção Perspectiva Projeções em Open. GL
A Câmera Open. GL l O modelo de visualização em Open. GL, é similar a uma câmera fotográfica! – Tripé: visualização – Modelo: modelagem – Lente: projeção – Papel: viewport
Analogia da Câmera (Open. GL) l O processo de transformação para produzir a cena desejada para visualização é análogo a tirar uma foto com uma câmera. Os passos são: – 1. Orientar a câmera em direção da cena (transformação de visualização) – 2. Posicionar devidamente o(s) objeto(s), a serem fotografados, no cenário (transformações geométricas estudadas em aula, também chamadas transformações de modelagem). – 3. Escolher o lente da câmera ou ajustar o zoom (transformação de projeção). – 4. Determinar o tamanho desejado para a fotografia final (transformação de viewport).
Transformações Projetivas – – A projeção permite a visualização bidimensional de objetos tridimensionais. Para gerar a imagem de um objeto 3 D a partir de um ponto de vista dado, é necessário realizar a sua projeção, ou seja, converter as suas coordenadas 3 D em coordenadas 2 D.
Elementos básicos da Projeção l l l Plano de Projeção; Projetante, ou raio projetante; Centro de projeção. y P Raio de Projeção P´ Plano de Projeção x z Centro de Projeção
Elementos básicos da Projeção l l l Plano de Projeção: A superfície onde será projetado o objeto, ou seja, onde ele será representado em 2 D; Projetante, ou raio projetante: Retas que passam pelos pontos do objeto e pelo centro de projeção. Centro de projeção: Ponto fixo de onde os raios projetantes partem.
Tipos de Projeção Existem dois tipos de projeção: (a) Projeção Paralela, Ortogonal ou ortográfica (b)Projeção perspectiva
Tipos de Projeção (a) Projeção perspectiva : É a mais realista, pois é análogo ao processo de formação de imagens em nossos olhos ou numa câmera fotográfica. Considera a profundidade como elemento de seu cálculo e apresenta um resultado mais familiar ao observador humano.
Tipos de Projeção (b)Projeção Paralela ou ortográfica: É a projeção ortogonal de um ponto no plano de projeção. Pode ser vista como uma projeção perspectiva onde o centro de projeção está no infinito.
Projeção Paralela As linhas que unem os pontos A e B às suas projeções A’ e B’ são paralelas, isto faz com que o segmento projetado tenha o mesmo tamanho para qualquer distância entre o plano de projeção e o objeto.
Tipos de Projeção
Matriz de Projeção Paralela l l Se quisermos a projeção ortográfica em relação ao plano xy (ou z=0), a matriz em coordenadas homogêneas é Se no lugar do plano z=0 for escolhido outro plano qualquer z=Tz paralelo a ele, a matriz será
Modelo perspectivo ideal p y x o Plano imagem p 1 f P 1 z O P y x p 1 o Plano imagem O f p P 1 z P
Matriz de Projeção Perspectiva y Plano de projeção x (x´, y´) l f Centro de projeção Por similaridade de triângulos temos (x, y, z)
Projeções em Open. GL A transformação de projeção em Open. GL descreve como especificar a forma e orientação do volume de visualização. O volume de visualização determina: lcomo a cena será projetada na tela (com projeção paralela ou perspectiva) e lquais objetos ou partes de objetos serão eliminados da cena.
Projeção paralela ortográfica
Projeção em perspectiva l l Centro de projeção fixo: eye (posição da câmera) Duas possibilidades: – – Determina um tronco de pirâmide: gl. Frustrum Determina o ângulo de visão glu. Perspective
Definição do volume de visualização l gl. Frustrum(left, right, bottom, top, near, far); nao precisa ser simétrico l glu. Perspective(fovy, aspect ratio, near, far); simétrico Esses comandos definem a matriz de projeção (PROJECTION) l
gl. Frustrum
gl. Frustrum
glu. Perspective
glu. Perspective
Matrizes de transformação l gl. Matrix. Mode(GL_PROJECTION); – Define tipo e parâmetros da projeção
Exemplo – Cubo (Programa cube. c) Um cubo é escalado pela transformação de modelagem gl. Scalef (1. 0, 2. 0, 1. 0). A transformação de visualização glu. Look. At(), posiciona e orienta a câmera em direção do cubo. As transformações de projeção e viewport são também especificadas.
Exemplo – Cubo (Programa cube. c) Example 3 -1 : Transformed Cube: cube. c #include <GL/gl. h> #include <GL/glut. h> void init(void){ gl. Clear. Color (0. 0, 0. 0); gl. Shade. Model (GL_FLAT); } l
Exemplo – Cubo (Programa cube. c) void display(void){ gl. Clear (GL_COLOR_BUFFER_BIT); gl. Color 3 f (1. 0, 1. 0); gl. Load. Identity (); /* clear the matrix */ /* viewing transformation */ glu. Look. At (0. 0, 5. 0, 0. 0, 1. 0, 0. 0); gl. Scalef (1. 0, 2. 0, 1. 0); /* modeling transformation */ glut. Wire. Cube (1. 0); gl. Flush ();
Exemplo – Cubo (Programa cube. c) void reshape (int w, int h){ gl. Viewport (0, 0, (GLsizei) w, (GLsizei) h); gl. Matrix. Mode (GL_PROJECTION); gl. Load. Identity (); gl. Frustum (-1. 0, 1. 5, 20. 0); gl. Matrix. Mode (GL_MODELVIEW); }
Exemplo – Cubo (Programa cube. c) int main(int argc, char** argv){ glut. Init(&argc, argv); glut. Init. Display. Mode (GLUT_SINGLE | GLUT_RGB); glut. Init. Window. Size (500, 500); glut. Init. Window. Position (100, 100); glut. Create. Window (argv[0]); init (); glut. Display. Func(display); glut. Reshape. Func(reshape); glut. Main. Loop();
Exercício (1)Modifique o programa cube. c de forma que (a) Projete o cubo ortogonalmente. (b) Projete o cubo em perspectiva porém com a função glu. Perspective().
gl. View. Port (x, y, width, height) Define um retângulo de pixels na janela no qual a imagem final será mapeada. (x, y) : o canto inferior esquerda da viewport e (width, height) largura e altura do retângulo da viewport Por default os valores iniciais são (0, 0, w, h) onde w, h são os tamanhos pré-definidos da janela.
gl. View. Port A razão da viewport deve ser igual à razão do volume de visualização. Se as duas razões forem diferentes, a imagem projetada será distorcida ao ser mapeada na viewport.
Exercício l O programa planet. c usa gl. Rotate*() para rotacionar um planeta ao redor do sol e para rotacionar o planeta ao redor do seu próprio eixo. l Modifique o programa para que acrescente mais dois planetas com seus respectivos satélites. Como se trata de objetos hierárquicos use gl. Push. Matrix e gl. Pop. Matrix (vide
Exercício l Seguindo a orientação dada nos slides de transformações geométricas, faça um programa que desenhe um carro com cinco parafusos em cada uma das suas quatro rodas.
- Mercedes gonzales
- Isometrias exemplos
- Transformação por acção da electricidade
- Transformaes
- Se despide un genio
- Carta de despedida gabriel garcía márquez
- Mrquez
- Grfica
- Grfica
- Grficas
- Internet profa
- Profa ma
- Internet profa
- Multiplicaciones con decimales
- Www.profa
- Profa campis
- Pagsulat ng dula
- Reforma financiera de alfredo gonzález flores
- Mariana gonzales
- Bidy gonzales plant
- Adolfo gonzales chief probation officer
- Geisha gonzales
- Ilarawan ang pananaliksik
- Speedy gonzales sound
- Neal martin maura gonzales
- Speedy gonzales
- Tourbillon de passions mauricio gonzáles
- Glaucio gonzales
- Gonzalez and woods
- Elektronischer teilekatalog mercedes
- Colegio maria mercedes carranza
- Escudo mercedes abrego
- Mercedes n
- Juana romero velarde
- Colegio integrado nuestra señora de las mercedes