Primitivas do OpenGL. Tomás Antônio C. Badan

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

Download "Primitivas do OpenGL. Tomás Antônio C. Badan"

Transcrição

1 Primitivas do OpenGL Tomás Antônio C. Badan 1

2 Primitivas Formas simples que combinadas, geram objetos mais complexos Blocos de construção de objetos Podem ser 1D, 2D ou 3D Vão desde pontos, linhas até polígonos 2

3 Volume de Visualização Estabelecido no espaço de modelagem Definido, por exemplo, pela função: glortho(-100, 100, -100, 100, -100, 100); 3

4 Pixel e Vertex Pixel Menor elemento do monitor de computador Vertex Definido em um plano 2D Um ponto no espaço de modelagem Definido em um espaço 3D Pode ser definido em um espaço 2D Basta considerar Z = 0 No OpenGL glvertex 4

5 Definindo pontos no Espaço 3D É estabelecido por uma série de pontos (função glvertex), encapsulado pelo bloco glbegin(gl_points)/glend() 5

6 Vertex* - GL_POINTS GLint p[5][2] = {{0,50}, {-47,15}, {-29,-40}, {29,-40}, {47,15}}; glbegin(gl_points); glvertex2iv(p[0]); glvertex2iv(p[2]); glvertex2iv(p[4]); glvertex2iv(p[1]); glvertex2iv(p[3]); glend(); 6

7 Propriedades de Pontos Tamanho do ponto (padrão) 1 pixel Alterando o tamanho: void glpointsize(glfloat size); Existem valores máximos e mínimos Obtendo a faixa permissível: GLfloat sizes[2], step; glgetfloatv(gl_point_size_range, sizes); glgetfloatv(gl_point_size_granularity, &step); 7

8 Propriedades de Pontos (2) Pontos são desenhados no formato quadricular Valores de tamanhos não necessitam ser inteiros São aproximações do diâmetro de um círculo contendo todos os pixels que são usados para desenhar o ponto 8

9 Definindo Retas no Espaço 3D Uma reta é definida por 2 pontos Ponto é definido pela função glvertex Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_lines)/glend() Cada 2 pontos define uma reta Ponto solteiro é descartado 9

10 Vertex* - GL_LINES GLint p[5][2] = {{0,50}, {-47,15}, {-29,-40}, {29,-40}, {47,15}}; glbegin(gl_lines); glvertex2iv(p[0]); glvertex2iv(p[2]); glvertex2iv(p[4]); glvertex2iv(p[1]); glvertex2iv(p[3]); glend(); 10

11 Definindo Segmentos de Retas Reta definida por 2 pontos Último ponto de um segmento de reta pode ser considerado como primeiro ponto para o próximo segmento Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_line_strip)/glend() Todos os pontos são utilizados 11

12 Vertex* - GL_LINE_STRIP GLint p[5][2] = {{0,50}, {-47,15}, {-29,-40}, {29,-40}, {47,15}}; glbegin(gl_line_strip); glvertex2iv(p[0]); glvertex2iv(p[2]); glvertex2iv(p[4]); glvertex2iv(p[1]); glvertex2iv(p[3]); glend(); 12

13 Definindo Segmentos Fechados Equivale ao caso anterior, exceto que o último ponto é conectado ao primeiro Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_line_loop)/glend() 13

14 Vertex* - GL_LINE_LOOP GLint p[5][2] = {{0,50}, {-47,15}, {-29,-40}, {29,-40}, {47,15}}; glbegin(gl_line_loop); glvertex2iv(p[0]); glvertex2iv(p[2]); glvertex2iv(p[4]); glvertex2iv(p[1]); glvertex2iv(p[3]); glend(); 14

15 Propriedades das Linhas Tamanho da linha 1 pixel Alterando o tamanho: void gllinewidth(glfloat width); Obtendo os valores máximo e mínimo Sizes[0] valor mínimo Sizes[1] valor máximo GLfloat sizes[2], step; glgetfloatv(gl_line_width_range, sizes); glgetfloatv(gl_line_width_granularity, &step); 15

16 Propriedades das Linhas (2) Tracejado Primeiramente, deve ser habilitado com: glenable(gl_line_stipple); Pode ser desabilitado a qualquer momento por: gldisable(gl_line_stipple); Tipo de tracejado é definido por: void gllinestipple(glint factor, Glushort pattern); 16

