Engenharia Informática Computação Gráfica

Tamanho: px
Começar a partir da página:

Download "Engenharia Informática Computação Gráfica"

Transcrição

1 Computação Gráfica Engenharia Informática Transformações de Visualização Computação Gráfica 1

2 Definições janela de dominio da cena HOUSE CLIP ecrã janela de interface visor! Sistema de Coordenadas Globais (Espaço do Objecto ou Domínio da Cena) - É o referencial do espaço em que se encontram os objectos geométricos. - É neste espaço que o modelo de aplicação é definido; ex: R 2. - É neste espaço que a geometria do objecto é definida.! Janela de Domínio da Cena (Subespaço do Domínio de Cena) - Rectângulo que define a parte do domínio da cena que pretendemos visualizar! Sistema de Coordenadas do Ecrã (Espaço de Imagem) - Espaço no qual a imagem é mostrada; ex: 800x600 pixéis. - Espaço no qual a imagem rasterizada do objecto é definida.! Janela de Interface (Subespaço de Imagem) - Representação visual do sistema de coordenadas do ecrã para sistemas de saída baseados em janelas (sistema de coordenadas move-se com a janela de interface) Definições (cont.) janela do domínio de cena ecrã HOUSE CLIP ecrã janela de interface visor! Transformações de visualização (viewing Transformations)! Processo de mapeamento de uma janela do domínio de cena (world coordinates) para um visor (screen coordinates).! Visor (Subespaço de Imagem)! Um rectângulo no ecrã rasterizado (ou janela de interface) que define onde a imagem irá aparecer, ou na totalidade do ecrã ou numa janela de interface.! Portanto, em princípio, a mesma imagem pode ser replicada em diferentes visores (ou viewports) dentro do ecrã ou duma janela de interface. 2

3 Transformação Janela-Visor Dada uma janela e um visor, qual é a matriz de transformação que mapeia um ponto da janela em coordenadas globais num pixel do visor em coordenadas de ecrã? Esta matriz pode ser dada como a composição de 3 transformações, como é sugerido pela seguinte sequência de figuras: v y (x max,y max ) y v (u max,v max ) (x min,y min ) x x u (u min,v min ) u janela em coordenadas globais (ou de domínio de cena) janela transladada para a origem janela com visor transladado por tamanho alterado (u min,v min ) igual ao tamanho do visor para a posição final Transformação Janela-Visor: representação matricial v y (x max,y max ) y v (u max,v max ) (u min,v min ) (x min,y min ) x x u u 3

4 Transformação Janela-Visor: como é feita? v y (x max,y max ) Mantendo a proporcionalidade no mapeamento de (x,y) para (u,v) (u max,v max ) (u min,v min ) (x min,y min ) x variação de translação tamanho translação u x min x x max u min u u max y max v max y v y min v min Transformação Janela-Visor: exemplo y v (x max,y max ) (u max,v max ) (x min,y min ) janela(10.0,5.0,40.0,30.0) x (u min,v min ) u visor(100,50,250,300) 4

5 Transformação Janela-Visor: em OpenGL! gluortho2d(left, right, bottom, top)! Define uma região de visualização ortogonal 2D ou janela de domínio de cena. É definida por dois planos verticais de recorte left e right e dois planos horizontais de recorte bottom e top.! A janela por defeito é (-1,1,-1,1).! Define uma matriz de projecção ortogonal 2-D.! Define ainda a transformação janela-visor, o que requer a definição do visor através da seguinte função: Transformação Janela-Visor: em OpenGL! gluortho2d(left, right, bottom, top) A definição do visor é feita através da seguinte função:! glviewport(x, y, width, height)! Define o visor na janela de interface, onde x,y especificam o canto inferior esquerdo e width, height as suas dimensões.! Por defeito, o visor ocupa a área gráfica total da janela de interface.! Podem existir vários visores dentro da janela de interface. 5

6 Sequência de Transformações OpenGL coordenadas do olho coordenadas de recorte coordenadas do visor da janela de interface Vertex Modelview Matrix Projection Matrix Viewport GL_MODELVIEW mode! gltranslate()! glrotate()! glscale()! glloadmatrix()! glmultmatrix()! glulookat()! GL_PROJECTION mode! glortho()! gluortho2d()! glfrustum()! gluperspective()! glviewport()! Exemplos em OpenGL! Visor por defeito! Um único visor! Dois visores 6

7 Exemplo 1: visor por defeito! Como já foi referido, se glviewport(x, y, width, height) NÃO é EXPLICITAMENTE usada no programa, o visor por defeito é toda a área gráfica da janela de interface.! Veja-se o exemplo do próximo programa que retrata esta situação. O visor por defeito tem a área 500x500 e é definido por glutinitwindowsize(500,500) no programa principal. Exemplo 1: visor por defeito // Header files first void draw(){ // Make background colour yellow glclearcolor( 100, 100, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // Sets up the PROJECTION matrix glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,-10.0,40.0); // also sets up world window // Draw BLUE rectangle glcolor3f( 0, 0, 1 ); glrectf(0.0,0.0,10.0,30.0); // display rectangles glutswapbuffers(); } // end of draw() 7

8 Exemplo 1: visor por defeito (cont.) // Keyboard method to allow ESC key to quit void keyboard(unsigned char key,int x,int y) { if(key==27) exit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB display glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow( Default viewport spans the whole interface window"); // Declare the display and keyboard callback functions glutdisplayfunc(draw); glutkeyboardfunc(keyboard); // Start the Main Loop glutmainloop(); return 0; } Exemplo 2: 1 visor! 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.! Note-se que a janela de interface e os seus visores são definidos antes da janela de domínio de cena, sendo esta última definida através de gluortho2d(left, right, bottom, top) porque esta função também define a transformação janela-visor. 8

9 Exemplo 2: 1 visor //Header files first. void draw(){ // Make background colour yellow glclearcolor( 100, 100, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // Sets up viewport spanning the left-bottom // quarter of the interface window glviewport(0,0,250,250); // Sets up the PROJECTION matrix glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,-10.0,40.0); // also sets up world window // Draw BLUE rectangle glcolor3f( 0, 0, 1 ); glrectf(0.0,0.0,10.0,30.0); // display rectangles glutswapbuffers(); }// end of draw() Exemplo 2: 1 visor (cont.) // Keyboard method to allow ESC key to quit void keyboard(unsigned char key,int x,int y) { if(key==27) exit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB display glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow( Viewport spans the left-bottom interface window quarter"); // Declare the display and keyboard functions glutdisplayfunc(draw); glutkeyboardfunc(keyboard); // Start the Main Loop glutmainloop(); return 0; } 9

