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

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

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

Transcrição

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

2 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 pelo OpenGL Parâmetros Sintaxe Entradas e Saídas Exemplos Futuro do hardware gráfico 2

3 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 pelo OpenGL Parâmetros Sintaxe Entradas e Saídas Exemplos Futuro do hardware gráfico 3

4 O que é GPU? GPU - Unidade de Processamento Gráfico Dedicado a tarefas gráficas tais como transformação e rasterização de modelos 3D 4

5 O que é Shading Language? É uma linguagem que contém funções gráficas específicas que definem as propriedades visuais da superfície de um objecto. Ex.: Cor, iluminação, reflexão, transparência, textura 5

6 Common Shader Languages HLSL: DirectX GLSL: OpenGL CG: Both 6

7 Linguagem de Shading para GPU GLSL é uma linguagem de shading que se executa directamente na GPU Por se tratar de uma linguagem específica para operações gráficas, não podemos usá-las para os mesmos fins das linguagens de propósitos gerais como C, C++, Java 7

8 Inspiração O Renderman, apesar de poderosa, é uma linguagem de rendering offline, ao passo que as linguagens de shading são destinadas às aplicações em tempo real e correm directamente na placa gráfica 8

9 Necessidade de Placas Gráficas programáveis em alto nível CPU : Intel Pentium 4 possui 55M transistores e hoje as placas gráficas já possuem cerca 550 M transistores-1000 M triang/seg 9

10 Motivação para linguagem em alto-nível Hardware gráfico cada vez mais potente e complexo Programação em código assembly é bem pesada GeForce Fx suportando programas com mais de 1000 instruções assembly Programadores necessitam dos benefícios de uma linguagem de alto-nível: Facilidade de programação Facilidade de reuso de código Facilidade de Debug Assembly DP3 R0, c[11].xyzx, c[11].xyzx; RSQ R0, R0.x; MUL R0, R0.x, c[11].xyzx; MOV R1, c[3]; MUL R1, R1.x, c[0].xyzx; DP3 R2, R1.xyzx, R1.xyzx; RSQ R2, R2.x; MUL R1, R2.x, R1.xyzx; ADD R2, R0.xyzx, R1.xyzx; DP3 R3, R2.xyzx, R2.xyzx; RSQ R3, R3.x; MUL R2, R3.x, R2.xyzx; DP3 R2, R1.xyzx, R2.xyzx; MAX R2, c[3].z, R2.x; MOV R2.z, c[3].y; MOV R2.w, c[3].y; LIT R2, R2;... Linguagem de alto-nível float3 cspecular = pow(max(0, dot(nf, H)), phongexp).xxx; float3 cplastic = Cd * (cambient + cdiffuse) + Cs * cspecular; 10

11 Evolução do hardware gráfico Era do 2D nos PCs 1987 : IBM introduz o VGA Placa gráfica é um frame buffer. O CPU faz o esforço computacional : IBM introduz o XGA Placa gráfica possui co-processador especializado para desenhar linhas, desenhar rectângulos e BitBLT. 11

12 Evolução do hardware gráfico Era do 3D nos PCs : nvidia TNT, ATI Rage, 3dfx Voodoo Desenho de triângulos com sombreamento, texturas OpenGL : GeForce 256, Radeon R100 Transformação dos vértices Cálculo da iluminação no vértice OpenGL

13 Evolução do hardware gráfico Era do 3D nos PCs 2001 : GeForce 3, Radeon R200 Programação ao nível dos vértices OpenGL 1.4 extensão ARB_vertex_program! 2002 : GeForce 4 Programas mais complexos 2003 : GeForce FX, Radeon 9500/9800, WildCat VP Programação ao nível dos fragmentos OpenGL 1.5 algum suporte OpenGL 2.0 extensão ARB_vertex_shader! extensão ARB_fragment_shader! Instruções de branching 13

