A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo."— Transcrição da apresentação:

1 Realidade Virtual Aula 2 Remis Balaniuk

2 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.

3 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).

4 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.

5 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.

6 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)

7 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

8 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

9 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)

10 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.

11 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

12 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

13 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.

14 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.

15 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.

16 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


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

Apresentações semelhantes


Anúncios Google