10 Exemplo 3: 2 visores // Header files first void draw(){ // Make background colour yellow glclearcolor( 100, 100, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // Sets up FIRST viewport spanning the left-bottom quarter of the interface window glviewport(0,0,250,250); // Sets up the PROJECTION matrix glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,-10.0,40.0); // also sets up world window // Draw BLUE rectangle glcolor3f( 0, 0, 1 ); glrectf(0.0,0.0,10.0,30.0); // Sets up SECOND viewport spanning the right-top quarter of the interface window glviewport(250,250,250,250); // Sets up the PROJECTION matrix glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,50.0,-10.0,40.0); // also sets up world window } // Draw RED rectangle glcolor3f( 1, 0, 0 ); glrectf(0.0,0.0,10.0,30.0); // display rectangles glutswapbuffers(); Exemplo 3: 2 visores (cont.) // Keyboard method to allow ESC key to quit void keyboard(unsigned char key,int x,int y) { if(key==27) exit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB display glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow( Two viewports: left-bottom and right-top quarters"); // Declare the display and keyboard functions glutdisplayfunc(draw); glutkeyboardfunc(keyboard); // Start the Main Loop glutmainloop(); return 0; } 10

11 Transformação Janela-Visor: nota importante Quando a janela de dominío da cena aumenta de tamanho:! a imagem no visor dimimui, e! vice-versa. janela do domínio de cena HOUSE CLIP Transformação Janela-Visor: aplicações! Panning! Mover a janela no domínio de cena! Zooming! Redução/Aumento do tamanho da janela 11

12 Activação automática do visor sem distorção de imagem! Qual a maior imagem não-distorcida que ocupa o ecrã?! R = Razão de aspecto da janela do domínio de cena! Duas situações são possíveis.! 1ª - A janela é pequena em altura ajustada à largura do visor da janela de interface, mas algum espaço sobrará em cima/baixo.! Portanto, no máximo, o visor terá largura W e altura W/R. y R>W/H interface window screen world window viewport H W/R aspect ratio R x W Activação automática do visor sem distorção de imagem! Qual a maior imagem não-distorcida que ocupa o ecrã?! R = Razão de aspecto da janela do domínio de cena! Duas situações são possíveis.! 2ª - A janela é alta e estreita comparada com a janela de interface. y world window R<W/H interface window screen! O visor com a mesma razão de aspecto R ocupará toda área gráfica da janela de interface em altura, mas sobrará algum espaço à esquerda/ direita. aspect ratio R x viewport W H.R H! Portanto, no máximo, o visor terá largura H.R e altura H. 12

13 Activação automática do visor sem distorção de imagem y world window R>W/H interface window screen y world window R<W/H interface window screen aspect ratio R viewport W/R H aspect ratio R viewport H.R H x W x W glviewport(0,0,w,w/r);! glviewport(0,0,h*r,h);! Normalmente este ajuste é feito na callback reshape Exemplo 4: janela baixa! Se a janela tem razão de aspecto R=2.0 e a janela de interface tem altura H=200 e largura W=360, então W/H=1.8. y world window R>W/H interface window screen! Portanto, estamos no primeiro caso, e o visor é activado com 180 pixéis de altura e 360 pixéis de largura. aspect ratio R x viewport W/R W H glviewport(0,0,w,w/r);! glviewport(0,0,360,360/2);! 13

14 Exemplo 5: janela alta! Se a janela tem razão de aspecto R=1.6 e o ecrã da janela de interface tem H=200 e W=360, então W/H=1.8. y world window R<W/H interface window screen! Portanto, estamos no segundo caso, e o visor é activado com 200 pixéis de altura e 320 pixéis de largura. aspect ratio R x viewport W H.R H glviewport(0,0,h*r,h);! glviewport(0,0,320,200);! Manutenção das proporções na passagem da janela para o visor! Mas para manter o visor e evitar distorção, há que mudar o tamanho da janela do domínio de cena em conformidade.! Para isso, assumindo a priori que a janela da cena é um quadrado cujos lados têm comprimento L.! Uma solução possível é mudar a janela da cena sempre que o ecrã da janela de interface for alterada. Assim, a callback reshape(glsizei w, GLsizei h) tem de ser alterada por forma a incluir o código seguinte: if (w <= h)! gluortho2d(-l, L, -L * h/w, L * h/w);! else! gluortho2d(-l * w/h, L * w/h, -L, L);! 14

15 Exemplo 6: Mapeamento janela-visor sem distorção //Header files first void draw(){ // Make background colour yellow glclearcolor( 100, 100, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // Draw triangle glcolor3f( 0, 0, 1 ); glrectf(0.0,0.0,30.0,30.0); glcolor3f(1,0,0); glbegin(gl_triangles); glvertex3f(0.0,30.0,1.0); glvertex3f(30.0,30.0,1.0); glvertex3f(15.0,40.0,1.0); glend(); // display glutswapbuffers(); }// end of draw() Exemplo 6: (cont.) // Keyboard method to allow ESC key to quit GLvoid reshape(glsizei w, GLsizei h) { GLfloat L = 100.0f; if (h == 0) h=1; if (w == 0) w=1; glviewport(0,0,w,h); // prevent a divide by zero // prevent a divide by zero // set viewport to window dimensions glmatrixmode(gl_projection); // reset projection matrix stack glloadidentity(); if (w <= h) gluortho2d(-l, L, -L * h/w, L * h/w); else gluortho2d(-l * w/h, L * w/h, -L, L); } glmatrixmode(gl_modelview); glloadidentity(); // reset model-view matrix stack 15

16 Exemplo 6: (cont.) // Keyboard method to allow ESC key to quit void keyboard(unsigned char key,int x,int y) { if(key==27) exit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB display glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow( Single viewport"); // Declare the display, reshape, and keyboard functions glutdisplayfunc(draw); glutreshapefunc(reshape); glutkeyboardfunc(keyboard); // Start the Main Loop glutmainloop(); return 0; } Recorte Gráfico! Algoritmo de Cohen-Sutherland! 16

17 Recorte Gráfico?! É o processo pela qual todas as primitivas gráficas geradas passam obrigatoriamente (recorte ou clipping). Recorte Gráfico (cont.)! Recorte de Linhas! Recorte de uma linha contra uma área rectangular resulta sempre num segmento de recta.! A parte que recai dentro da área de recorte é visualizada.! As restantes são ignoradas. C C 17

18 Recorte Gráfico (cont.)! Os pontos extremos podem ser facilmente testados para averiguar se estão dentro ou fora da área de recorte.! Seja a área de recorte definida por: xmin, xmax, ymin, ymax Então: O ponto extremo (x, y) está dentro da área de recorte sse xmin<= x <= xmax ymin<= y <= ymax e! Basta que uma destas 4 condições não seja satisfeita para concluirmos que o ponto (x, y) se encontra fora da região de recorte. Recorte Gráfico (cont.)! Casos simples:! Totalmente dentro da área de recorte;! Totalmente fora da área de recorte sem que exista intercepção com a área de recorte. 18

