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

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

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

Transcrição

1 Computação Gráfica GLSL - Introdução e Programação da Aplicação OpenGL António nio Ramires Fernandes - Multimédia

2 Evolução do Hardware Gráfico PCs Controladores VGA (Video Graphics Array) Introduzido em 1987 pela IBM Todo o esforço computacional é realizado pelo CPU. O VGA é utilizado somente como frame buffer. DI-UM Multimédia 2

3 Evolução do Hardware Gráfico PCs GPU (Graphics Processing Unit) Termo introduzido pela nvidia em 1990 quando o termo VGA já não descrevia correctamente o hardware gráfico. DI-UM Multimédia 3

4 Evolução do Hardware Gráfico PCs 1ª Geração de GPUs até 1998 (nvidia TNT2, ATI Rage) Interpolação: capacidade para calcular os pixels a partir dos vértices de um triângulo e aplicar texturas. DI-UM Multimédia 4

5 Evolução do Hardware Gráfico PCs 2ª Geração de GPUs (GeForce 256, GF 2, Radeon 7500) Transformação de Vértices Cálculo de Iluminação (por vértice) DI-UM Multimédia 5

6 Evolução do Hardware Gráfico PCs 3ª Geração de GPUs 2001 (GeForce 3 e 4, Radeon 8500) Programação ao nível dos vértices DI-UM Multimédia 6

7 Evolução do Hardware Gráfico PCs 4ª Geração de GPUs (GeForce FX, ATI Radeon 9700) Programação ao nível do pixel. DI-UM Multimédia 7

8 GLSL Sumário Pipeline Gráfico Fixo Pipeline Gráfico Programável Vertex Processor Fragment Processor GLSL do Ponto de Vista da Aplicação OpenGL DI-UM Multimédia 8

9 GLSL Sumário Pipeline Gráfico Fixo Pipeline Gráfico Programável Vertex Processor Fragment Processor GLSL do Ponto de Vista da Aplicação OpenGL DI-UM Multimédia 9

10 Pipeline Gráfico Vertex Connectivity Vertices Vertex Transformation Transformed Vertices Primitive Assembly and Rasterization Pixel Positions Fragments Pixel Updates Raster Operations Colored Fragments Fragment Texturing and Coloring DI-UM Multimédia 10

11 Pipeline Gráfico Vertex Transformation Dados de entrada: Vértices com as coordenadas tal como especificadas na aplicação, e outros atributos como normais, cores, coordenadas de textura. Estado do OpenGL Operações: Transformação do vértice de acordo com as matrizes ModelView e Projection; Transformação de normais; Iluminação do vértice; Geração/Transformação das coordenadas de textura. DI-UM Multimédia 11

12 Pipeline Gráfico Primitive Assembly Dados de entrada: Vértices transformados Informação de conectividade (GL_TRIANGLE, GL_QUAD,...) Operações: Construção de primitivas gráficas com vértices já transformados Clipping contra view frustum Back face culling Early Z culling DI-UM Multimédia 12

13 Pipeline Gráfico Rasterization Dados de Entrada Primitivas construídas na fase anterior Operações determina o conjunto de pixels cobertos por uma primitiva geométrica Para cada pixel é calculado o seu conjunto de atributos por interpolação dos atributos dos vértices da primitiva Resultado: conjunto de fragmentos DI-UM Multimédia 13

14 Pipeline Gráfico Rasterization (2) Pixel vs. Fragment Pixel representa o conteúdo do frame buffer numa determinada posição: cor, profundidade, localização,... Fragmento: pixel potencial + atributos. DI-UM Multimédia 14

15 Pipeline Gráfico Texturização e Cor Os dados de entrada desta fase são os valores interpolados na fase anterior para cada fragmento Nesta fase aplicam-se as texturas e calcula-se a cor do fragmento. DI-UM Multimédia 15

16 Pipeline Gráfico Raster Operations Dados de entrada Localização do pixel fragmentos processados (cor e profundidade) Operações Teste de scissor, alpha, stencil, profundidade (sem early Z cull) Operações de blending: combina a cor do fragmento com a cor do pixel existente no color buffer DI-UM Multimédia 16

17 Resumo Visual Pipeline Gráfico LINE( ); TRIANGLE( ) Vertices Geom. Ops. Transf. Vertices Connectivity information Assembly Colored Fragments Fragments Raster Interpolation DI-UM Multimédia 17

