Introdução à Computação Gráfica

                Aula – Viewport

                  Herbet Ferreira
                  herb...
Definição
• A viewport ou janela de visualização é a área
  retangular da janela gráfica onde é desenhada
  a imagem final...
Viewport em OpenGL
• glViewport(x, y, width, height)
   – Define o visor na janela, onde x e y especificam o
     canto in...
Viewport em OpenGL
• Como já foi referido, se glViewport(x, y,
  width, height) NÃO é EXPLICITAMENTE
  usado no programa, ...
Exemplo
int main(int argc, char ** argv)
{
     glutInit(&argc, argv);
     glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE);
...
Viewport em OpenGL
• Um visor é EXPLICITAMENTE definido pela função

             glViewport(x, y, width, height);

• O vi...
Exemplo
void draw(){
    glClear ( GL_COLOR_BUFFER_BIT );

       glMatrixMode(GL_VIEWPORT);
       glViewport(0, 0, 250, ...
Exemplo
void draw(){
    glClear ( GL_COLOR_BUFFER_BIT );

       glViewport(0, 0, 250, 250);
       glMatrixMode(GL_PROJE...
Exercício
• Construa um programa em OpenGL que utilize
  duas viewports. Na primeira viewport ative a
  função z-buffer.
 ...
Upcoming SlideShare
Loading in …5
×

Viewport (OpenGL)

6,843 views

Published on

Aula sobre Viewport com OpenGL para a disciplina de Introdução à Computação Gráfica do curso de Ciência da Computação da UFPB no período 2010.1

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,843
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
82
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Viewport (OpenGL)

  1. 1. Introdução à Computação Gráfica Aula – Viewport Herbet Ferreira herbet@di.ufpb.br 18/05/2010 1
  2. 2. Definição • A viewport ou janela de visualização é a área retangular da janela gráfica onde é desenhada a imagem final produzida. 18/05/2010 2
  3. 3. Viewport em OpenGL • glViewport(x, y, width, height) – Define o visor na janela, onde x e y especificam o canto inferior esquerdo e width e height as suas dimensões; – Por padrão, o visor ocupa a área gráfica total da janela; – Podem existir vários visores dentro da janela; – Para utilizar glViewport a função glMatrixMode deve ser habilitada com GL_VIEWPORT. 18/05/2010 3
  4. 4. Viewport em OpenGL • Como já foi referido, se glViewport(x, y, width, height) NÃO é EXPLICITAMENTE usado no programa, o visor por padrão é toda a área gráfica da janela; • Um exemplo de programa que retrata esta situação: – O visor por padrão tem a área 500x500 e é definido por glutInitWindowSize(500,500) no programa principal. 18/05/2010 4
  5. 5. Exemplo int main(int argc, char ** argv) { glutInit(&argc, argv); glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize( 500,500 ); glutCreateWindow(“Aula – Viewport”); glutDisplayFunc(draw); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; } 18/05/2010 5
  6. 6. Viewport em OpenGL • Um visor é EXPLICITAMENTE definido pela função glViewport(x, y, width, height); • O visor pode ou não ocupar toda a área gráfica da janela de interface. • Podem existir vários visores na janela de interface simultaneamente. • A viewport deve ser definida antes da definição do tipo de projeção, sendo esta última podendo ser definida através de: – glutOrtho2D, glOrtho, gluPerspective 18/05/2010 6
  7. 7. Exemplo void draw(){ glClear ( GL_COLOR_BUFFER_BIT ); glMatrixMode(GL_VIEWPORT); glViewport(0, 0, 250, 250); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(300, 1, 0.5, 400); glColor3f(0, 0, 1); glRectf(0.0, 0.0, 10.0, 30.0); glutSwapBuffers(); } 18/05/2010 7
  8. 8. Exemplo void draw(){ glClear ( GL_COLOR_BUFFER_BIT ); glViewport(0, 0, 250, 250); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(300, 1, 0.5, 400); glColor3f(0, 0, 1); glRectf(0.0, 0.0, 10.0, 30.0); glViewport(250,250,250,250); glColor3f( 1, 0, 0 ); glRectf(0.0,0.0,10.0,30.0); glutSwapBuffers(); } 18/05/2010 8
  9. 9. Exercício • Construa um programa em OpenGL que utilize duas viewports. Na primeira viewport ative a função z-buffer. – Utilizar o exercício da aula anterior! 18/05/2010 9

×