19 Recorte Gráfico (cont.)! Casos complicados:! Dois pontos fora mas intercepta a área de recorte;! Um ponto dentro e outro fora. Recorte Gráfico (cont.)! Algoritmo de Cohen-Sutherland para recorte de linhas! Codifica as 9 regiões com 4 bits:! 1º bit: fora do meio-plano da aresta de topo (y > ymax)! 2º bit: fora do meio-plano da aresta abaixo (y < ymin)! 3º bit: fora do meio-plano da aresta direita (x > xmax)! 4º bit: fora do meio-plano da aresta esquerda (x < xmin) 19

20 Algoritmo de Cohen- Sutherland (cont.)! Codifica os extremos do segmento de recta.! Analisa os resultado da codificação usando o AND lógico (i.e., &) Situação CodP1 = CodP2 = 0000 CodP1 & CodP CodP1 & CodP2 = 0000 Acção Aceitação Rejeição Subdivisão Algoritmo de Cohen- Sutherland (cont.)! Exemplo 1! CodG = 0100 e CodH = 0010 CodG & CodH = > Subdivisão! Calcula-se uma intercepção G com CodG = 0000! Calcula-se a outra intercepção H G G H H 20

21 Algoritmo de Cohen- Sutherland (cont.)! Exemplo 2! CodG = 0100 e CodH = 0010 CodG & CodH = > Subdivisão! Calcula-se uma intercepção G com CodG = 0010 H CodG & CodH 0000 Rejeição G G Visualização 2D/3D e Projecções 21

22 Pipeline de Renderização em OpenGL MODELVIEW matrix PROJECTION matrix perspective division viewport transformation vértice original (object coordinates) vértice no sistema de coordenadas do olho (eye coordinates) projecção 2D do vértice no plano de projecção (clip coordinates) coordenadas normalizadas do dispositivo de saída (normalized device coordinates) coordenadas do pixel no visor da janela de interface (window coordinates) Sistema de câmara! Para criar uma vista duma cena é necessário:! uma descrição da geometria da cena! uma câmara ou definição do ponto de vista (ou observador)! um plano de projecção! Por omissão, a câmara OpenGL está localizada na origem e direccionada no sentido do eixo z negativo. 22

23 Sistema de câmara! A definição da câmara permite a projecção da geometria da cena 3D numa superfície 2D para efeitos de saída gráfica.! Esta projecção pode ser feita de várias maneiras:! ortogonal (paralelismo das linhas é preservado)! ortogonal oblíqua! perspectiva: 1-ponto, 2-pontos ou 3- pontos de fuga Tipos de câmara! Modelo da câmara clássica (pinhole camera model) é o mais usado:! profundidade infinita do campo (infinite depth of field): tudo é focado! Modelo de câmara dos sistemas avançados de renderização! lentes duplas de Gauss são usadas por muitas câmaras profissionais! modela a profundidade de campo e óptica não-linear (incluindo lens flare)! Sistemas de renderização foto-realística empregam muitas vezes o modelo físico do olho humano para renderizar imagens! modela a resposta dos olhos face aos níveis de brilho e cor! modela a óptica interna do próprio olho (difracção pelas fibras da lente etc.) 23

24 Modelo da câmara clássica Renderização foto-realística baseada na resposta do olho 24

25 Sistemas baseados na câmara de lentes duplas Um modelo de câmara implementado na Princeton University (1995) Sistema de visualização! Nesta altura só estamos preocupados com a geometria da visualização.! A posição e a orientação da câmara definem um viewvolume ou view-frustrum.! objectos completa ou parcialmente dentro deste volume serão potencialmente visíveis no visor (viewport).! objectos completamente fora deste volume não são vistos clipped clipped view frustrum clipping planes 25

26 Modelo da câmara! Cada vértice tem de ser projectado no plano da janela 2D da câmara (plano de projecção) por forma a visualizá-lo no ecrã.! A CTM é empregue para determinar a localização de cada vértice no sistema de coordenadas da câmara:! Depois, aplicamos a matriz de projecção definida por GL_PROJECTION para mapear coordenadas da câmara para as coordenadas da janela 2D do plano de projecção.! Finalmente, estas coordenadas 2D são mapeadas para as coordenadas do dispositivo de saída através da utilização da definição dum visor (viewport) na janela de interface (dado por glviewport()). CTM= Current Transformation Matrix Modelação da câmara em OpenGL sistema de coordenadas da câmara sistema de coordenadas da janela 2D sistema de coordenadas do dispositivo/ecrã glmatrixmode(gl_modelview)... glviewport(0,0,xres,yres) glmatrixmode(gl_projection)... 26

27 Projecção 3D " 2D! Tipo de projecção depende dum conjunto de factores:! localização e orientação do plano de projecção! direcção da projecção (descrita por um vector)! tipo de projecção: Projecção Perspectiva Paralela 1-ponto Ortogonal 2-pontos Axonométrica 3-pontos Oblíqua 53 Projecções paralelas - projectantes são paralelas - observador no infinito axonométrica ortogonal oblíqua 54 27

28 Projecções paralelas ortogonais! A mais simples de todas as projecções: as projectantes são perpendiculares ao plano de projecção.! Normalmente, o plano de projecção está alinhado com os eixos (muitas das vezes em z=0) Projecções paralelas axonométricas: isométrica, dimétrica e cavaleira! Se o objecto está alinhado com os eixos, o resultado é uma projecção ortogonal;! Caso contrário, é uma projecção axonométrica.! Se o plano de projecção intersecta os eixos XYZ à mesma distância relativamente à origem, o resultado é uma projecção isométrica. 28

29 Projecções paralelas em OpenGL glortho(xmin, xmax, ymin, ymax, zmin, zmax); Projecções múltiplas! Às vezes é útil ter várias projecções disponíveis para visualização! normalmente: vista de frente, planta e alçado direito perspectiva planta vista de frente alçado direito 29

30 Projecções em perspectiva - projectantes não são paralelas - observador encontra-se a distância finita perspectiva com 3-pontos perspectiva com 1-ponto perspectiva com 2-pontos Projecções em perspectiva! Projecções em perspectiva são mais complexas e exibem concorrência das projectantes ou raios visuais (as linhas paralelas parecem convergir para um ponto localizado a uma distância finita).! Parâmetros:! centro de projecção (COP)! campo de vista (θ,φ)! direcção de projecção! direcção up do eixo da câmara ou do observador 30

