Engenharia Informática Computação Gráfica
|
|
- Raphaella Oliveira Castilhos
- 7 Há anos
- Visualizações:
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 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 maisComputaçã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 maisProjeçõ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 maisTransformaçõ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 maisComputaçã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 maisVisualizaçã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 mais3D 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 maisTransformaçõ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 maisComputaçã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 maisCap. 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 maisCG 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 maisUniversidade 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 maisCG 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 maisCâ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 maisUniversidade 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 maisSumá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 maisINF1339 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 maisTransformaçõ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 maisOpenGL, 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 maisCG 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 maisSist. 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 maisLAB. 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 maisProgramaçã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 maisComputaçã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 maisDesenho 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 maisEstrutura 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 maisPipeline 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 maisMatriz 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 maisComputaçã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 maisPipeline 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 maisProf. 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 maisComputaçã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 maisUma 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 maisComputaçã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 mais7. 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 maisPipeline 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 maisIntroduçã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 maisVisualizaçã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 maisAntó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 maisIluminaçã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 maisProjeçõ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 maisOpenGL. 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 maisCâ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 maisTransformaçõ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 maisVisualizaçã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 mais2º 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 maismodelos 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 maisFCG2006 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 mais1º 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 maisTransformaçõ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 mais1º 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 maisIntroduçã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 maisRecorte. 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 maisCG 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 maisIntroduçã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
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 maisSistemas 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 maisn À 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 maisPipeline 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 maisInstituto 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 maisCIV2802 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 maisTransformaçõ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 maisIntroduçã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 maisOpenGL 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 maisEnquadramento 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 maisOpenGL. 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 maisComputaçã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 maisOpenGL. 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 maisOpenGL. 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 maisOpenGL. 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 maisEnquadramento 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 maisProf. 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 mais1º 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 maisComputaçã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 maisDeterminaçã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 maisDisciplina: 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 maisAlgoritmos 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 maisOs 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 maisVisibilidade. 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 maisExame 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 maisVisualizaçã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 maisVisualizaçã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 maisOpenGL. 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 maisCG 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 maisModelo 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 maisModelo 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 maisComputaçã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 mais1º 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 maisTé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 maisSeleçã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 maisExame 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 maisEngenharia 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 maisRevisõ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 maisVisualizaçã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 maisComputaçã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 maisObjetos 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 maisAndré 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 maisOpenGL. 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 maisFUNDAMENTOS 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 maisComputaçã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