Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo.

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Computação Gráfica Geometria de Transformações
DCA-0114 Computação Gráfica
Engenharia de Software
Engenharia de Software
JOGOS.
Projeções e OpenGL Alex F. V. Machado.
SISTEMA É UMA ENTIDADE QUE MANTEM SUA EXISTÊNCIA ATRAVÉS DA INTERAÇÃO DE SUAS PARTES ( Bertalanffy ) Interação Mútua Diferente duma simples.
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica Geometria
Introdução à Computação Gráfica Colorização
CAPÍTULO Introdução 2. Programação de tarefas de robôs
A terceira dimensão.
Computação Gráfica Teórica
Computação Gráfica: Rendering e Rasterização
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Threads.
Seminário de Engenharia de Usabilidade
Computação Gráfica: Aula6: Iluminação
Em telas “touchscreen”
Informática Teórica Engenharia da Computação
Programação Avançada Prof. Natalia Castro Fernandes
Sistemas Operacionais
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Realidade Virtual Aula 7
Realidade Virtual Aula 10
Contornos arquitetônicos Maria Helena Pereira Dias.
Word Prof. Gláucya Carreiro Boechat
Computação Gráfica – Visibilidade
Professor: Márcio Amador
Visualização Tridimensional (Câmera Sintética)
Princípios de Cinemática
GEOGEBRA NA SALA DE AULA
Análise e Projeto de Sistemas
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Realidade Virtual Aula 4
SISTEMAS OPERACIONAIS I
Realidade Virtual Aula 3 Remis Balaniuk. Conteúdo Nessa aula serão apresentados os conceitos básicos de geometria 3D ao mesmo tempo em que será apresentada.
Testes de Software AULA 02 Eduardo Silvestri
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Realidade Aumentada para fins Educativos
Análise de padrões de uso em grades computacionais oportunistas
Desenhos Tridimensionais
Curso de Física Geral F semestre, 2011
Realidade Virtual Aula 5
Introdução ao MATLAB 5.3 para Hidrólogos
Visualização Tridimensional
F.T I Aula 4.
Componentes de Interface
Introdução à Computação Gráfica
Fundamentos de linguagens de programação
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2008 Integrantes: Professor Orientador: Co-orientadores:
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Conceitos e Procedimentos
AULA 6 – CÁLCULO COM GEOMETRIA ANALÍTICA II Mudança de Coordenadas
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Elementos de Informática
M.Sc. Ronnison Reges Vidal
Prof. Wallace Borges Cristo
Introdução à Programação Orientada a Objeto
Gerenciamento de riscos
Introdução à Computação Gráfica Rasterização
Animação em Ambiente António Câmara Animação em Ambiente Introdução Animação baseada em keyframes Animação de entidades naturais e artificiais Sistemas.
FORÇA E MOVIMENTO Prof. Bruno Farias
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
Aline Oliveira Everton Godoy Gabriel Leoni Lenilton Rocha Nelson Deda.
Prof.: Raphael Carvalho. ÓPTICA GEOMÉTRICA É a parte da Física que estuda os fenômenos relacionados com a luz e sua interação com meios materiais quando.
Transcrição da apresentação:

Realidade Virtual Aula 2 Remis Balaniuk

Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo ao constatar o grande número de tópicos que devem ser estudados: –linguagem de programação: C, C++, Java(?) –Biblioteca gráfica: OpenGL, VRML :-(( –Geometria tridimensional: vetores, transformadas, coordenadas homogêneas, etc – Física: equações do movimento (força, velocidade, aceleração, gravidade, etc), propriedades dos objetos (massa, densidade, elasticidade, etc), energia, etc. –Estratégias de simulação: multi-threads, sincronização, frequências de simulação. –Drivers e dispositivos.

Enxergando grande, começando pequeno A implementação de aplicações, quando feita do zero, exige bastante esforço de programação. Difíceis de depurar (multi-thread). Modelos são difíceis de serem construídos (definição do mesh de triângulos, definição das propriedades do objeto, etc).

Enxergando grande, começando pequeno Por isso, essa disciplina vai adotar as seguintes estratégias para otimizar o aprendizado: –não reinventar a roda: usaremos um ambiente de programação adequado, que tenha recursos que facilitem a programação e o debug : o Borland C++ ao invés de usar o OpenGL diretamente adotaremos uma biblioteca de classes pronta que já traga implementadas as estruturas básicas (vetor, matrizes, operações sobre vetores e matrizes, apresentação, definição de atributos, etc). Usaremos o Chai3d.

Enxergando grande, começando pequeno –defina de forma bem estruturada suas classes, de forma que essas possam ser reutilizadas de uma aplicação para outra. –programe de forma limpa e bem documentada. –aprenda implementando: ataque problemas começando pelos mais simples, e aumente gradualmente sua complexidade. dê ênfase ao estudo das transformações geométricas, que são o ponto crucial de uma aplicação em RV. explore os recursos da biblioteca gráfica para entender bem seu funcionamento.

Passos Passo 1: escolher a plataforma de implementação –VRML ou OpenGL? VRML –é uma linguagem descritiva de objetos tridimensionais. –necessita de um browser para visualização –o browser, por ser uma caixa preta, não permite adicionar recursos de vizualização ou alteração no modelo durante a simulação (deformação, dinâmica, etc) –é mais simples a ser usado mas limitado quanto ao uso OpenGL –é uma linguagem procedural, que envia instruções à placa gráfica –é bem primária, baseada em primitivas gráficas como linhas, pontos, polígonos simples, cor do fundo, orientação da camera virtual, etc –código difícil de depurar pois não dá mensagens de erro –instruções dependem do contexto (matriz de transformação) e o programador é que deve entender esse contexto (camera virtual)

Passos Passo 1: escolher a plataforma de implementação (cont.) –escolha da linguagem –escolha do ambiente de programação glut: biblioteca que adiciona recursos básicos ao OpenGL, tais como abrir janelas, adicionar menus, etc. É multi-plataforma (Windows, Unix) MS -Visual, Borland Builder: já trazem recursos de gerenciamento de janelas (mais sofisticados que os do glut) mas são restritos ao Windows. –escolha de uma biblioteca deve conter estruturas de dados e classes abrangentes

Passos Passo 2: definir (ou entender) as estruturas de dados que descrevem o mundo –o mundo virtual é composto de objetos tridimensionais, cuja superfície é descrita normalmente através de meshes de polígonos (normalmente triângulos). –um mesh é um conjunto de vértices, conectados pelos polígonos. –Um vértice é uma localização no espaço descrita por um vetor de coordenadas [x,y,z] –um polígono é uma lista de vértices e um vetor normal (orientação para refletir a luz) –cor, textura e tipo de material são ainda propriedades dos polígonos –um objeto é uma lista de polígonos

Passos Passo 3: entender os sistemas de coordenadas –a posição de um objeto no espaço (definida pela posição dos seus vértices) assume que existe um sistema de coordenadas conhecido, em função do qual essas posições são definidas –antes de mostrar na janela o mundo virtual é preciso definir de qual ângulo e posição se deseja ver esse mundo –para isso de usa a metáfora da câmera virtual –a câmera define uma outro sistema de coordenadas, que muda constantemente, enquanto o sistema onde os objetos são definidos permanece fixo. –Para mostrar o mundo pela perspectiva da câmera virtual é feita uma transformação de coordenadas de um sistema a outro (o OpenGL faz isso)

Passos Passo 4: estudar os conceitos de transformações geométricas –movimentos do objeto como um todo (movimentos rígidos) e as mudanças na câmera virtual são definidos por uma composição de translações, rotações e mudanças de escala –essas transformações geométricas são implementadas usando matrizes especiais chamadas de “coordenadas homogêneas” –o domínio dessas transformações e de sua implementação é o ponto crítico da aprendizagem em Computação Gráfica e Realidade Virtual. –deformações definem movimentos específicos a cada vértice que são calculados e aplicados um a um.

Passos Passo 5: entender o estrutura de controle da simulação –uma simulação é composta por loops simultâneos (threads paralelas), cada um cuidando de um aspecto da simulação –aliás o loop é a forma de “fatiar” o tempo (discretizar) de forma a tratar um processo continuo em passos discretos. –os loops devem ser repetidos diversas vezes por segundo para criar a ilusão de continuidade –a placa gráfica está sempre em loop exibindo a tela e suas janelas

Passos Passo 5: entender o estrutura de controle da simulação (cont.) –uma simulação está ligada a uma janela (o mundo virtual) –o loop gráfico (ou refresh) da aplicação executa os comandos OpenGL que definem as primitivas gráficas que aparecem na janela. –se esse loop parar a placa gráfica vai continuar a mostrar a ultima imagem gerada. –se o mundo muda continuamente o loop gráfico precisa rodar a pelo menos ~30Hz (como um filme) para dar a sensação de continuidade dos movimentos. –mudanças na câmera virtual são simuladas nesse loop

Passos Passo 5: entender o estrutura de controle da simulação (cont.) –no loop de atualização do mundo (ou update) é simulada as mudanças ocorridas no mundo, ou seja, as mudanças de posição e orientação dos objetos, as deformações, etc. –se houver simulação física, a cada passo desse loop serão recalculadas forças, acelerações, velocidades e posições dos objetos. –colisões também são tratadas nesse loop. –para cada mudança num objeto a posição de todos os seus vértices deve ser recalculada. –esse loop pode funcionar mais devagar ou mais rápido que o loop gráfico dependendo da aplicação. –se eles funcionam sempre na mesma velocidade podem ser juntados.

Passos Passo 5: entender o estrutura de controle da simulação (cont.) –o loop háptico calcula forças da interação entre o usuário e os objetos virtuais –devido à nossa alta sensibilidade tátil o refresh háptico precisa ser muito mais rápido (~1000Hz). –devido a essa alta velocidade, o loop háptico precisa ser bastante otimizado e não pode realizar cálculos e testes longos.

Passos Passo 6: estudar animações –uma animação pode ser baseada numa simulação física ou não –se não for física a implementação depende das características da aplicação –se for física é preciso estudar os conceitos básicos de integração de equações diferenciais. –o estado de um sistema físico é definido pela velocidade e posição dos objetos. –para recalcular o estado é preciso integrar (somar) as acelerações, que podem ser causadas pela gravidade ou forças externas –como cada passo da integração depende do intervalo de tempo considerado, é preciso ficar atento ao controle do loop de update para que o intervalo de tempo real coincida com o virtual.

Passos Passo 7: tópicos específicos –algoritmos de detecção e tratamento de colisões –algoritmos de cálculo da interação háptica –Texturas, materiais, luzes