31 Projecções em perspectiva Considere uma projecção em perspectiva com o ponto de vista na origem e a direcção de observação orientada ao longo eixo -z e o plano de projecção localizado em z = -d d y y -z PROJECTION matrix perspective division 61 Projecções em perspectiva: alternativa Objectos dentro do frustum são projectados no plano paralelo ao plano XY segundo as seguintes igualdades: z=-d z y x (x,y,-d) (x,y,z) 62 31

32 Projecção em perspectiva! Dependendo da aplicação, pode usar-se mecanismos diferentes para especificar uma vista em perspectiva. Exemplo: os ângulos do campo de vista podem ser inferidos se a distância ao plano de projecção é conhecida.! Exemplo: a direcção de observação pode ser obtida se, além do COP, se especificar um ponto na cena para onde o observador olha.! OpenGL suporta estes dois mecanismos de especificar uma vista em perspectiva através de:! glulookat, glfrustum e gluperspective Projecções em perspectiva glfrustum(xmin, xmax, ymin, ymax, zmin, zmax); 64 32

33 glfrustum! Note-se que todos os pontos na linha definida pelo COP e (xmin,ymin,-zmin) são mapeados para o canto inferior esquerdo da janela.! Também todos os pontos na linha definida pelo COP e (xmax,ymax,-zmin) são mapeados para o canto superior direito da janela.! A direcção de observação é sempre paralela a -z! Não é necessário ter um frustrum simétrico como: glfrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 50.0);! Um frustrum não-simétrico introduz obliquidade na projecção.! zmin e zmax são especificados como distâncias positivas ao longo de -z! 65 Projecções em perspectiva gluperspective(fov, aspect, near, far); 33

34 gluperspective! Uma função para simplificar a especificação de vistas ou projecções em perspectiva.! Só permite a criação de volumes de visualização simétricos.! O ponto de vista do observador (COP) está na origem e a direcção de observação é o eixo -z.! O ângulo do campo de vista, fov, tem de pertencer ao intervalo [0,180].! aspect permite a criação dum frustrum com a mesma razão de aspecto do visor (viewport) por forma a eliminar distorção. Projecções em perspectiva 68 34

35 Posicionamento da câmara! As projecções anteriores têm limitações:! COP fixo e direcção de projecção (ou observação) fixa! Para obter uma posição e orientação arbitrárias da câmara temos de manipular a matriz MODELVIEW antes da criação dos modelos. Desta forma, posiciona-se a câmara relativamente aos objectos da cena.! Por exemplo, há duas possibilidades para posicionar a câmara em (10, 2, 10) em relação ao referencial do domínio da cena:! mudar o referencial do domínio da cena antes de criar os objectos usando translatef e rotatef: gltranslatef(-10,-2,-10);! usar glulookat para posicionar a câmara relativamente ao referencial do domínio da cena: glulookat(10,2,10, );! Estas duas possibilidades são equivalentes. Posicionamento da câmara glulookat(eyex, eyey, eyez, lookx, looky, lookz, upx, upy, upz); equivalente a: gltranslatef(-eyex, -eyey, -eyez); glrotatef(theta, 1.0, 0.0, 0.0); glrotatef(phi, 0.0, 1.0, 0.0); 35

36 Janela de projecção! A matriz de projecção define a transformação de coordenadas 3D do domínio da cena numa janela 2D que pertence ao plano de projecção.! As dimensões da janela de projecção são definidas como parâmetros da projecção: (r,t,-n)! glfrustum(l,r,b,t,n,f) (l,b,-n)! gluperspective(f,a,n,f 1 )! (w,h,-n) (-w,-h,-n) Transformação janela-visor: revisão! Como vimos já, é preciso mapear os pontos do sistema de coordenadas da janela de projecção para os pixéis do sistema de coordenadas do visor, por forma a determinar o pixel associado a cada vértice dos objectos da cena. coordenadas do dispositivo normalizado coordenadas do visor da janela da interface 36

37 Transformação janela-visor: revisão! Uma transformação afim planar é usada.! Após projecção no plano de vista, todos os pontos são transformados em coordenadas do dispositivo normalizado: [-1,+1] [-1,+1]. glviewport(int x, int y, int width, int height);! glviewport é usado para relacionar os dois sistemas de coordenadas: Transformação janela-visor: revisão! (x,y) = posição do canto inferior esquerdo do visor dentro da janela da interface! width,height = dimensões do visor em pixéis! Normalmente, recria-se a janela após o evento resize da janela da interface para assegurar o mapeamento correcto entre as dimensões do visor e da janela: static void reshape(int width, int height) { glviewport(0, 0, width, height); glmatrixmode(gl_projection); glloadidentity(); gluperspective(85.0, 1.0, 5, 50); } 37

38 Razão de aspecto: revisão! A razão de aspect (aspect ratio) define a relação entre a largura (width) e a altura (height) da imagem.! A razão de aspecto da janela de projecção é explicitamente fornecida através da função gluperspective/glfrustum.! A razão de aspecto do visor deve ser a mesma para evitar distorção de imagem: aspect ratio = 1.25 aspect ratio = 0.5 // top left: top view glviewport(0, win_height/2, win_width/2, win_height/2); glmatrixmode(gl_projection); glloadidentity(); glortho(-3.0, 3.0, -3.0, 3.0, 1.0, 50.0); glulookat(0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0); glmatrixmode(gl_modelview); glloadidentity(); glcalllist(object); // top right: right view glviewport(win_width/2, win_height/2, win_width/2, win_height/2); glmatrixmode(gl_projection); glloadidentity(); glortho(-3.0, 3.0, -3.0, 3.0, 1.0, 50.0); glulookat(5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glmatrixmode(gl_modelview); glloadidentity(); glcalllist(object); // bottom left: front view glviewport(0, 0, win_width/2, win_height/2); glmatrixmode(gl_projection); glloadidentity(); glortho(-3.0, 3.0, -3.0, 3.0, 1.0, 50.0); glulookat(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glmatrixmode(gl_modelview); glloadidentity(); glcalllist(object); // bottom right: rotating perspective view glviewport(win_width/2, 0, win_width/2, win_height/2); glmatrixmode(gl_projection); glloadidentity(); gluperspective(70.0, 1.0, 1, 50); glulookat(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glmatrixmode(gl_modelview); glloadidentity(); glrotatef(30.0, 1.0, 0.0, 0.0); glrotatef(angle, 0.0, 1.0, 0.0); glcalllist(object); 76 38

Cap. 4: Janelas, Visores & Recorte Gráfico

Cap. 4: Janelas, Visores & Recorte Gráfico Cap. 4: Janelas, Visores & Recorte Gráfico Sumário Definições básicas: sistema de coordenadas globais, sistema de coordenadas do ecrã; janela de domínio de cena; janela de interface e visores de saída

