Campo da Invenção
A presente invenção se refere a sistemas de realidade virtual e aumentada, e, em particular, a um método e um aparelho para a criação de um grafite virtual em um sistema de realidade virtual e aumentada móvel.
Antecedentes da Invenção
Os sistemas de envio de mensagem têm sido usados por anos para deixar os usuários enviarem e receberem mensagens de cada outro. Atualmente, uma das formas mais simples de envio de uma mensagem para um outro indivíduo é simplesmente enviar uma mensagem de texto para o telefone celular do indivíduo. Recentemente, foi proposto expandir as capacidades de sistemas de envio de mensagem de modo que aos assinantes da rede possa ser dada a opção de deixar uma mensagem específica em uma localização de coordenadas em particular. Por exemplo, na US6681107B2, SYSTEM AND METHOD OF ACCESSING AND RECORDING MESSAGES AT COORDINATE WAY POINTS, o autor propõe que um assinante pode meramente apertar um botão em uma localização específica, fazendo com que o dispositivo salve a localização física. Então, ele pode apertar um botão de "gravar mensagem", o qual permite que ele fale uma mensagem para seu dispositivo. Esta mensagem poderia ser as instruções para se chegar à casa do assinante a partir da localização específica ou qualquer outra mensagem pessoal. A mensagem então é transferida (via upload) para a rede em que ela se tornará disponível para outros assinantes da rede. A pessoa criando a mensagem pode designar se a mensagem está disponível para todos os assinantes, apenas para as pessoas armazenadas na memória do dispositivo do assinante, um subconjunto das pessoas armazenadas na memória, ou mesmo uma pessoa única.
De modo a se melhorar a experiência do usuário com o tipo acima de sistema de envio de mensagem ciente de contexto, os tipos de informação provida para os usuários devem ir além de um simples texto, imagens e vídeo. Com isto em mente, o Pedido de Patente dos Estados Unidos N° 11844538, MOBILE VIRTUAL AND AUGMENTED REALITY SYSTEM, de Buhrke et al. propõe um sistema que deixa grafites virtuais para indivíduos. Durante uma operação, um usuário pode criar "grafites virtuais" que serão deixados para um dispositivo em particular para visualização como parte de uma cena de realidade aumentada.
Embora o sistema de Buhrke realmente melhore a experiência de um usuário, existe uma necessidade de unidade de mudança de marcha e um aparelho para a criação facilmente do grafite visual que será deixado para um dispositivo em particular ver.
Breve Descrição dos Desenhos A FIG. 1 é um diagrama de blocos de um sistema de envio de mensagem ciente de contexto. A FIG. 2 ilustra uma cena de realidade aumentada. A FIG. 3 é um diagrama de blocos do servidor da FIG. 1. A FIG. 4 é um diagrama de blocos do dispositivo de usuário da FIG. 1. A FIG. 5 é um fluxograma que mostra a operação do servidor da FIG. 1. A FIG. 6 ilustra a criação de grafites virtuais. A FIG. 7 ilustra a criação de grafites virtuais. A FIG. 8 ilustra a criação de grafites virtuais. A FIG. 9 é um fluxograma que mostra a operação do dispositivo de usuário da FIG. 1. A FIG. 10 é urn fluxograma que mostra uma operação do dispositivo de usuário da FIG. 1.
Os técnicos versados apreciarão que elementos nas figuras são ilustrados por simplicidade e clareza e não necessariamente foram desenhados em escala. Por exemplo, as dimensões e/ou um posicionamento relativo de alguns dos elementos nas figuras podem ser exagerados em relação a outros elementos, para ajudarem no entendimento de várias modalidades da presente invenção. Também, elementos comuns, mas bem entendidos, que sejam úteis ou necessários em uma modalidade comercialmente praticável com frequência não são descritos, de modo a se facilitar uma visão menos obstruída destas várias modalidades da presente invenção. Ainda, será apreciado que certas ações e/ou etapas podem ser descritas ou expostas em uma ordem em particular de ocorrência, enquanto aqueles versados na técnica entenderão que essa especificidade com respeito a uma sequência não é realmente requerida. Aqueles versados na técnica reconhecerão, ainda, que referências a modalidades de implementação específica, tal como um "circuito", podem igualmente ser realizadas com uma substituição por execuções de instrução de software em um aparelho de computação de finalidade geral (por exemplo, uma CPU) ou um aparelho de processamento especializado (por exemplo, DSP) . Também será entendido que os termos e as expressões usados aqui têm o significado técnico costumeiro, conforme é acordado para esses termos e expressões por pessoas versadas no campo técnico, conforme estabelecido acima, exceto onde significados específicos diferentes foram estabelecidos aqui de outra forma.
Descrição Detalhada dos Desenhos
De modo a se dirigir à necessidade acima, um método e um aparelho são providos para a fácil criação de um grafite virtual que será deixado para um dispositivo em particular ver. Durante uma operação, um dispositivo será colocado próximo de um primeiro ponto que é usado par a definição de uma fronteira para o grafite virtual. O dispositivo localizará o primeiro ponto e usará o ponto para a definição da fronteira. O dispositivo receberá uma imagem que é para ser usada como um grafite virtual, e adaptará a imagem à fronteira do grafite virtual. Por exemplo, o dispositivo poderá ser consecutivamente posicionado próximo de quatro pontos que definirão um polígono a ser usado como a fronteira para o grafite virtual. Uma imagem então será recebida, e a imagem será adaptada no polígono.
O método descrito acima para a criação de um grafite virtual pode ser usado para a criação de grafites virtuais de vários tamanhos e formatos. Por exemplo, um usuário pode desejar colocar uma mosca de alvo virtual em torno de uma área grande, de modo que ela possa ser facilmente vista a partir de aviões passando. Com a técnica acima, o usuário pode simplesmente andar até as bordas da fronteira desejada e instruir o dispositivo para usar as localizações como uma fronteira do grafite virtual.
Em um sistema de realidade aumentada, imagens geradas em computador ou "imagens virtuais" podem ser embutidas ou fundidas com a visão do usuário do ambiente de mundo real para se melhorarem as interações do usuário com o ou a percepção do ambiente. Na presente invenção, o sistema de realidade aumentada do usuário funde quaisquer mensagens de grafite virtual com a visão do usuário do mundo real.
Como um exemplo, um primeiro usuário pode querer deixar uma mensagem para um segundo usuário tentar um item de menu em particular em um restaurante. A mensagem pode ser escrita virtualmente na porta do restaurante e deixada para o segundo usuário ver. Quando o segundo usuário visitar o restaurante, ele receberá uma indicação que um grafite virtual está disponível para ele ver. A mensagem então aparecerá para o segundo usuário na porta do restaurante, quando vista com o sistema de realidade aumentada do usuário. De uma maneira similar, o usuário pode desejar deixar uma mensagem para ele mesmo.
A presente invenção envolve um método para um dispositivo para a criação de um grafite virtual, o método compreendendo as etapas de posicionamento perto de um primeiro ponto, determinação de uma localização do primeiro ponto, uso da localização do primeiro ponto para a definição de uma fronteira para o grafite virtual, recebimento de uma imagem a ser usada como o grafite virtual, e provisão da imagem e da informação sobre a fronteira para um servidor. O servidor então provê o grafite virtual para um usuário, quando aquele usuário estiver perto de uma localização do grafite virtual.
A presente invenção adicionalmente envolve um método para um dispositivo criar um grafite virtual. O método compreende as etapas de ser posicionado perto de um primeiro ponto, determinação de uma localização do primeiro ponto, que é posicionado perto de um segundo ponto, e determinação de uma localização do segundo ponto. Uma fronteira para o grafite virtual é determinada pelo uso de pelo menos uma localização do primeiro ponto e da localização do segundo ponto como vértices para a fronteira para o grafite virtual. Uma imagem então é recebida para ser usada como um grafite virtual e o grafite virtual é criado pela adaptação da imagem na fronteira do grafite virtual.
A presente invenção adicionalmente envolve um aparelho que compreende um circuito de localização, um circuito lógico que acessa o circuito de localização para determinar uma localização de um ponto usado para a definição de uma fronteira para o grafite virtual, o circuito lógico então recebendo uma imagem a ser usada como um grafite virtual, e um transmissor provendo a imagem e uma informação sobre a fronteira para um servidor, onde o servidor provê o grafite virtual para um usuário, quando o usuário estiver perto de uma localização do grafite virtual.
A presente invenção adicionalmente envolve um aparelho que compreende um circuito de localização que é posicionado perto de um primeiro ponto e um segundo ponto e a determinação de uma localização do primeiro ponto e uma localização do segundo ponto. O aparelho adicionalmente compreende um circuito lógico que recebe uma imagem a ser usada como um grafite virtual e a determinação de uma fronteira para o grafite virtual pelo uso de pelo menos uma localização do primeiro ponto e a localização do segundo ponto como vértices para a fronteira para o grafite virtual, o circuito lógico criando o grafite virtual pela adaptação de uma imagem na fronteira para o grafite virtual.
Voltando-nos, agora, para os desenhos, onde números iguais designam componentes iguais, a FIG. 1 é um diagrama de blocos de um sistema de envio de mensagem ciente de contexto 100. O sistema 100 compreende um servidor de grafite virtual 101, uma rede 103 e dispositivos de usuário 105 a 109. Em uma modalidade da presente invenção, a rede 103 compreende uma rede celular de próxima geração, capaz de altas taxas de dados. Esses sistemas incluem um acesso por rádio terrestre universal evoluído (UTRA) ou a rede de acesso por rádio terrestre universal evoluído (UTRAN) (também conhecidos como EUTRA e EUTRAN) no 3GPP, juntamente com evoluções de sistemas de comunicação em outras organizações de geração de especificação técnica (tal como 'Phase 2' em 3GPP2, e evoluções de IEEE 802.11, 802.16, 802.20 e 802.22) . Os dispositivos de usuário 105 a 109 compreendem dispositivos capazes de uma formação de imagem de mundo real e a provisão ao usuário de uma imagem de mundo real aumentada com grafites virtuais.
Durante uma operação, um usuário (por exemplo, um usuário operando o dispositivo de usuário 105) determina que ele deseja enviar um outro grafite virtual de usuário como parte de uma cena de realidade aumentada. O dispositivo de usuário 105 então é utilizado para a criação do grafite virtual e associar o grafite virtual a uma localização. 0 usuário também provê ao dispositivo 105 uma lista de usuário (s) (por exemplo, o usuário 107) que terão permissão para ver o grafite virtual. O dispositivo 105 então utiliza a rede 103 para prover esta informação para o servidor de grafite virtual 101.
O servidor 101 periodicamente monitora as localizações de todos os dispositivos 105 a 109 juntamente com suas identidades, e quando um dispositivo em particular está próximo de uma localização em que ele é provido com um grafite virtual, o servidor 101 utiliza a rede 103 para a provisão desta informação para o dispositivo. Quando um dispositivo em particular estiver próximo de uma localização e que um grafite virtual está disponível para visualização, o dispositivo notificará o usuário, por exemplo, ao bipar. O usuário então pode usar o dispositivo para ver o grafite virtual como parte de uma cena de realidade aumentada. Particularmente, o grafite virtual será embutido em ou fundido com a visão do usuário do mundo real. Deve ser notado que, em modalidades alternativas, nenhuma notificação é enviada para o usuário. Então, estaria por conta do usuário encontrar qualquer grafite virtual em seu ambiente. A FIG. 2 ilustra uma cena de realidade aumentada. Neste exemplo, um usuário criou o grafite virtual 203 que declara "Joe, try the porter" (Joe, tente a porter) e tern anexado este grafite virtual ã localização da porta. Conforme é mostrado na FIG. 2, a porta do mundo real 2 01 não tem o grafite virtual existente nela. Contudo, se um usuário tiver privilégios para ver o grafite virtual, então, seu sistema de visualização de realidade aumentada mostrará a porta 201 tendo o grafite virtual 203 nela. Assim, como é óbvio, o grafite virtual não está disponível para todos os usuários do sistema 100. 0 grafite virtual está disponível apenas para aqueles designados capazes de verem-no (preferencialmente, pelo indivíduo que criou o grafite virtual). Assim, cada dispositivo 105 a 109 proverá uma cena de realidade aumentada única para seu usuário. Por exemplo, um primeiro usuário pode ver uma primeira cena de realidade aumentada, enquanto um segundo usuário pode ver uma cena de realidade aumentada totalmente diferente. Isto é ilustrado na FIG. 2 com o grafite virtual 2 05 que é diferente do grafite virtual 203. Assim, um primeiro usuário olhando para a porta 201 pode ver o grafite virtual 203, enquanto um segundo usuário olhando para a mesma porta 201 pode ver o grafite virtual 205.
Embora o exemplo acima tenha sido dado com o grafite virtual 203 exibido sobre um objeto em particular (isto é, a porta 201), em modalidades alternativas da presente invenção, o grafite virtual pode ser exibido não anexado a qualquer objeto. Por exemplo, o grafite virtual pode ser exibido como flutuando no ar, ou simplesmente na frente do campo de visão de uma pessoa. Conforme é evidente, para qualquer dispositivo em particular 105 a 109 ser capaz de exibir um grafite virtual anexado a um objeto em particular, um dispositivo deve ser capaz de identificar a localização do objeto e, então, exibir o grafite virtual na localização do objeto.
Dada uma cena virtual contendo um grafite virtual (nas coordenadas virtuais especificadas) e um ponto de vista, um sistema de renderização tridimensional, tal como o Java Mobile 3D Graphics, ou M3G, uma API pode produzir uma visão do mundo real para a produção de uma cena de realidade aumentada. Um método para superposição da cena virtual em uma visão do mundo real a partir da câmera do dispositivo móvel é fazer uso do objeto de fundo do M3G, o que permite que qualquer imagem seja colocada atrás da cena virtual como seu fundo. Usando-se o fundo do M3G, quadros continuamente atualizados a partir da câmera podem ser colocados atrás da cena virtual, assim fazendo com que a cena pareça estar sobreposta na saída da câmera.
Dada a informação acima, quando um usuário vê um grafite virtual, a localização do dispositivo é determinada e enviada para o servidor. O servidor determina que mensagens, se houver, estão nas proximidades e disponíveis para o usuário. Estas mensagens então são transferidas (via download) pelo usuário e processadas. O processamento envolve a transformação das localizações físicas das mensagens virtuais em coordenadas virtuais. As mensagens então são colocadas naquelas coordenadas virtuais. Ao mesmo tempo, a posição do dispositivo e sua orientação são usadas para a definição de um ponto de vista no mundo virtual também em coordenadas virtuais. Se a mensagem virtual transferida (via download) for visível a partir do dado ponto de vista, ela será renderizada em um visor de dispositivo móvel no topo do vídeo ao vivo da cena a partir da câmera do dispositivo.
Assim, se o usuário quiser colocar uma mensagem virtual no topo de um objeto, o usuário deverá identificar a localização do ponto no topo do objeto em que a mensagem será deixada. No caso mais simples, o usuário pode colocar seu dispositivo sobre o objeto e capturar a localização. Ele então eiva usa localização com o objeto virtual e seu conteúdo associado (isto é, uma caneca de cerveja com a mensagem de texto "try the porter" (tente a porter) aplicada ao lado voltado para o sul da caneca) para o servidor. O usuário ainda especifica que a mensagem esteja disponível para um usuário em particular. Quando o usuário em particular chega ao barramento e está no alcance da mensagem, ele verá a mensagem a partir de sua localização (e, portanto, seu ponto de vista) . Se ele estiver olhando em direção ao lado voltado para o leste da mensagem, ele verá a caneca, mas ele será apenas capaz de dizer que há alguma mensagem de texto no lado sul. Se um usuário desejar ler a mensagem de texto, ele terá que mover seu dispositivo (e, assim, seu ponto de vista) de modo que esteja voltado para o lado sul da caneca. A FIG. 3 é um diagrama de blocos do servidor da FIG. 1. Conforme é evidente, o servidor 101 compreende um gerenciador de objeto global 301, um banco de dados 303 e um gerenciador de objeto pessoal 305. Durante uma operação, o gerenciador de objeto global 301 receberá um grafite virtual de qualquer dispositivo 105 a 109 desejando armazenar o grafite virtual no servidor 101. Esta informação preferencialmente é recebida de forma sem fio através do receptor 307. O gerenciador de objeto global 301 é responsável pelo armazenamento de todos os grafites virtuais existentes no sistema 100. Juntamente com o grafite virtual, o gerenciador de objeto global 301 também receberá uma localização para o grafite virtual juntamente com uma lista de dispositivos que têm permissão para exibição do grafite virtual. De novo, esta informação preferencialmente é recebida de forma sem fio através do receptor 307. Se o grafite virtual for para ser anexado a um item em particular, então, a informação necessária para a anexação do grafite virtual ao objeto será recebida da mesma forma. Esta informação preferencialmente compreende uma localização de uma fronteira para o grafite virtual e a imagem que é para ser exibida na fronteira. Toda a informação acima é armazenada no banco de dados 303.
Embora apenas um gerenciador de objeto pessoal 305 seja mostrado na FIG. 3, é divisado que cada assinante tenha seu próprio gerenciador de objeto pessoal 305. 0 gerenciador de objeto pessoal 305 é pretendido para servir como um intermediário entre seu assinante correspondente e o gerenciador de objeto global 301. O gerenciador de objeto pessoal 305 periodicamente receberá uma localização para seu dispositivo de assinante correspondente. Uma vez que o gerenciador de objeto pessoal 305 tenha determinado a localização do dispositivo, o gerenciador de objeto pessoal 305 acessará o gerenciador de objeto global 301 para determinar se qualquer grafite virtual existe para o dispositivo em particular na ou perto da localização do dispositivo. O gerenciador de objeto pessoal 305 filtra todos os grafites virtuais disponíveis, de modo a determinar apenas o grafite virtual relevante para o dispositivo em particular e a localização do dispositivo. O gerenciador de objeto pessoal 305 então provê ao dispositivo a informação relevante necessária para a exibição do grafite virtual, com base na localização do dispositivo, onde o grafite virtual muda com base na identidade e na localização do dispositivo. Esta informação preferencialmente compreende uma localização de uma fronteira para o grafite virtual e a imagem que é para ser exibida na fronteira. Esta informação pode ser provida para o dispositivo por um transmissor de instrução 309 para a transmissão da informação de forma sem fio para o dispositivo. A FIG. 4 é um diagrama de blocos de um dispositivo de usuário da FIG. 1. Conforme mostrado, o dispositivo de usuário compreende um sistema de realidade aumentada 415, o circuito de localização 409, o banco de dados 407, o circuito lógico 405, o transmissor 411, o receptor 413 e uma interface de usuário 417. Durante uma operação, um usuário do dispositivo cria um grafite virtual através da interface de usuário 417. Em uma modalidade da presente invenção, a interface de usuário 417 compreende um tablet eletrônico capaz de receber e criar mensagens manuscritas e/ou ilustrações. Em uma outra modalidade, imagens pré- definidas são armazenadas no banco de dados 407 e podem ser usadas na criação de grafites virtuais. O processo para a criação de grafites virtuais será descrito em detalhes abaixo.
Uma vez que o circuito lógico 405 receba o grafite virtual a partir da interface de usuário 417, o circuito lógico 405 acessa o circuito de localização 409 e determina uma localização em que o grafite virtual foi criado. O circuito lógico 405 também recebe uma lista de usuários com privilégios para verem o grafite virtual. Esta lista também é provida para o circuito lógico 405 através da interface de usuário 417.
Em uma modalidade da presente invenção, o grafite virtual também está associado a um objeto físico. Quando este é o caso, o circuito lógico 405 também receberá uma informação requerida para anexar o grafite virtual a um objeto. Em uma outra modalidade, o circuito lógico 405 recebe uma localização de uma fronteira para o grafite virtual e a imagem que é para ser exibida na fronteira. Finalmente, o grafite virtual é provido para o servidor de grafite virtual 101 pelo circuito lógico 405 instruindo o transmissor 411 para transmitir o grafite virtual, a localização, a lista de usuários capazes de verem o grafite virtual e, se relevante, a informação necessária para a anexação do grafite virtual a um objeto.
Conforme discutido acima, o servidor 101 periodicamente monitora as localizações de todos os dispositivos 105 a 109 juntamente com suas identidades e, quando um dispositivo em particular está próximo de uma localização em que ele é para ser provido com um grafite virtual, o servidor 101 utiliza a rede 103 para prover esta informação para o dispositivo.
Quando um dispositivo em particular está perto de uma localização em que um grafite virtual está disponível para visualização, o dispositivo notificará ao usuário, por exemplo, ao instruir a interface de usuário 417 para bipar. O usuário então pode usar o dispositivo para ver o grafite virtual como parte de uma cena de realidade aumentada. Assim, quando o dispositivo da FIG. 4 está próximo de uma localização em que um grafite virtual está disponível para ele, o receptor 413 receberá o grafite virtual e a localização do grafite virtual a partir do servidor 101. Se relevante, o receptor 413 também receberá uma informação necessária para anexar o grafite virtual a um objeto físico. Esta informação será passada para o circuito lógico 405 e armazenada no banco de dados 407.
O circuito lógico 405 periodicamente acessa o circuito de localização 409 para obter atualizações para sua localização e provê estas atualizações para o servidor 101. Quando o circuito lógico 405 determina que o grafite virtual deve ser exibido, ele notificará ao usuário do fato. O usuário então pode usar o sistema de realidade aumentada 415 para exibir o grafite virtual. Mais particularmente, o formador de imagem 403 formará a imagem do fundo atual e proverá isto para o visor 401. O visor 401 também receberá o grafite virtual a partir do banco de dados 407 e proverá uma imagem do fundo atual com o grafite virtual apropriadamente exibido. Assim, o grafite virtual será embutido em ou fundido com a visão do usuário do mundo real. A FIG. 5 é um fluxograma que mostra uma operação do servidor da FIG. 1. O fluxo lógico começa na etapa 501, onde o gerenciador de objeto global 301 recebe a partir de um primeiro dispositivo uma informação representando o grafite virtual, uma localização do grafite virtual e uma lista de usuários capazes de verem o grafite virtual. Esta informação é armazenada, então, no banco de dados 303 (etapa 503) . Conforme discutido acima, o gerenciador de objeto pessoal 305 periodicamente receberá localizações para dispositivos (etapa 505) e determinará se a localização de um dispositivo está próxima de qualquer grafite virtual armazenado (etapa 507). Se, na etapa 507, o gerenciador de objeto pessoal 305 determinar que seu dispositivo correspondente está próximo de qualquer grafite virtual que ele é capaz de ver, então, o fluxo lógico continuará para a etapa 509, onde o grafite virtual e a informação necessária para visualização do grafite virtual são transmitidos de forma sem fio para o dispositivo. Contudo, se, na etapa 507, for determinado que o dispositivo não está próximo de qualquer 1, então, o fluxo lógico retornará para a etapa 501. Conforme discutido acima, o grafite virtual é restrito quanto a que dispositivo pode exibir o grafite virtual.
Conforme discutido acima, existe uma necessidade de um método e aparelho para a criação fácil do grafite virtual que será deixado para um dispositivo em particular ver. Com isto em mente, durante a criação do grafite virtual, o dispositivo 105 será posicionado próximo de um primeiro ponto que será usado para a definição de uma fronteira para o grafite virtual. O dispositivo localizará uma imagem que é para ser usada como o grafite virtual, e adaptará a imagem na fronteira do grafite virtual. Por exemplo, o dispositivo poderá ser consecutivamente posicionado perto de múltiplos pontos que definirão um polígono a ser usado como a fronteira para o grafite virtual. Uma imagem então será recebida, e a imagem será adaptada no polígono. Este processo é ilustrado da FIG. 6 até a FIG. 8. Em um outro exemplo, o dispositivo será colocado perto de um único ponto que define um centro de um círculo de um raio em particular. A imagem então será recebida e a imagem será adaptada no círculo.
Conforme mostrado na FIG. 6, o dispositivo 105 será colocado próximo de um vértice 601 de um formato geométrico. O dispositivo 105 será instruído pelo usuário (através da interface de usuário 417) para usar a localização em particular do dispositivo 105 como o vértice 601. O circuito lógico 405 recebe a instrução para a captura do vértice 601 e acessa o circuito de localização 409 para determinar a localização do vértice. Este processo se repete até uma fronteira 701 ser criada a partir dos vértices 601.
O circuito lógico 405 adicionalmente recebe a imagem 702 que será usada para a criação do grafite virtual. A imagem 702 pode ser uma imagem desenhada à mão recebida a partir da interface de usuário 417, ou, alternativamente, poderá compreender uma imagem armazenada a partir da memória 407. Finalmente, conforme mostrado na FIG. 8, um circuito lógico cria o grafite virtual ao adaptar apropriadamente a imagem 702 na fronteira 701.
Em uma modalidade alternativa, o servidor 101 pode criar o grafite virtual ao invés do dispositivo 105. Neste cenário, a fronteira 701 e a imagem 702 serão providas para o servidor 101. O servidor 101 criará o grafite virtual 801, ou poderá simplesmente prover a imagem 702 e a fronteira 701 para dispositivos que sejam capazes de verem o grafite virtual 801. Estes dispositivos então criarão o grafite virtual 801 para visualização.
Deve ser notado que o exemplo acima foi dado com respeito ao dispositivo 105 criar vértices para a definição de uma fronteira para um grafite virtual. Contudo, essa técnica para a criação de grafites virtuais pode não precisar que o dispositivo 105 seja posicionado sobre um vértice, de modo a se identificar a fronteira 701. Por exemplo, uma fronteira de polígono pré-definida de tamanho arbitrário pode ser centralizada na localização atual do dispositivo e orientada horizontalmente (paralela ao terreno) ou verticalmente (perpendicular ao grupo), bem como rodada por uma quantidade específica (por exemplo, 10 graus a partir do norte verdadeiro) . Uma outra possibilidade é definir um subconjunto de vértices por uma captura direta de coordenadas a partir do dispositivo e, então, introduzir um deslocamento relativo para as coordenadas remanescentes. Por exemplo, o usuário poderia selecionar uma região retangular de uma parede de uma edificação pela captura dos dois vértices inferiores do retângulo com o dispositivo e, então, especificando um deslocamento de 100 pés (30,48 metros) na direção vertical acima de cada coordenada. A FIG. 9 é um fluxograma que mostra a operação do dispositivo de usuário da FIG. 1. Em particular, o fluxo lógico da FIG. 9 mostra as etapas necessárias para a criação de um grafite virtual e o armazenamento do grafite virtual no servidor 101 para outros verem. O fluxo lógico começa na etapa 901, onde o dispositivo 105 é posicionado perto de um primeiro ponto e uma localização do primeiro ponto é determinada pelo circuito lógico 405 acessando o circuito de localização 409 (etapa 903) . (Deve ser notado que as etapas 901 e 903 podem se repetir, até uma quantidade suficiente de localizações ser determinada para os pontos (isto é, pelo menos um segundo ponto) definindo a fronteira para o grafite virtual.) Na etapa 905, o circuito de localização 409 usa pelo menos a localização do primeiro ponto (e, possivelmente, a localização dos outros pontos) para a determinação da fronteira do grafite virtual. Conforme discutido acima, os pontos podem definir vértices da fronteira, ou, alternativamente, um único ponto pode definir uma borda para um formato predeterminado.
Continuando, na etapa 907, uma imagem a ser usada na criação de grafites virtuais é recebida pelo circuito de localização 409. Conforme discutido acima, a imagem pode ser recebida a partir do banco de dados 407, ou pode ser recebida a partir de uma entrada de usuário (interface) 417. O fluxo lógico então continua para a etapa opcional 909. (A etapa 909 é executada sempre que o grafite virtual for para ser criado no dispositivo 105.) Na etapa opcional 909, o circuito de localização 409 cria o grafite virtual pela adaptação da imagem na fronteira do grafite virtual.
Continuando, na etapa 911, o circuito lógico 405 acessa o circuito de localização 409 para determinar uma localização do grafite virtual e, então, recebe uma lista de dispositivos que podem ver o grafite virtual (etapa 913) . A partir deste ponto no fluxo lógico, um de dois caminhos pode ser tomado. Quando o grafite virtual é criado pelo dispositivo 105, o fluxo lógico continua para a etapa 915, onde o grafite virtual, sua localização e a lista são providos para o servidor 101, onde o servidor provê o grafite virtual para um usuário na lista, quando o usuário estiver próximo da localização. Isto é realizado pelo circuito lógico 405 utilizar o transmissor 411 para a transmissão sem fio da informação.
Quando o servidor 101 está criando o grafite virtual, o fluxo lógico continua para a etapa 917, onde a imagem, a informação na fronteira, a localização do grafite virtual e a lista são providas para um servidor 101, onde o servidor cria o grafite virtual e provê o grafite virtual para um usuário, quando aquele usuário estiver próximo de uma localização do grafite virtual.
Deve ser notado que, embora a descrição acima seja proporcionada com respeito ao uso de uma imagem bidimensional na criação de grafites virtuais, em modalidades alternativas um objeto virtual tridimensional pode ser utilizado na criação do grafite virtual. A FIG. 10 é um fluxograma que mostra a operação do dispositivo de usuário da FIG. 1. Em particular, o fluxo lógico da FIG. 10 mostra aquelas etapas necessárias para a exibição de grafites virtuais. O fluxo lógico começa na etapa 1001, onde o circuito lógico 405 periodicamente acessa o circuito de localização 409 e provê uma localização para o transmissor 411 a ser transmitida para o servidor 101. Na etapa 1003, o receptor 413 recebe uma informação necessária para se ver o grafite virtual. Conforme discutido acima, esta informação pode simplesmente conter uma localização aproximada do grafite virtual juntamente com uma representação do grafite virtual. Em outras modalidades, esta informação pode conter a localização de uma moldura para o grafite virtual juntamente com a imagem a ser exibida na moldura. Em ainda uma outra modalidade, a informação pode conter a informação necessária para a anexação do grafite virtual a um objeto. Essa informação pode incluir uma representação digital do objeto físico, ou uma localização precisa do grafite virtual. Na etapa 1005, o circuito lógico 405 acessa o sistema de realidade aumentada 415 e provê ao sistema 415 a informação necessária para a exibição do grafite virtual. Para o caso 3D, na etapa 1007, o visor 401 exibe o grafite virtual como parte de uma cena de realidade aumentada.
Embora a invenção tenha sido particularmente mostrada e descrita com referência a modalidades em particular, será entendido por aqueles versados na técnica que várias mudanças na forma e nos detalhes podem ser feitas ali, sem que se desvie do espírito e do escopo da invenção. Por exemplo, é divisado que um usuário que recebe um grafite virtual pode ser capaz de modificar o grafite virtual e, então, armazenar o grafite virtual modificado no servidor 101. Múltiplos usuários podem armazenar múltiplas versões do grafite virtual modificado no servidor 101. Os usuários têm permissão para modificarem qualquer versão do grafite virtual, não importando se é a versão original, quaisquer versões intermediárias ou a última versão. Portanto, uma relação hierárquica dentre todas as versões do grafite virtual pode ser estabelecida, a qual pode ser representada como uma árvore, com cada nó representando uma versão do grafite virtual e todos os seus filhos representando as versões que são diretamente estendidas a partir da versão atual. A cada versão do grafite virtual é dado um número de versão único, e cada uma pode conter atributos diferentes (tais como localizações), e pode estar disponível para diferentes listas de usuário. Os usuários podem ver múltiplas versões do grafite virtual ao mesmo tempo e ter a liberdade de escolher quaisquer versões para modificação futura. Uma vez que a modificação seja realizada pelo usuário, uma nova versão do grafite virtual é criada e envaida para o servidor, juntamente com sua localização e uma lista de usuários tendo o privilégio de ver o grafite virtual. A nova versão é armazenada, então, no servidor, e está disponível para outros usuários do sistema.
Com o dito acima em mente, um primeiro usuário pode criar grafites virtuais a serem armazenados no servidor 101. O servidor 101 pode receber, em um momento posterior, o grafite virtual a partir de um segundo dispositivo 5 juntamente com uma localização do grafite virtual modificado, onde o grafite virtual modificado é uma versão atualizada do grafite virtual. De modo similar, um primeiro usuário pode receber o grafite virtual conforme descrito acima e, então, modificar o grafite virtual, enviando o 10 grafite virtual modificado de volta para o servidor 101.