17 Propriedades do Tracejado (2) Pattern 16 bits, onde cada bit representa 1 pixel que está on ou off Factor multiplicador de pixels Cada pixel do pattern é multiplicado por este valor 17

18 Definindo Polígonos Polígonos são consideradas superfícies Não definem apenas o perímetro, mas são fechadas e opacas Possuem dois lados Definido pela ordem que pontos são definidos (winding) Interno Sentido horário regra da mão esquerda Externo Sentido antihorário mão direita 18

19 Polígonos Definições Composto de vértices, arestas (edges) e faces Devem ser convexos Não podem haver arestas cruzadas 19

20 Triângulos É definido por 3 pontos Ponto é definido pela função glvertex Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_triangles)/glend() Se os pontos forem menor do que 3, são descartados 20

21 Triângulos (2) GLint pts[6][2] = {{-100, 0}, {-50, -86}, {50, -86}, {100, 0}, {50, 86}, {-50, 86}}; glbegin(gl_triangles); glvertex2iv(pts[0]); glvertex2iv(pts[1]); glvertex2iv(pts[5]); glvertex2iv(pts[2]); glvertex2iv(pts[3]); glvertex2iv(pts[4]); glend(); 21

22 Winding 22

23 Tiras de Triângulos Um novo triângulo pode ser definido pelos dois últimos pontos do triângulo anterior e definindo um novo ponto Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_triangle_strip)/glend() 23

24 Tiras de Triângulos (2) GLint pts[6][2] = {{-100, 0}, {-50, -86}, {50, -86}, {100, 0}, {50, 86}, {-50, 86}}; glbegin(gl_triangle_strip); glvertex2iv(pts[0]); glvertex2iv(pts[1]); glvertex2iv(pts[5]); glvertex2iv(pts[2]); glvertex2iv(pts[4]); glvertex2iv(pts[3]); glend(); 24

25 Tiras de Triângulos (3) Definição do winding Triângulos numerados de 0 a n face externa é definida como: Triângulos pares p n, p n+1 p n+2 Triângulos impares p n+1, p n, p n+2 25

26 Ventoinha de Triângulos Um novo triângulo é formado pelo primeiro ponto, pelo último utilizado e pelo novo ponto definido Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_triangle_fan)/glend() 26

27 Ventoinha de Triângulos (2) GLint pts[6][2] = {{-100, 0}, {-50, -86}, {50, -86}, {100, 0}, {50, 86}, {-50, 86}}; glbegin(gl_triangle_fan); glvertex2iv(pts[0]); glvertex2iv(pts[1]); glvertex2iv(pts[2]); glvertex2iv(pts[3]); glvertex2iv(pts[4]); glvertex2iv(pts[5]); glend(); 27

28 Cores É especificado por Vertex Cada vértice pode ter uma cor distinta Função: glcolor Qual cor o polígono vai ter? Depende do modelo de sombreamento glshademodel(gl_flat); Cor do último vértice define a cor do polígono glshademodel(gl_smooth); Cor do polígono é a interpolação das cores de cada vértice 28

29 Exemplo do glshademodel 29

30 Escondendo Superfícies Ocultas Performance Se superfície oculta não precisa ser vista Performance é melhorada se não for desenhada Chamado de culling glenable(gl_cull_face); Voltando a desenhar as superfícies glenable(gl_cull_face); Note que superfícies parcialmente ocultas são desenhadas Note a diferença entre superfície interna e externa interna não é vista quando habilitada 30

31 Culling 31

32 Formatação do Polígono Padrão polígono é preenchido pela cor sólida glpolygonmode(face, modo); Onde: Face GL_FRONT, GL_BACK, GL_FRONT_AND_BACK Mode GL_POINT, GL_LINE, GL_FILL 32

33 Quadriláteros (2) GLint pts[8][2] = { {-10, 10}, {-10, 0}, {0, 0}, {0,10}, {5,5}, {5,0}, {10,0}, {10,5}}; glbegin(gl_quads); glvertex2iv(pts[0]); glvertex2iv(pts[1]); glvertex2iv(pts[2]); glvertex2iv(pts[3]); glvertex2iv(pts[4]); glvertex2iv(pts[5]); glvertex2iv(pts[6]); glvertex2iv(pts[7]); glend(); 33

34 Tiras de Quadriláteros Novo quadrilátero é definido usando os dois últimos pontos e definindo 2 novos pontos Em OpenGL Encapsular os pontos pelo bloco glbegin(gl_quad_strip)/glend() 34