Leia mais

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 3 Janelas e Visores Janelas e Visores Sumário Definições domínio de imagem (ecrã) janela de ecrã domínio da cena (IR 2 ) janela visor

Leia mais

Projeções e Visualização

Projeções e Visualização Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 4 Projeções e Visualização Projeções e Visualização Sumário Pipeline de Visualização em OpenGL x y z w vértice original MODELVIEW matrix

Leia mais

Transformações Geométricas

Transformações Geométricas Transformações Geométricas Computação Gráfica Motivação! Transformações geométricas! Translação, Rotação, Reflexão! Variação de Tamanho (scaling), Cisalhamento (shearing)! Projecção Ortogonal, Projecção

Leia mais

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 6 Projeções 2 Projeções Geométricas Projeções permitem a visualização bidimensional de objetos tridimensionais.

Leia mais

Visualização. - Aula 4 -

Visualização. - Aula 4 - Visualização - Aula 4 - Pipeline de visualização 2D window recorte mapeamento viewport descrição geométrica rasterização Visualização de objetos 2D y viewport 1 região (window) 1 região (window) 2 viewport

Leia mais

3D no OpenGL. Visualização e Transformações Perspectiva. Transformações do Modelview. Processo

3D no OpenGL. Visualização e Transformações Perspectiva. Transformações do Modelview. Processo Visualização e Transformações Perspectiva 3D no OpenGL Para gerar imagens de um objeto 3D, é necessário compreender transformações perspectiva Foley & van Dam - Cap. 6 Notas de aula do Prof. Mount: aulas

Leia mais

Transformações Geométricas

Transformações Geométricas Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 2 Transformações Geométricas Transformações Geométricas Sumário Transformações geométricas Geometria Projectiva (projecções) Geometria

Leia mais

Computação Gráfica - OpenGl 02

Computação Gráfica - OpenGl 02 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - OpenGl 02 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Cap. 1 Renderização 3D: Transformações Geométricas. Mestrado em Engenharia Informática (6931) 1º ano, 1º semestre

Cap. 1 Renderização 3D: Transformações Geométricas. Mestrado em Engenharia Informática (6931) 1º ano, 1º semestre Cap. Renderização 3D: Transformações Geométricas Mestrado em Engenharia Informática (693) º ano, º semestre Sumário Motivação. Transformações métricas euclidianas: translação e rotação. Geometria métrica

Leia mais

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto CG com OpenGL Paulo Gandra de Sousa psousa@dei.isep.ipp.pt Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Conteúdo O que é? Exemplos API do OpenGL demos Desenho, iluminação,

Leia mais

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Visualização 3D Computação Visual Beatriz Sousa Santos, J. Madeira Visualização 3D Os processos envolvidos na obtenção

Leia mais

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Primeiro Teste 6 de Outubro de 013 O teste tem a duração de 1h00, tolerância incluída. Responda às questões

Leia mais

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Câmara Virtual 2 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL Edward Angel, Cap. 5 Apontamentos CG Câmara Virtual

Leia mais

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Visualização 3D Computação Visual Beatriz Sousa Santos, J. Madeira Visualização 3D Os processos envolvidos na obtenção

Leia mais

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2 Câmera Sintética Leandro Tonietto Computação Gráfica Desenvolvimento Jogos e Entretenimento Digital ltonietto@unisinos.br http://professor.unisinos.br/ltonietto/jed/pgr/camerasintetica.pdf 05-13 29-May-13

Leia mais

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010 Sistemas Gráficos INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 2 de Agosto de 2010 W. Celes Sistemas Gráficos 1 Visualização 3D Objetivo

Leia mais

Transformações geométricas

Transformações geométricas Módulo 7 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Transformações geométricas SGRAI 2017/18 DEI-ISEP 97 Conteúdo Tipos de transformações Model/View

Leia mais

OpenGL, GLU e GLUT. GLUT (OpenGL Utility Toolkit) OpenGL. Linguagem. OpenGL. Esqueleto de um programa em PyOpenGL

OpenGL, GLU e GLUT. GLUT (OpenGL Utility Toolkit) OpenGL. Linguagem. OpenGL. Esqueleto de um programa em PyOpenGL OpenGL, GLU e GLUT http://www.opengl.org/resources http://pyopengl.sourceforge.net GLUT (OpenGL Utility Toolkit) O GLUT é uma biblioteca de rotinas independentes do SO, que fornecem as ferramentas necessárias

Leia mais

CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste

CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste CG 015/016 Primeiro Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Primeiro Teste 10 de Outubro de 015 O teste tem a duração

Leia mais

Sist. Coordenadas Câmera (SCC)

Sist. Coordenadas Câmera (SCC) Transformações Modelagem Iluminação (Shading) Transformação Câmera* Recorte Projeção* Mapeamento de coordenadas de Universo para câmera Escolha da projeção: perspectiva ou ortográfica Resumo Rasterização

Leia mais

LAB. 1. Introdução à OpenGL

LAB. 1. Introdução à OpenGL LAB. 1 Introdução à OpenGL OpenGL O que é? É uma biblioteca de funções gráficas. É uma API (Application Programming Interface) gráfica 2D e 3D Primitivas vectoriais e rasterizadas (imagens) Capaz de gerar

Leia mais

Programação Gráfica Cap 2

Programação Gráfica Cap 2 Programação Gráfica (2.2 a 2.7) Instituto Superior Técnico, 2006/2007 Índice Programação 2D Sistemas de Coordenadas API do OpenGL Primitivas e Atributos Introdução à Cor Projecções Interacção com o Sistema

Leia mais

Computação Gráfica OpenGL 05 3D

Computação Gráfica OpenGL 05 3D Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica OpenGL 05 3D Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Desenho de uma matriz de retângulos Serve de base para o exercício das cores

Desenho de uma matriz de retângulos Serve de base para o exercício das cores Desenho de uma matriz de retângulos Serve de base para o exercício das cores Leandro Tonietto Processamento Gráfico - Unisinos ltonietto@unisinos.br http://professor.unisinos.br/ltonietto 19-Mar-2014 Leandro

Leia mais

Estrutura de um programa gráfico

Estrutura de um programa gráfico Módulo 2 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Estrutura de um programa gráfico SGRAI 2017/18 DEI-ISEP 22 Conteúdo Arquitetura de um programa

Leia mais

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Pipeline de Visualização Câmara Virtual Edward Angel, Cap. 5 Apontamentos CG Questão 2, exame de 20/07/11 [3.0v]Considere os

Leia mais

Matriz de transformação

