Tutorial: Utilizando Perceptual Computing SDK com Unity3D e Realidade Aumentada (Passo a Passo)

Depois de um tempo brincando com o demo AugmentedFarm, fiz algumas anotações e vou compartilhar aqui com vocês, espero que ajude! Não sou um expert, então se eu falar alguma coisa errada por favor me avisem.


Vamos lá! ...

1º - Crie um novo Projeto no Unity3D

Img - Novo projeto no Unity3D
new project 

2º - Importe a pasta "Plugins" que está na pasta "demo" , dentro da pasta do SDK ... peguei eles do exemplo AugmentedFarm:
( C:\Program Files (x86)\Intel\PCSDK\demo\AugmentedFarm\Assets\Plugins ) 

  1. libpxcupipeline-ot.dll
  2. pxcm-structures-ot.cs
  3. pxcupipeline-ot.cs
  4. tracker.meta
  5. tracker ( Folder )

obs: os plugins da realidade aumentada são diferentes do outros , esse possui todas as ferramentas do normal + realidade aumentada

Img - Arraste a pasta Plugins
import plugins

3º - Importe a pasta "Pipeline"
C:\Program Files (x86)\Intel\PCSDK\demo\AugmentedFarm\Assets\Pipeline )

  1. SDKPipeline.cs
  2. SDKPipelineObject.prefab ( este é apenas um GameObject vazio com o SDKPipeline.cs )

Img - Arraste a pasta Pipeline
import Pipeline 

4º - Importe os scripts de realidade aumentada
C:\Program Files (x86)\Intel\PCSDK\demo\AugmentedFarm\Assets\Book\scripts\AugmentedBook ) 

  1. ABVirtualFarmScript.cs
  2. ABARCameraScript.cs
  3. ABFarmScript.cs
  4. ABStatics.cs

Img - Arraste a pasta AugmentedBook 
import AR Scripts
 

Agora nós temos o Básico para começar a Realidade Aumentada

1º - Reset o transform da MainCamera e mude o nome para backgroundARCamera

2º - Arraste o SDKPipelineObject prefab para a Hierarchy no editor do Unity, e resete o transform


3º - Crie um novo GameObject Plane para que possamos renderizar o plano de fundo ( RGB camera ), reset o transform e rotacione no eixo X em -90, entao mude o nome para backgroundARPlane



4º - Crie um novo GameObject Directional Light e reset o transform para ter uma melhor iluminação, então mova a luz para longe



5º - Aplique o backgroundARPlane no SDKPipelineObject , na variável Object To Draw On


Temos agora a imagem da nossa camera renderizada no plano se apertarmos Play

Vamos organizar as coisas um pouco...

obs: não faça modificações enquanto estiver no Play , assim que você sair , ele irá voltar para os valores anteriores...

1º - Arraste a backgroundARCamera, directionalLight e backgroundARPlane para o SDKPipelineObject
3º - Dê um Scale no backgroundARPlane nos valores : x = 0.4 / y = 1.0 / z = 0.3


3º - Ajuste a posição do backgroundARPlane relativo a posição da backgroundARCamera até que fique no lugar correto



4º - Selecione a Camera e crie uma nova Layer para a imagem de fundo , coloque o nome de backgroundAR

5º - Coloque o Culling Mask da camera em apenas backgroundAR

6º - Coloque o Plano na Layer backgroundAR

8º - Salve sua Scene e seu Projeto agora...

Agora podemos começar a fazer o Objeto da Realidade aumentada

0º - Mova o SDKPipelineObject para outra posição

1º - Crie uma nova Camera , Dê o nome de ARCamera e reset o transform

2º - Cria um novo GameObject Vazio , Dê o nome de ARObject e reset o transform ... aqui você irá colocar os modelos da RA

3º - Create a new Empty GameObject , call it ARVirtualObject, reset the transform and drag ARCamera and ARObject to it

4º - Crie um novo GameObject Vazio , Dê o nome de ARVirtualObject, reset o transform e arraste ARCamera e ARObject para ele

5º - No ARVirtualObject coloque o Script ABVirtualFarmScript.cs

6º - No ARCamera coloque o Script ABARCameraScript.cs

obs: O Script procura por "AugmentedBookCamera" ... abra o script e troque por "ARCamera"

6º - No ARObject coloque o script ABFarmScript.cs

7º - Cria uma nova Layer para o ARObject, dê o nome de objectAR

8º - Troque o Culling Mask da ARCamera para apenas objectAR

9º - Troque o Clear Flags da ARCamera para Depth Only

10º - Troque o Depth da ARCamera para 1

10º - Crie um Novo GameObject Cubo e reset o transform...

11º - Mova o Cubo para o ARObject

12º - Troque a Layer do ARObject para objectAR e aperte "Yes, Change Children"


13º - Mova o ARObject mais afastado da ARCamera para visualizar melhor

14º - Rotacione o ARObject para x = 90 / y = 180 / z = 0 , para visualizar melhor no editor ( é assim  que o objeto vai ficar quando for capturado frontalmente ) vetor Z para baixo , vetor X horizontal e vetor Y apontando para a camera

Finalmente nós temos o objeto sendo capturado , porém não está na posição / escala correta...

Vamos organizar as coisas um pouco...

1º - Escalone o ARVirtualObject para : x = 2 0/ y = 20 / z = 20

2º - Escalone a ARCamera e o  ARObject para:  x = 0.05 / y = 0.05 / z = 0.05

Agora nós começamos a ver o objeto sendo mostrado, porém nao no lugar correto ... se você mover o marcador vera que ele parece estar deslizando...


para concertar isso , nos temos que achar o field of view correto da ARCamera e a posição correta do plano, vamos alterar esses valores:

1º - ARCamera Field of View
2º - Posição do backgroundARPlane

para esse exemplo , coloque o ARCamera Field of View em 45 ... deve ficar bom ( se o backgroundARPlane estiver na mesma posição e tamanho do que está na foto ) repare que agora o cubo continua em cima da ovelha quando eu movimento o marcador...


Continue rotacionando o marcador e movendo de um lado para o outro da Tela e veja se ele está na posição correta , se não , continue alterando os valores

nessa imagem eu dupliquei o cubo e mudei o tamanho dele para ficar do tamanho do marcador, eu recomendo você fazer isso para ter a posição como referência , você sempre pode desativar o Mesh Renderer se nao quiser que eles sejam mostrados...

repare que ele está do mesmo tamanho , mais não está centralizado ...

Vá no ARObject e mude os valores do XShift, YShift e ZShift para esses :

x = -0,07
y = 0,85
z = 0,14

veja agora que está no mesmo tamanho e centralizado 

obs: ele ainda não está no field of View Perfeito ... você tera que achar este valor ( 48 /48,5 parece ficar um pouco melhor )

esse projeto estará livre para download assim que descobrir como colocar ele aqui ... 

Você pode agora começar a fazer seus apps de realidade aumentada...

obs : se você der um build no projeto , ele não vai funcionar ... mais isso será corrijido futuramente, enquanto isso trabalhe com o PlayMode

Gostaria de Agradecer a Www.RappStuio.com.br por me dar um tempo livre para começar a estudar o Perceptual...

Obrigado a minha noiva que está sempre me apoiando ... s2 Te amo xuxu s2 

Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.