Computa - PowerPoint PPT Presentation

About This Presentation
Title:

Computa

Description:

a proje o ortogonal de um ponto no plano de proje o. ... Matriz de Proje o Paralela. Se quisermos a proje o ortogr fica em rela o ao plano xy ... – PowerPoint PPT presentation

Number of Views:128
Avg rating:3.0/5.0
Slides: 35
Provided by: uem2
Category:

less

Transcript and Presenter's Notes

Title: Computa


1
Computação Gráfica Transformações Projetivas
  • Profa. Mercedes Gonzales Márquez

2
Tópicos
  • Conceito de Projeção
  • Projeção Paralela (Ortográfica) e Projeção
    Perspectiva
  • Projeções em OpenGL

3
A Câmera OpenGL
  • O modelo de visualização em OpenGL, é similar a
    uma câmera fotográfica!
  • Tripé visualização
  • Modelo modelagem
  • Lente projeção
  • Papel viewport

4
Analogia da Câmera (OpenGL)
  • 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).

5
Transformações Projetivas
  • A projeção permite a visualização bidimensional
    de objetos tridimensionais.
  • Para gerar a imagem de um objeto 3D a partir de
    um ponto de vista dado, é necessário realizar a
    sua projeção, ou seja, converter as suas
    coordenadas 3D em coordenadas 2D.

6
Elementos básicos da Projeção
  • Plano de Projeção
  • Projetante, ou raio projetante
  • Centro de projeção.

P
y
Raio de Projeção
P
Plano de Projeção
x
z
Centro de Projeção
7
Elementos básicos da Projeção
  • Plano de Projeção A superfície onde será
    projetado o objeto, ou seja, onde ele será
    representado em 2D
  • 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.


8
Tipos de Projeção
  • Existem dois tipos de projeção
  • Projeção Paralela, Ortogonal ou ortográfica
  • Projeção perspectiva


9
Tipos de Projeção
  1. 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. 


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

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

12
Tipos de Projeção

13
Matriz de Projeção Paralela
  • Se quisermos a projeção ortográfica em relação ao
    plano xy (ou z0), a matriz em coordenadas
    homogêneas é
  • Se no lugar do plano z0 for escolhido outro
    plano qualquer zTz paralelo a ele, a matriz será

14
Modelo perspectivo ideal
p
y
x
o
P1
z
O
p1
f
Plano imagem
P
y
x
p1
Plano imagem
O
o
P1
p
z
f
P
15
Matriz de Projeção Perspectiva
y
Plano de projeção
x
(x,y,z)

f
Centro de projeção
(x,y)
  • Por similaridade de triângulos temos

16
Projeções em OpenGL
A transformação de projeção em OpenGL descreve
como especificar a forma e orientação do volume
de visualização. O volume de visualização
determina
  • como a cena será projetada na tela (com projeção
    paralela ou perspectiva) e
  • quais objetos ou partes de objetos serão
    eliminados da cena.

17
Projeção paralela ortográfica
18
Projeção em perspectiva
  • Centro de projeção fixo eye (posição da câmera)
  • Duas possibilidades
  • Determina um tronco de pirâmideglFrustrum
  • Determina o ângulo de visãogluPerspective

19
Definição do volume de visualização
  • glFrustrum(left, right, bottom, top, near,
    far)nao precisa ser simétrico
  • gluPerspective(fovy, aspect ratio, near,
    far)simétrico
  • Esses comandos definem a matriz de projeção
    (PROJECTION)

20
glFrustrum
21
glFrustrum
22
gluPerspective
23
gluPerspective
24
Matrizes de transformação
  • glMatrixMode(GL_PROJECTION)
  • Define tipo e parâmetros da projeção

25
Exemplo Cubo (Programa cube.c)
  • Um cubo é escalado pela transformação de
    modelagem glScalef (1.0, 2.0, 1.0). A
    transformação de visualização gluLookAt(),
    posiciona e orienta a câmera em direção do cubo.
    As transformações de projeção e viewport são
    também especificadas.

26
Exemplo Cubo (Programa cube.c)
  • Example 3-1 Transformed Cube cube.c
  • include ltGL/gl.hgt
  • include ltGL/glu.hgt
  • include ltGL/glut.hgt
  • void init(void)
  • glClearColor (0.0, 0.0, 0.0, 0.0)
  • glShadeModel (GL_FLAT)

27
Exemplo Cubo (Programa cube.c)
  • void display(void)
  • glClear (GL_COLOR_BUFFER_BIT)
  • glColor3f (1.0, 1.0, 1.0)
  • glLoadIdentity () / clear the matrix /
  • / viewing transformation /
  • gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0,
    1.0, 0.0)
  • glScalef (1.0, 2.0, 1.0) / modeling
    transformation /
  • glutWireCube (1.0)
  • glFlush ()

28
Exemplo Cubo (Programa cube.c)
  • void reshape (int w, int h)
  • glViewport (0, 0, (GLsizei) w, (GLsizei) h)
  • glMatrixMode (GL_PROJECTION)
  • glLoadIdentity ()
  • glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0)
  • glMatrixMode (GL_MODELVIEW)

29
Exemplo Cubo (Programa cube.c)
  • int main(int argc, char argv)
  • glutInit(argc, argv)
  • glutInitDisplayMode (GLUT_SINGLE GLUT_RGB)
  • glutInitWindowSize (500, 500)
  • glutInitWindowPosition (100, 100)
  • glutCreateWindow (argv0)
  • init ()
  • glutDisplayFunc(display)
  • glutReshapeFunc(reshape)
  • glutMainLoop()
  • return 0

30
Exercício
  • 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 gluPerspective().

31
glViewPort
glViewPort (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.
32
glViewPort
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.
33
Exercício
  • O programa planet.c usa glRotate() para
    rotacionar um planeta ao redor do sol e para
    rotacionar o planeta ao redor do seu próprio
    eixo.
  • Modifique o programa para que acrescente mais
    dois planetas com seus respectivos satélites.
    Como se trata de objetos hierárquicos use
    glPushMatrix e glPopMatrix (vide aula).

34
Exercício
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com