Sistemas Gráficos Interativos. Interações



Documentos relacionados
FCG2006 Prova sobre OpenGL e Rastreamento de Raios

Computação Gráfica. Dispositivos de Visualização. Profa. Carolina Watanabe

HARDWARE GRÁFICO. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Dispositivos de Entrada e Saída

Representação de Imagens

Introdução. Dados. Imagens. 1. CG Computação Gráfica. 2. Paradigmas de Abstração

Estrutura e Funcionamento de um Computador

Projeções e Visualização

Introdução à Organização de Computadores Entrada e Saída. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

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?

ESTRUTURA E FUNCIONAMENTO DE UM SISTEMA INFORMÁTICO

Especificação técnica do Software de Gerenciamento de Vídeo

OpenGL. Alberto B. Raposo

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

LAB. 1. Introdução à OpenGL

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

INFORMÁTICA PARA ADMINISTRAÇÃO I

Prof. Célio Conrado 1

Computação Gráfica II

Periféricos, dispositivos de entrada e dispositivos de saída

Aula 02 Hardware. Informática. Prof. Diego Pereira. Contribuições de: Álvaro Silva e Bruno Gomes. Prof. Bruno Gomes <bruno.gurgel@ifrn.edu.

COMPUTAÇÃO GRÁFICA REPRESENTAÇÃO DE IMAGENS

Dispositivos de entrada, saída, entrada e saída

OpenGL. O que é OpenGL. O Pipeline do OpenGL. Listas de Exposição

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

Scanners Manual Básico. Um guia prático e rápido para conhecer o melhor tipo de equipamento para seus trabalhos.

Multimídia. Conceitos Básicos (Parte II)

Disciplina: Introdução à Informática Profª Érica Barcelos

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

Placa Principal (Motherboard)

Monitores. Tecnologias de Computadores. Trabalho realizado por: Universidade da Beira Interior. Prof.Pedro Araújo. -Diogo Fernandes nº27097

Se ouço esqueço, se vejo recordo, se faço aprendo

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Geral: Manual de Utilização do Software de Teste Gradual Windows

Computação Gráfica - 03

CRAb Grupo de Computação Gráfica Departamento de Computação UFC

COMPUTAÇÃO GRÁFICA EQUIPAMENTOS

HELPDESK. Guia do Usuário

DISPOSITIVO PARA RASTREAMENTO DE VEÍCULOS, COLETA, TRANSMISSÃO E DISPONIBILIZAÇÃO DE DADOS EM TEMPO REAL APRESENTAÇÃO

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

Introdução à Programação em OpenGL. Prof. Márcio Bueno

Capítulo I : Noções Gerais

AGRUPAMENTO DE ESCOLAS DE PORTELA E MOSCAVIDE. Informação - Prova de Equivalência à Frequência da disciplina de Aplicações Informáticas B

Gerenciamento Total da Informação

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Painel de Controle e Configurações


INTRODUÇÃO A OPENGL. Computação Gráfica

15/08/2013 DIREITO DA. Professor: Luis Guilherme Magalhães (62) INTRODUÇÃO À INFORMÁTICA

GUIA PARA HABILITAÇÃO DAS BIOMETRIAS LINEAR (SÉRIE LN) NO SOFTWARE HCS 2010 V9.0 (BETA 3) 11/06/2014

O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft.

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

INSTALAÇÃO e MANUTENÇÃO de MICRO COMPUTADORES

Noções sobre sistemas operacionais, funcionamento, recursos básicos Windows

Acesso Remoto Intelbras Internet Explorer

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

Acionamento através de senha*, cartão de proximidade ou biometria. Compatível com fechaduras magnéticas, eletroímãs e cancelas.

Impressoras. Para acessar a pasta impressoras, entre em MeuComputador e clique no ícone abaixo. Instrutor Antonio F. de Oliveira

Características. São Paulo: (11) Campinas: (19) Campo Grande: (67) Cuiabá: (65) MPEBrasil

Aula 6 Fundamentos da fotografia digital

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

CADERNO DE QUESTÕES WINDOWS 8

Monitores. Introdução

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

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Controle de Acesso GS TOUCH CT. Leitor Biométrico. gigasecurity.com.br. Santa Rita do Sapucaí - MG Tel:

Computação Gráfica. Daniela G. Trevisan.

3 Processamento de Dados e Sistemas de Informações Contábil-Financeiros, 12

Plano de Aula - Windows 8 - cód Horas/Aula

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

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

Sistema de gerenciamento, controle e auditoria de computadores e usuários em uma rede local.

Sistema TrackMaker de Rastreamento e Logística de Transportes. Solução de Despacho Integrada. Manual do Usuário

Manual do Usuário Android Neocontrol

Duas capacidades de armazenamento de digitais. Opção para digitais (padrão) ou digitais opcional);

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Gerenciamento Total da Informação

Media. Funcionalidade Multitouch

Sistema Gráfico Dispositivos de Exibição

b 1 Copyright In9 Mídia Soluções Digitais Inc. All rights reserved.

Manual de uso PSIM Client 2010

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

Informática. Informática. Valdir

Aula 2 Aquisição de Imagens

Sumário GERAL... 3 INSTALAÇÃO... 3 UTILIZANDO O MINI DVR USB ST Opções de Segurança Gravando as Imagens...13 ESPECIFICAÇÕES TÉCNICAS

Baseado na portaria n 373 de 25 de fevereiro de 2011 do Ministério do Trabalho e Emprego;

LABORATORIOS DE INFORMÁTICA. prof. André Aparecido da Silva Disponível em:

Programa A busca da formação integral de adolescentes que habitam as periferias e bolsões de miséria em Cascavel/PR através da saúde, do meio

É a parte física de um computador, formada por peças e circuitos eletrônicos que ficam dentro do Gabinete (Torre). Existem diversos tipos de

Programa de Aprimoramento Discente em Modelagem Geométrica Computacional. Curso Básico de OpenGL

Cap. 4: Janelas, Visores & Recorte Gráfico

Transcrição:

Sistemas Gráficos Interativos Rogers & Adams: Capítulo 1 Redbook: Capítulo 1 Apostila: Capítulo 2 Interações Computador suporte em processamentos Símbolos gráficos Processamento humano Interagir com o computador através de comunicação visual. Processamento de máquina Ações

Arquitetura Vetorial Dispositivos de Saída Processamento Gráfico Controlador de Display Dispositivos de Entrada Arquitetura Raster Dispositivos de Saída Controlador de Vídeo Dispositivos de Entrada Processamento Gráfico Memória de Vídeo (frame buffer)

Dispositivos de Saída Periféricos capazes de transmitir os resultados de um processamento digital ao mundo exterior. Classificação Quanto ao modo de saída visual verbal Quanto à persistência removível permanente Quanto ao tipo de dados discreto contínuo Dispositivos de Saída Monitores CRT pixel Tubos de Raios Catódicos (CRT) Shadow Mask: fina folha metálica para evitar que feixe de elétrons atinja células vizinhas. Aumenta a nitidez da imagem.

Dispositivos de Saída Monitores LCD LCD Liquid cristal displays Luz pode ser polarizada Cristal líquido pode transmitir e polarizar luz Estrutura do cristal líquido pode ser alterada pela corrente elétrica Há eletrodos transparentes Dispositivos de Saída Impressoras Princípio de funcionamento: carga estática

Dispositivos Lógicos de Saída Periféricos sob o ponto de vista de programação: resolução de saída (quantidade de pixels) resolução de cada pixel (tamanho de fragmento) quantidade de memórias de vídeo (frame buffers) modo de exibição: indexado e RGB Memória de Vídeo Viewport 480 pixels 640 pixels Razão de aspecto: 4:3 Profundidade Resolução (espacial)

Memória de Exibição Dupla Processamento Gráfico Raster http://www.opengl.org/

OpenGL: Fluxo de Processamento http://zach.in.tu-clausthal.de/teaching/cg_literatur/glsl_tutorial/index.html OpenGL: Fluxo de Processamento http://zach.in.tu-clausthal.de/teaching/cg_literatur/glsl_tutorial/index.html

OpenGL: Fluxo de Processamento Programável Geometry shader Vertex shader Fragment shader OpenGL fluxo programável http://www.khronos.org/files/opengl-quick-reference-card.pdf http://www.cs.umd.edu/users/mount/427/opengl/ogl_ref/ogl_ref.html

OpenGL fluxo programável Programmable Geometry shader Instalação de OpenGL http://nehe.gamedev.net/lesson.asp?index=01

Interações com Gráfico Raster transf_cube http://www.dca.fee.unicamp.br/courses/ia725/1s2006/program/samples.html Modos de Entrada Modo de Requisição Gatilho Captura de Dados requisição Programa Modo de Amostragem Captura de Dados amostragem Programa Modo de Evento Gatilho Captura de Dados Fila de Eventos Programa

Modos de Entrada Arquitetura em Rede Modo de Requisição Gatilho Captura de Dados requisição Programa Modo de Amostragem Captura de Dados amostragem Programa Modo de Evento Gatilho Captura de Dados Fila de Eventos Programa Servidor Cliente Conexão por rede Dispositivos de Entrada Periféricos capazes de captar dados gerados pelos usuários Classificação Quanto ao modo de entrada Visual (sinais luminosos) Áudio (sinais sonoros) Pressão (forças) Movimento Quanto ao tipo de dados Discreto Contínuo Quanto ao grau de liberdade 2-, 3-, 6-, ou mais

Dispositivos de Entrada Caneta Óptica (Lightpen) Controle por sinal luminoso Discreto 2 graus de liberdade Aquisitor de pontos/localizador (posição absoluta)/selecionador/ Identificador Não pode ser utilizado em telas LCD! Controle por movimento Contínuo 2 graus de liberdade Localizador (posição relativa)/ Selecionador/ Identificador Dispositivos de Entrada Mouse e Trackball

Dispositivos de Entrada Teclado Controle por movimento (de dedo) Discreto 1 grau de liberdade Aquisitor de caracteres/ Aquisitor de pontos/ Aquisitor de valores/ Localizador (posição relativa)/selecionador/ Identificador Dispositivos de Entrada Tablet ou Pad digitalizador Controle por indução eletromagnética Contínuo 2 graus de liberdade Aquisitor de pontos/localizador (posição absoluta)/selecionador/ Identificador/Aquisitor de valores (ângulo)/ Aquisitor de caracteres (handwriting)

Dispositivos de Entrada Joystick Controle por movimento Contínuo 2 graus de liberdade Localizador (posição relativa)/ Selecionador/ Identificador Dispositivos de Entrada Spaceball Controle por movimento Contínuo 6 graus de liberdade Aquisitor de pontos/localizador (posição relativa)/selecionador/ Identificador

1. Câmera/Filmadora com lentes e DDC na ordem de cm 2 : captação de fótons. 2. Arranjo de fotosítios, com filtros de cor: formação de pacotes de elétrons livres. 3. Interação com pacotes adjacentes: criação de parede de potencial Dispositivos de Entrada Scanner (OCR) Reconhecimento óptico de caracteres

Dispositivos de Entrada Sensor de Profundidade Dispositivos Físicos Data Glove Controle por movimento Contínuo graus de liberdade dependentes dos sensores Aquisitor de pontos/localizador (posição relativa)/selecionador/ Identificador

Dispositivos de Entrada Lógicos Função Lógica Aquisitor de cadeias de caracteres (string) Cadeia de caracteres Localizador (locator) Posição de um ponto no espaço Identificador (pick) Um elemento gráfico dentre os exibidos Selecionador (choice) Uma dentre as alternativas pré-estabelecidas Aquisitor de valores escalares (valuator) Um valor Aquisitor de seqüências de segmentos (stroke) Seqüência de pontos Processamento de Eventos de Entrada MainEventLoop Ações do usuário Evento Despacho de Eventos Tratamento de Eventos A qual janela deve ser despachado o evento? Como o tratamento pode ser personalizado para cada aplicativo? Sistema de janelas

Estratégia de Tratamento de Eventos Ação do usuário Evento Despacho de Eventos Tratamento de eventos comuns às janelas? Tratamento de eventos específicos de cada aplicação Programação Orientada a Eventos Modelo Callback Programa de Aplicação (passo inicial) Programa Principal Função Callback Laço Principal Plataforma de sistema de janelas chamadas Registro da Função Programa de Aplicação (passos subseqüentes) Programa Principal Função Callback Laço Principal chamadas Plataforma de sistema de janelas Registro da Função Quantas funções devem ser previstas?

Aplicativos Gráficos Interativos O Teorema de Pappus (atribuido a Pappus de Alexandria) afirma que dado um conjunto de pontos colineares a0, a1, a2, e um outro conjunto de pontos lineares b0, b1, b2, então os pontos de intesecção P1, P2, P0 dos pares de linha a1b0 e a0b1, a0b2 e a2b0, a1b2 e a2b1 são colineares. http://i33www.ira.uka.de/applets/mocca/html/noplugin/pappus/apppappus/index.html Algumas Diretrizes para Desenvolvimento de Aplicativos Gráficos Interativos Representação visual compatível com o contexto Consistência em look e feel Realimentação às ações dos usuários, respeitando os limites aceitáveis dos tempos de resposta Até 0.1s: nenhuma realimentação especial é necessária Até 1s: o usuário ainda não perde a noção de fluidez Até 10s: o usuário ainda aceita a espera Mais de 10s: realimentação especial é necessária Minimização da probabilidade de ocorrência de erros, habilitando somente ações válidas Minimização do esforço de memorização Inclusão de ações: Undo, Redo, Reset, Cancel, ou similares.

Aplicativo Gráfico Interativo Aplicação GUI Sistema Operacional + Sistema de Janelas (gerenciamento de eventos e área de exibição) Toolkit API Gráfica (processamento gráfico) Hardware APIs para Desenvolvimento de Aplicativos Gráficos Interativos API Gráfica (3D) OpenGL Direct3D GUI provida de área de desenho OpenGL GLUT Fast Light Toolkit (FLTK) wxwidgets Qt Trolltech GTK GLUI

Interface Gráfica de Usuário GUI Componentes de interface (Widgets) providos de geometria (look) e comportamento (feel) próprios. Alguns Exemplos de Componentes Spinner Button List box Dialog box Toolbar + menubar Scrollbar

Área de Desenho/Canvas APIs de OpenGL http://www.cosc.brocku.ca/offerings/3p98/course/lectures/opengl/glut_ref.html

Um Aplicativo int main(int argc, char **argv) { glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutcreatewindow("red 3D lighted cube"); glutdisplayfunc(display); init(); glutmainloop(); return 0; /* ANSI C requires main to return int. */ } http://www.opengl.org/resources/code/samples/glut_examples/examples/examples.html void init(void) { /* Setup cube vertex data. */ v[0][0] = v[1][0] = v[2][0] = v[3][0] = -1; v[4][0] = v[5][0] = v[6][0] = v[7][0] = 1; v[0][1] = v[1][1] = v[4][1] = v[5][1] = -1; v[2][1] = v[3][1] = v[6][1] = v[7][1] = 1; v[0][2] = v[3][2] = v[4][2] = v[7][2] = 1; v[1][2] = v[2][2] = v[5][2] = v[6][2] = -1; /* Enable a single OpenGL light. */ gllightfv(gl_light0, GL_DIFFUSE, light_diffuse); gllightfv(gl_light0, GL_POSITION, l ight_position); glenable(gl_light0); glenable(gl_lighting); // Use depth buffering for hidden surface //elimination. glenable(gl_depth_test); setview(); } setview(void) { /* Setup the view of the cube. */ glmatrixmode(gl_projection); gluperspective( /* field of view in degree*/ 40.0, /* aspect ratio */ 1.0, /* Z near */ 1.0, /* Z far */ 10.0); glmatrixmode(gl_modelview); glulookat( 0.0, 0.0, 5.0, /* eye is at (0,0,5) */ 0.0, 0.0, 0.0, /* center is at (0,0,0) */ 0.0, 1.0, 0.); /* up is in +Y direction */ //Adjust cube position to be asthetic //angle. gltranslatef(0.0, 0.0, -1.0); glrotatef(60, 1.0, 0.0, 0.0); glrotatef(-20, 0.0, 0.0, 1.0); }

void display(void) { glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); drawbox(); glutswapbuffers(); } void drawbox(void) { int i; for (i = 0; i < 6; i++) { glbegin(gl_quads); glnormal3fv(&n[i][0]); glvertex3fv(&v[faces[i][0]][0]); glvertex3fv(&v[faces[i][1]][0]); glvertex3fv(&v[faces[i][2]][0]); glvertex3fv(&v[faces[i][3]][0]); glend(); } }