18 GLSL Sumário Pipeline Gráfico Fixo Pipeline Gráfico Programável Vertex Processor Fragment Processor GLSL do Ponto de Vista da Aplicação OpenGL DI-UM Multimédia 18

19 Pipeline Programavel Vertex Connectivity Vertices Vertex Transformation Transformed Vertices Primitive Assembly and Rasterization Pixel Positions Fragments Pixel Updates Raster Operations Colored Fragments Fragment Texturing and Coloring DI-UM Multimédia 19

20 Pipeline Programável Vertex Connectivity Vertices Vertex Processor Transformed Vertices Primitive Assembly and Rasterization Pixel Positions Fragments Pixel Updates Raster Operations Colored Fragments Fragment Processor DI-UM Multimédia 20

21 GLSL - Vertex Processor Unidade programável que opera em vértices e nos dados associados (normais, coordenadas de textura,...) Esta unidade é responsável por operações como por exemplo: Transformação de vértices (matrizes modelview e projection) Transformação de normais e sua normalização Geração de coordenadas de textura Transformação de coordenadas de textura Iluminação Cálculo de material DI-UM Multimédia 21

22 GLSL - Vertex Processor Programas que correm nesta unidade são vertex shaders. Um vertex shader substitui toda a funcionalidade do pipeline fixo logo tem de implementar todas as operações desejadas......i.e. não é possível ter um vertex shader para transformar as coordenadas do vértice e ter a iluminação calculada pela componente fixa. DI-UM Multimédia 22

23 GLSL - Vertex Processor Este processador opera num vértice de cada vez, isoladamente, e sem conhecimento dos restantes vértices. Um vertex shader deve obrigatoriamente calcular uma posição e, opcionalmente, cor e outros atributos. O processador tem acesso ao estado do OpenGL actual, assim como algumas variáveis pré-calculadas pelo próprio OpenGL. O vertex processor não tem acesso ao framebuffer, mas pode aceder a texturas. DI-UM Multimédia 23

24 GLSL - Fragment Processor Unidade programável que opera em fragmentos. Esta unidade é responsável por operações como por exemplo: Operações sobre valores interpolados (cores, normais, coordenadas de textura) Acesso a texturas Aplicação de texturas Cálculo de Nevoeiro Cálculo da cor DI-UM Multimédia 24

25 GLSL - Fragment Processor Programas que correm nesta unidade são fragment shaders. Um fragment shader substitui toda a funcionalidade do pipeline fixo logo tem de implementar todas as operações desejadas......i.e. não é possível ter um fragment shader para aceder a texturas e ter o nevoeiro calculada pela componente fixa. DI-UM Multimédia 25

26 GLSL - Fragment Processor Este processador opera num fragmento de cada vez, isoladamente, e sem conhecimento dos fragmentos vizinhos. Um fragment shader pode calcular cor e/ou profundidade ou alternativamente "descartar" o fragmento. O processador tem acesso ao estado do OpenGL actual, assim como algumas variáveis pré-calculadas pelo próprio OpenGL. O fragment shader não pode alterar a coordenada (x,y) do pixel a escrever. DI-UM Multimédia 26

27 GLSL Sumário Pipeline Gráfico Fixo Pipeline Gráfico Programável Vertex Processor Fragment Processor GLSL do Ponto de Vista da Aplicação OpenGL DI-UM Multimédia 27

28 GLSL - Aplicação OpenGL Uma aplicação pode substituir a funcionalidade fixa relativamente aos vértices e/ou aos fragmentos, não sendo obrigada a implementar os dois. Para cada shader é necessário proceder a uma compilação. Depois de compilados os shaders são incorporados num programa que depois será linkado. DI-UM Multimédia 28

29 GLSL - Aplicação OpenGL OpenGL Setup Program Vertex Shader glcreateshader glshadersource glcompileshader glcreateprogram glattachshader glattachshader gllinkprogram Fragment Shader glcreateshader glshadersource glcompileshader gluseprogram DI-UM Multimédia 29

30 GLSL - Aplicação OpenGL Protótipos de funções: GLuint glcreateshader (enum type) Devolve um handler para o shader Recebe como parâmetro o tipo de shader: GL_VERTEX_SHADER GL_FRAGMENT_SHADER DI-UM Multimédia 30

31 GLSL - Aplicação OpenGL Protótipos de funções: GLuint glshadersource(uint shader, sizei count, const char **string, const int *length) shader: O shader ao qual se destina o código. Este valor é o devolvido pela função CreateShader. count: número de strings string: array de strings length: dimensão de cada string, ou NULL, no caso das strings serem terminadas com '\0'. DI-UM Multimédia 31