Matriz de transformação OpenGL Matriz de transformação geométricas no espaço - representadas por matrizes; pilha de matrizes de transformação - lembrar a seqüência de transformações realizadas; glpushmatrix() - insere a matriz

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark º Exame 29 Junho de 2 O exame tem a duração de 2h3, tolerância incluída. Responda às questões unicamente nestas

Leia mais

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Pipeline de Visualização Câmara Virtual 2 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL Edward Angel, Cap. 5 Apontamentos

Leia mais

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Prof. Fernando V. Paulovich  3 de maio de SCC Computação Gráca Viewing Pipeline 2D SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012 CG / Terceiro Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Terceiro Teste 9 de Maio de O teste tem a duração de h, tolerância

Leia mais

Uma API para geração de gráficos

Uma API para geração de gráficos Miguel Leitão, 2008 OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas vectoriais e matriciais (imagens) Capaz de gerar imagens de alta qualidade Normalmente implementada de forma a tirar

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda Primeiro Teste 7 de Março de O teste tem a duração de h, tolerância incluída. Responda às questões unicamente

Leia mais

7. Projeções Geométricas e Visualização 3D

7. Projeções Geométricas e Visualização 3D 7. Projeções Geométricas e Visualização 3D Aprendemos a criar e transformar geometricamente objetos 3D, no entanto, nossa janela de visualização é apenas bi-dimensional. Assim, necessitamos desenvolver

Leia mais

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Pipeline de Visualização Câmara Virtual 215 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL Edward Angel, Cap. 5

Leia mais

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler Introdução a OpenGL Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler Adaptado do material de Marcela X. Ribeiro Maria Cristina F. de Oliveira Rosane Minghim Sumário Introdução Núcleo OpenGL, GLU,

Leia mais

Visualização 3D. Soraia Raupp Musse

Visualização 3D. Soraia Raupp Musse Visualização 3D Soraia Raupp Musse 1 Pipeline de Visualização Em 2D as coisas são mais simples Simplesmente especificar uma janela do mundo 2D e uma viewport na superfície de visualização A complexidade

Leia mais

António Costa. Paulo Roma Cavalcanti

António Costa. Paulo Roma Cavalcanti Introdução à Computação Gráfica OpenGL Básico Adaptação: Autoria: João Paulo Pereira António Costa Claudio Esperança Paulo Roma Cavalcanti OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas

Leia mais

Iluminação. Aula 6. Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto. Paulo Gandra de Sousa

Iluminação. Aula 6. Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto. Paulo Gandra de Sousa Iluminação Aula 6 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa psousa@dei.isep.ipp.pt Conteúdo Tipos de iluminação Materiais Luzes Modelos de iluminação

Leia mais

Projeções e Transformações em 3D

Projeções e Transformações em 3D Projeções e Transformações em 3D Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc. Sumário O que são projeções Conversão 3D-2D Tipos de Projeção Projeções Paralelas Projeções Isométricas

Leia mais

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017) Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição

Leia mais

Câmara Virtual Simples

Câmara Virtual Simples Câmara Virtual Simples Edward Angel, Cap. 5 Instituto Superior Técnico Computação Gráfica 29/2 Na última aula... Pipeline de Visualiação 3D Câmara Virtual 2, CG&M/IST e Figuras Addison Wesley Sumário Câmara

Leia mais

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10) 4.6 a 4.) Transformações (Cap 4.3, 4.4 e 4.6 a 4.) Instituto Superior Técnico, 26/27 Sumário Revisões Transformações Elementares Coordenadas Homogéneas Composição de Transformações Transformações em OpenGL

Leia mais

Visualização e Projeções

Visualização e Projeções Visualização e Projeções 35M34 Sala 3E1 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 1 Introdução Arestas de mesmo tamanho tem tamanhos aparentes diferentes Linhas paralelas convergindo História Vasos

Leia mais

2º Exame. Computação Gráfica

2º Exame. Computação Gráfica 2º Exame Computação Gráfica LEIC-A/T Prof. Mário Rui Gomes Prof. João Pereira Prof. Daniel Gonçalves 19 de Julho 2008 Nº Nome: A O exame tem a duração de 2 horas, tolerância incluída. Responda às questões

Leia mais

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa Projecções e modelos hierárquicos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa psousa@dei.isep.ipp.pt Conteúdo Projecções Modelos hierárquicos

Leia mais

FCG2006 Prova sobre OpenGL e Rastreamento de Raios

FCG2006 Prova sobre OpenGL e Rastreamento de Raios FCG2006 Prova sobre OpenGL e Rastreamento de Raios Aluno(a): matrícula: 1. O programa SimpleLight.c mostrado no Quadro 1 produz a janela mostrada na Figura 1. A partir do código, calcule coordenadas na

Leia mais

1º Exame. Computação Gráfica

1º Exame. Computação Gráfica 1º Exame Computação Gráfica LEIC-A/T Prof. Mário Rui Gomes Prof. João Pereira Prof. Daniel Gonçalves 5 de Julho 28 Nº Nome: A O exame tem a duração de 2 horas, tolerância incluída. Responda às questões

Leia mais

Transformações 3D. Soraia Raupp Musse

Transformações 3D. Soraia Raupp Musse Transformações 3D Soraia Raupp Musse 1 Translação Coord. Homogêneas x y 1 t x 1 t y 1 x y x y x + t x y + t y t p p r r r + ' 2 x y x + t x y + t y y Escala Coord. Homogêneas x y s x s y 1 x y x y s x

Leia mais

1º Exame. Computação Gráfica

1º Exame. Computação Gráfica 1º Exame Computação Gráfica LEIC-A/T Prof. Mário Rui Gomes Prof. João Pereira Prof. Daniel Gonçalves 5 de Julho 28 Nº Nome: B O exame tem a duração de 2 horas, tolerância incluída. Responda às questões

Leia mais

Introdução à Computação Gráfica OpenGL Básico. Claudio Esperança Paulo Roma Cavalcanti

Introdução à Computação Gráfica OpenGL Básico. Claudio Esperança Paulo Roma Cavalcanti Introdução à Computação Gráfica OpenGL Básico Claudio Esperança Paulo Roma Cavalcanti OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas vetoriais e matriciais (imagens) Capaz de gerar

Leia mais

Recorte. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Recorte. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Recorte Edward Angel, Cap. 7 Apontamentos CG Matéria Primeiro Teste 26 de Outubro 2013 Tudo até Sombreamento (inclusivé) 26/10-9h00

Leia mais

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Repescagem 12 de Janeiro de 2016 A repescagem de um dos testes tem a duração de 1h00. Na repescagem de ambos

Leia mais

Introdução a OpenGL. Profª. Alessandra Martins Coelho

