Programação Gráfica 2D com OpenGL (Aulas 22, 24 e 25)
|
|
- Cássio da Cunha Lopes
- 7 Há anos
- Visualizações:
Transcrição
1 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. O objetivo do OpenGL é uniformizar os comandos e primitivas geométricas usados para fazer desenhos, de forma que os fabricantes de hardware possam projetar processadores de vídeo (GPUs Graphical Processor Unit) otimizados para as primitivas de desenho usadas pelos programadores. Hoje a programação de gráficos é dominada por duas bibliotecas: OpenGL (mais antiga, compatível com vários sistemas operacionais e ambientes de programação) e DirectX (proprietária da Microsoft, usada apenas no Windows e no videogame XBox, da própria Microsoft). OpenGL não tem funções para abrir uma janela, ajustar o tamanho da janela ou obter toques no teclado, pois isto ainda é dependente do sistema operacional. Uma tentativa de deixar o OpenGL totalmente independente do sistema é a biblioteca GLUT, que define funções simples para realizar estas operações de forma compatível com todos os sistemas. As duas principais referências para OpenGL são os livros vermelho (Programming Guide) e azul (Reference Guide). Ambos os livros estão disponíveis online no site do OpenGL ( opengl.org), na seção de documentação (Documentation). 2 Inicialização da GLUT e OpenGL O programa abaixo abre uma janela de 640 por 480 pixels. #include <GL/glut.h> int main(int argc, char **argv) { glutinit(&argc,argv); glutinitdisplaymode(glut_rgba GLUT_DOUBLE); glutcreatewindow("gl Exemplo 1"); glutreshapewindow(640,480); 1
2 glviewport(0.0,0.0,640.0,480.0); glmatrixmode(gl_projection); glloadidentity(); gluortho2d(0.0,640.0,480.0,0.0); glmatrixmode(gl_modelview); glloadidentity(); glutmainloop(); return 0; } O comando include pode variar entre ambientes de programação. Na seção final deste documento há explicações de como compilar programas OpenGL em vários ambientes. A primeira chamada, glutinit, inicializa a GLUT, avisando que nosso programa utilizará a biblioteca. Os parâmetros de linha de comando argc e argv precisam ser passados para glutinit (ponteiro para argc e o próprio argv). A segunda chamada, glutinitdisplaymode, ajusta o modo de exibição, que será com cor RGBA (RGB mais um canal de transparência, que é a forma mais eficiente pois já é implementada no hardware da maioria das placas de vídeo) e usando double-buffering. Double-buffering é uma técnica de atualização de tela na qual sempre temos duas telas no OpenGL: a tela que está sendo exibida e a tela que está sendo desenhada. Quando terminamos de desenhar, faremos uma operação de Swap (troca), exibindo a tela que era de desenho e usando a outra tela para desenhar. Esta técnica evita que os passos do desenho sejam vistos pelo usuário antes de terminar cada quadro. As chamadas glutcreatewindow e glutreshapewindow criam uma janela e a redimensiona para o tamanho dado. Em vez de glutreshapewindow, poderíamos chamar glutfullscreen(); para usar a tela toda do computador (como a maioria dos jogos). As seis chamadas seguintes estabelecem o sistema de coordenadas de desenho e sua relação com a janela ou tela do computador. Neste curso usaremos OpenGL apenas para desenhos 2D simples, e estas chamadas estabelecem um sistema cartesiano ortogonal com origem no canto superior esquerdo da janela (ou tela), indo de 0 a 640 (eixo X) e 0 a 480 (eixo Y). Para maiores informações sobre transformações de vista, veja o capítulo 3 do livro vermelho. A última chamada, glutmainloop, não retorna: ela executa o loop de eventos da GLUT, que espera eventos (a janela ser redimensionada, precisar ser repintada, algum temporizador ser chamado, uma tecla ser apertada, o mouse ser movido, etc.) e executa ações baseadas nos eventos. Para que nosso programa faça algo de útil devemos registrar tratadores de eventos antes de chamar glutmainloop. O principal tratador é o evento display, que é o evento que desenhará o conteúdo da janela. Para registrar o evento de display, usamos a função glutdisplayfunc: 2
3 glutdisplayfunc(display); Onde display (o nome pode ser qualquer um) deve ser uma função previamente declarada, sem parâmetros e com retorno void, que será chamada para desenhar a tela sempre que necessário. 3 Primitivas de Desenho A função que trata o evento display deve limpar a tela de desenho com a chamada glclear(gl_color_buffer_bit); desenhar o conteúdo da janela ou tela o mais rápido possível (sem realizar operações demoradas, como acesso a arquivos) e então chamar glutswapbuffers(); para trocar a tela exibida com a tela de desenho. Se, em algum momento o seu programa precisar forçar a tela a ser redesenhada, você não deve chamar a função de display diretamente. Em vez disso, chame glutpostredisplay();, que fará o laço de eventos da GLUT repintar a tela assim que possível. Chamar esta função de dentro da função de display pode causar um loop infinito, cuidado. 3.1 Primitivas Vetoriais A forma mais simples de desenhar com OpenGL é com primitivas vetoriais. Estas primitivas traçam algum tipo de desenho a partir de um conjunto de vértices. No nosso caso, os vértices terão coordenadas de duas dimensões, e serão criados com as funções void glvertex2i(int x,int y); void glvertex2f(float x,float y); A única diferença entre as duas é a especificação das coordenadas como inteiros ou como valores de ponto flutuante. Cada vértice tem uma cor associada. Ao ser criado, o vértice assume a cor atual. A cor atual pode ser modificada com as chamadas void glcolor3f(float r,float g,float b); void glcolor3ub(unsigned byte r, unsigned byte g, unsigned byte b); 3
4 A versão 3f usa valores entre 0.0 e 1.0 para as componentes R (Red), G (Green) e B (Blue) da cor. A versão 3ub usa valores entre 0 e 255. O Capítulo 5 do livro vermelho tem uma tabela com os intervalos de valores para outras versões de glcolor. As primitivas de desenho são delimitadas por comandos glbegin e glend: glcolor3f(1.0,0.0,0.0); glbegin(gl_points); glvertex2i(10,10); glvertex2i(20,20); glend(); A primitiva GL POINTS apenas pinta os pontos de cada vértice isoladamente. OpenGL oferece 10 primitivas de desenho (Fig. 1). Figura 1: Primitivas de desenho geométrico do OpenGL. Caso os diferentes vértices de uma figura tenha cores diferentes, o OpenGL realizará uma interpolação de cores no seu interior. A Fig. 2 mostra o resultado gerado por glbegin(gl_triangles); glcolor3f(1.0,0.0,0.0); glvertex2i(10,200); glcolor3f(0.0,1.0,0.0); glvertex2i(500,20); 4
5 glcolor3f(0.0,0.0,1.0); glvertex2i(400,400); glend(); Figura 2: Triângulo com vértices de cores diferentes (vermelho, verde e azul). 4 Tratadores de Eventos Alguns outros eventos que vamos querer tratar via GLUT: teclas normais do teclado (glutkeyboardfunc), teclas especiais do teclado (glutspecialfunc), botões do mouse (glutmousefunc) e temporizações (gluttimerfunc). Os protótipos abaixo indicam os tipos de retorno e dos parâmetros da função a ser passada. A sintaxe para ponteiros de funções em protótipos é estranha mesmo. void glutmousefunc(void (*func)(int button, int state, int x, int y)); void glutkeyboardfunc(void (*func)(unsigned char key, int x, int y)); void glutspecialfunc(void (*func)(int key, int x, int y)); void gluttimerfunc(unsigned int msecs, void (*func)(int value), value); Na glutmousefunc, a função passada deve receber 4 parâmetros: button, state, x, e y.button terá um dos valores GLUT LEFT BUTTON, GLUT MIDDLE BUTTON ou GLUT RIGHT BUTTON, de acordo com o botão acionado. state será ou GLUT UP ou GLUT DOWN, indicando se o botão está sendo pressionado ou solto. A função será chamada em ambos os casos (quando o botão é apertado e quando ele é solto). Os parâmetros x e y contêm as coordenadas da janela em que o evento ocorreu. Na glutkeyboardfunc, a função recebe o caractere gerado pela tecla pressionada. Os parâmetros x e y recebem a posição do mouse na janela no momento do pressionamento da tecla. A função registrada com glutspecialfunc é semelhante, e recebe eventos de teclas não-imprimíveis, como 5
6 teclas de função e setas de direção. Uma lista das constantes de teclas está listada na documentação da GLUT ( mas são constantes do tipo GLUT KEY F1, GLUT KEY LEFT, etc. Na gluttimerfunc, a função passada será chamada após msecs milissegundos. Se a própria função se rearmar (chamando gluttimerfunc para si mesma), isto fará com que a função seja chamada periodicamente. Isto é a forma ideal de fazer animações e verificações periódicas. Caso a função temporizada precise forçar o redesenho da tela, deve fazê-lo com glutpostredisplay() (e nunca chamando a função de display diretamente). Na maioria dos computadores, dificilmente será possível usar tempos abaixo de 50 milissegundos. 5 Listas OpenGL permite que gravemos listas de comandos muito utilizados na placa de vídeo, evitando ter que transferir uma grande quantidade de dados toda vez que os comandos forem repetidos. Para isso usamos Listas. Cada lista é identificada por um número inteiro. Cada lista deve ser declarada entre um par de chamadas glnewlist e glendlist. Uma vez declarada, uma lista pode ser executada com glcalllist. Um conjunto de listas pode ser apagado da placa de vídeo com gldelelelists. Exemplo de definição de lista: glnewlist(1,gl_compile); // lista #1 glcolor3f(1.0,0.0,0.0); glbegin(gl_triangles); glvertex2i(0,0); glvertex2i(10,0); glvertex2i(0,10); glend(); glendlist(); Para chamar a lista criada: glpushmatrix(); gltranslatef(20.0,40.0,0.0); glcalllist(1); glpopmatrix(); No exemplo acima chamamos a lista 1 com uma matriz de translação que adiciona 20 às coordenadas X e 40 às coordenadas Y dos vértices da lista. As funções glpushmatrix e glpopmatrix salvam e restauram o sistema de coordenadas para que a translação não se aplique a outras chamadas. Um grupo de listas com identificadores adjacentes pode ser deletado como no exemplo abaixo: gldeletelists(1,10); // apaga listas de 1 a 10 gldeletelists(400,10); // apaga listas de 400 a 409 6
7 O primeiro parâmetro é a primeira lista ser apagada, e o segundo é o número de listas. 6 Texto Para escrever texto, o ideal é definirmos uma fonte de bitmaps, a serem carimbados na tela para compor texto. No OpenGL, um bitmap é um padrão de bits onde cada pixel ou é pintado (com a cor atual) ou não. O comando que desenha bitmaps é glbitmap. Seu protótipo é void glbitmap(int largura, int altura, float xorig, float yorig, float xmove, float ymove, void *dados); Esta função desenha um bitmap de largura altura pixels com o canto inferior esquerdo na atual posição raster e move a posição raster por (xmove, ymove). O desenho do bitmap é definido pela memória apontada por dados. A Fig. 3 tem um exemplo de uma letra S. O exemplo P4 disponível na página do curso contem uma fonte inteira. Figura 3: Definição de bitmap. A posição raster pode ser modificada com glrasterpos2i. Maiores detalhes podem ser consultados no capítulo 8 do livro vermelho. 7 Imagens De forma semelhante a bitmaps, podemos carimbar imagens coloridas com a função gldraw- Pixels: gldrawpixels(int largura, int altura, GLenum formato, GLenum tipo, void *dados); 7
8 Largura e altura definem o tamanho da imagem. O formato que nos interessa é GL RGB, onde nossos dados serão compostos de sequências de valores R,G,B para cada pixel. No campo tipo podemos especificar GL UNSIGNED BYTE para usar valores entre 0 e 255 para cada componente (É possível usar valores de ponto flutuante de 32 bits com GL FLOAT, por exemplo, mas isto é incomum. O capítulo 8 do livro vermelho tem uma tabela com todos os tipos permitidos). Com GL RGB e GL UNSIGNED BYTE, os dados devem apontar para uma imagem definida tal como no exercício com imagens P6 (R,G,B,R,G,B,etc.), exceto que OpenGL armazena imagens a partir da linha inferior (canto inferior esquerdo). gldrawpixels desenha a imagem com o canto inferior esquerdo na atual posição raster. 8 Compilando com OpenGL 8.1 Linux No Linux, caso OpenGL e glut estejam devidamente instalados, basta incluir a GLUT com #include <GL/glut.h> e compilar os programas com gcc programa.c -o programa -lglut Em alguns Linux pode ser necessário adicionar -lglu -lgl. 8.2 Windows: GLUT O Windows já inclui OpenGL, mas não a GLUT. O primeiro passo no Windows é baixar a GLUT de (arquivo glut bin.zip) e descompactá-lo em um diretório qualquer. Figura 4: Arquivos da GLUT para Windows. 8
9 8.3 Windows: Microsoft Visual Studio Configuração inicial: selecione Tools, Options. Selecione Projects, VC++ Directories. Exibindo os diretórios para Include Files, adicione o diretório que contem o arquivo glut.h. Exibindo os diretórios para Library Files, adicione o diretório que contem o arquivo glut32.lib. Copie o arquivo glut32.dll para C:\Windows\System32 (ou terá que copiá-lo para o diretório do seu.exe toda vez que fizer um projeto). Criando um projeto OpenGL:File, New, Project. Em Visual C++ Projects escolha Win32 Project, escolha o nome e o diretório do seu projeto e clique Ok. Clique em Application Settings e escolha Console Application e Empty Project. Expanda Source Files no lado esquerdo da janela, abra o menu com o botão direito e escolha Add Existing Item para adicionar um arquivo C já existente, ou Add Item para adicionar um arquivo C vazio. Seus programas devem ter os includes abaixo: #include <windows.h> #include <glut.h> Há algumas pequenas diferenças no Windows. O math.h por exemplo não tem a definição de pi (M PI). Para compilar, Build, Build Solution (ou F7 no teclado). Procure o executável gerado (estará dentro de um diretório Debug no diretório do seu projeto, que foi escolhido na tela de criação de novo projeto). Figura 5: Telas do Visual Studio. 9
10 8.4 Windows: Dev C++ Configuração Inicial: Selecione Tools, Compiler Options. Na aba Directories, adicione o diretório que contem o arquivo glut32.lib aos diretórios de Libraries, e adicione o diretório que contem o arquivo glut.h aos diretórios de C Includes. Clique Ok. Criando um novo projeto: File, New Project. Escolha Basic, Console Application. Dê um nome ao projeto e clique Ok. Escreva seu programa C ou adicione um já existente ao projeto. Abra Project, Project Options. Selecione a aba Parameters. No campo do Linker, escreva em uma mesma linha: -lopengl32 -lglu32 -lglut32 Nos seus programas, escreva a linha #define GLUT_DISABLE_ATEXIT_HACK antes de todos os #include, e inclua #include <windows.h> #include <glut.h> Figura 6: Tela de configuração do Dev C++. 10
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 maisDesenho de uma matriz de retângulos Serve de base para o exercício das cores
Desenho de uma matriz de retângulos Serve de base para o exercício das cores Leandro Tonietto Processamento Gráfico - Unisinos ltonietto@unisinos.br http://professor.unisinos.br/ltonietto 19-Mar-2014 Leandro
Leia maisOpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)
Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição
Leia maisOpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)
Computação Gráfica - Aula 2 (atualizada em 15/08/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional
Leia maisCG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto
CG com OpenGL Paulo Gandra de Sousa psousa@dei.isep.ipp.pt Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Conteúdo O que é? Exemplos API do OpenGL demos Desenho, iluminação,
Leia maisEngenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)
Computação Gráfica - Aula 2 (atualizada em 22/04/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional
Leia maisIntroduçã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 maisOpenGL, GLU e GLUT. GLUT (OpenGL Utility Toolkit) OpenGL. Linguagem. OpenGL. Esqueleto de um programa em PyOpenGL
OpenGL, GLU e GLUT http://www.opengl.org/resources http://pyopengl.sourceforge.net GLUT (OpenGL Utility Toolkit) O GLUT é uma biblioteca de rotinas independentes do SO, que fornecem as ferramentas necessárias
Leia maisIntroduçã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 maisComputação Gráfica OpenGl 01
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica OpenGl 01 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisEstrutura de um programa gráfico
Módulo 2 Sistemas Gráficos e Interação Instituto Superior de Engenharia do Porto Filipe Pacheco ffp@isep.ipp.pt Estrutura de um programa gráfico SGRAI 2017/18 DEI-ISEP 22 Conteúdo Arquitetura de um programa
Leia maisIntrodução a OpenGL. Profª. Alessandra Martins Coelho
Introdução a OpenGL Profª. Alessandra Martins Coelho março/ 2013 OpenGL OpenGL é uma API gráfica que permite a criação de imagens gráficas 2D e 3D, através da definição de objetos (2D/3D) por um conjunto
Leia maisComputação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL
Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 2 Introdução a OpenGL OpenGL básico OpenGL (Open Graphical Library) Uma API para geração de gráficos 3D
Leia maisINTRODUÇÃ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 maisIntrodução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler
Introdução a OpenGL Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler Adaptado do material de Marcela X. Ribeiro Maria Cristina F. de Oliveira Rosane Minghim Sumário Introdução Núcleo OpenGL, GLU,
Leia maisIntrodução à Engenharia ENG1000
Introdução à Engenharia ENG1000 Aula 04 Introdução ao Visual Studio 2010 Prof. Augusto Baffa 1. Execute o MS-Visual Studio 2010. Experimente o caminho: Start All Programs Microsoft
Leia maisLAB. 1. Introdução à OpenGL
LAB. 1 Introdução à OpenGL OpenGL O que é? É uma biblioteca de funções gráficas. É uma API (Application Programming Interface) gráfica 2D e 3D Primitivas vectoriais e rasterizadas (imagens) Capaz de gerar
Leia maisIntrodução Prática à Programação em OpenGL
Introdução Prática à Programação em OpenGL Marcelo Walter Objetivos Demonstrar o suficiente de OpenGL, a fim de que você possa escrever um programa de computação gráfica interativo com objetos 3D 2 SIGGRAPH
Leia maisSobre o Visual C++ 2010
O Visual Studio é um pacote de programas da Microsoft para desenvolvimento de software, suportando diversas linguagens como C#, C++, C, Java, Visual Basic, etc. Nesta série de tutoriais vou focar apenas
Leia maisIntrodução à Computação Gráfica OpenGL Básico. Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica OpenGL Básico Claudio Esperança Paulo Roma Cavalcanti OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas vetoriais e matriciais (imagens) Capaz de gerar
Leia maisAndré Tavares da Silva
André Tavares da Silva andre.silva@udesc.br The Red Book e http://openglbook.com/the-book.html O que é OpenGL? Open Graphics Library Uma interface de software com o hardware gráfico ; Atualmente na versão
Leia maisUma API para geração de gráficos
Miguel Leitão, 2008 OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas vectoriais e matriciais (imagens) Capaz de gerar imagens de alta qualidade Normalmente implementada de forma a tirar
Leia maisn À primeira vista: basta desenhar n Uma subrotina para desenhar cada tipo de objeto n Mas... n Como fazer interação? n Como estruturar a cena?
Programação Gráfica Computação Gráfica OpenGL Renato Ferreira À primeira vista: basta desenhar Uma subrotina para desenhar cada tipo de objeto Mas... Como fazer interação? Como estruturar a cena? Como
Leia maisProgramação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009
Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome
Leia maisAula Teórico-Prática nº 2
Aula Teórico-Prática nº 2 OpenGL e GLUT António nio Ramires Fernandes - Multimédia Bibliotecas OpenGL (Open Graphics Library) Funcionalidade Gráfica GLU (GL Utilities) Funcionalidade Extra, ao nível gráfico
Leia maisIDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
Leia maisCap. 4: Janelas, Visores & Recorte Gráfico
Cap. 4: Janelas, Visores & Recorte Gráfico Sumário Definições básicas: sistema de coordenadas globais, sistema de coordenadas do ecrã; janela de domínio de cena; janela de interface e visores de saída
Leia maisImagem ou Desenhos e Gráficos vetorial ou raster?
http://computacaografica.ic.uff.br/conteudocap1.html Imagem ou Desenhos e Gráficos vetorial ou raster? Computação Visual A CG (ou CV) tem pelo menos 3 grades divisões: SI (ou CG), AI e PI Inicialmente
Leia maisOPENGL. 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 maisImagem 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 maisCG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste
CG 015/016 Primeiro Teste LEIC Alameda/Taguspark Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Primeiro Teste 10 de Outubro de 015 O teste tem a duração
Leia maisFundamentos 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 maisAntónio Costa. Paulo Roma Cavalcanti
Introdução à Computação Gráfica OpenGL Básico Adaptação: Autoria: João Paulo Pereira António Costa Claudio Esperança Paulo Roma Cavalcanti OpenGL O que é? Uma API para geração de gráficos 3D e 2D Primitivas
Leia maisINTRODUÇÃO À LINGUAGEM C
INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima
Leia maisOpenGL. 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 maisProf. Fernando V. Paulovich 3 de maio de SCC Computação Gráca
Transformações Geométricas 3D SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade
Leia maisTutorial. Georreferenciamento de Imagens. versão 1.0-23/08/2008. Autores: Rafael Bellucci Moretti, Vitor Pires Vencovsky
Tutorial Georreferenciamento de Imagens versão 1.0-23/08/2008 Autores: Rafael Bellucci Moretti, Vitor Pires Vencovsky 1. Introdução O tutorial tem como objetivo fornecer informações básicas para georreferenciar
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisComputação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012
Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda Primeiro Teste 7 de Março de O teste tem a duração de h, tolerância incluída. Responda às questões unicamente
Leia maisUtilizando o compilador CCS integrado ao MPLAB X
Utilizando o compilador CCS Primeirament é necessário fazer o Download da interface de desenvolvimento MPLAB X no site da Microchip. Neste momento, a versão é a 1.80. Siga o link:http://www.microchip.com/pagehandler/en-us/family/mplabx/
Leia maisINF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010
Sistemas Gráficos INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 2 de Agosto de 2010 W. Celes Sistemas Gráficos 1 Visualização 3D Objetivo
Leia maisOpenGL. O que é OpenGL. O Pipeline do OpenGL. Listas de Exposição
OpenGL O que é OpenGL OpenGL é uma interface de software para dispositivos de hardware. Esta interface consiste em cerca de 150 comandos distintos usados para especificar os objetos e operações necessárias
Leia maisSistemas de Interfaces com o Usuário e OpenGL (com IUP ou GLUT)
Sistemas de Interfaces com o Usuário e OpenGL (com IUP ou GLUT) Objetos de comuns interface Modelo de Programação Dispositivos Toolkit de Interface (GLUT, SDK,... ) Sistema Gráfico (OpenGL, Direct3D,...)
Leia maisIntrodução ao OpenGL. Professora: Maria Cristina Ferreira de Oliveira. Erick Gómez Nieto Agosto, 2011 Introdução ao OpenGL
Professora: Maria Cristina Ferreira de Oliveira PAE: Erick Gómez Nieto egomezn@icmc.usp.br 1 Introdução as API s Gráficas API (Application programming interface) Interface implementada por um programa
Leia maisIntroduçã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 maisProcessamento Digital de Imagens
Processamento Digital de Imagens Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade I - Introdução ao
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Estado A interação com o usuário de nossas aplicações iniciais é bem linear: entrada com scanf, saída com puts
Leia maisSelecione a opção "Novo" -> "Atalho"
O Programa PHARMACOS Digital deverá ser instalado em um computador escolhido como Principal (ou Servidor) e utilizado nas Estações (ou Terminais) através de um atalho criado para o mesmo. Os computadores
Leia mais1. Crie um novo projeto Scratch. Apague o gato clicando com o botão direito e em apagar.
Nível 3 Ferramenta de desenho Introdução: Neste projeto, vamos criar uma ferramenta de pintura para criar desenhos. Esta ferramenta permitirá escolher a cor do lápis, limpar a tela, usar carimbos e muito
Leia maisTutorial para configurar as bibliotecas TerraView e Qt 3 no Visual Studio 2005
Tutorial para configurar as bibliotecas TerraView e Qt 3 no Visual Studio 2005 João Tácio Corrêa da Silva Ouro Preto/MG, 27/05/2010 joaotacio@yahoo.com.br 1 1. Introdução Este tutorial tem o objetivo de
Leia maisProgramação Gráfica Cap 2
Programação Gráfica (2.2 a 2.7) Instituto Superior Técnico, 2006/2007 Índice Programação 2D Sistemas de Coordenadas API do OpenGL Primitivas e Atributos Introdução à Cor Projecções Interacção com o Sistema
Leia maisProfessor: 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 maisGuia para configurar o IDE Netbeans para desenvolver projectos em C/C++ com OpenMP:
Guia para configurar o IDE Netbeans para desenvolver projectos em C/C++ com OpenMP: Ativando C/C++ / Fortran no IDE NetBeans: Se você quiser trabalhar com C, C++ ou Fortran no IDE NetBeans, a instalação
Leia maisConceitos importantes da Computação Gráfica [3]
Programa de Educação Tutorial Ciência da Computação - UFRN Minicurso Agosto de 2012 Conceitos importantes da Computação Gráfica [3] Computação Gráfica é a área da Ciência da Computação que estuda a geração,
Leia maisFCG2006 Prova sobre OpenGL e Rastreamento de Raios
FCG2006 Prova sobre OpenGL e Rastreamento de Raios Aluno(a): matrícula: 1. O programa SimpleLight.c mostrado no Quadro 1 produz a janela mostrada na Figura 1. A partir do código, calcule coordenadas na
Leia maisProgramação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012
Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 1. Implemente os programas cujos fluxogramas foram definidos na aula de problemas da semana passada: Exercício 7- Calculo
Leia maisProgramação 2010/2011 MEEC
Programação 2010/2011 MEEC Code::Blocks Criação de projectos O Code::Blocks é um IDE (ambiente de desenvolvimemnto integrado) que permite a escrita do codigo, compilação, correcção de erros e depuração
Leia maisINF01046 Fundamentos de Processamento de Imagens. Prof. Manuel M. Oliveira
INF01046 Fundamentos de Processamento de Imagens Prof. Manuel M. Oliveira 1 o Trabalho de Implementação Total de Pontos do Trabalho: 100 OBJETIVO O objetivo deste trabalho é familiarizar os estudantes
Leia maisCG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark
Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark Primeiro Teste 6 de Outubro de 013 O teste tem a duração de 1h00, tolerância incluída. Responda às questões
Leia maisDISTRIBUINDO SUA APLICAÇÃO
DISTRIBUINDO SUA APLICAÇÃO Depois de pronta sua aplicação precisa ser distribuida para todos que querem ou precisam usá-la. Para usar a sua aplicação, o único requisito para o computador do cliente é que
Leia maisINF01046 Fundamentos de Processamento de Imagens Semestre Turma A. Prof. Manuel M. Oliveira
INF01046 Fundamentos de Processamento de Imagens Semestre 2003.2 Turma A Prof. Manuel M. Oliveira 1 o Trabalho de Implementação Data: 06/10/03 Total de Pontos do Trabalho: 100 Data de Entrega: 20/10/03
Leia maisComputação Gráfica - OpenGl 02
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - OpenGl 02 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisINTRODUÇÃO À LINGUAGEM C
INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2017) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima
Leia maisComputação Gráfica II
Computação Gráfica II Revisão Introdução ao OpenGL Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Informações Bibliografia GOMES, J. e VELHO, L. Computação Gráfica: Volume
Leia maisCOMPUTAÇÃO E PROGRAMAÇÃO
COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2015/2016 MEMec, LEAN Ficha da Aula Prática 11: Introdução à criação de programas em C. Sumário das tarefas e objectivos da aula: 1 Aprender os passos necessários à
Leia maisNo Windows há basicamente dois tipos de programas de usuário:
Introdução O que vem a ser um programa em C? Você talvez já tenha ouvido falar que um compilador é um programa ou ferramenta que transforma um programa fonte escrito em uma linguagem de programação de
Leia maisComputação Gráfica - 06
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 06 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Leia maisDisciplina: INF1005 - Programação I. 1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010
1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010 1. Execute o MS-Visual Studio 2010. Experimente o caminho: Start All Programs Microsoft Visual Studio 2010 Microsoft Visual Studio
Leia maisTransformações Geométricas
Transformações Geométricas Computação Gráfica Motivação! Transformações geométricas! Translação, Rotação, Reflexão! Variação de Tamanho (scaling), Cisalhamento (shearing)! Projecção Ortogonal, Projecção
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisOpenGL. Computação Gráfica ISEL/DEETC/SP Computação Gráfica
OpenGL Computação Gráfica CG @ 2007 ISEL/DEETC/SP Computação Gráfica 1 Jellys Tetris Gorillas PacMan Sokoban 3 Sumário Introdução ao OpenGL (capítulos 1 e 2 do red book) O que é? Sintaxe Máquina de estados
Leia maisINF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1
Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para
Leia maisConfigurando addon example, openframeworks - Code::Blocks Versão 11jun2012, por Fabrício Silva
Configurando addon example, openframeworks - Code::Blocks Versão 11jun2012, por Fabrício Silva Vamos usar como exemplo o addon Box2D, uma biblioteca de física. A versão utilizada do OF é a 0071 e Codeblocks
Leia maisINTRODUÇÃO À LINGUAGEM C
INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima
Leia maisFUNDAMENTOS E APLICAÇÕES. Luis Valente
FUNDAMENTOS E APLICAÇÕES Luis Valente 1 DIÁRIO DE BORDO OpenGL Aplicações Usando OpenGL Sistema de Janelas Primitivas Cores e Sombreamento Transformações e Projeções Composição de Objetos Mapeamento de
Leia maisUsando o email e a Internet
Usando o email e a Internet Novo no Windows 7? Mesmo que ele tenha muito em comum com a versão do Windows que você usava antes, você ainda pode precisar de uma ajuda para fazer tudo direitinho. Este guia
Leia maisO Primeiro Programa em Visual Studio.net
O Primeiro Programa em Visual Studio.net Já examinamos o primeiro programa escrito em C que servirá de ponto de partida para todos os demais exemplos e exercícios do curso. Agora, aprenderemos como utilizar
Leia maisGraphicsLib Biblioteca Gráfica 2D. Documentação
GraphicsLib Biblioteca Gráfica 2D Documentação Edirlei Soares de Lima elima@inf.puc-rio.br Sumário 1 Instalação e Configuração... 4 2 Manual de Utilização... 10 2.1 Estrutura de um Programa... 10 2.2 Loop
Leia maisCorel Draw. Editoração Gráfica. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.
Corel Draw Editoração Gráfica Professor: Jarbas Araújo professorjarbasaraujo@gmail.com CENTRO EDUCACIONAL RADIER Padrões CMYK ou RGB? Isso causa uma enorme confusão na cabeça de clientes, e pessoas leigas
Leia maisUso do Easy Interactive Tools
Uso do Easy Interactive Tools Inicialização do Easy Interactive Tools Para iniciar o Easy Interactive Tools no seu computador, siga um destes passos: Windows: Clique duas vezes no ícone do Easy Interactive
Leia maisAntes da aula. Para mudar o idioma, no canto superior esquerdo da tela, clique no botão em forma de engrenagem. Escolha Language.
Antes da aula A. Criar uma conta de e-mail para a turma Entre no site: https://accounts.google.com/signup para criar uma conta de e-mail. Nos campos: Nome de usuário: coloque nome da escola e número da
Leia mais1 Como compilar seu código? 2 Comandos de terminal:
Manual Básico 2 COMANDOS DE TERMINAL: 1 Como compilar seu código? É necessário compilar seu código para testar seu programa e saber se a lógica utilizada está correta para solucionar todas as possíveis
Leia maisOpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102
OpenGL 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 1 Introdução Definição História Portabilidade 2 Vantagens Rápida Simples Robusta Padrão aberto Multiplataforma Mecanismo de incorporação
Leia maisComputação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores
Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 3 Janelas e Visores Janelas e Visores Sumário Definições domínio de imagem (ecrã) janela de ecrã domínio da cena (IR 2 ) janela visor
Leia maisCurso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM
Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto
Leia maisDISCIPLINA SIG EXERCÍCIO 1: MUDANÇA DE SISTEMA DE COORDENADAS (GEOGRÁFICAS LAT/LONG PARA UTM CÓRREGO ALEGRE)
DISCIPLINA SIG OFICINA: MODELO NUMÉRICO DE TERRENO (MNT) Responsável: MARIA ISABEL C DE FREITAS Colaboração: BRUNO ZUCHERATO KATIA CRISTINA BORTOLETTO EXERCÍCIO 1: MUDANÇA DE SISTEMA DE COORDENADAS (GEOGRÁFICAS
Leia maisTUTORIAL: TESTANDO O PROJETO TECLADO BÁSICO
TUTORIAL: TESTANDO O PROJETO TECLADO BÁSICO I Configuração do Hardware no Kit. 1-Abrir o Quartus II; 2-Fechar a janela "Getting Started with Quartus II, e abrir a janela do programador. Na barra de menus
Leia maisALTERA Quartus II. Manual
ALTERA Quartus II Manual 2014 O Quartus II é um ambiente de desenvolvimento integrado (IDE Integrated Development Environment), utilizado para o desenvolvimento de sistemas digitais utilizando FPGAs (Field
Leia maisMatriz de transformação
OpenGL Matriz de transformação geométricas no espaço - representadas por matrizes; pilha de matrizes de transformação - lembrar a seqüência de transformações realizadas; glpushmatrix() - insere a matriz
Leia maisGuia prático do. Passo a passo
Guia prático do BrOffice.org IMPRESS Passo a passo Licenciamento de Uso desta Documentação Este material foi elaborado por Mônica Figueira Câmara, baseado no arquivo de Ajuda do BROffice.org e segue os
Leia maisEstrutura de Programas e Tipos de Dados Simples
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estrutura de Programas e Tipos de Dados Simples Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br
Leia maisIntroduçã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 maisINTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia
INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Tela inicial do Editor de programas do DEV C++ Dicas
Leia maisTrabalhando com MDI e Menus
Ambiente de Programação Visual Trabalhando com MDI e Menus Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos apresentar o desenvolvimento de uma aplicação padrão MDI. Este modelo de aplicação é muito
Leia maisNOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos realizar os passos abaixo.
TUTORIAL 03 Criando uma base de dados SQL Server com o Visual Studio ETAPA 1: Criando um novo Web Site usando o Visual Studio 2010 NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Leia maisAula 04 Tipos de arquivos e Fireworks
Aula 04 Tipos de arquivos e Fireworks Tipos de arquivos Algumas extensões de arquivo de imagem Extensões mais utilizadas Extensão Nome próprio Descrição.bmp Windows Bitmap Usado pelos programas Microsoft
Leia maisGuia e Utilização do Visual Studio.NET 2003
Guia e Utilização do Visual Studio.NET 2003 Objectivo Este guia acompanha-o através do processo de criação de uma aplicação C++ utilizando o ambiente de desenvolvimento Visual Studio.NET 2003. Passo 1:
Leia mais