14 Evolução do hardware gráfico 2004: WildCat Realizm, GeForce 6 e 7, ATI x800 cards They support a higher subset of GLSL, including direct texture access from vertex shaders, large program support, hardwarebased noise generation, variable-length arrays, indirect indexing, texture dependent reading, sub-routines, and a standard library for the most common functions (like dot, cross, normalise, sin, cos, tan, log, sqrt, length, reflect, refract, dfdx, dfdy, etc.). They can also use a long list of built-in variables to access many OpenGL states (like gl_lightsource[n].position, gl_texcoord[n], gl_modelviewmatrix, gl_projectioninversematrix, etc.). Data structures are supported as well through C-like structs. Novembro 2006: GeForce 8800 Arquitectura unificada: unified shaders processors 14

15 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 pelo OpenGL Parâmetros Sintaxe Entradas e Saídas Exemplos Futuro do hardware gráfico 15

16 Fixed Pipeline Functionalities 16

17 Fixed Functionality 17

18 Pipeline gráfico fixo 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 (por exemplo: normalização) Iluminação do vértice Geração/Transformação das coordenadas de textura 18

19 Pipeline gráfico fixo Primitive Assembly Dados de entrada Vértices transformados Informação de conectividade (GL_TRIANGLE, GL_QUAD,...) Operações Construção das primitivas gráficas com os vértices já transformados View frustum clipping Back face culling Early Z culling 19

20 Pipeline gráfico fixo Rasterization Dados de Entrada Primitivas construídas na fase anterior Operações Determina o conjunto de fragmentos cobertos por uma primitiva geométrica Para cada fragmento é calculado o seu conjunto de atributos por interpolação dos atributos dos vértices da primitiva Resultado: conjunto de fragmentos 20

21 Pipeline gráfico fixo Rasterization (2) Pixel vs. Fragmento Pixel representa o conteúdo do frame buffer numa determinada posição: cor, profundidade, localização,... Fragmento: pixel potencial + atributos 21

22 Pipeline gráfico fixo 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. 22

23 Pipeline gráfico fixo 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 23

24 Programmable Pipeline 24

25 Programmable Pipeline 25

26 Vertex Shader Per-Vertex processing (normais, coordenadas de textura,...) Esta unidade é responsável por operações como: 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 (por vértice)... 26

27 Geometry Shader New. Supported in HLSL 4.0 Nvidia Affect primitives: Triangles, Lines Executed after vertex shaders Input is a primitive with adjacency information. 27

28 Fragment Shader Per-Fragment Rendering Esta unidade é responsável por operações como: Operações sobre valores interpolados (cores, normais, coordenadas de textura, e outros atributos) Acesso a texturas Aplicação de texturas Cálculo da cor 28

29 IDE Tools ATI RenderMonkey Nvidia FX Composer 29

30 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 pelo OpenGL Parâmetros Sintaxe Entradas e Saídas Exemplos Futuro do hardware gráfico 30

31 Invocação pelo OpenGL GLEW Biblioteca que permite a detecção de qual a versão do OpenGL utilizada, bem como as extensões dos shaders.!#include <GL/glew.h>!!glewInit();!!/* extensões ARB para shaders disponíveis */!!if (GLEW_ARB_vertex_shader &&!!!! GLEW_ARB_fragment_shader)!!/* ou OpenGL 2.0 disponível */!!if (glewissupported("gl_version_2_0"))! 31

32 Invocação pelo 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 32

33 Invocação pelo OpenGL Como usar shaders na sintaxe OpenGL

34 Invocação pelo OpenGL Código OPENGL 2.0 para criação de shaders!gluint v, f, p;!!v = glcreateshader(gl_vertex_shader);!!f = glcreateshader(gl_fragment_shader);!!const char *vcode = readtextfile("my.vert");!!const char *fcode = readtextfile("my.frag");!!glshadersource(v, 1, &vcode, NULL);!!glShaderSource(f, 1, &fcode, NULL);!!glCompileShader(v);!!glCompileShader(f);! 34

35 Invocação pelo OpenGL Criação e selecção do programa!...!!p = glcreateprogram();!!glattachshader(p,v);!!glattachshader(p,f);!!gllinkprogram(p);!!gluseprogram(p);! 35

36 Invocação pelo OpenGL InfoLog A cada shader ou programa está associado um registo, com mensagens sobre o processo de compilação ou link, respectivamente Através deste registo, para além de ser possível detectar se as operações ocorreram sem erros, poderá ser dada informação relativamente à capacidade do hardware para executar o shader 36

37 Qualifiers Qualifiers give a special meaning to the variable and allows the communication between OGL application and shaders. In GLSL the following qualifiers are available: const - the declaration is of a compile time constant attribute (only used in vertex shaders, and read-only in shader) global variables that may change per vertex, that are passed from the OpenGL application to vertex shaders uniform (used both in vertex/fragment shaders, readonly in both) global variables that may change per primitive (may not be set inside glbegin,/glend) varying - used for interpolated data between a vertex shader and a fragment shader. Available for writing in the vertex shader, and read-only in a fragment shader. 37

38 Attribute Qualifier Attribute-qualified variables can change at most once per vertex Cannot be used in fragment shaders Built-in (OpenGL state variables) gl_vertex gl_normal gl_color gl_multitexcoord0 User defined (in application program) attribute float temperature attribute vec3 velocity 38

39 Uniform Qualifier Variables that are constant for an entire primitive Allows communication between OGL application and both shaders Can be changed in application outside scope of glbegin and glend Cannot be changed in shader Used to pass information to shader such as the bounding box of a primitive 39

40 Varying qualifier Variables that are passed from vertex shader to fragment shader Automatically interpolated by the rasterizer Built in Vertex colors Texture coordinates User defined Requires a user defined fragment shader 40

41 Example: Vertex Shader const vec4 red = vec4(1.0, 0.0, 0.0, 1.0); varying vec4 color_out; void main(void) { gl_position = gl_modelviewprojectionmatrix*gl_vertex; color_out = red; (e.g. instead of gl_frontcolor = red;) } 41

42 Required Fragment Shader varying vec4 color_out; void main(void) { gl_fragcolor = color_out; 1 } 1 instead of gl_fragcolor = gl_color; 42

43 Color shading Exception to the "rule" where a varying variable should be declared with the same name both in the vertex shader and the fragment shader attribute vec4 gl_color; varying vec4 gl_frontcolor; // writable on the vertex shader varying vec4 gl_backcolor; // writable on the vertex shader varying vec4 gl_color; // readable on the fragment shader Vertex Shader: void main() { gl_frontcolor = gl_color; gl_position = ftransform(); } NOTE: gl_position = ftransform(); instead of gl_position = gl_modelviewprojectionmatrix*gl_vertex; Fragment Shader: void main() { gl_fragcolor = gl_color; } 43

44 Built-in Uniforms uniform mat4 gl_modelviewmatrix; uniform mat4 gl_projectionmatrix; uniform mat4 gl_modelviewprojectionmatrix; uniform mat3 gl_normalmatrix; uniform mat4 gl_texturematrix[n]; struct gl_materialparameters { vec4 emission; vec4 ambient; vec4 diffuse; vec4 specular; float shininess; }; uniform gl_materialparameters gl_frontmaterial; uniform gl_materialparameters gl_backmaterial; 44

45 Built-in Uniforms struct gl_lightsourceparameters { vec4 ambient; vec4 diffuse; vec4 specular; vec4 position; vec4 halfvector; vec3 spotdirection; float spotexponent; float spotcutoff; float spotcoscutoff; float constantattenuation float linearattenuation float quadraticattenuation }; Uniform gl_lightsourceparameters gl_lightsource[gl_maxlights]; // stored in eye space 45

46 Uniform Variable Example GLint angleparam = glgetuniformlocation(myprogobj, "angle"); /* angle defined in shader */ // set angle to 5.0 gluniform1f(myprogobj, angleparam, 5.0); 46

47 Vertex Attribute Example GLint colorattr = glgetattriblocation(myprogobj, "mycolor"); /* mycolor is name in shader */ GLfloat color[4]; glvertexattrib4fv(colorattrib, color); /* color is variable in application */ 47

48 Syntax C/C++ language style Data Types scalars float, int, bool vectors vec, ivec, bvec matrizes mat structs, arrays in, out, inout (usados nos parâmetros de função) Flow Control if else, for, while, do while 48

49 GLSL Data Types 49

50 Entradas e saídas 50

51 Entradas e saídas 51

52 GLSL Hello 52

53 GLSL Hello Vertex shader!void main(void)!!{!! gl_position = ftransform();!!}! Fragment shader!void main(void)!!{!! gl_fragcolor = vec4(1.0, 0.0, 0.0, 1.0);!!}! 53

54 GLSL - Achatado 54

55 GLSL - Achatado Vertex shader void main(void)! {! vec4 vert = gl_vertex;! vert.z = 0;! gl_position = gl_modelviewprojectionmatrix * vert;! }! 55

56 GLSL - Ondulante 56

57 GLSL - Ondulante Vertex shader uniform float ftime0_x;! void main(void)! {! vec4 vert = gl_vertex;! vert.z = sin(0.5*vert.x + ftime0_x)*2.0;! gl_position = gl_modelviewprojectionmatrix * vert;! }! 57

58 Vertex vs Fragment Shader per vertex lighting per fragment lighting 58

59 Diffuse term The following formula is used in OpenGL to compute the diffuse term: where I is the reflected intensity, Ld is the light's diffuse color (gl_lightsource[0].diffuse), and Md is the material's diffuse coefficient (gl_frontmaterial.diffuse). 59

60 Specular term Blinn proposed a simpler and faster model, knows as the Blinn-Phong model 60

61 Specular Term // normalize the half-vector, and then compute the cosine (dot product) with the normal NdotHV = max(dot(normal, gl_lightsource[0].halfvector.xyz),0.0); specular = gl_frontmaterial.specular * gl_lightsource[0].specular * pow(ndothv,gl_frontmaterial.shininess); 61

62 Point Light Issue in a point light, the intensity decays with the distance to the vertex In vertex shader: ecpos = gl_modelviewmatrix * gl_vertex; // in eye space aux = vec3(gl_lightsource[0].position-ecpos); lightdir = normalize(aux); dist = length(aux); //varying In fragment shader (attenuation cannot be interpolated since is non-linear): att = 1.0 / (gl_lightsource[0].constantattenuation + gl_lightsource[0].linearattenuation * dist + gl_lightsource[0].quadraticattenuation * dist * dist); 62

63 Examples of Per-Pixel Lighting Directional Light Point Light 63

64 Texturing Access texture coordinates per vertex - GLSL provides some attribute variables, one for each texture unit! attribute vec4 gl_multitexcoord0;! attribute vec4 gl_multitexcoord1;! attribute vec4 gl_multitexcoord2;! attribute vec4 gl_multitexcoord3;! attribute vec4 gl_multitexcoord4;! attribute vec4 gl_multitexcoord5;! attribute vec4 gl_multitexcoord6;! attribute vec4 gl_multitexcoord7;! uniform mat4 gl_texturematrix[gl_maxtexturecoords]; (varying) gl_texcoord[0] = gl_multitexcoord0;! 64

65 Texturing void main() {! gl_texcoord[0] = gl_multitexcoord0;! // gl_texcoord[0] = gl_texturematrix[0] * gl_multitexcoord0;! gl_position = ftransform();! }! uniform sampler2d tex;! void main()! {!!vec4 color = texture2d(tex,gl_texcoord[0].st);!!gl_fragcolor = color;! }! 65

66 Texturing 66

67 VERTEX shader: Example of GL_Modulate varying vec3 lightdir,normal; void main() { normal = normalize(gl_normalmatrix * gl_normal); lightdir = normalize(vec3(gl_lightsource[0].position)); gl_texcoord[0] = gl_multitexcoord0; gl_position = ftransform(); } FRAGMENT Shader: varying vec3 lightdir,normal; uniform sampler2d tex; void main() { vec3 ct,cf; vec4 texel; float intensity,at,af; intensity = max(dot(lightdir,normalize(normal)),0.0); cf = intensity * (gl_frontmaterial.diffuse).rgb + gl_frontmaterial.ambient.rgb; af = gl_frontmaterial.diffuse.a; texel = texture2d(tex,gl_texcoord[0].st); ct = texel.rgb; at = texel.a; } gl_fragcolor = vec4(ct * cf, at * af); 67

68 varying vec3 lightdir,normal; uniform sampler2d tex, l3d; Multitexturing void main() { vec3 ct,cf; vec4 texel; float intensity,at,af; Texture Unit 0 intensity = max(dot(lightdir,normalize(normal)),0.0); Texture Unit 1 cf = intensity * (gl_frontmaterial.diffuse).rgb + gl_frontmaterial.ambient.rgb; af = gl_frontmaterial.diffuse.a; texel = texture2d(tex,gl_texcoord[0].st)+ texture2d(l3d,gl_texcoord[0].st); ct = texel.rgb; at = texel.a; gl_fragcolor = vec4(ct * cf, at * af); } Textured cube 68

69 GLSL - Listas 69

70 GLSL - Listas Vertex shader varying vec2 MC;! void main(void)! {! MC = gl_vertex.xy;! }! gl_position = ftransform();! 70

71 GLSL - Listas Fragment shader varying vec2 MC;! void main(void)! {! float r = fract(mc.x*0.05);! if (r < 0.5)! r = 1.0;! else! r = 0.5;! }! gl_fragcolor = vec4(r, 0.0, 0.0, 1.0);! 71

72 GLSL Mais Exemplos 72

73 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 pelo OpenGL Parâmetros Sintaxe Entradas e Saídas Exemplos Futuro do hardware gráfico 73

74 Futuro do hardware gráfico Roda da reencarnação Função migrada para co-processador específico por razões de desempenho Co-processador torna-se programável, com as funcionalidades de um CPU Não faz sentido ter toda essa capacidade de processamento, inutilizada grande parte do tempo, num processador específico para uma só aplicação Movem-se funcionalidades para o CPU T.H. Myer and I.E. Sutherland On the Design of Display Processors, Comm. ACM, Vol. 11, no. 6, June

75 Referências OpenGL Shading Language, Second Edition - Randi Rost, Addison Wesley Professional Especificação - John Kessenich Quick Reference Guide - Mike Weiblen GLSL - Programação de Shaders António Ramires Fernandes GLSL Tutorial - Lighthouse 3D Rendermonkey GLEW 75

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

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

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

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

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

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

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

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

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

Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais Utilização de Shaders para criação de efeitos realistas para jogos Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais Sumário 2/48 Apresentação pessoal Introdução Pipeline de renderizaçã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

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

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

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 16 de maio de 2011. SCC0250 - Computação Gráca Métodos para Rendering de Superfície 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

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

Introdução ao OpenGL 2.1 e GLSL 1.2

Introdução ao OpenGL 2.1 e GLSL 1.2 Introdução ao OpenGL 2.1 e GLSL 1.2 Felipe Bessa Coelho Universidade de São Paulo 25 de Setembro de 2012 Felipe Bessa Coelho (USP) OpenGL+GLSL 2012 1 / 49 Sumário 1 Objetivos 2 Transformações geométricas

Leia mais

Um Tutorial sobre GPUs

Um Tutorial sobre GPUs Um Tutorial sobre GPUs Silvia Esparrachiari e Victor H. P. Gomes Instituto de Matemática e Estatística Universidade de São Paulo (USP) São Paulo SP Brasil {silviaeg,vhpgomes}@ime.usp.br Abstract. The present

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

Modelos de Iluminação Métodos de surface-rendering

Modelos de Iluminação Métodos de surface-rendering Modelos de Iluminação Métodos de surface-rendering VI / CG 2012/2013 Beatriz Sousa Santos, J. Madeira 1 As imagens realistas obtêm-se : usando projecções perspectivas da cena aplicando efeitos de iluminação

Leia mais

Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação. Carlos Eduardo Rodrigues

Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação. Carlos Eduardo Rodrigues Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação Carlos Eduardo Rodrigues Motivação Os chips gráficos monolíticos da década de 80 evoluíram bastante, e hoje são denominados GPUs (Graphics

Leia mais

Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação. Shader Não Fotorrealístico para Desenho de Mangás

Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação. Shader Não Fotorrealístico para Desenho de Mangás Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Shader Não Fotorrealístico para Desenho de Mangás Johnny Ahrens Monografia apresentada como requisito parcial

Leia mais

glslangel: Uma Ferramenta de Depuração para a Linguagem GLSL

glslangel: Uma Ferramenta de Depuração para a Linguagem GLSL UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO BÁRBARA BELLAVER GONÇALVES glslangel: Uma Ferramenta de Depuração para a Linguagem GLSL Trabalho de Graduação

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/12/2012 OpenGL Shading Language 1. Evolução

Leia mais

Reflections and Shadows on Planar Surfaces

Reflections and Shadows on Planar Surfaces Reflections and Shadows on Planar Surfaces João Madeiras Pereira jap@inesc.pt Animation and 3D Visualisation Course 2010/2011 Reflections - Motivation Not easy to use ray-tracing techniques to simulate

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

Paulo Sérgio Rodrigues. Exercícios de Laboratório

Paulo Sérgio Rodrigues. Exercícios de Laboratório Paulo Sérgio Rodrigues Exercícios de Laboratório Iluminação São Bernardo do Campo, SP Abril de 2010 Iluminação Como é possível observar na Fig. 1, a imagem gerada não possui uma qualidade satisfatória.

Leia mais

Desmistificando Shaders em XNA 4.0

Desmistificando Shaders em XNA 4.0 Desmistificando Shaders em XNA 4.0 Bruno Duarte Correa Thiago Dias Pastor Department of Computer and Digital Systems Engineering, Escola Politécnica da Universidade de São Paulo, Brazil 1 Introdução 3.2

Leia mais

Programação em GPU: Passado, Presente e Futuro

Programação em GPU: Passado, Presente e Futuro 2 Conteúdo Programático Programação em GPU: Passado, Presente e Futuro José Ricardo Mello Viana Msc. em Engenharia de Sistemas e Computação PESC/COPPE/UFRJ Parte 1 Introdução Conceitos Iniciais Programação

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

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

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

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

Pipeline Gráfico Cluter & Durand, MIT

Pipeline Gráfico Cluter & Durand, MIT INF 1366 Computação Gráfica Interativa Rasterização Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm Modeling Transformations Illumination

Leia mais

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Número de horas do programa: 60 horas Número de horas Semanal: 4 Horas Número

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Explorando Charcoal Rendering

Explorando Charcoal Rendering Explorando Charcoal Rendering Luis Valente Departamento de Informática PUC-Rio Abstract Este trabalho explora uma aplicação de renderização não-fotorealista, que é simulação de desenho a carvão. Para isso,

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

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

XNA Game Studio Express. Introdução. aos Shaders. Aula 9. Alexandre Santos Lobão contato@alexandrelobao.com

XNA Game Studio Express. Introdução. aos Shaders. Aula 9. Alexandre Santos Lobão contato@alexandrelobao.com XNA Game Studio Express Aula 9 Introdução aos Shaders Alexandre Santos Lobão contato@alexandrelobao.com Pós em Desenvolvimento de Jogos Eletrônicos - IESB Agenda: Aula 9 A história até aqui Revisão Matrizes

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Frederico Damasceno Bortoloti. Adaptado de: Claudio Esperança Paulo Roma Cavalcanti

Frederico Damasceno Bortoloti. Adaptado de: Claudio Esperança Paulo Roma Cavalcanti Fundamentos de Representação Gráfica Frederico Damasceno Bortoloti Adaptado de: Claudio Esperança Paulo Roma Cavalcanti Estrutura do Curso Avaliação através de Prova Estudo / Seminário Nota parcial NP

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

Laboratório 3. Base de Dados II 2008/2009

Laboratório 3. Base de Dados II 2008/2009 Laboratório 3 Base de Dados II 2008/2009 Plano de Trabalho Lab. 3: Programação em Transact-SQL MYSQL Referências www.mysql.com MICROSOFT SQL SERVER - Procedimentos do Lado do Servidor (Stored Procedures)

Leia mais

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual Pipeline de Visualização Câmara Virtual Edward Angel, Cap. 5 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Transformações Geométricas Composição de Transformações Deformação

Leia mais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

1.3. Componentes dum sistema informático HARDWARE SOFTWARE 1.3. Componentes dum sistema informático Computador Sistema Informático HARDWARE SOFTWARE + Periféricos Sistema Operativo Aplicações HARDWARE - representa todos os componentes físicos de um sistema informático,

Leia mais

Realidade Aumentada. Introdução. Sumário da Apresentação. Realidade Aumentada 28/08/2013. Prof. Sementille 1

Realidade Aumentada. Introdução. Sumário da Apresentação. Realidade Aumentada 28/08/2013. Prof. Sementille 1 Realidade Aumentada 2. Ferramentas para Desenvolvimento de Aplicações de Realidade Aumentada Prof. Dr. Antonio Carlos Sementille Sumário da Apresentação Visão geral da hierarquia das principais ferramentas

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

O que significa programar e a razão da sua importância. os sistemas informáticos dependem da interacção de inúmeros programas

O que significa programar e a razão da sua importância. os sistemas informáticos dependem da interacção de inúmeros programas Capítulo 1 Introdução Enquadramento da disciplina O que significa programar e a razão da sua importância basilar em qualquer curso de computação os sistemas informáticos dependem da interacção de inúmeros

Leia mais

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 20

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 20 Sumário: Os subsistemas vídeo. A RAM vídeo. Aula Teórica 20 Leitura Recomendada: Capítulo 37 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Capítulos 4 e 11 - Peter Norton, Peter

Leia mais

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação

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

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

FCG2006 Prova sobre OpenGL e Rastreamento de Raios

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

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta

Leia mais

8. Síntese de Imagens: Cálculo de Cor

8. Síntese de Imagens: Cálculo de Cor 8. Síntese de Imagens: Cálculo de Cor O processo de determinar a aparência (ou seja, a textura e a cor) das superfícies visíveis é chamado de shading. Essa aparência da superfície depende das propriedades

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

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

Conceitos Básicos sobre Programação Prática

Conceitos Básicos sobre Programação Prática Conceitos Básicos sobre Programação Prática Programa de computador conjunto de instruções e informação necessários ao alcance de um objectivo instruções + dados normalmente, guardados em ficheiros (em

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

Sistemas Operativos I

Sistemas Operativos I Gestão da Memória Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 Gestão da Memória Gestão de memória? Porquê? Atribuição de instruções e dados à memória Endereços lógicos e físicos Overlays

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

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

Informática e Programação. Computer Science and Programming. Semestre do plano de estudos 1

Informática e Programação. Computer Science and Programming. Semestre do plano de estudos 1 Nome UC Informática e Programação CU Name Código UC 4 Curso LEC Semestre do plano de estudos 1 Área científica Informática Duração Semestral Horas de trabalho 135 ECTS 5 Horas de contacto TP - 67,5 Observações

Leia mais

Capítulo 1 Introdução

Capítulo 1 Introdução Capítulo 1 Introdução Programa: Seqüência de instruções descrevendo como executar uma determinada tarefa. Computador: Conjunto do hardware + Software Os circuitos eletrônicos de um determinado computador

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

Apontamentos de Computação Gráfica

Apontamentos de Computação Gráfica Apontamentos de Computação Gráfica Capítulo 9 - Iluminação e Texturas em Gráficos 3D Prof. João Beleza Sousa Prof. Arnaldo Abrantes LEIC/DEETC/ISEL Novembro de 2008 Introdução Luzes Modelos de Iluminação

Leia mais

Programação em GPU: Passado, presente e futuro

Programação em GPU: Passado, presente e futuro Capítulo 1 Programação em GPU: Passado, presente e futuro José Ricardo Mello Viana Abstract Previously designed to process only graphics, the graphics cards (GPU - Graphics Processing Unit) have a fixed

Leia mais

Programação Estruturada I

Programação Estruturada I Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

INTERACTIVE ILLUSTRATIVE RENDERING ON MOBILE DEVICES Jingshu Huang, Brian Bue, Avin Pattath, David S. Ebert and KrystalM. Thom as IEEE Com puter Graphics and Applications, Vol. 27, 3, 2007 Pedro Lobo,

Leia mais

Modelos de Iluminação e Reflexão

Modelos de Iluminação e Reflexão Modelos de Iluminação e Reflexão Edward Angel, Cap. 6 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Recorte 2D Cyrus-Beck Sutherland-Hodgman Recorte 3D Sumário Iluminação

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação O QUE É UM PROGRAMA? Para executar uma dada tarefa é geralmente necessário entender o sistema onde ela é realizada. Por exemplo, para fazer um bolo temos um sistema composto por: Ingredientes Cozinheiro

Leia mais

Conceitos e Enquadramento Histórico

Conceitos e Enquadramento Histórico Conceitos e Enquadramento Histórico Edward Angel, Cap. 1 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Objectivos Aprender diferenças entre CG vectorial e raster (quadrículas) Conhecer evolução

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Introdução a Linguagem C Princípios de Programação em C Gil Eduardo de Andrade Conceitos Iniciais: Linguagem C Introdução É uma linguagem estruturada; Foi desenvolvida na década

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Hardware HARDWARE Sistema Computacional = conjunto de circuitos eletrônicos interligados formado por processador, memória, registradores,

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

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

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para

Leia mais

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng. Aula teórica 3 Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java Preparado por eng.tatiana Kovalenko Linguagens de Programação Para escrever programas é necessário

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 01 Fundamentos de Computadores Sumário : Conceitos básicos: computador,

Leia mais

Cap. 7 Coloração (Shading) e Iluminação Global

Cap. 7 Coloração (Shading) e Iluminação Global Cap. 7 Coloração (Shading) e Iluminação Global Engenharia Informática (5385) - 2º ano, 2º semestre Revisão sobre Modelos de Iluminação Dependentes da Luz Modelos dependentes da luz Ambiente Normais à superfície

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

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

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

HMI Caracteristicas e extensões utilizando FT View ME v6.1 e PanelView Plus 6

HMI Caracteristicas e extensões utilizando FT View ME v6.1 e PanelView Plus 6 HMI Caracteristicas e extensões utilizando FT View ME v6.1 e PanelView Plus 6 Dangelo Ávila Gerente de Produto Email: dmavila@ra.rockwell.com Cel: (021) 98207-5700 PUBLIC PUBLIC - 5058-CO900H Agenda 1.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Gráficos e Físicos em Plataforma para Jogos

Gráficos e Físicos em Plataforma para Jogos Universidade Federal Fluminense Processadores Gráficos e Físicos em Plataforma para Jogos Grupo 7: Arthur Figueiredo Diego Knopp Lucas S. Silva Yuri Freire GPU: Início dos anos 80: As atuais GPUs são advindas

Leia mais

Implementação do algoritmo Marching Cubes usando shaders. Luiz Fernando Oliveira Corte Real lreal@ime.usp.br

Implementação do algoritmo Marching Cubes usando shaders. Luiz Fernando Oliveira Corte Real lreal@ime.usp.br Implementação do algoritmo Marching Cubes usando shaders Luiz Fernando Oliveira Corte Real lreal@ime.usp.br Marching Cubes Textura 3D Isosuperfície 3 9 8 7 6 8 5 4 9 9 7 6 10 6 4 2 Marching Cubes Textura

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal

Leia mais

Programação Orientada a Objetos C++

Programação Orientada a Objetos C++ Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs

Leia mais