35 Tiras de Quadriláteros (2) GLint pts[8][2] = { {-10, 10}, {-10, 0}, {0, 0}, {0,10}, {5,5}, {5,0}, {10,0}, {10,5}}; glbegin(gl_quad_strip); glvertex2iv(pts[0]); glvertex2iv(pts[1]); glvertex2iv(pts[3]); glvertex2iv(pts[2]); glvertex2iv(pts[4]); glvertex2iv(pts[5]); glvertex2iv(pts[7]); glvertex2iv(pts[6]); glend(); 35

36 Tiras de Quadriláteros (3) Definição do winding GL_QUAD_STRIP Vertices face externa 2n 1, 2n, 2n + 2 e 2n

37 Preenchimento de Polígonos 2 modos: Texturização Aplicando padrões Composto de um bitmap de 32x32 pontos 37

38 Resumo Note que está sendo usado a regra da mão esquerda (visão interior das faces 38

39 FIM 39

40 GL Funções Funções de linhas: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP Funções de preenchimento de áreas: GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON Curvas são aproximadas por polígonos Processo conhecido por Tessellation 40

41 Polígonos - Definições Composto de vértices, arestas (edges) e faces Devem ser convexos Não podem haver arestas cruzadas 41

42 Face Frontal e Traseira Todo polígono tem duas faces Visibilidade diferente para cada face glpolygonmode(face, mode); Vetor normal à superfície mostra a face externa, ou frontal Vértices posicionados no sentido contrário do relógio fornece a face frontal Regra da mão direita Eliminar faces escondidas glenable(gl_cull_face); gldisable(gl_cull_face); 42

43 GL Funções glvertex*: especifica pontos glbegin, glend Delimita os vértices de uma primitiva Primitivas de linha GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, Primitivas de Área GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON glrect*: desenha um retângulo 2D glpushmatrix, glpopmatrix Operações de pilha sobre a matriz corrente 43

44 GL Operação de Matrizes glmatrixmode GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE e GL_COLOR glloadidentity: Substitui a corrente pela matriz identidade glloadmatrix*: substitui a matriz corrente pela especificada glmultmatrix* Multiplica a matriz corrente com a especificada 44

45 Exemplo void desenha(void) { GLfloat cubo[8][3] = { { , , }, { , , }, { , , }, { , , }, { , , }, { , , }, { , , }, { , , } }; GLfloat cubocolor[8][3] = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 1.0, 0.0}, {0.0, 1.0, 1.0}, {1.0, 0.0, 1.0}, }; // limpa o buffer para um novo quadro glclear(gl_color_buffer_bit); glmatrixmode(gl_modelview); // matrix de modelagem glloadidentity(); // zera qualquer transformação glulookat(eye[0], eye[1], eye[2], 0, 0, 0, 0, 1, 0); glbegin(gl_quads); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[3]);glvertex3fv(cubo[3]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glcolor3fv(cubocolor[3]); glvertex3fv(cubo[3]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[3]); glvertex3fv(cubo[3]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glend(); glflush(); } 45

46 GL Miscelâneas glcolor* especifica a cor corrente glclearcolor cor de fundo do buffer glclear: GL_COLOR_BUFFER_BIT ou GL_DEPTH_BUFFER_BIT ou GL_ACCUM_BUFFER_BIT ou GL_STENCIL_BUFFER_BIT glflush: força a execução da pilha de comandos 46

47 GL Miscelâneas (2) glrasterpos* especifica a posição de raster para operações de pixel glnewlist, glgenlists, glcalllist, glendlist Comandos que podem ser chamados e executados posteriormente Úteis para a modelagem de objetos repetitivos glfrustum: matriz perspectiva 47

48 Display List Otimiza a criação de objetos estáticos Armazena os comandos em linguagem de hardware para futuro processamento Depois de criado não pode ser alterado Lista pode ser armazenada no buffer da placa de vídeo ou na memória Normalmente é criada na inicialização do programa Depende do tipo de aplicação (jogos, por exemplo, as utilizaria para inicializar os níveis ou fases) 48

49 Display List - comandos GLuint glgenlists(faixa); Reserva uma faixa de ID de listas Retorna zero no caso de erro glnewlist(id, tipo); / glendlist(); Cria uma lista estática Tipo = GL_COMPILE ou GL_COMPILE_AND_EXECUTE Permitido definição de objetos e mudanças de estado na máquina OpenGL Permite chamar outras listas também 49

50 Display List comandos (2) glcalllist(id); Invoca uma lista previamente criada gldeletelists(id inicial, faixa); Libera a memória de uma lista Evitar colocar informações de textura em lista Desperdício de memória Acesso ao buffer de vídeo não tem sentindo numa lista 50

51 Exemplo void init(void) { GLfloat cubo[8][3] = { { , , }, { , , }, { , , }, { , , }, { , , }, { , , }, { , , }, { , , } }; GLfloat cubocolor[8][3] = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 1.0, 0.0}, {0.0, 1.0, 1.0}, {1.0, 0.0, 1.0}, }; list = glgenlists(1); if (!list) { printf("impossível alocar nova lista\n"); exit(exit_failure); } glnewlist(list, GL_COMPILE); glbegin(gl_quads); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[3]);glvertex3fv(cubo[3]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[1]); glvertex3fv(cubo[1]); glcolor3fv(cubocolor[5]); glvertex3fv(cubo[5]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[2]); glvertex3fv(cubo[2]); glcolor3fv(cubocolor[6]); glvertex3fv(cubo[6]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glcolor3fv(cubocolor[3]); glvertex3fv(cubo[3]); glcolor3fv(cubocolor[4]); glvertex3fv(cubo[4]); glcolor3fv(cubocolor[0]); glvertex3fv(cubo[0]); glcolor3fv(cubocolor[3]); glvertex3fv(cubo[3]); glcolor3fv(cubocolor[7]); glvertex3fv(cubo[7]); glend(); glendlist(); glclearcolor(0, 0, 0, 1.0); // cor de fundo (branco) } 51

52 Exemplo - Continuação void desenha(void) { // limpa o buffer para um novo quadro glclear(gl_color_buffer_bit); // todos os bit são iguais à branco glmatrixmode(gl_modelview); // matrix de modelagem glloadidentity(); // zera qualquer transformação glulookat(eye[0], eye[1], eye[2], 0, 0, 0, 0, 1, 0); // direção de visualização glcalllist(list); glflush(); } // força a visualização 52

53 Display list - comentários Ganho de performance? Não precisa criar o objeto toda vez que é invocado Objetos do mesmo tipo pode ser chamado várias vezes, com uma única inicialização 53

54 Vetor de vértices Permite a criação de lista de forma dinâmica Pode ser mudado o formato do objeto dentro do vetor previamente calculado Exemplo, uma mesh que define o oceano, em cada quadro, a mesh pode ser atualizada No OpenGL, o vetor é transferido do cliente para o servidor em lote Ganho de performance 54

55 Vetor de Vértices - Etapas Construir os vetores vértice, cor, coordenadas de textura, vetor normal, etc Dizer ao OpenGL onde se encontram esses vetores Dizer quais vetores a aplicação está interessada Executar a renderização do quadro 55

56 Vetor de Vértices - Comandos Habilitando vetores: gglenableclientstate(x); gldisableclientstate(x); X = GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_NORMAL_ARRAY, etc Note que é uma operação realizada do lado do cliente e não do servidor 56

57 Vetor de Vértices Comandos (2) Onde estão os dados? glvertexpointer(...); glcolorpointer(...); glnormalpointer(...); Desenhando glarrayelement(índice); Especifica o indice do vetor previamente registrado 57

58 Vetor de Vértices Comandos (3) Forma mais econômica: gldrawarrays(mode, first, count); Desenha o objeto (mode = GL_TRIANGLES, etc), com o índice iniciando em first e count especificando a quantidade Forma usando vetor de índices gldrawelements(mode, count, tipo, indices); Mesmo comentário anterior, onde índice é um vetor 58

59 Exemplo // váriaveis globais, ou estáticas na função // desenha() GLfloat cubo[24] = { , , , , , , , , , , , , , , , , , , , , , , , }; GLfloat cubocolor[24] = { 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0 }; void init(void) { glenableclientstate(gl_vertex_array); glenableclientstate(gl_color_array); glclearcolor(0.5, 0.5, 0.5, 1.0); } void desenha(void) { // limpa o buffer para um novo quadro glclear(gl_color_buffer_bit); // cor de fundo (cinza) // todos os bit são iguais à branco glmatrixmode(gl_modelview); // matrix de modelagem glloadidentity(); // zera qualquer transformação glulookat(eye[0], eye[1], eye[2], 0, 0, 0, 0, 1, 0); // direção de // visualização glvertexpointer(3, GL_FLOAT, 0, cubo); glcolorpointer(3, GL_FLOAT, 0, cubocolor); gldrawelements(gl_quads, 24, GL_UNSIGNED_BYTE, indices); GLubyte indices[24] = { }; 0, 1, 2, 3, 4, 7, 6, 5, 0, 4, 5, 1, 1, 5, 6, 2, 2, 6, 7, 3, 4, 0, 3, 7 glflush(); } // força a visualização 59

60 Bibliografia Adicional ut_examples/examples/examples.html 60

Computação Gráfica. Desempenho

Computação Gráfica. Desempenho Computação Gráfica Desempenho António nio Ramires Fernandes - Multimédia Desempenho Tópicos: Display Lists Vertex Arrays Vertex Buffers DI-UM Multimédia 2 Display Lists As DL permitem ao driver compilar

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

Computação Gráfica. Desempenho

Computação Gráfica. Desempenho Computação Gráfica Desempenho António Ramires Fernandes - Computação Gráfica 07/08 Desempenho Tópicos: Display Lists Vertex Buffer Objects DI-UM Computação Gráfica 07/08 2 Display Lists As DL são um mecanismo

Leia mais

Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho. Desempenho. Display Lists e Vertex Bufer Objects

Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho. Desempenho. Display Lists e Vertex Bufer Objects Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho Desempenho Display Lists e Vertex Bufer Objects António Ramires Fernandes Computação Gráfica 09/10 Desempenho Tópicos: Display

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

Introdução ao OpenGL

Introdução ao OpenGL Introdução ao OpenGL Leandro Tonietto Processamento Gráfico / Computação Gráfica Jogos Digitais ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto Mar-2008 Alguns slides são provenientes da apresentaçã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

feedback Aula 8 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

feedback Aula 8 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa Selecção & feedback Aula 8 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa psousa@dei.isep.ipp.pt Conteúdo Modos do opengl Selecção Picking feedback 60

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

INTRODUÇÃO A OPENGL. Computação Gráfica

INTRODUÇÃO A OPENGL. Computação Gráfica INTRODUÇÃO A OPENGL Computação Gráfica OpenGL (Open Graphic Library) Biblioteca de rotinas gráficas e de modelagem, bi e tridimensional, extremamente portável e rápida. Não é uma linguagem de programação,

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

OPENGL. Matheus Fuhrmann Stigger [1] e Bruna Cavallero Martins

OPENGL. Matheus Fuhrmann Stigger [1] e Bruna Cavallero Martins Matheus Fuhrmann Stigger [1] e Bruna Cavallero Martins [1] Acadêmico do curso de Engenharia da computação da Universidade Católica de Pelotas Bolsista FAPERGS. [2] Acadêmico do curso de Engenharia da computação

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

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

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

Conceitos importantes da Computação Gráfica [3]

Conceitos importantes da Computação Gráfica [3] Programa de Educação Tutorial Ciência da Computação - UFRN Minicurso Agosto de 2012 Conceitos importantes da Computação Gráfica [3] Computação Gráfica é a área da Ciência da Computação que estuda a geração,

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

Introdução Programando com OpenGL Exemplos. O que é OpenGL? [1]

Introdução Programando com OpenGL Exemplos. O que é OpenGL? [1] Sumário ao OpenGL Exemplos Leandro Tonietto Processamento Gráfico / Computação Gráfica Jogos Digitais ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto Mar-2008 Alguns slides são provenientes

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

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

OpenGL Um tutorial. Luis Valente. Instituto de Computação - Universidade Federal Fluminense lvalente@ic.uff.br. Dezembro, 2004

OpenGL Um tutorial. Luis Valente. Instituto de Computação - Universidade Federal Fluminense lvalente@ic.uff.br. Dezembro, 2004 OpenGL Um tutorial Instituto de Computação - Universidade Federal Fluminense lvalente@ic.uff.br Dezembro, 2004 Resumo OpenGL é uma biblioteca para modelagem e visualização tridimensional em tempo real,

Leia mais

Introdução à OpenGL. SCC0250/ Computação Gráfica

Introdução à OpenGL. SCC0250/ Computação Gráfica Introdução à OpenGL SCC0250/0650 - Computação Gráfica Prof. Rosane Minghim https://edisciplinas.usp.br/course/view.php?id=61213 https://edisciplinas.usp.br/course/view.php?id=61210 P.A.E. Diego Cintra

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

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

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

PROGRAMAÇÃO OPENGL LIVRO: TEORIA DA COMPUTAÇÃO GRÁFICA

PROGRAMAÇÃO OPENGL LIVRO: TEORIA DA COMPUTAÇÃO GRÁFICA PROGRAMAÇÃO OPENGL PROGRAMAÇÃO OPENGL Componentes Oficiais GL GLU Não oficiais GLUT PROGRAMAÇÃO OPENGL Disponível em várias linguagens Delph Visual Basic Java C/C++ GLUT http://www.opengl.org/developers/documentation/glut/index.html

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

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

Desenvolvimento de jogos tridimensionais com OpenGL. Bruno Pereira Evangelista

Desenvolvimento de jogos tridimensionais com OpenGL. Bruno Pereira Evangelista Desenvolvimento de jogos tridimensionais com OpenGL Bruno Pereira Evangelista bpevangelista@gmail.com Aula 1 Introdução ao curso Desenhando objetos simples Introdução ao curso Apresentação do curso Pré-requisitos

Leia mais

Introdução à Programação em OpenGL. Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com

Introdução à Programação em OpenGL. Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com Introdução à Programação em OpenGL Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com OPENGL (Open Graphical Library) OpenGL é uma interface de software (API Aplication Program Interface) para aceleração

Leia mais

OpenGL. Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Introdução. Introdução. Carlos Carreto

OpenGL. Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Introdução. Introdução. Carlos Carreto Sumário COMPUTAÇÃO GRÁFICA E INTERFACES OpenGL Carlos Carreto Curso de Engenharia Informática Ano lectivo 2003/2004 Escola Superior de Tecnologia e Gestão da Guarda Introdução Utilização Tipos de dados

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

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

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

COMPUTAÇÃO GRÁFICA - PROF. MSC. LEANDRO TONIETTO SELEÇÃO DE OBJETOS EM OPENGL - SELECT BUFFER

COMPUTAÇÃO GRÁFICA - PROF. MSC. LEANDRO TONIETTO SELEÇÃO DE OBJETOS EM OPENGL - SELECT BUFFER COMPUTAÇÃO GRÁFICA - PROF. MSC. LEANDRO TONIETTO SELEÇÃO DE OBJETOS EM OPENGL - SELECT BUFFER INTRODUÇÃO Além de aspectos visuais de modelagem, é comum em uma aplicação gráfica a seleção de objetos renderizados

Leia mais

Introdução ao OpenGL e à Programação Baseada em Eventos

Introdução ao OpenGL e à Programação Baseada em Eventos Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Introdução ao OpenGL e à Programação Baseada em Eventos Edward Angel, Cap. 2 API Gráfica Interface de software para hardware

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

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

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. Professora: Mercedes Gonzales Márquez

OpenGL. Professora: Mercedes Gonzales Márquez OpenGL Professora: Mercedes Gonzales Márquez Preliminares OpenGL é uma API para criar aplicações interativas que renderizam imagens de alta qualidade compostas de objetos tridimensionais e imagens.. OpenGL

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

OpenGL. http://www.opengl.org. Alberto B. Raposo

OpenGL. http://www.opengl.org. Alberto B. Raposo OpenGL http://www.opengl.org Alberto B. Raposo OpenGL: o que é? API Interface para programador de aplicação Aplicação API abstrata API Hardware & Software Dispositivo de saída Dispositivo de entrada Por

Leia mais

OpenGL. Introdução ao OpenGL. Sistemas de Coordenadas. OpenGL 29/04/2010. Profa. M. Cristina Profa. Rosane. Application Programming Interface (API)

OpenGL. Introdução ao OpenGL. Sistemas de Coordenadas. OpenGL 29/04/2010. Profa. M. Cristina Profa. Rosane. Application Programming Interface (API) OpenGL Introdução ao OpenGL Profa. M. Cristina Profa. Rosane Application Programming Interface (API) Coleção de rotinas que o programador pode chamar Modelo de como estas rotinas operam em conjunto para

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

Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial.

Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial. Informática II Conteúdo 03 Prof. Dr. Leandro Alves Neves Sumário Rasterização Conceitos Fundamentais. Algoritmos de Conversão Matricial. Polígonos Construção e Preenchimento de polígonos com formas arbitrárias

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

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

Tomás Antônio Costa Badan. Mapa de Textura: O Básico

Tomás Antônio Costa Badan. Mapa de Textura: O Básico Tomás Antônio Costa Badan Mapa de Textura: O Básico Introdução De acordo com o www.thefreedictionary.com: Textura Aparência e impressão de uma superfície Superfície de uma material, principalmente sentida

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

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

OpenGL. Soraia Musse

OpenGL. Soraia Musse OpenGL Soraia Musse Roteiro Introdução OpenGL x DirectX Utilização Exemplo de Programa Nomes das Funções/Métodos Bibliotecas Máquina de Estados Linhas, Pontos e Polígonos Transformações Geométricas Introdução

Leia mais

Professor: Rodrigo Caetano Filgueira

Professor: Rodrigo Caetano Filgueira Professor: Rodrigo Caetano Filgueira Primeiro Programa Para entender o funcionamento da GLUT, logo abaixo é apresentado o menor programa OpenGL possível, implementado por [Wright 2000], que simplesmente

Leia mais

Computação Gráfica OpenGl 03

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

Leia mais

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling. Determinação de Superfícies Visíveis M.C.F. de Oliveira Fontes: Hearn & Baker, Cap. 9 Curso CG, University of Leeds (Ken Brodlie): http://www.comp.leeds.ac.uk/kwb/gi21/lectures.html Rendering de Polígonos

Leia mais

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal... Sumário Prefácio...15 Capítulo 1 Introdução...17 Capítulo 2 Instalação...22 2.1 Visão Geral das Bibliotecas OpenGL...22 2.2 Bibliotecas Necessárias para Execução...24 2.3 Bibliotecas Necessárias para Compilação...24

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

Thanks to Isabel Harb Manssour Marcelo Cohen

Thanks to Isabel Harb Manssour Marcelo Cohen Thanks to Isabel Harb Manssour Marcelo Cohen Roteiro 1. Introdução 2. Remoção de Faces Traseiras 3. Algoritmo do Pintor 4. Algoritmo Z-Buffer 5. Árvores BSP Introdução Eliminação de superfícies escondidas

Leia mais

Computação Gráfica. GLSL - Introdução e Programação da Aplicação OpenGL

Computação Gráfica. GLSL - Introdução e Programação da Aplicação OpenGL Computação Gráfica GLSL - Introdução e Programação da Aplicação OpenGL António nio Ramires Fernandes - Multimédia Evolução do Hardware Gráfico PCs Controladores VGA (Video Graphics Array) Introduzido em

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

Interactividade Básica com GLUT e Primitivas Geométricas

Interactividade Básica com GLUT e Primitivas Geométricas Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho Interactividade Básica com GLUT e Primitivas Geométricas GLUT Rato, Teclado e Popup Menus OpenGL Desenho e transformações

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

Modelagem Geométrica

Modelagem Geométrica Modelagem Geométrica Leandro Tonietto Computação Gráfica Desenvolvimento Jogos e Entretenimento Digital ltonietto@unisinos.br http://professor.unisinos.br/ltonietto/jed/cgr/modelgeom.pdf ago-11 02-Mar-11

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

OpenGL Conceitos Básicos

OpenGL Conceitos Básicos Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Disciplina: Computação Gráfica pozzer@inf.ufsm.br 23/05/202 OpenGL Conceitos Básicos Histórico Antes

Leia mais

CRAb Grupo de Computação Gráfica Departamento de Computação UFC

CRAb Grupo de Computação Gráfica Departamento de Computação UFC Computação Gráfica I CRAb Grupo de Computação Gráfica Departamento de Computação UFC Objetivos Estudar equipamentos, técnicas de programação e conceitos matemáticos Para representação, manipulação e projeção

Leia mais

INF2610 Renderização em Tempo Real. Waldemar Celes. 23 de Março de 2017

INF2610 Renderização em Tempo Real. Waldemar Celes. 23 de Março de 2017 Pipeline gráfico INF2610 Renderização em Tempo Real Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 23 de Março de 2017 W. Celes Pipeline gráfico 1 Sistemas Gráficos Sistemas híbridos,

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

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica Introdução Geral a Computação Gráfica Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de 2 Introdução Geral a O que é CG? Áreas de Atuação Definição, Arte e Matemática Mercado

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

Programa de Aprimoramento Discente em Modelagem Geométrica Computacional. Curso Básico de OpenGL

Programa de Aprimoramento Discente em Modelagem Geométrica Computacional. Curso Básico de OpenGL Universidade Federal de Minas Gerais Programa de Aprimoramento Discente em Modelagem Geométrica Computacional Curso Básico de OpenGL Dezembro 2003 Universidade Federal de Minas Gerais Av. Antônio Carlos,

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

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

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

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

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark CG 03/04 Segundo Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Segundo Teste 0 de Novembro de 03 O teste tem a duração de

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

Iluminação. Módulo 10. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 186. Instituto Superior de Engenharia do Porto

Iluminação. Módulo 10. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 186. Instituto Superior de Engenharia do Porto Módulo 10 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Iluminação SGRAI 2017/18 DEI-ISEP 186 Conteúdo Tipos de iluminação Fontes de Luz Modelos

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

Transformações Geométricas e Animação

Transformações Geométricas e Animação Transformações Geométricas e Animação SCC0250/0650 - Computação Gráfica Prof. Rosane Minghim https://edisciplinas.usp.br/course/view.php?id=61213 https://edisciplinas.usp.br/course/view.php?id=61210 P.A.E.

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

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

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

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

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

Prof. Fernando V. Paulovich  3 de agosto de SCC Computação Gráca Dispositivos de Saída e 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

Transformações Geométricas

Transformações Geométricas Transformações Geométricas Profª. Alessandra Martins Coelho março/2013 Objetivos Entender os princípios das transformações geométricas do tipo translação, rotação e escalamento. Efetuar transformações

Leia mais

Prof. Fernando V. Paulovich 25 de abril de SCC Computação Gráca

Prof. Fernando V. Paulovich  25 de abril de SCC Computação Gráca Determinação de Superfícies Visíveis 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)

Leia mais

&RPSXWDomR *UiILFD. $QWRQLR /RSHV $SROLQiULR -~QLRU

&RPSXWDomR *UiILFD. $QWRQLR /RSHV $SROLQiULR -~QLRU &RPSXWDomR *UiILFD $QWRQLR /RSHV $SROLQiULR -~QLRU ÌQGLFH INTRODUÇÃO...1 HISTÓRICO... 1 CLASSIFICAÇÃO DAS APLICAÇÕES... 1 Projeto Assistido por Computador (Computer Aided Design - CAD)... 2 Visualização

Leia mais

Preenchimento de Polígonos

Preenchimento de Polígonos Preenchimento de Polígonos 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

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 Vértices, formas e transformações Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Master of Information Management,

Leia mais

Construção de objeto e superfícies em OpenGL

Construção de objeto e superfícies em OpenGL Sumário Construção de objeto e superfícies em OpenGL Leandro Tonietto Computação Gráfica Jogos Digitais ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/jed/cgr/constopengl.pdf out-08 Introdução

Leia mais

Realismo Visual. Aula 11 UFF

Realismo Visual. Aula 11 UFF Realismo Visual Aula 11 UFF - 2018 Objetivos Melhorar o entendimento das cenas e objetos criados Possibilidade de representação de dados, objetos e cenas complexas Realismo até o nível desejado da forma

Leia mais

1-Introdução ao OpenGL

1-Introdução ao OpenGL 1-Introdução ao OpenGL Prof. João Madeiras Pereira Bibliografia A) OpenGL Programming Guide (4ª Edição) B) Computer Graphics Principles and Practice (Foley, Van Dam) Programa 1- OpenGL (Bibliotecas, Exemplos

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

Programação Gráfica 2D com OpenGL (Aulas 22, 24 e 25)

Programação Gráfica 2D com OpenGL (Aulas 22, 24 e 25) MC102 Introdução à Programação de Computadores Programação Gráfica 2D com OpenGL (Aulas 22, 24 e 25) Felipe P.G. Bergo 1 Introdução OpenGL é uma biblioteca de funções utilizada para programar gráficos.

Leia mais

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca Introdução à Opengl com Java 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

Computação Gráfica Módulo IV OpenGL

Computação Gráfica Módulo IV OpenGL Computação Gráfica Módulo IV OpenGL UniverCidade - Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Considerações Gerais Objetivo: Discutir os principais conceitos

Leia mais