Introdução a OpenGL. Profª. Alessandra Martins Coelho Introdução a OpenGL Profª. Alessandra Martins Coelho março/ 2013 OpenGL OpenGL é uma API gráfica que permite a criação de imagens gráficas 2D e 3D, através da definição de objetos (2D/3D) por um conjunto

Leia mais

- INF Remoção de faces ocultas Aula 21

- INF Remoção de faces ocultas Aula 21 Geração da imagem - INF007- Remoção de faces ocultas Aula Dada a representação vetorial de um objeto, como apresentá-lo na tela por pontos? Imagem aramada Exibição de faces Dada a representação vetorial

Leia mais

Sistemas Gráficos e Modelos

Sistemas Gráficos e Modelos Sistemas Gráficos e Modelos Edward Angel, Cap. 1 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Contacto com corpo docente Nos contactos com o corpo docente de CG Indiquem o campus a que pertencem!

Leia mais

n À primeira vista: basta desenhar n Uma subrotina para desenhar cada tipo de objeto n Mas... n Como fazer interação? n Como estruturar a cena?

n À primeira vista: basta desenhar n Uma subrotina para desenhar cada tipo de objeto n Mas... n Como fazer interação? n Como estruturar a cena? Programação Gráfica Computação Gráfica OpenGL Renato Ferreira À primeira vista: basta desenhar Uma subrotina para desenhar cada tipo de objeto Mas... Como fazer interação? Como estruturar a cena? Como

Leia mais

Pipeline de Visualização 3D

Pipeline de Visualização 3D Pipeline de Visualização 3D André Tavares da Silva andre.silva@udesc.br Capítulo 5 de Foley Capítulo 2 de Azevedo e Conci Processo de Visualização https://www.youtube.com/watch?v=ogqam2mykng Processo de

Leia mais

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann CCI 36 Computação Gráfica OpenGL Parte 2 Instituto Tecnológico de Aeronáutica Prof. Carlos Henrique Q. Forster Sala 121 IEC Luiz Felipe Simões Hoffmann Tópicos da Aula - Índices - Transformações Geométricas

Leia mais

CIV2802 Sistemas Gráficos para Engenharia Luiz Fernando Martha André Pereira

CIV2802 Sistemas Gráficos para Engenharia Luiz Fernando Martha André Pereira CIV2802 Sistemas Gráficos para Engenharia 2015.1 Cor / OpenGL Luiz Fernando Martha André Pereira Para recordar Computação Gráfica Dado Imagem Computação Gráfica Dado Visualização Imagem Computação Gráfica

Leia mais

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro Transformações de Visualização 2D: Clipping Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro 1 Clipping (recorte) Qualquer procedimento que identifica porções de uma figura que estão

Leia mais

Introdução Prática à Programação em OpenGL

Introdução Prática à Programação em OpenGL Introdução Prática à Programação em OpenGL Marcelo Walter Objetivos Demonstrar o suficiente de OpenGL, a fim de que você possa escrever um programa de computação gráfica interativo com objetos 3D 2 SIGGRAPH

