«

»

Jul 26

Colisão e distância entre marcadores

Colisão e distância entre marcadores

Utilizando informações sobre a posição dos marcadores visíveis no campo de visão da câmera de vídeo é possível analisar a distância entre cada marcador apresentado e, conseqüentemente, analisar se houve colisão entre estes marcadores e/ou entre os objetos virtuais apresentados (caso seja conhecida a estrutura geométrica destes objetos). A Figura 1 apresenta o fluxograma para determinar a distância entre marcadores e/ou objetos virtuais e detectar a colisão destes.

 

 Fluxograma para determinar a colisão de objetos virtuais

Figura 1 – Fluxograma para determinar a colisão de objetos virtuais.

 

 

 

Combinação de marcadores

A técnica de combinação de marcadores visa verificar os marcadores visíveis no campo de visão de vídeo e analisar possíveis combinações, as quais poderão acionar determinados eventos.

Veja um exemplo utilizando esta técnica:

 

/*

Consiste em um ambiente composto por um teapot centralizado no centro da tela. Foram confeccionados três marcadores, em cada marcador foi relacionada uma placa virtual colorida (vermelha, verde e azul). Inicialmente o teapot apresenta-se em preto. Em seguida, quando o usuário apresenta um marcador com uma cor específica à câmara de vídeo, o bule altera a cor para a cor correspondente ao marcador. Se o usuário retirar o marcador da cena, o teapot retorna às configurações iniciais. Caso o usuário apresente mais de um marcador na cena, ou seja, faz uma combinação de marcadores, altera-se a cor do teapot para a cor correspondente à mistura de cores dos marcadores apresentados.

*/

 

/* Versão utilizada: ARToolKit2.65vrml  */

/*O campo object[0].visible (pode ser passado como parâmetro na função) para verificar se um determinado objeto está visível */

 

static void combinacao(int objVisivel01, int objVisivel02, int objVisivel03)

{

                float R=0,G=0,B=0;

                if(objVisivel01==1) {     R=1; }

                if(objVisivel02==1) {     G=1; }

                if(objVisivel03==1) {     B=1; }

//Renderizar sem marcador (Veja tutorial: Objetos sem marcador)

                argDrawMode3D();

                argDraw3dCamera( 0, 0 );

                glMatrixMode(GL_MODELVIEW);

                glLoadIdentity();                                           

               glPushMatrix();

                glColor3f(R, G, B);

                glTranslatef(0,0,100);

                glutSolidTeapot(2);

                glPopMatrix();

}

 

Comissão Especial de Realidade Virtual da Sociedade Brasileira de Computação – CERV/SBC

 

Constituída por pesquisadores de todo o Brasil, a CERV objetiva disseminar o conhecimento relativo à Realidade Virtual e áreas afins (Realidade Mista, Virtualidade Aumentada etc). Suas ações relacionam-se com a organização de eventos, definição de estratégias de entrosamento e difusão de conhecimentos.

http://comissoes.sbc.org.br/ce-rv

 

EZFLAR Generator

 

Você pode criar aplicações simples de Realidade Aumentada a partir do site EZFLAR Generator. Clique aqui e siga as instruções no site.Enjoy! :-)

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>