32 GLSL - Aplicação OpenGL Protótipos de funções: void glcompileshader(uint shader) O resultado da compilação pode ser inquirido através da função GetShaderiv. Os detalhes encontram-se no infolog associado a cada shader. DI-UM Multimédia 32

33 GLSL - Aplicação OpenGL Protótipos de funções: uint glcreateprogram() Devolve um handler para um Program Object. DI-UM Multimédia 33

34 GLSL - Aplicação OpenGL Protótipos de funções: void glattachshader(uint program, uint shader) Função que liga um shader a um programa. Um programa pode ter vários shaders do mesmo tipo, no entanto só um deles pode ter uma função main. Um shader pode também estar associado a vários programas. Esta operação não necessita de ser realizada com um shader compilado, ou até com código, podendo ser efectuada com um shader recém-criado. DI-UM Multimédia 34

35 GLSL - Aplicação OpenGL Protótipos de funções: void gllinkprogram (uint programa) Realiza a operação sobre os shaders ligados ao programa. O estado da operação pode ser consultado através da função GetProgramiv. Os detalhes encontram-se no infolog associado a cada programa. DI-UM Multimédia 35

36 GLSL - Aplicação OpenGL Protótipos de funções: void gluseprogram (uint programa) Se (programa!= 0) a funcionalidade das componentes programáveis passa a ser determinado pelo programa. Se (programa == 0) o sistema gráfico passa a utilizar a funcionalidade fixa DI-UM Multimédia 36

37 GLSL - Aplicação OpenGL Notas: Um programa pode incluir somente um tipo de shader, por exemplo só incluir vertex shader. Nestes casos para o shader omisso será utilizada a funcionalidade fixa. Depois de um programa estar "linkado", pode-se alterar o código dos shaders, e até compilá-los novamente, sem que isso altere o shader. Se um programa estiver a ser utilizado, ao realizar link de novo, substitui-se o programa actual (caso a operação de link tenha sucesso). DI-UM Multimédia 37

38 GLSL - Aplicação OpenGL Código para criação de shaders GLuint v,f; v = glcreateshader (GL_VERTEX_SHADER); f = glcreateshader (GL_FRAGMENT_SHADER); vs = textfileread("stripes.vert"); fs = textfileread("stripes.frag"); glshadersource (v, 1, &vs,null); glshadersource (f, 1, &fs,null); glcompileshader (v); glcompileshader (f); DI-UM Multimédia 38

39 GLSL - Aplicação OpenGL Construção do programa... p = glcreateprogram (); glattachshader(p,v); glattachshader(p,f); gllinkprogram (p); gluseprogram(p); DI-UM Multimédia 39

40 GLSL - Aplicação OpenGL Protótipos de funções: void gldetachshader(gluint prog, GLuint shader); Desliga o shader do programa void gldeleteshader (GLuint shader); Liberta os recursos do shader. Esta operação é realizada imediatamente caso o shader não esta ligado a nenhum programa. Caso contrário o shader só será apagado quando não estiver ligado a nenhum programa. DI-UM Multimédia 40

41 GLSL - Aplicação OpenGL Análise dos resultados da compilação e link void glgetshaderiv(gluint object, GLenum type, int *param); Parameters: object - the handler to the object. Either a shader or a program type - GL_COMPILE_STATUS. param - the return value, GL_TRUE if OK, GL_FALSE otherwise. void glgetprogramiv(gluint object, GLenum type, int *param); Parameters: object - the handler to the object. Either a shader or a program type - GL_LINK_STATUS. param - the return value, GL_TRUE if OK, GL_FALSE otherwise. DI-UM Multimédia 41

42 GLSL - Aplicação OpenGL InfoLog A cada shader ou programa está associado um log, com mensagens sobre o processo de compilação ou link, respectivamente. Através deste log, para alem de ser possível detectar se as operações ocorreram sem erros, ainda pode ser dada informação relativamente à capacidade do hardware para executar o shader. DI-UM Multimédia 42

43 GLSL - Aplicação OpenGL InfoLog A seguinte função dá acesso ao texto do log: void glgetshaderinfolog(gluint object, int maxlen, int *len, char *log); void glgetprograminfolog(gluint object, int maxlen, int *len, char *log); Para determinar o parâmetro infologlength invoca-se a seguinte função: void glgetshaderiv(gluint object, GLenum type, int *param); void glgetprogramiv(gluint object, GLenum type, int *param); DI-UM Multimédia 43