Leia mais

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio OpenGL 3.* INF2610 - Rendering em Tempo Real Waldemar Celes Departamento de Informática, PUC-Rio celes@inf.puc-rio.br OpenGL API para interface com hardware gráfico Independente de plataforma (e de sistema

Leia mais

Enquadramento e Conceitos Fundamentais

Enquadramento e Conceitos Fundamentais Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Enquadramento e Conceitos Fundamentais Edward Angel, Cap. 1 Questão 9, exame de 29/06/11 [0.5v] Identifique e descreva os três

Leia mais

OpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

OpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102 OpenGL 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 1 Introdução Definição História Portabilidade 2 Vantagens Rápida Simples Robusta Padrão aberto Multiplataforma Mecanismo de incorporação

Leia mais

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 2 Introdução a OpenGL OpenGL básico OpenGL (Open Graphical Library) Uma API para geração de gráficos 3D

Leia mais

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018) Computação Gráfica - Aula 2 (atualizada em 15/08/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional

Leia mais

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio OpenGL Conceitos Básicos Waldemar Celes Tecgraf/PUC-Rio 1 API OpenGL: o que é? Interface para programador de aplicação Aplicação Aplicação API abstrata OpenGL API Software & Hardware Dispositivo de saída

Leia mais

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio. OpenGL: o que é? Interface para programador de aplicação. Aplicação API abstrata

OpenGL. Conceitos Básicos. Waldemar Celes. Tecgraf/PUC-Rio. OpenGL: o que é? Interface para programador de aplicação. Aplicação API abstrata OpenGL Conceitos Básicos Waldemar Celes Tecgraf/PUC-Rio 1 OpenGL: o que é? API Interface para programador de aplicação Aplicação Aplicação API abstrata OpenGL API Software & Hardware Dispositivo de saída

Leia mais

Enquadramento e Conceitos Fundamentais

Enquadramento e Conceitos Fundamentais Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Enquadramento e Conceitos Fundamentais Edward Angel, Cap. 1 Questão 9, exame de 29/06/11 [0.5v] Identifique e descreva os três

Leia mais

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Prof. Fernando V. Paulovich  3 de maio de SCC Computação Gráca Transformações Geométricas 3D SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

1º Teste de Computação Gráfica 3º Ano

1º Teste de Computação Gráfica 3º Ano 1º Teste de omputação Gráfica 3º no Licenciatura em Eng. Informática e de omputadores Prof. responsável risson Lopes 5 de Maio de 2000 Nº «Número» Nome: «Nome» Sala: «Sala» Responda às questões seguintes

Leia mais

Computação Gráfica OpenGL 05 3D

Computação Gráfica OpenGL 05 3D Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica OpenGL 05 3D Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Determinação da Visibilidade

Determinação da Visibilidade Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Determinação da Visibilidade Beatriz Sousa Santos, J. Madeira Uma classificação Os métodos de visibilidade podem ser basicamente

Leia mais

Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi. Universidade Católica de Pelotas Centro Politécnico Ciência da Computação

Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi. Universidade Católica de Pelotas Centro Politécnico Ciência da Computação Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi Universidade Católica de Pelotas Centro Politécnico Ciência da Computação Sumário Visualização Tridimensional Projeção Projeção Ortográfica

Leia mais

Algoritmos de Recorte em 2D

Algoritmos de Recorte em 2D Algoritmos de Recorte em 2D Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc. Sumário Conceito de Recorte (Clipping) Introdução Algoritmo simples (Força Bruta) Algoritmo de Cohen-Sutherland

Leia mais

Os pixels ou pontos podem ser endereçados por dois inteiros, o número horizontal do pixel (dcx) e o número vertical do pixel (dcy).

Os pixels ou pontos podem ser endereçados por dois inteiros, o número horizontal do pixel (dcx) e o número vertical do pixel (dcy). 8 Sistemas de coordenadas Introdução Em computação gráfica grande quantidade de dados são manipulados e esses dados são altamente quantificados em vários sistemas de coordenadas. Os dispositivos gráficos

Leia mais

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Visibilidade Edward Angel, Cap. 7 Apontamentos CG Pipeline de Visualização 3D Pipeline de Visualização 3D LEIC CG Sombreamento

Leia mais

Exame de Época Especial Computação Gráfica

Exame de Época Especial Computação Gráfica Exame de Época Especial Computação Gráfica LEIC/MEIC Ano Lectivo de 2008/2009 Prof. João Brisson Lopes 9 de Setembro 2009 Nº Nome: Responda o mais completamente às seguintes questões justificando adequadamente

Leia mais

Visualização 2D: - Transformação window to viewport - Clipping

Visualização 2D: - Transformação window to viewport - Clipping Visualização 2D: - Transformação window to viewport - Clipping Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Transformação de Visualização (window to viewport) Objectivo: obter uma matriz de transformação

Leia mais

Visualização em 3-D - Projeções Planares

Visualização em 3-D - Projeções Planares Visualização em 3-D - Projeções Planares Projetores PRP - Centro de Projeção A n (u,v,n) - sistema de coordenadas do plano de projeção (x,y,z) - sistema de coordenadas do objeto (regra da mão direita -

Leia mais

OpenGL. Computação Gráfica ISEL/DEETC/SP Computação Gráfica

OpenGL. Computação Gráfica ISEL/DEETC/SP Computação Gráfica OpenGL Computação Gráfica CG @ 2007 ISEL/DEETC/SP Computação Gráfica 1 Jellys Tetris Gorillas PacMan Sokoban 3 Sumário Introdução ao OpenGL (capítulos 1 e 2 do red book) O que é? Sintaxe Máquina de estados

Leia mais

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015 CG 015/016 Segundo Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Segundo Teste 18 de Novembro de 015 O teste tem a duração

Leia mais

Modelo gráfico do VTK: Fonte de Luz e Câmara

Modelo gráfico do VTK: Fonte de Luz e Câmara Modelo gráfico do VTK: Fonte de Luz e Câmara J. Barbosa J. Tavares Visualização Científica Fonte de Luz e Câmara Para criar uma cena 3D (render) é necessário definir pelo menos uma Fonte de Luz e uma câmara.

Leia mais

Modelo gráfico do VTK: Fonte de Luz e Câmara

Modelo gráfico do VTK: Fonte de Luz e Câmara Modelo gráfico do VTK: Fonte de Luz e Câmara J. Barbosa J. Tavares Fonte de Luz e Câmara Para criar uma cena 3D (render) é necessário definir pelo menos uma Fonte de Luz e uma câmara. Se não forem criados

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Exame de Recurso 29 de Junho de 2011

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Exame de Recurso 29 de Junho de 2011 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Exame de Recurso 29 de Junho de 211 O exame tem a duração de 2h3, tolerância incluída. Responda às questões

Leia mais

1º Teste de Computação Gráfica

1º Teste de Computação Gráfica 1º Teste de Computação Gráfica LEIC/LESIM/LCI Prof. João Brisson Lopes Prof. Mário Rui Gomes 15 de Abril de 23 Nº Nome: Responda às questões seguintes justificando adequadamente todas as respostas. O teste

Leia mais

Técnicas de renderização com textura

Técnicas de renderização com textura Técnicas de renderização com textura INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 12 de Setembro de 2013 W. Celes Técnicas de renderização

Leia mais

Seleção & feedback. Módulo 12. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 333. Instituto Superior de Engenharia do Porto

Seleção & feedback. Módulo 12. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 333. Instituto Superior de Engenharia do Porto Módulo 12 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Seleção & feedback SGRAI 2017/18 DEI-ISEP 333 Conteúdo Modos do OpenGL Seleção Picking Feedback

Leia mais

Exame de 1ª Época Computação Gráfica

Exame de 1ª Época Computação Gráfica Exame de 1ª Época Computação Gráfica LEIC/MEIC Ano Lectivo de 2008/2009 Prof. João Brisson Lopes Prof. Mário Rui Gomes 2 de Julho 2009 Nº Nome: Responda o mais completamente às seguintes questões justificando

Leia mais

Engenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)

Engenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018) Computação Gráfica - Aula 2 (atualizada em 22/04/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional

Leia mais

Revisões. Módulos Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 228. Instituto Superior de Engenharia do Porto

Revisões. Módulos Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 228. Instituto Superior de Engenharia do Porto Módulos 1-10 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Revisões SGRAI 2017/18 DEI-ISEP 228 Desenho de objectos simples glbegin(mode) / glend()

Leia mais

Visualização por Computador: Teoria, Prática e Aplicações

Visualização por Computador: Teoria, Prática e Aplicações Visualização por Computador: Teoria, Prática e Aplicações Princípios de sistemas e aplicações gráficas Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Master of Information

Leia mais

Computação Gráfica OpenGl 01

Computação Gráfica OpenGl 01 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica OpenGl 01 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Objetos definidos no seu próprio sistema de coordenadas

Objetos definidos no seu próprio sistema de coordenadas Transformações Modelagem Iluminação (Shading) Transformação Câmera A história até aqui Recorte Projeção Rasterização Visibilidade Transformações Modelagem Iluminação (Shading) Transformação Câmera Recorte

Leia mais

André Tavares da Silva

André Tavares da Silva André Tavares da Silva andre.silva@udesc.br The Red Book e http://openglbook.com/the-book.html O que é OpenGL? Open Graphics Library Uma interface de software com o hardware gráfico ; Atualmente na versão

Leia mais

OpenGL. Parte I: Geometria. Waldemar Celes Departamento de Informática Tecgraf/PUC-Rio

OpenGL. Parte I: Geometria. Waldemar Celes Departamento de Informática Tecgraf/PUC-Rio OpenGL Parte I: Geometria Waldemar Celes Departamento de Informática Tecgraf/PUC-Rio API OpenGL: : o que é? Interface para programador de aplicação Aplicação API Hardware & Software API abstrata Dispositivo

Leia mais

FUNDAMENTOS E APLICAÇÕES. Luis Valente

FUNDAMENTOS E APLICAÇÕES. Luis Valente FUNDAMENTOS E APLICAÇÕES Luis Valente 1 DIÁRIO DE BORDO OpenGL Aplicações Usando OpenGL Sistema de Janelas Primitivas Cores e Sombreamento Transformações e Projeções Composição de Objetos Mapeamento de

Leia mais

Computação Gráfica - 13

Computação Gráfica - 13 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 13 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais