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

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

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

Transcrição

1 Programa de Educação Tutorial Ciência da Computação - UFRN Minicurso Agosto de 2012

2 Conceitos importantes da Computação Gráfica [3] Computação Gráfica é a área da Ciência da Computação que estuda a geração, manipulação e análise de imagens, através do computador. Atualmente, é uma das áreas de maior expansão e importância que propicia o desenvolvimento de trabalhos multidisciplinares. A elaboração de aplicações gráficas se popularizou com o surgimento de placas gráficas para computadores pessoais e de bibliotecas gráficas, como OpenGL, que não exigiam conhecimentos extensivos de programação ou de hardware. Atualmente, com as facilidades disponíveis nas bibliotecas gráficas existentes, a programação das aplicações está mais simples. Por exemplo, OpenGL (Open Graphics Library), também definida como uma interface para hardware gráfico, é uma biblioteca de rotinas gráficas e de modelagem, bidimensional (2D) e tridimensional (3D), portável e rápida. Ela permite desenvolver aplicações interativas e gerar imagens de cenas 3D (ou conjunto de objetos), com um alto grau de realismo. Entretanto, a sua maior vantagem é a velocidade, uma vez que incorpora vários algoritmos otimizados, incluindo o desenho de primitivas gráficas, o mapeamento de textura e outros efeitos especiais. Há duas áreas que têm uma relação bastante próxima com a CG: Processamento de Imagens (PI) e Visão Computacional. A área PI abrange o estudo e a pesquisa de técnicas para realizar a manipulação de imagens, tais como ajustes de cor, brilho, contraste ou aplicação de filtros, entre outras. Sistemas de PI são encontrados atualmente, por exemplo, em consultórios de cirurgiões plásticos e salões de beleza. Neste caso, uma pessoa pode ver como será o resultado de uma plástica ou corte de cabelo através de simulações no computador. A Visão Computacional trabalha com a análise de imagens, buscando obter a especificação dos seus componentes para identificação dos modelos geométricos que a compõem. Uma aplicação de técnicas de Visão Computacional é o reconhecimento automático de impressões digitais. Em CG, modelos são usados para representar entidades e fenômenos do mundo físico real no computador. Existem várias categorias ou métodos de construção de modelos tridimensionais. Cada um tem suas vantagens e desvantagens, adaptando-se melhor para uma ou outra aplicação. Modelagem consiste em todo o processo de descrever um modelo, objeto ou cena, de forma que se possa desenhá-lo. Na verdade, a modelagem engloba dois tópicos de estudo: formas de representação dos objetos, que se preocupa com a forma (ou estruturas de dados) como os modelos são armazenados; e técnicas de modelagem dos objetos, que trata das técnicas interativas (e também das interfaces) que podem ser usadas para criar um modelo de objeto.

3 A forma mais comum de representar modelos 3D é através de uma malha de polígonos. Ou seja, define-se um conjunto de vértices no espaço (geometria) e como esses vértices devem ser ligados para formarem polígonos fechados, chamados de face (topologia), que podem ser triângulos ou quadrados. O armazenamento desse tipo de estrutura é usualmente realizado através de vetores de estruturas, matrizes ou listas. Por exemplo, a Figura 1 apresenta a lista de vértices e faces necessárias para desenhar uma casa simplificada. É aconselhável que todos os modelos sejam sempre definidos de maneira que o seu centro, ou o ponto ao redor do qual ele pode ser rotacionado, seja posicionado na origem (0, 0, 0). Assim, quando for aplicada uma transformação geométrica sobre o objeto, ele não trocará de quadrante. A este espaço de coordenadas, adequado à criação dos modelos, dá-se o nome de Sistema de Referência do Objeto (SRO). Em outras palavras, o SRO é o sistema de coordenadas no qual se define o modelo geométrico. Existe um conjunto de técnicas em CG que permite transformar as informações a respeito de um modelo contidas em uma estrutura de dados, em uma imagem que pode ser exibida em um monitor. Portanto, considera-se que uma imagem consiste em uma matriz de pontos e um modelo é uma representação computacional de um objeto. Para entender como funciona o processo de visualização é importante conhecer o conceito de Universo, que pode ser definido como a região do espaço utilizada em uma aplicação. Como a descrição geométrica de um modelo normalmente envolve coordenadas geométricas, é preciso adotar um sistema de referência que irá definir uma origem em

