Sistemas de Interfaces com o Usuário e OpenGL/Glut

Slides:



Advertisements
Apresentações semelhantes
Sistemas de Interfaces com o Usuário e Glut/OpenGL
Advertisements

Funções para serem usadas no exercício de Lab
Interações cliente/servidor usando o UDP
Um programa em C Bibliotecas Variáveis globais
Computação Gráfica Mapeamento de textura
OpenGL Computação Gráfica.
Programação II Estruturas de Dados
MPI – Comunicações Com. Colectiva esquecida Barrier não há troca de dados, apenas sincroniza os processos int MPI_Barrier( MPI_Comm, comm) T com = T lat.
MPI - Introdução Message-Passing Model Task: código + memória (uma ou várias tasks no mesmo processador) Mensagem: as tasks comunicação entre si trocando.
OpenGL Clique para adicionar texto Soraia Musse 6/4/2011.
TADS – Tipos Abstratos de Dados
Introdução à Computação - Jorge Macêdo
Introdução a OpenGL (parte final).
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica OpenGL Básico
Computação Gráfica Interativa - Gattass
Navegador de cenas com openGL e rastreamento de raios
OpenGL Conceitos Básicos
Sistemas de Interfaces com o Usuário
Algoritmo de Rastreamento de Raios
OpenGL Alberto B. Raposo.
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
Computação Gráfica Módulo IV – OpenGL
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Laboratório de Computação Gráfica OpenGL
Iluminação Para programar um sistema de iluminação, dois passos principais devem ser considerados: c) Que tipo e posição de Iluminação se deseja b) Que.
Computação Gráfica: Aula2: Curvas e Superfícies
Computação Gráfica MO603/MC930
OpenGL – Uma abordagem prática e objetiva
Movimentos de Câmara – Modo Explorador
Computação Gráfica – Transformações Geométricas
Simulação Massa-Mola para Tecidos
Introdução à Computação Gráfica Projeções
Visibilidade em Computação Gráfica
PROGRAMAÇÃO ESTRUTURADA II
Animações Independentes na Mesma Cena
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
José Garcia Vivas Miranda
Computação Gráfica Mapeamento de textura
Computação Gráfica Introdução ao OpenGL.
Introdução à Computação Gráfica OpenGL Básico
COMPUTAÇÃO GRÁFICA E INTERFACES
Uso de parâmetros na linha de comando. Parâmetros da função main:
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Animação
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Computação Gráfica – Transformações Geométricas
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
OpenGL Aula Prática.
Algoritmo de Rastreamento de Raios
1Unidade – Estrutura Condicional CASE Algoritmos e Linguagens de Programação Estrutura Condicional CASE Faculdade INED – Abril 2007 Prof. Edwar.
Viewport.
Computação Gráfica – Animação
Computação Gráfica – Transformações Geométricas Profa. Mercedes Gonzales Márquez.
1 SUIT - Simple User Interface Toolkit Maria Alice Grigas Varella Ferreira EP-USP Abril 2003.
Felipe Cavalcanti Ferreira Fernando Valente Kakimoto
Sistemas de Interfaces com o Usuário (IUP ou GLUT) e Sistemas Gráficos (OpenGL)
Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Interrupção – Conceitos Básicos.
Vetores Normais.
Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx; GLfloat Ty; // Variáveis que guardam os valores mínimos.
Grupo: Antônio Inocêncio Francisco Ícaro Filipe Araújo Guilherme Barreto Leonardo Vilaça Márcio Dias Thiago Gomes.
Por Anderson Afonso Cardozo UNIVERSIDADE CATÓLICA DE PELOTAS
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Transcrição da apresentação:

Sistemas de Interfaces com o Usuário e OpenGL/Glut Computação Gráfica Interativa - Gattass 3/25/2017 Sistemas de Interfaces com o Usuário e OpenGL/Glut Interfaces Gráficas

Objetos de comuns interface Computação Gráfica Interativa - Gattass 3/25/2017 Objetos de comuns interface MGattass Interfaces Gráficas

Computação Gráfica Interativa - Gattass 3/25/2017 Modelo de Programação Toolkit de Interface (GLUT, SDK, ... ) Programa Gráfico- Interativo Sistema Gráfico (OpenGL, Direct3D, ...) Dispositivos Computador Usuário MGattass Interfaces Gráficas

Programação Convencional Computação Gráfica Interativa - Gattass 3/25/2017 Programação Convencional inicio Programação Convencional Os comandos são executados segundo uma ordem pré-estabelecida e sequencial. captura dados processa dados fim MGattass Interfaces Gráficas

Eventos típicos (WIMP) Computação Gráfica Interativa - Gattass 3/25/2017 Eventos típicos (WIMP) KeyPress KeyRelease ButtonPress ButtonRelease Motion LeaveNotify EnterNotify WindowExposure (repaint) Resize Timer Idle Janela A Janela B Janela C MGattass Interfaces Gráficas

Computação Gráfica Interativa - Gattass 3/25/2017 Modelo de Call Backs Processa Evento Tipo 1 Eventos Examina eventos, chama os módulos de processamento Processa Evento Tipo 2 Motif Visual Basic Glut IUP ... Processa Evento Tipo 3 Programa de Aplicação MGattass Interfaces Gráficas

Computação Gráfica Interativa - Gattass 3/25/2017 Visual Basic Interfaces Gráficas

OpenGL/GLUT #include <glut.h> #include <image.h> /* Variaveis globais */ typedef struct window_impl { int width; int height;} Window; Window window; IMAGE pic; int main(int argc, char **argv) { pic = imgReadBMP(“teste.bmp”); imgGetDimensions(pic, &window.width, &window.height); /* GLUT - Initialization */ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(window.width, window.height); glutCreateWindow("CG-T1"); /* Registrando callbacks */ glutDisplayFunc(displayCall); glutReshapeFunc(reshapeCall); glutMouseFunc(mouseCall); glutMotionFunc(motionCall); glutKeyboardFunc(keyboardCall); glutIdleFunc(idleCall); /* GLUT main loop */ glutMainLoop(); return 0; } MGattass

Exemplo simples da GLUT void displayCall(void) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); imgDraw(pic); glFlush(); glutSwapBuffers(); } void reshapeCall(int width, int height) { glViewport(0, 0, (GLsizei)width, (GLsizei)height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D (0.0, (GLsizei)width, 0.0, (GLsizei)height); glMatrixMode(GL_MODELVIEW); window.width = width; window.height = height; } MGattass

OpenGL/IUP – Exemplo Simples void main(void) { IupOpen(); IupGLCanvasOpen(); if ( init() ) IupMainLoop(); IupClose(); }

Elementos de interface Canvas 1 Canvas 2 HBox Eventos: RESIZE, REPAINT, BUTTON

Elementos de interface w h xv yv int resize_cb(Ihandle *self, int w, int h) { IupGLMakeCurrent(self); glViewport(0,0,w,h); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glMatrixMode(GL_PROJECTION); gluOrtho2D (0., w, 0., h); glRasterPos2d(0.0,0.0); return IUP_DEFAULT; } xe ye ze w h Evento: RESIZE

Elementos de interface int repaint_cb1(Ihandle *self) { IupGLMakeCurrent(self); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); imgGLDrawPixels(image1); glFlush(); return IUP_DEFAULT; } xe ye ze w h Evento: REPAINT void imgGLDrawPixels(Image image) { glDrawPixels (image->width, image->height, GL_RGB,GL_UNSIGNED_BYTE, (GLubyte *) image->buf); }