44 GLSL - Aplicação OpenGL Comunicação Aplicação -> Shader Os shaders podem ser parametrizados com valores a receber da aplicação. Estes parâmetros são de leitura para os shaders, i.e. os shaders não podem alterar o seu valor. Existem duas categorias para estes valores: Uniform Attribute DI-UM Multimédia 44

45 GLSL - Aplicação OpenGL Parâmetros Uniform São parâmetros que não variam ao longo da primitiva, ou seja, não devem ser modificados entre glbegin e glend. Ex: Posição da luz, índice de refracção, etc... DI-UM Multimédia 45

46 GLSL - Aplicação OpenGL Parâmetros Uniform Setup: Determinar a sua "localização", ou seja um índice que nos permitirá posteriormente aceder ao parâmetro int loc = glgetuniformlocation (GLuint program, char *name); Utilização: Afectar o valor do parâmetro faz-se, por exemplo, através da seguinte função: void gluniform1f (loc, float a); DI-UM Multimédia 46

47 GLSL - Aplicação OpenGL Parâmetros Attribute São tipicamente parâmetros que podem variar por vértice, tal como acontece com normais, ou coordenadas de textura. Ex: A cada vértice pode estar associada uma velocidade. DI-UM Multimédia 47

48 GLSL - Aplicação OpenGL Parâmetros Attribute Setup: Determinar a sua "localização", ou seja um índice que nos permitirá posteriormente aceder ao parâmetro int loc = glgetattriblocation (GLuint program, char *name); Utilização: Afectar o valor do parâmetro é feito, por exemplo, através da seguinte função: glvertexattrib1f (loc, float a); DI-UM Multimédia 48

49 GLSL - Aplicação OpenGL Parâmetros Attribute: Exemplo glbegin(gl_triangle_strip); glvertexattrib1f(1,1.0); glvertex3f(1,2,3); glvertexattrib1f(1,2.0); glvertex3f(4,5,6);... glend(); DI-UM Multimédia 49

50 GLSL - Aplicação OpenGL Parâmetros Attribute: Vertex Arrays void draw() { glvertexpointer(3, GL_FLOAT, 0, verts); glcolorpointer (3, GL_FLOAT, 0, colors); glvertexattribpointer (VELOCIDADES, 3, GL_FLOAT, GL_FALSE, 0, velocities); glenableclientstate (GL_VERTEX_ARRAY); glenableclientstate (GL_COLOR_ARRAY); glenablevertexattribarray (VELOCIDADES); } gldrawarrays (GL_POINTS, 0, n); DI-UM Multimédia 50

51 GLSL - Aplicação OpenGL Parâmetros Attribute - Vertex Arrays Através da API é possível definir os valores para um atributo de um shader num vertex array, através da função: glvertexattribpointer (VELOCIDADES, 3, GL_FLOAT, GL_FALSE, 0, velocities); sendo VELOCIDADES o identificador do atributo e os restantes parâmetros idênticos à definição de um vertex array normal. O quarto parâmetro indica se os valores estão normalizados. DI-UM Multimédia 51

52 GLSL - Aplicação OpenGL Parâmetros Attribute - Vertex Arrays Tal como com os vertex arrays tradicionais é necessário activar o array através da função: glenablevertexattribarray (VELOCIDADES); Ao executar drawarrays, o vertex shader irá receber para cada vértice, o valor correspondente do array VELOCIDADES como atributo. DI-UM Multimédia 52

53 GLSL - Um Pequeno Exemplo Vertex Shader void main(void) { vec4 v = gl_vertex; v.z = sin(2.0*v.x)*0.5; } gl_position = gl_modelviewprojectionmatrix * v; Fragment Shader void main(void) { gl_fragcolor = vec4(0.8,0.3,0.3,1); } DI-UM Multimédia 53

54 GLSL - Bibliografia, Ferramentas "OpenGL Shading Language", Randi Rost, Addison-Wesley. Especificações: RenderMonkey developer.ati.com Shader Designer DI-UM Multimédia 54

Computação Gráfica. GLSL Programação de Shaders

Computação Gráfica. GLSL Programação de Shaders Computação Gráfica GLSL Programação de Shaders António Ramires Fernandes - Computação Gráfica 07/08 GLSL Sumário Evolução do Hardware Gráfico PCs Pipeline Gráfico Fixo Pipeline Gráfico Programável Processador

Leia mais

GLSL Programação de Shaders

GLSL Programação de Shaders Universidade do Minho Mestrado em Informática UCE - Computação Gráfica GLSL Programação de Shaders António Ramires Fernandes GLSL Sumário Evolução do Hardware Gráfico PCs Pipeline Gráfico Fixo Pipeline

Leia mais

Engenharia Informática Computação Gráfica

Engenharia Informática Computação Gráfica Computação Gráfica 11569 - Engenharia Informática Gráficos 3D - Evolução Histórica Computação Gráfica 1 Sumário! Criação de Gráficos! Criação de Modelos 3D! Pipeline Gráfico! Hardware Gráfico! Bibliotecas

Leia mais

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

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann CCI 36 Computação Gráfica OpenGL Parte 1 Instituto Tecnológico de Aeronáutica Prof. Carlos Henrique Q. Forster Sala 121 IEC Luiz Felipe Simões Hoffmann Tópicos da Aula - OpenGL - Histórico - OpenGL Moderno

Leia mais

Computação Gráfica. GLSL - Programação de Shaders Toon Mapping; Texturas

Computação Gráfica. GLSL - Programação de Shaders Toon Mapping; Texturas Computação Gráfica GLSL - Programação de Shaders Toon Mapping; Texturas António nio Ramires Fernandes - Multimédia GLSL - Programação de Shaders Resumo Toon Shading Coordenadas de Textura Lattice Stripes

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

Geração Procedural de Terrenos em GPU

Geração Procedural de Terrenos em GPU Geração Procedural de Terrenos em GPU Felipe Gomes Sampaio Universidade Federal de Juiz de Fora Departamento de Ciência da Computação Orientadora: Jesuliana Nascimento Ulysses Agenda Introdução GPU Terrenos

Leia mais

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

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

Leia mais

Computação Gráfica. Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho

Computação Gráfica. Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho Computação Gráfica Produção de gráficos 3D Breve visão histórica (OpenGL e 3D na web) António Ramires Fernandes Computação

Leia mais

OpenGL Shading Language

OpenGL Shading Language OpenGL Shading Language Guilherme S. Moura (gsm@cin.ufpe.br) Saulo A. Pessoa (sap@cin.ufpe.br) Vladimir Alves (vap2@cin.ufpe.br) Felipe Maia O que é? High Level Shading Language para OpenGL Descreve shaders

Leia mais

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo GPU (Graphics Processing Unit) Bruno Padilha - 5745282 Gregory De Bonis - 6431180 Luciana Kayo - 6430992 O que é? O que é? - Processador auxiliar responsável principalmente por operações de ponto flutuante

Leia mais

Sumário. Gráficos 3D - Evolução Histórica. Computação Gráfica. ! Criação de Gráficos. ! Criação de Modelos 3D. ! Pipeline Gráfico. !

Sumário. Gráficos 3D - Evolução Histórica. Computação Gráfica. ! Criação de Gráficos. ! Criação de Modelos 3D. ! Pipeline Gráfico. ! Gráficos 3D - Evolução Histórica Computação Gráfica Sumário! Criação de Gráficos! Criação de Modelos 3D! Pipeline Gráfico! Hardware Gráfico! Bibliotecas Gráficas! Gráficos 3D na Internet 1 Criação de Gráficos

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

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

Um pouco de história. SketchPad Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador

Um pouco de história. SketchPad Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador Um pouco de história 1 SketchPad - 1963 Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador http://www.youtube.com/watch?v=bkm3cmrqk2o 2 1 Tecnologia de input 1963 Mouse

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

GPU and GLSL. Prof. João Madeiras Pereira 2008/2009

GPU and GLSL. Prof. João Madeiras Pereira 2008/2009 GPU and GLSL Prof. João Madeiras Pereira 2008/2009 1 Tópicos Evolução do hardware gráfico Pipeline gráfico fixo Pipeline gráfico programável Processador de vértices Processador de fragmentos GLSL Invocação

Leia mais

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais 2/60 Apresentação Introdução Pipeline de renderização Efeitos utilizando GPUs Shaders Como utilizar shaders Ferramentas Demos

Leia mais

Computação Gráfica. GLSL - Programação de Shaders Iluminação

Computação Gráfica. GLSL - Programação de Shaders Iluminação Computação Gráfica GLSL - Programação de Shaders Iluminação António Ramires Fernandes - Computação Gráfica 07/08 Resumo Tipos de Dados, Funções e Controle de Fluxo GLSL - Minimal GLSL - Cores GLSL - Iluminação

Leia mais

Computação Gráfica. GLSL - Programação de Shaders Iluminação

Computação Gráfica. GLSL - Programação de Shaders Iluminação Computação Gráfica GLSL - Programação de Shaders Iluminação António nio Ramires Fernandes - Multimédia Resumo Tipos de Dados, Funções e Controle de Fluxo GLSL - Minimal GLSL - Cores GLSL - Iluminação Direcional

Leia mais

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

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann CCI 36 Computação Gráfica OpenGL Parte 3 Instituto Tecnológico de Aeronáutica Prof. Carlos Henrique Q. Forster Sala 121 IEC Luiz Felipe Simões Hoffmann Tópicos da Aula - Texturas - Modelos de Iluminação

Leia mais

Luiz Gonzaga da Silveira Jr

Luiz Gonzaga da Silveira Jr Luiz Gonzaga da Silveira Jr O p e n G L evolução recente Luiz Gonzaga da Silveira Jr OpenGL 4.x: D3D a guerra não acabou OpenGL 4.2 - novas funcionalidades: Contadores atômicos para shaders Tesselação

Leia mais

Rendering 2D com OpenGL e interface gráfica em Qt

Rendering 2D com OpenGL e interface gráfica em Qt Rendering 2D com OpenGL e interface gráfica em Qt Qt Framework multiplataforma para desenvolvimento de interfaces gráficas em C++ https://www.qt.io/ 2 Ferramentas Qt Creator IDE (Ambiente Integrado de

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: COMPUTAÇÃO GRÁFICA - Semestre 2009/1 CÓDIGO: INF01009 PRÉ-REQUISITO: INF01047 Fundamentos

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

5 Frustum culling em GPU

5 Frustum culling em GPU 5 Frustum culling em GPU 5.1 Timeline gpu Dois dos pioneiros na área de computação gráfica foram os professores da universidade de Utah, David Evans e Ivan Sutherland, que formaram uma empresa em 1968

Leia mais

3 Fundamentos. 3.1 Pipeline de renderização em OpenGL

3 Fundamentos. 3.1 Pipeline de renderização em OpenGL 3 Fundamentos Este capítulo apresenta uma visão geral do pipeline de renderização da versão 4.0 da API OpenGL, tendo como foco os recém-introduzidos estágios de tesselação. Em seguida, é realizada uma

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

DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMPARAÇÃO DE DESEMPENHO ENTRE ROTINAS IMPLEMENTADAS EM CPU E GPU

DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMPARAÇÃO DE DESEMPENHO ENTRE ROTINAS IMPLEMENTADAS EM CPU E GPU UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMPARAÇÃO DE DESEMPENHO ENTRE ROTINAS IMPLEMENTADAS

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

2 Algoritmos de Visibilidade

2 Algoritmos de Visibilidade 2 Algoritmos de Visibilidade Este capítulo vai fazer uma rápida revisão em cima dos principais algoritmos de determinação de visibilidade, classificando-os segundo [14]. Também será identificada no pipeline

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

Instruções Gerais. Enunciado

Instruções Gerais. Enunciado 1 UFF Universidade Federal Fluminense TIC Instituto de Computação TCC Departamento de Ciência da Computação Disciplina: TCC 00.179 Computação Gráfica Professor: Anselmo Montenegro Trabalho de Implementação

Leia mais

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

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

Leia mais

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2. 1 Introdução O termo visualização corresponde, no contexto desta dissertação, aos métodos que permitem a extração de informações relevantes a partir de conjuntos de dados complexos, com o auxílio de técnicas

Leia mais

Entendendo a geometria

Entendendo a geometria No artigo entitulado Um quadrado com Index Buffer propusemos um desafio: o de construir uma malha quadriculada para o desenho de um chão. A função de construção da malha deveria receber como parâmetro

Leia mais

Sistemas Gráficos e Modelos Cap 1

Sistemas Gráficos e Modelos Cap 1 Sistemas Gráficos e Modelos (Cap. 1) Criação de Imagem Instituto Superior Técnico, 2006/2007 1 2 Interior com Reflexos Componentes Hardware: Processadores Gráficos Software: Núcleos Gráficos Aplicações:

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

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

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

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

Leia mais

Computação Gráfica. Iluminação

Computação Gráfica. Iluminação Computação Gráfica Iluminação António nio Ramires Fernandes - Multimédia Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL DI-UM

Leia mais

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

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

Leia mais

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Introdução à OpenGL. Instituto de Computação - UFF

Professor: Computação Gráfica I. Anselmo Montenegro  Conteúdo: - Introdução à OpenGL. Instituto de Computação - UFF Computação Gráfica I Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Introdução à OpenGL 1 OpenGL: introdução OpenGL é uma biblioteca gráfica. É uma interface em software para os dispositivos

Leia mais

Computação Gráfica. Daniela G. Trevisan. dtrevisan@joinville.udesc.br. http://www.joinville.udesc.br/portal/professores/dtrevisan/

Computação Gráfica. Daniela G. Trevisan. dtrevisan@joinville.udesc.br. http://www.joinville.udesc.br/portal/professores/dtrevisan/ Computação Gráfica Daniela G. Trevisan dtrevisan@joinville.udesc.br http://www.joinville.udesc.br/portal/professores/dtrevisan/ Computação Gráfica Jogos (Quake 4) Quake 4 By: Activision, Raven Software

Leia mais

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

Primitivas do OpenGL. Tomás Antônio C. Badan Primitivas do OpenGL Tomás Antônio C. Badan 1 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é

Leia mais

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Frustum Culling Híbrido Utilizando CPU e GPU Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass Agenda Objetivos Motivação Algoritmos de visibilidade Frustum Culling

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

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais João Gabriel Lima Moraes 1 ;Victor Travassos Sarinho 2 1. Bolsista PIBIC/CNPq, Graduando em Engenharia de Computação, Universidade

Leia mais

Pipeline de Visualização Câmara Virtual

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

Leia mais

Bruno Pereira Evangelista. www.brunoevangelista.com

Bruno Pereira Evangelista. www.brunoevangelista.com Bruno Pereira Evangelista www.brunoevangelista.com 2 Introdução Shaders Pipeline de Renderização Evolução dos Shaders Como Programar Shaders Programando Shaders com XNA Ferramentas Conclusões 3 Durante

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

Do triângulo para o quadrado

Do triângulo para o quadrado No artigo anterior, vimos como desenhar um triângulo colorido. Nesse artigo, vamos transformar esse triângulo num quadrado, e mostrar como evitar a duplicação desnecessária de vértices através de um segundo

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

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Niterói 2008 Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Trabalho de Conclusão

Leia mais

Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho desadoc@gmail.com

Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho desadoc@gmail.com Computação Gráfica Renderização em Tempo Real Erivaldo Xavier de Lima Filho desadoc@gmail.com Computação Gráfica É a síntese de imagens por computador Consiste de vários passos: o Modelagem o Renderização

Leia mais

Câmara Virtual Simples

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

Leia mais

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

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

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

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

Leia mais

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica Visão Geral Computaçã ção o Gráfica Introduçã ção, conceitos básicosb sicos, áreas relacionadas Introdução à Computação Gráfica Como funciona um sistema gráfico Como imagens são representadas Áreas relacionadas,

Leia mais

5 Detalhamento de superfícies com tesselação em GPU

5 Detalhamento de superfícies com tesselação em GPU 5 Detalhamento de superfícies com tesselação em GPU Este capítulo descreve o procedimento realizado para a geração de detalhes em GPU usando tesselação em hardware. Inicialmente, será dada uma visão geral

Leia mais

Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn

Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn Computação Gráfica x Realidade Consulta ao BD SELECT nome FROM Pessoa WHERE idade > 25 Sumário Pipeline Gráfico Fixo (Overview)

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

2º Exame de Animação e Visualização Tridimensional

2º Exame de Animação e Visualização Tridimensional º Exame de Animação e Visualização Tridimensional Mestrado de Bolonha em Eng. Informática e de Computadores pólo Alameda Prof. responsável João Madeiras Pereira 3 de Janeiro de 8 Nº Nome: Sala: Responda

Leia mais

4 Processamento Paralelo

4 Processamento Paralelo 4 Processamento Paralelo Como apresentado no Capítulo 3, o algoritmo de mapeamento de textura com relevo é divido em cinco passos: reinicialização de recursos, configuração da câmera, cálculo de lookup

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

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

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

Discretização. 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 Discretização Edward Angel, Cap. 7 Apontamentos CG Pipeline de Visualização 3D Pipeline de Visualização 3D Pipeline de Visualização

Leia mais

Computação Gráfica. Iluminação

Computação Gráfica. Iluminação Computação Gráfica Iluminação António Ramires Fernandes + Luís Paulo Santos - Computação Gráfica 08/09 Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em

Leia mais

Fundamentos de Computação Gráfica. Iluminação

Fundamentos de Computação Gráfica. Iluminação Fundamentos de Computação Gráfica Iluminação Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL 2 Iluminação Em CG a iluminação

Leia mais

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

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti Introdução à Computação Gráfica Claudio Esperança Paulo Roma Cavalcanti Estrutura do Curso Ênfase na parte prática Avaliação através de trabalhos de implementação C / C++ OpenGL c/ GLUT Grau (nota) baseado

Leia mais

As GPU no processamento de vídeo em tempo real

As GPU no processamento de vídeo em tempo real As GPU no processamento de vídeo em tempo real Daniel Oliveira Dantas e Junior Barrera (orientador) Universidade de São Paulo (USP), Brasil ddantas,jb@ime.usp.br 1. Introdução Nos últimos anos, as Unidades

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

6 A GPU. 6.1 Introdução

6 A GPU. 6.1 Introdução 6 A GPU These machines are keeping us alive, while other machines are coming to kill us. Interesting, isn't it? Power to give life, and the power to end it. (The Matrix) 6.1 Introdução Há poucos anos,

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

Animação e Visualização Tridimensional

Animação e Visualização Tridimensional Animação e Visualização Tridimensional Mestrado em Engenharia Informática e de Computadores Alameda º mini-teste 22 de Outubro de 204 O mini-teste tem a duração máxima de 45 minutos, tolerância incluída.

Leia mais

Programação em Sistemas Computacionais

Programação em Sistemas Computacionais Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento

Leia mais

Geração de Geometria - Terrenos

Geração de Geometria - Terrenos Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho Geração de Geometria - Terrenos Imagens e Texturas António Ramires Fernandes Computação Gráfica 09/10 Mapas de Alturas Intensidade

Leia mais

Computação Gráfica. Texturas

Computação Gráfica. Texturas Computação Gráfica Texturas António nio Ramires Fernandes - Multimédia Texturas Aplicar imagens 1D,2D ou 3D a primitivas geométricas Utilizações: Simular materiais: madeira, granito, tijolo Reduzir complexidade

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

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções

Leia mais

Fundamentos de Computação Gráfica. Texturas

Fundamentos de Computação Gráfica. Texturas Fundamentos de Computação Gráfica Texturas Texturas Aplicar imagens 1D,2D ou 3D a primitivas geométricas Utilizações: Simular materiais: madeira, granito, tijolo Reduzir complexidade geométrica Simulação

Leia mais

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento paralelo com Pure Data e GPU. André Jucovsky Bianchi ajb@ime.usp.br Departamento de Ciência da Computação Instituto

Leia mais

Sistemas de coordenadas

Sistemas de coordenadas No artigo passado explicamos como desenhar um simples triângulo na tela. Entretanto, isso foi feito usando o sistema de coordenadas padrão, que mapeia a tela em intervalos de 1 até 1 em cada eixo. Esse

Leia mais

1. Evolução do OpenGL

1. Evolução do OpenGL Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Disciplina: Computação Gráfica Avançada pozzer@inf.ufsm.br 04/17/2016 OpenGL 3.0 1. Evolução do OpenGL

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

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

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot Bruno Pereira dos Santos Dany Sanchez Dominguez Esbel Tomás Evalero Orellana Universidade Estadual de Santa Cruz Roteiro Breve introdução

Leia mais

Enquadramento e Conceitos Fundamentais

Enquadramento e Conceitos Fundamentais Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Enquadramento e Conceitos Fundamentais Edward Angel, Cap. 1 LEIC CG Enquadramento e Conceitos Fundamentais Introdução à Computação

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

Shadow Mapping com Múltiplos Valores de Profundidade

Shadow Mapping com Múltiplos Valores de Profundidade UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO CHRISTIAN AZAMBUJA PAGOT Shadow Mapping com Múltiplos Valores de Profundidade Dissertação apresentada

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

4 Técnicas de Renderização HDR

4 Técnicas de Renderização HDR 4 Técnicas de Renderização HDR Após a apresentação, nos capítulos anteriores, dos conceitos fundamentais e dos trabalhos sobre HDR que influenciaram esta dissertação, esse capítulo tem como objetivo a

Leia mais

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006 Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006 Reflexões - Motivação Ainda não é possível usar algoritmos

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

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Transformações 2D Computação Visual Beatriz Sousa Santos, Joaquim Madeira Transformações 2D Posicionar, orientar e escalar

Leia mais