4 relação à qual todos os posicionamentos do universo são descritos. Em geral, este Sistema de Referência do Universo (SRU) consiste em três eixos ortogonais entre si (x, y, z) e uma origem (0,0, 0). Uma coordenada, então, é formada pelos valores de x, y e z, que correspondem às posições ao longo dos respectivos eixos (denominados cartesianos) e todos os procedimentos são definidos em relação a este sistema de referência. Para facilmente identificar como o eixo z é posicionado em relação à x e y, normalmente se utiliza a regra da mão direita ou a regra da mão esquerda. Por exemplo, na regra da mão direita, deve-se posicionar a mão direita de maneira que o indicador aponte para direção positiva de y (para cima), o polegar aponte para a direção positiva de x (para o lado) e o dedo do meio aponte para a direção positiva de z (para frente, como se estivesse saindo da tela do computador ), como ilustra a Figura 2. Fig 2. Regra da mão direita Quando se está trabalhando com a representação de objetos no espaço tridimensional existe uma etapa obrigatória: mapear suas representações 3D para imagens 2D que serão exibidas em um dispositivo como um monitor. Esta operação de obter representações bidimensionais de objetos tridimensionais é chamada de projeção. Como a maioria dos objetos é representada por uma coleção de vértices, sua projeção é definida por raios de projeção (segmentos de retas) chamados de projetantes, que passam através de cada vértice do objeto e interseccionam um plano de projeção. Esta classe de projeções é chamada de projeções geométricas planares. As projeções usualmente são divididas em dois tipos principais: Projeção Paralela Ortográfica, na qual as projetantes são paralelas entre si, passam pelos vértices dos objetos e interseccionam o plano com um ângulo de 90º (Figura 3a); Projeção Perspectiva, quando as projetantes

5 emanam de um único ponto que está a uma distância finita do plano de projeção e passam pelos vértices (Figura 3b). Fig 3. Projeção de paralelepípedos usando a projeção paralela ortográfica (a) e a projeção perspectiva (b). Na projeção paralela ortográfica (Figura 3a) não há alteração nas medidas do objeto. Sua construção é bastante simples, pois, basicamente, consiste em omitir uma das componentes de cada vértice. Entretanto, a projeção perspectiva é mais utilizada, uma vez que representa melhor o que acontece na realidade. Mesmo após a etapa de projeção, as imagens já 2D no plano de projeção ainda não estão em coordenadas do Sistema de Referência da Tela (SRT) adotado no monitor do computador. Por exemplo, no SRT a origem fica no canto superior esquerdo do monitor e a resolução pode variar, enquanto que o Sistema de Referência de Projeção (SRP), que consiste no plano de projeção, é geralmente definido como [ 1, 1]. Portanto, torna-se necessário realizar o mapeamento entre estes sistemas de referência, que consiste, basicamente, em uma regra de proporção. Além disso, é necessário definir em qual parte da tela se deseja exibir o que foi selecionado e projetado. A esta região dá-se o nome de janela de exibição ou viewport. Uma viewport é delimitada pelas coordenadas de seus cantos, os quais sempre são dados em valores que dizem respeito ao SRT. (Fig. 4)

6 Fig 4. Mapeamento para diferentes viewports. As técnicas explicadas anteriormente permitem a geração de imagens simples, cuja aparência é artificial. Para que essas imagens tenham mais realismo, é preciso considerar outros aspectos como a idéia de iluminação e a técnica de mapeamento de texturas. Não abordaremos esses temas em nosso minicurso, mas as referências no final desse documento possuem muita informação a respeito. Uma das funcionalidades mais importantes das aplicações gráficas, é a possibilidade de manipular e alterar interativamente as características dos objetos que compõem uma cena. Já foi visto na Seção 2 que a maioria dos objetos em OpenGL consiste de uma combinação de um conjunto de primitivas gráficas definidas através de vértices. As transformações geométricas, simplificadamente, consistem em operações matemáticas realizadas sobre estes vértices, permitindo alterar uniformemente o aspecto de um modelo já armazenado no computador. Tais alterações não afetam a estrutura do desenho, mas sim o aspecto que ele vai assumir. Os três tipos fundamentais de transformações geométricas, ilustradas na Figura 5, são translação, rotação e escala. Fig 4. Exemplo da aplicação das transformações geométricas em um cubo. Após a etapa de mapeamento para a tela, é preciso definir exatamente quais são os pixels que irão compor uma linha e como preencher os diferentes polígonos com uma determinada cor. Estes procedimentos são conhecidos como rasterização. Em CG, é comum agrupar um conjunto de objetos descritos geometricamente para formar o que chamamos de cena 3D. Como uma imagem na tela do computador consiste em uma matriz de pixels, é necessário executar todas etapas descritas nesta seção e sumarizadas na Figura 6, para fazer a Síntese de Imagens. Inicialmente, é feita a modelagem

7 e o instanciamento dos objetos para formar a cena 3D. Depois, a câmera é posicionada e direcionada, e os objetos da cena 3D são mapeados para o SRC. Uma vez definido o volume de visualização, é realizado o recorte 3D e a projeção. Os últimos passos consistem em fazer o mapeamento para o SRT e a rasterização. Fig 6. Pipeline de visualização 3D. Como a evolução da Computação Gráfica depende da evolução do hardware, recentemente, as novas gerações de placas gráficas possibilitaram o desenvolvimento de várias aplicações e um grande avanço em muitas áreas da CG. Muitas imagens podem ser geradas em tempo real devido à possibilidade de programar o hardware gráfico. Isso também tem beneficiado a área de visualização, que, em geral, trabalha com uma grande quantidade de dados que pode ser armazenada na memória das placas gráficas. Atividade Prática: Durante o minicurso vamos criar uma versão do consagrado jogo SNAKE. A primeira parte da nossa atividade será a modelagem. Começaremos criando as classes correspondentes à cobra e ao cenário do nosso jogo. Releia o texto, procure entender bem o que significa modelagem nesse contexto e crie o seu próprio modelo. Lembre-se que não iremos trabalhar em 3D mas em 2D. Mãos à obra!

8

9 Introdução à OpenGL A OpenGL (Open Graphics Library) é uma API livre utilizada na computação gráfica, para desenvolvimento de aplicativos gráficos, ambientes 3D, jogos, entre outros. Ela reúne algumas centenas de funções, que fornecem acesso a praticamente todos os recursos do hardware de vídeo. Internamente, ele age como uma máquina de estados, que de maneira bem específica diz ao OpenGL o que fazer. Usando as funções da API, você pode ligar ou desligar vários aspectos dessa máquina, tais como a cor atual, se transparência será usada, se cálculos de iluminação devem ser feitos, se haverá ou não o efeito de neblina, e assim por diante. Um bom programador deve conhecer cada um desses estados, pois não é incomum a obtenção de resultados indesejados simplesmente por deixar um ou outro estado definido de maneira incorreta. A OpenGL fornece um conjunto de comandos primitivos, em baixo nível de abstração, muito importantes para modelagem e visualização de objetos geométricos [1]. Apesar de não possuir rotinas de gerenciamento de menus e janelas, frequentemente acompanham toolkits que são instaladas junto com a OpenGL que fazem esse gerenciamento. Algumas aspectos que devem ser lembrados a. O OpenGL trabalha com a medida de ângulos em graus e não em radianos, como ocorre com a maioria das linguagens; b. Cada componente de cor no OpenGL é normalmente definido por um número de ponto flutuante, que varia de 0 até 1, e não um número inteiro de 0 até 255; c. As coordenadas gráficas no OpenGL seguem o eixo cartesiano. Assim, o número da linha é decrescente, e não crescente, como em boa parte das implementações. d. Matrizes no OpenGL são calculadas com base nas colunas, e não nas linhas. A OpenGL fornece um conjunto poderoso de comandos, mas restrito apenas ao desenho. Várias bibliotecas existem para facilitar a manipulação de outros aspectos da aplicação, como as seguintes: a. OpenGL Utility Library (GLU): Fornece diversas funções para auxiliar na montagem de matrizes de visualização e projeção, desenho de superfícies e imagens 3D. Essa biblioteca é fornecida juntamente com as implementações do OpenGL e todas as rotinas dessa biblioteca tem o prefixo glu. b. Cada ambiente de janelas tem uma biblioteca de extensão do OpenGL. Por exemplo, o sistema X possui o GLX, enquanto o Windows fornece a extensão

10 WGL e já o Mac OS X fornece o CGL. c. OpenGL Utility Toolkit (GLUT): É um toolkit que abstrai o sistema de janelas, fornecendo uma interface simples para a criação de uma aplicação OpenGL. Funcionamento da OpenGL A OpenGL é uma API complexa, com muitos detalhes que podem confundir o iniciante [1]. Portanto, é interessante começar conhecendo a estrutura básica de um programa com OpenGL. Começaremos com um exemplo de aplicação simples, mas completo que usam os principais conceitos envolvendo OpenGL e GLUT. Para trabalhar com OpenGL, você deve primeiro criar um contexto de trabalho, este contexto contém o estado atual da máquina de estados, bem como referências aos diferentes buffers de trabalho, estes buffers podem ser visto como áreas de memória correspondentes à tela na qual OpenGL irá desenhar, geralmente a parte do buffer colorido (GL_COLOR_BUFFER) que é o buffer no qual serão desenhadas as primitivas. Existem outros buffers mais especializados. PrimeiroPrograma.cpp #include <stdlib.h> #include <GL/glut.h> // Função callback de redesenho da janela de visualização void Desenha(void) { glloadidentity(); // Limpa a janela de visualização com a cor branca glclearcolor(1,1,1,0); glclear(gl_color_buffer_bit); // Define a cor de desenho: vermelho glcolor3f(1,0,0); // Desenha um triângulo no centro da janela glbegin(gl_triangles); glvertex3f( 0.5, 0.5,0); glvertex3f( 0.0, 0.5,0); glvertex3f( 0.5, 0.5,0);

11 glend(); } //Executa os comandos OpenGL glflush(); // Função callback chamada para gerenciar eventos de teclas void Teclado (unsigned char key, int x, int y) { if (key == 27) exit(0); } // Função responsável por inicializar parâmetros e variáveis void Inicializa(void) { // Define a janela de visualização 2D glmatrixmode(gl_projection); gluortho2d( 1.0, 1.0, 1.0, 1.0); glmatrixmode(gl_modelview); } // Programa Principal int main(void) { // Define do modo de operação da GLUT glutinitdisplaymode(glut_single GLUT_RGB); // Especifica o tamanho inicial em pixels da janela GLUT glutinitwindowsize(400,400); // Cria a janela passando como argumento o título da mesma glutcreatewindow("primeiro Programa"); // Registra a função callback de redesenho da janela // de visualização glutdisplayfunc(desenha); // Registra a função callback para 'idle' glutidlefunc(desenha); // Registra a função callback para tratamento das teclas ASCII glutkeyboardfunc (Teclado);

12 // Chama a função responsável por fazer as inicializações Inicializa(); // Inicia o processamento e aguarda interações do usuário glutmainloop(); } return 0; Explicando o Programa A primeira coisa que fazemos é incluirmos as bibliotecas usadas no nosso programa #include <stdlib.h> #include <GL/glut.h> Considerando que a GLUT é baseada em eventos, criamos uma função que será chamada cada vez que quisermos desenhar a tela. Em nosso programa ela se chama Desenha.Ela é uma função do tipo callback. Callback é uma referência a um pedaço de código executável que é passado como argumento para outro código. Isto permitem um software de camada de nível mais baixo chamar uma sub-rotina definida em um software de uma camada mais elevada. Além da função Desenha teremos outras que vão ser chamadas em eventos como teclado, mouse, etc. Definimos aqui a cor de fundo da janela e a limpamos. glclearcolor(1,1,1,0); glclear(gl_color_buffer_bit); Definimos agora a cor do desenho glcolor3f(1,0,0); E desenhamos um triângulo na janela glbegin(gl_triangles); glvertex3f( 0.5, 0.5,0); glvertex3f( 0.0, 0.5,0); glvertex3f( 0.5, 0.5,0); glend();

13 Vamos relembrar o conceito de primitiva do OpenGL. Primitivas são comandos que desenham as formas básicas da OpenGL. Essas formas servem como peças, para montar qualquer desenho desejado. O comando básico para desenho de primitivas é: glbegin(nome_da_primitiva); Ele permite à você dizer à OpenGL que você está pronto para começar um desenho e o que vai ser desenhado. Você pode usar um dos 10 modos abaixo para desenhar qualquer uma das três formas básicas. Observe que a OpenGL trata de maneira especial dois tipos de polígonos: os triângulos e os quadriláteros. GL_POINTS: Representando pontos individuais; GL_LINES: Linhas composta por pares de vértices; GL_LINE_STRIP: Uma série de linhas conectadas; GL_LINE_LOOP: Uma série de linhas conectadas. Também conecta o primeiro e o último vértice; GL_TRIANGLES: Desenha triângulos a cada 3 vértices fornecidos; GL_TRIANGLE_STRIP: Uma série de triângulos conectados. Após o desenho do primeiro triângulo, cada vértice adicional forma um novo triângulo com dois últimos pontos fornecidos; GL_TRIANGLE_FAN: Uma série de triângulos com um único vértice em comum. O vértice comum é o primeiro vértice fornecido; GL_QUADS: Desenha um quadrilátero a cada 4 vértices fornecidos; GL_QUAD_STRIP: Desenha uma série de quadriláteros. Após o primeiro, apenas mais 2 vértices precisam ser fornecidos para o desenho do segundo quadrilátero; GL_POLYGON: Desenha polígonos convexos simples com um número arbitrário de vértices. Você diz à OpenGL que terminou de desenhar através da função glend(). A função é void e não aceita qualquer tipo de parâmetro. É considerada boa prática fazer sempre a indentação do que aparece dentro dos blocos glbegin()e glend(). Por fim usamos o comando que força a execução de todos as chamadas OpenGL, efetivamente realizando o desenho: glflush(); A função Teclado() é também do tipo callback e é chamada em resposta a eventos no teclado

14 É comum criarmos uma função para inicializar alguns estados da máquina do OpenGL. Essa função é chamada somente na inicialização do programa e é ela quem determina o tipo e os parâmetros da projeção. Se não recordar o que é a projeção, dê uma lida no parágrafo da aula anterior no qual explicamos um pouco. No nosso caso estamos definindo uma projeção paralela ortográfica 2D glmatrixmode(gl_projection); gluortho2d( 1.0, 1.0, 1.0, 1.0); glmatrixmode(gl_modelview); OpenGL fornece 4 diferentes tipo de matrizes (GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE e GL_COLOR) e rotinas de transformações para essas matrizes (glloadidentity(), gltranslatef(), glrotatef(), glscalef(), glmultmatrixf(), glfrustum() and glortho() ). A função glmatrixmodeserve para especificar qual matriz será o alvo das transformações subsequentes. GL_MODELVIEW define como seus objetos são transformados (quero dizer, translação, rotação e escala) em suas coordenadas. GL_PROJECTIONdefine as propriedades da projeção. Vamos passear um pouco pelo programa principal. Fazemos primeiro uma chamada para inicialização do GLUT glutinitdisplaymode(glut_single GLUT_RGB); Esta chamada avisa a GLUT que tipo de modo de exibição deve ser usado quando a janela é criada. Neste caso os argumentos indicam a criação de uma janela single-buffered (GLUT_SINGLE) com o modo de cores RGBA (GLUT_RGB). O primeiro significa que todos os comandos de desenho são feitos na janela de exibição. Uma alternativa é uma janela double-buffered, onde os comandos de desenho são executados para criar uma cena fora da tela para depois rapidamente colocá-la na view (ou janela de visualização). Este método é geralmente utilizado para produzir efeitos de animação. O modo de cores RGBA significa que as cores são especificadas através do fornecimento de intensidades dos componentes red, green e blue separadas. [4] O próximo passo é especificar o tamanho da janela glutinitwindowsize(400,400);

15 E em seguida criar a janela glutcreatewindow("primeiro Programa"); Agora associamos a função Desenha() ao evento de desenho (callback) da GLUT glutdisplayfunc(desenha); E também a função Teclado() ao evento de pressionar alguma tecla glutkeyboardfunc (Teclado); Chamados a rotina de incialização que havíamos criado Inicializa(); E iniciamos o processamento de eventos pepal GLUT, passando a aguardar eventuais interações por parte do usuário glutmainloop(); Atividade Prática: Agora que você já conhece os princípios básicos da OpenGL, você já é capaz de começar a desenhar a sua personagem e também o cenário que vai compor o seu jogo. Então, libere sua criatividade!

16 Trabalhando com transformações e suas matrizes Em Matemática, transformações são quaisquer funções que mapeiam um dado conjunto X em outro ou nele mesmo. Porém, frequentemente, o dado conjunto X possui alguma estrutura algébrica ou geométrica adicional e o termo transformação vai referir-se a uma função de X sobre ele mesmo que preserva essa estrutura. Elas são facilmente efetuadas utilizando a Álgebra Linear e podem ser descritas explicitamente com matrizes Transformações Geométricas são operações aplicadas à descrição geométrica de um objeto para mudar sua posição (translação) orientação (rotação) tamanho (escala) As transformações geométricas são usadas para manipular um modelo, isto é, através delas é possível mover, rotacionar ou alterar a escala de um objeto. A aparência final da cena ou do objeto depende muito da ordem na qual estas transformações são aplicadas. Isto ocorre porque uma transformação geométrica em OpenGL é armazenada internamente em uma matriz. A cada transformação que é aplicada, esta matriz é alterada e usada para desenhar os objetos a partir daquele momento. A cada nova alteração é feita uma composição de matrizes. ATENÇÃO: Para evitar este efeito "cumulativo", é necessário utilizar as funções glpushmatrix() e glpopmatrix(), que salvam e restauram, respectivamente, a matriz atual em uma pilha interna da OpenGL. [4] A translação é feita através da função gltranslatef(tx, Ty, Tz),que pode receber três números float ou double (gltranslated) como parâmetro. Neste caso, a matriz atual é multiplicada por uma matriz de translação baseada nos valores dados.[4] Ex: gltranslatef(10,10,10); DesenhaObjeto(); A rotação é feita através da função glrotatef(ângulo, x, y, z), que pode receber quatro números float ou double (glrotated) como parâmetro. Neste caso, a matriz atual é multiplicada por uma matriz de rotação de "Ângulo" graus ao redor do eixo definido pelo vetor "x,y,z" no sentido anti-horário.[4] Ex:

17 glrotatef(20,1,0,0); DesenhaObjeto();//Gira o objeto 20 graus ao redor do eixo X glrotatef(30,1,0,0); DesenhaObjeto();//Gira o objeto mais 30 graus ao redor do eixo X A escala é feita através da função glscalef(ex, Ey, Ez), que pode receber três números float ou double como parâmetro. Neste caso, a matriz atual é multiplicada por uma matriz de escala baseada nos valores dados.[4] Ex: glscalef(0,0.5,0); DesenhaObjeto();// Diminui a altura do objeto // à metade do original Para permitir que a transformação atual seja reinicializada há o comando glloadidentity(). Dica importante: É possível criar um laço que continuamente altera as coordenadas do objeto antes de chamar a função "Desenha". Isto daria a impressão de que o desenho se move na janela. Porém, a biblioteca GLUT fornece a possibilidade de registrar uma função callback que torna mais fácil o processo de fazer uma simples animação. A função gluttimerfuncpega o nome da função callback que deve ser chamada e o tempo que ela deve esperar antes de chamar a função. void gluttimerfunc(unsigned int milissegundos, value), value); void (*func)(int Atividade Prática: As transformações geométricas são o que dão vida e animação à computação gráfica. Então, agora que vocẽ já conhece a teoria, vamos para a prática. Utilizando as matrizes de transformação do OpenGL e as funções callback você pode movimentar a sua personagem pelo cenário controlando-a pelo teclado! Vamos lá!

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

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

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

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

Leia mais

Computação Gráfica OpenGl 01

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

Leia mais

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

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

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Computação Gráfica. Prof. André Yoshimi Kusumoto

Computação Gráfica. Prof. André Yoshimi Kusumoto Computação Gráfica Prof. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Representação da Imagem A representação vetorial das imagens é principalmente empregada para a definição e modelagem dos objetos

Leia mais

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

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

Leia mais

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

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

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

Leia mais

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

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

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

Leia mais

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

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

Leia mais

Computação Gráfica - 04

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

Leia mais

Pipeline de Visualização 3D

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

Leia mais

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

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

Leia mais

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

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

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

Leia mais

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

Computação Gráfica OpenGl 03

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

Leia mais

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

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

Leia mais

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

Uma API para geração de gráficos

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

Leia mais

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

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

Leia mais

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

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

Computação Gráfica 09

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

Leia mais

Computação Gráfica - 09

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

Leia mais

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

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

Leia mais

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte Computação Gráfica Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 30 de julho de 2015 O que é computação gráfica Entrada Saída IMAGEM MODELO

Leia mais

Computação Gráfica - 09

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

Leia mais

Computação Gráfica OpenGL 05 3D

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

Leia mais

OpenGL. Soraia Musse

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

Leia mais

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

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

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

Estrutura de um programa gráfico

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

Leia mais

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

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

Leia mais

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

Professor: Rodrigo Caetano Filgueira

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

Leia mais

André Tavares da Silva

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

Leia mais

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

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

Leia mais

Matriz de transformação

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

Leia mais

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

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

Leia mais

Transformações Geométricas

Transformações Geométricas Transformações Geométricas Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc. Sumário Tópicos da aula de hoje: Por que transformações? Classificação das transformações Transformações

Leia mais

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D Sumário COMPUTAÇÃO GRÁFICA E INTERFACES Transformações Geométricas e Visualização D Transformações geométricas Pipeline de visualização D Transformação de coordenadas Window-Viewport Recorte (Clipping)

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

Visualização 3D. Soraia Raupp Musse

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

Leia mais

Transformações Geométricas

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

Leia mais

Visualização bidimensional. Universidade Católica de Pelotas Centro Politécnico Disciplina: Computação Gráfica

Visualização bidimensional. Universidade Católica de Pelotas Centro Politécnico Disciplina: Computação Gráfica Visualização bidimensional Universidade Católica de Pelotas Centro Politécnico Disciplina: Computação Gráfica 2 Conteúdo Sistemas de referência de coordenadas (2D) Transformação de coordenadas Ampliação

Leia mais

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

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

Leia mais

Introdução a Prática em OpenGL

Introdução a Prática em OpenGL Introdução a Prática em OpenGL Universidade de São Paulo USP Disciplina de Computação Gráfica Profª Maria Cristina PAE: Thiago Silva Reis Santos Agosto de 2010 Sumário Bibliotecas Necessárias Instalação

Leia mais

Transformações geométricas no plano e no espaço

Transformações geométricas no plano e no espaço Transformações geométricas no plano e no espaço Sistemas de Coordenadas Sistemas de Referência com finalidades específicas: SRU Sistema de Referência do Universo SRO Sistema de Referência do Objeto SRN

Leia mais

António Costa. Paulo Roma Cavalcanti

António Costa. Paulo Roma Cavalcanti Introdução à Computação Gráfica Preâmbulo Adaptação: Autoria: João Paulo Pereira António Costa Claudio Esperança Paulo Roma Cavalcanti Computação Gráfica Modelos Matemáticos Análise (reconhecimento de

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS Aluno: Marcos Paulo Moraes Orientador: André Silva Pimentel Introdução A nanotecnologia está associada a diversas áreas de pesquisa

Leia mais

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

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

Leia mais

IntMu.Lab5. Importe os ficheiros disponibilizados em

IntMu.Lab5. Importe os ficheiros disponibilizados em IntMu.Lab5 0. Importe os ficheiros disponibilizados em http://www.dee.isep.ipp.pt/~jml/intmu/lab5: wget http://www.dee.isep.ipp.pt/~jml/intmu/lab5/makefile make getall Analise detalhadamente o programa

Leia mais

ESPECIFICAÇÃO DE SOFTWARE

ESPECIFICAÇÃO DE SOFTWARE ESPECIFICAÇÃO DE SOFTWARE Integrantes do grupo: Joel Edu Sánchez Castro Fernando Hattori Miguel Angel Galarreta Valverde Felipe Martins dos Santos 1 SUMÁRIO DESCRIÇÃO...3 REQUISITOS...3 REQUISITOS FUNCIONAIS

Leia mais

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

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

Leia mais

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

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

Leia mais

LAB. 1. Introdução à OpenGL

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

Leia mais

Transformações 3D. Soraia Raupp Musse

Transformações 3D. Soraia Raupp Musse Transformações 3D Soraia Raupp Musse 1 Transformações 3D Translação gltranslatef(dx, dy, dz) T(dx, dy, dz): 1 1 1 dz dy dx 2 Escala glscalef(sx, Sy, Sz) S(Sx, Sy, Sz): 1 1 Sz Sy Sx Transformações 3D Rotação

Leia mais

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

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

Leia mais

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

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

Leia mais

Visualização. - Aula 4 -

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

Leia mais

Transformações 3D. Soraia Raupp Musse

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

Leia mais

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

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

Leia mais

Imagem e Gráficos. vetorial ou raster?

Imagem e Gráficos. vetorial ou raster? http://computacaografica.ic.uff.br/conteudocap1.html Imagem e Gráficos vetorial ou raster? UFF Computação Visual tem pelo menos 3 grades divisões: CG ou SI, AI e PI Diferença entre as áreas relacionadas

Leia mais

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

Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br. 3 de maio de 2011. SCC0250 - Computação Gráca Introdução à Opengl com Java SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Computação Gráfica. Representação e Modelagem

Computação Gráfica. Representação e Modelagem Computação Gráfica Representação e Modelagem Professora: Sheila Cáceres Baseado nos slides da Prof. Soraia Musse Modelagem Área da Computação Gráfica que estuda a criação de modelos dos objetos reais.

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

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

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

Leia mais

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos Aula 4 Email: Site: marcelosantos@outlook.com www.marcelohsantos.com.br Conceitos sobre a Unity Conceitos sobre a Unity BARRA DE CONTROLE DA CENA O primeiro menu drop-down é para escolher o modo de desenho.

Leia mais

Projeções: conceitos. Projetar pontos no espaço d dimensional no plano d-1 dimensional, usando um ponto especial chamado centro de projeção

Projeções: conceitos. Projetar pontos no espaço d dimensional no plano d-1 dimensional, usando um ponto especial chamado centro de projeção Projeções Projeções: conceitos Projetar pontos no espaço d dimensional no plano d-1 dimensional, usando um ponto especial chamado centro de projeção Pontos no espaço 3D projetados em um plano 2D centro

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

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

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

Leia mais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios - 2012.2 Conceitos fundamentais 1) A Computação Gráfica é dividida em diversas sub-áreas.

Leia mais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios - 2013.1 Conceitos fundamentais 1) A Computação Gráfica é dividida em diversas sub-áreas.

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

Computação Gráfica - 11

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

Leia mais

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos Aula 5 Mestrado em Educação (em andamento) Pós-graduação em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games : Produção e Programação Bacharel em Sistema de Informação

Leia mais

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

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

Leia mais

Fundamentos de Computação Gráfica

Fundamentos de Computação Gráfica Fundamentos de Computação Gráfica OpenGL e GLUT António Ramires Fernandes Departamento de Informática - UM 1 Bibliotecas OpenGL (Open Graphics Library) Funcionalidade Gráfica GLU (GL Utilities) Funcionalidade

Leia mais

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016 Plano de Ensino de Disciplina Ciência da Computação 2º / 2016 Disciplina: Computação Gráfica e Processamento de Imagens Código: 016031 Série: 8 0 Semestre Carga Horária Semanal: 04 aulas Carga Horária

Leia mais

Revisão. Soraia Raupp Musse

Revisão. Soraia Raupp Musse Revisão Soraia Raupp Musse Processamento Gráfico Modelagem Multimídia RV Usuário Visão Modelos Gráfico Tempo Animação Vídeo Imagens Processamento de Imagens Processamento de Imagens Modelagem Multimídia

Leia mais

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

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

Leia mais

Introdução ao Processamento Gráfico

Introdução ao Processamento Gráfico Introdução ao Processamento Gráfico Leandro Tonietto Processamento Gráfico - Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto ago-09 Sumário Introdução e conceitos Resumo das linhas

Leia mais

Transformações Geométricas

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

Leia mais

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

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

Leia mais

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

Aula /2 Sistemas de coordenadas Window x Viewport

Aula /2 Sistemas de coordenadas Window x Viewport http://computacaografica.ic.uff.br/conteudocap2.html Aula 8 2018/2 Sistemas de coordenadas Window x Viewport Sistemas de Coordenadas O Sistema de Coordenadas nos dá uma referência sobre o tamanho e a posição

Leia mais