SlideShare uma empresa Scribd logo
Globalcode – Open4education
Realidade Virtual – Evoluindo
aplicações mobile com o Google
VR SDK
Daniel Monteiro
Desenvolvedor Android - OLX Brasil
Globalcode – Open4education
Agenda
• Introdução, disclaimers e quem sou eu
• De onde partimos
• Anatomia de uma aplicação com panorama
• Criando mundos virtuais 3D
• Possibilidades trazidas pelo novo Google VR SDK
• Dicas valiosas
Globalcode – Open4education
Introdução
Globalcode – Open4education
Introdução
• Reuso é ótimo
• A comoditização é a motriz indireta da inovação.
• Se já temos pronto, pra qua reescrever? Devemos nos
apoiar sobre o ombro de gigantes!
Globalcode – Open4education
Introdução
• Mas Unity3D não é solução pra tudo
• Aproveitar tudo que já foi escrito e testado e com o que
toda a equipe de desenvolvimento ja é familiar ou
aproveitamos as soluções de VR existentes e
tentamos reescrever todo o nosso legado em cima
destas soluções?
• Muitas vezes queremos manter um mínimo de
familiaridade para o usuário, que certamente não quer
saltar logo de cara numa experiência VR
Globalcode – Open4education
Introdução
• Muitas vezes queremos revitalizar nossos apps
• A popularização de um meio depende do mundano - e
talvez isso explique porque VR não "pegou" até agora.
Era caro ou dificil demais para provedores de serviços
mais cotidianos e de pouco interesse para os centros
avançados de pequisa.
Globalcode – Open4education
Introdução
• Estratégias básicas usando Google VR:
• Panoramas with Cardboard App
• Mundos 3D em Java
• Mundos 3D misturando Java e C++
• Indo fundo no C++
Globalcode – Open4education
Disclaimers
Globalcode – Open4education
• Essa será uma palestra essencialmente técnica,
mas com pontos de intersecção com UX e, as
vezes, Design.
Disclaimer
Globalcode – Open4education
• Eu gosto de C++
• Especialmente C++14
• Tentarei ser racional e escolher a ferramenta correta
para o problema correto
• Mas no fim do dia, e isso pode surpreender alguns,
trabalhar com OpenGL em C++ é mais fácil do que com
Java!
Disclaimer
Globalcode – Open4education
Quem sou eu?
Globalcode – Open4education
• Daniel Monteiro (“Monty”)
• Natural das misteriosas terras de Niterói
• Jogar Doom mudou minha vida. E eu ainda adoro!
Quem sou eu?
Globalcode – Open4education
• Desenvolvendo jogos desde garoto, com QBasic
(~1996)
Quem sou eu?
Globalcode – Open4education
• Escrevi meu primeiro glBegin em 1999
• Mas isso não quer dizer que eu era bom
• Frequentei bastante o Programadores de Jogos
Quem sou eu?
Globalcode – Open4education
• Bacharel em Ciência da Computação pela UFF
• Onde aprendi a teoria por trás da prática
Quem sou eu?
Globalcode – Open4education
• Perdi minha inocência com Symbian em 2003
Quem sou eu?
Globalcode – Open4education
• Recuperei a fé com Maemo em 2005
Quem sou eu?
Globalcode – Open4education
• Percebi o potencial do Android em 2009
Quem sou eu?
Globalcode – Open4education
• Hoje sou desenvolvedor Android na OLX
Quem sou eu?
Globalcode – Open4education
De onde partimos
Globalcode – Open4education
De onde partimos
• Requisitos para a aplicação
• Aparelhos precisam de giroscópio
• Não tão comum no Brasil
• Degradar graciosamente
• Usuários, para ter uma boa experiência, precisam de
uma tela boa
• E a melhor experiência só vem com os óculos
• Para configurar bem os óculos, o usuário precisa da aplicação
Cardboard
• Mas não me surpeenderia disso eventualmente vir embarcado no
próprio OS
Globalcode – Open4education
De onde partimos
• Limitações recomendadas
• Conteúdo ainda é o maior desafio. Planeje bem sua
geração
• É preferível oferecer uma interação incompleta em que
não haja imersão total, mas com qualidade do que uma
experiência que pode causar desconforto ao usuário.
Globalcode – Open4education
De onde partimos
• Formas de interação e dicas de como otimizar a
experiência do usuário
• Apesar da maioria dos Cardboards terem gatilho, nem
todos os telefones tem magnetômetro
• Os novos óculos, baseados em touch são
surpreendentemente dificeis de achar
• Alternativas são a retícula temporal e voz (infelizmente
pouco usada)
Globalcode – Open4education
Anatomia de um
panorama
Globalcode – Open4education
Anatomia de um panorama
• Muito simples, realmente. Vejam o Codelab!
• Realizei esse Codelab durante o I/O em ~40 minutos
• Realizei novamente depois, e coloquei no Github
Globalcode – Open4education
Anatomia de um panorama
• Muito simples, realmente. Vejam o Codelab!
• Realizei esse Codelab durante o I/O em ~40 minutos
• Realizei novamente depois, e coloquei no Github
• Mas façam vocês antes de olhar o meu
Globalcode – Open4education
Anatomia de um panorama
• VrPanoramaView
• A mais simples e aproximável
• Mas ainda tem suas limitações
• View customizada que pode assumir
a tela cheia
• Carregamento de imagens
assíncrono é recomendável
Globalcode – Open4education
Criando mundos 3D
Globalcode – Open4education
Criando mundos 3D
• Resolve o problema de conteúdo - em parte
• Mundo 3D não é necessariamente um ambiente
• Qualquer falha no conteúdo vai aparecer em destaque
para o usuário
• Uma visão “low-fi” é mais fácil de ser “comprada”
Globalcode – Open4education
Criando mundos 3D
• Mas cria o problema precisar de mais código
• A máquina tem que trabalhar em dobro para processar
a experiência de cada olho e todos os seus detalhes -
afinal mesmo que seja uma versão menos fidedigna da
realidade, ainda temos que caprichar
Globalcode – Open4education
Criando mundos 3D
• Sem falar em um melhor planejamento de UX
• Possibilidades “infinitas” trazem um problema de
decisão infinito
• Não temos ainda um guideline muito gravado em pedra
• Mas felizmente a Google tem trabalhado nisso e criou
um guideline empírico
Globalcode – Open4education
Criando mundos 3D
• Diversas estratégias possíveis
• Diferentes formas de integrar uma base de código atual
com os novos elementos
• Mesmo que se opte pelo SDK que usa a linguagem
padrão da plataforma, existe grande economia em usar
C++
Globalcode – Open4education
Criando mundos 3D
• Um modelo de computação heterogêneo
• Mal ou bem, estamos programando uma unidade de
processamento especializada e isolada
• Precisamos gerar um snapshot que represente nossos
dados bem o suficiente para que a unidade de
renderização tenha informações suficientes, no tempo
suficiente, para gerar o resultado desejado
Globalcode – Open4education
Criando mundos 3D
• Uma forma de tratar do problema de conteúdo
pode ser uma abordagem procedural
• O quente é gerar o conteúdo 3D partindo do seu
conteúdo tradicional - até para tornar mais familiar ao
usuário
Globalcode – Open4education
Possibilidades do
GoogleVR
Globalcode – Open4education
Possibilidades do GoogleVR
• GoogleVR não é só Android
• Versão para iOS com SDK nativo
Globalcode – Open4education
Possibilidades do GoogleVR
• E certamente não é só Cardboard
• O DayDream vem aí (mas deve demorar mais no
Brasil). A promessa sugere telefones capazes de prover
uma experiência robusta
• Um grupo considerável faz streaming de jogos do PC
para os óculos com resultados convincentes
• Imagino que um SDK mais robusto faça o Cardboard
mais presente no meio acadêmico
Globalcode – Open4education
Possibilidades do GoogleVR
• Porque não integrar com outros hardwares, para
uma experiência heterogenea?
• Não esperar que os fabricantes nos entregues pacotes
prontos e fechados. Inovar, explorar
• Assim como mobile apps não são apenas para
consumidores - nada impede que usemos Android
como um recurso interno para uma experiência fixa.
Globalcode – Open4education
Algumas dicas
Globalcode – Open4education
Dicas valiosas!
• Para se obter o vetor de direção usuário, veja a
HeadTransform, fornecida no callback
onNewFrame.
Globalcode – Open4education
Dicas valiosas!
• Por sinal, não se esqueça de “normalizar” seu
conteúdo para que este apareça na frente o
usuário sempre que ele entrar em seu mundo.
Mas faça-o apenas no plano XZ.
Globalcode – Open4education
Dicas valiosas!
• Cuidado com código re-entrante e com as
diferenças de ciclo de vida do código Java e do
código nativo em C++
Globalcode – Open4education
Dicas valiosas!
• A cada frame você precisa habilitar o teste de
profundidade - provavelmente um bug. O SDK
deve desabilitar o teste de profundidade para
agilizar a distorção da imagem. Faça:
glEnable( GL_DEPTH_TEST);
Globalcode – Open4education
Dicas valiosas!
• Importante lembrar também de definir a
perspectiva de cada olho:
eye.getPerspective(zNear, zFar );
O efeito de esquecer de definir a perspectiva é mais
cruel, uma vez seu código provavelmente já tem
alguma definição de perspectiva previa - o resultado
é que cada olho terá uma imagem, mas não terá
efeito de profundidade.
Globalcode – Open4education
Dicas valiosas!
• Tradicionalmente, em OpenGL a gente sempre
esbarrou num bug idiota - sua geometria estar
atrás da câmera. Com GoogleVR, basta você olhar
para trás! Isso também implica em ter cuidado com
coisas que anteriormente eram vistas apenas por
um lado!
Globalcode – Open4education
Dicas valiosas!
• Você não precisa mais derivar uma
GLSurfaceView ou similar. GvrView pode ser
usada diretamente, aceitando um GvrView.
StereoRenderer (que deve ser implementado).
Globalcode – Open4education
Dicas valiosas!
• Importante lembrar de usar setGvrView além do
setContentView!
Globalcode – Open4education
Dicas valiosas!
• Um bug do suporte ao JNI no Android Studio faz
com que a declaração de uma função gerada não
seja criada dentro do bloco extern “C”
Globalcode – Open4education
Dicas valiosas!
• O uso do GoogleVR SDK para NDK poderá
oferecer o poder máximo do DayDream para a
aplicação...mas todo poder tem um custo -
bastante trabalho de controle fica por conta da
aplicação, para que esta possa extrair até a última
gota de desempenho do telefone
Globalcode – Open4education
Dicas valiosas!
• E você certamente vai querer usar alguma
biblioteca matemática extra, como a GLM ou a
MathFoo, da própria Google.
Globalcode – Open4education
Dicas valiosas!
• Honestamente, por hora ao menos, o SDK
experimental do Google VR para NDK ainda não
se justifica para 95% dos podem vir a desejar de
fato usar JNI
Globalcode – Open4education
Dicas valiosas!
• Mas se você realmente precisa portar uma
aplicação que já é feita em C/C++, talvez seja
melhor experimentar usar o demo Treasure Hunt
como base partir hackeando até um ponto
satisfatório
Globalcode – Open4education
Dicas valiosas!
• No fim do dia, JNI pode requerir muitas mudanças
na estrutura do seu projeto. Hic sunt dracones!
Globalcode – Open4education
Obrigado!
Globalcode – Open4education
Links e contatos
http://about.me/danielmonteiro

Mais conteúdo relacionado

Mais procurados

Escreva sua App sem gastar energia, agora no KitKat
Escreva sua App sem gastar energia, agora no KitKatEscreva sua App sem gastar energia, agora no KitKat
Escreva sua App sem gastar energia, agora no KitKat
Intel Software Brasil
 
TDC-SP: Android sem gastar energia
TDC-SP: Android sem gastar energiaTDC-SP: Android sem gastar energia
TDC-SP: Android sem gastar energia
Intel Software Brasil
 
Do protótipo ao produto: técnicas que fazem sentido
Do protótipo ao produto: técnicas que fazem sentidoDo protótipo ao produto: técnicas que fazem sentido
Do protótipo ao produto: técnicas que fazem sentido
Barbara Wolff Dick
 
Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataforma
Intel Software Brasil
 
Desafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento MultiplataformaDesafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento Multiplataforma
Intel Software Brasil
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
Globalcode
 
Unite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game JamsUnite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game Jams
Bruno Campagnolo
 
Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?
Cristiano Schwening
 
Notification e result pattern
Notification e result patternNotification e result pattern
Notification e result pattern
Ana Manzan
 
Workshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgestWorkshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgest
Articacc, Lda
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Tchelinux
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java Básico
Paloma Costa
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Developer Academy
 
Ferramentas Intel Android
Ferramentas Intel AndroidFerramentas Intel Android
Ferramentas Intel Android
Intel Software Brasil
 
Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces
Alvaro Viebrantz
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
Felipe Pedroso
 
Google android p Noobs - COMBINATIVIDADE - UPE
Google android p  Noobs - COMBINATIVIDADE - UPEGoogle android p  Noobs - COMBINATIVIDADE - UPE
Google android p Noobs - COMBINATIVIDADE - UPE
Levi Saturnino
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Design
tdc-globalcode
 
Testes Funcionais Orientado a Imagem - Sikuli
Testes Funcionais Orientado a Imagem - SikuliTestes Funcionais Orientado a Imagem - Sikuli
Testes Funcionais Orientado a Imagem - Sikuli
Vanilton Pinheiro
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
edgarddavidson.com
 

Mais procurados (20)

Escreva sua App sem gastar energia, agora no KitKat
Escreva sua App sem gastar energia, agora no KitKatEscreva sua App sem gastar energia, agora no KitKat
Escreva sua App sem gastar energia, agora no KitKat
 
TDC-SP: Android sem gastar energia
TDC-SP: Android sem gastar energiaTDC-SP: Android sem gastar energia
TDC-SP: Android sem gastar energia
 
Do protótipo ao produto: técnicas que fazem sentido
Do protótipo ao produto: técnicas que fazem sentidoDo protótipo ao produto: técnicas que fazem sentido
Do protótipo ao produto: técnicas que fazem sentido
 
Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataforma
 
Desafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento MultiplataformaDesafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento Multiplataforma
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Unite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game JamsUnite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game Jams
 
Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?
 
Notification e result pattern
Notification e result patternNotification e result pattern
Notification e result pattern
 
Workshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgestWorkshop video 2014_metamorfoseii_culturgest
Workshop video 2014_metamorfoseii_culturgest
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java Básico
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Ferramentas Intel Android
Ferramentas Intel AndroidFerramentas Intel Android
Ferramentas Intel Android
 
Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
Google android p Noobs - COMBINATIVIDADE - UPE
Google android p  Noobs - COMBINATIVIDADE - UPEGoogle android p  Noobs - COMBINATIVIDADE - UPE
Google android p Noobs - COMBINATIVIDADE - UPE
 
TDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX DesignTDC2016SP - Trilha UX Design
TDC2016SP - Trilha UX Design
 
Testes Funcionais Orientado a Imagem - Sikuli
Testes Funcionais Orientado a Imagem - SikuliTestes Funcionais Orientado a Imagem - Sikuli
Testes Funcionais Orientado a Imagem - Sikuli
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 

Destaque

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
tdc-globalcode
 
TDC2016SP - O impacto do desenvolvimento na conversão
TDC2016SP -  O impacto do desenvolvimento na conversãoTDC2016SP -  O impacto do desenvolvimento na conversão
TDC2016SP - O impacto do desenvolvimento na conversão
tdc-globalcode
 
TDC2016POA | Trilha Analise de Negocios - Business Coach, o Analista de Negó...
TDC2016POA | Trilha Analise de Negocios -  Business Coach, o Analista de Negó...TDC2016POA | Trilha Analise de Negocios -  Business Coach, o Analista de Negó...
TDC2016POA | Trilha Analise de Negocios - Business Coach, o Analista de Negó...
tdc-globalcode
 
TDC2016POA | Trilha IoT - Dando voz aos seus dispositivos com a Amazon Alexa
TDC2016POA | Trilha IoT -  Dando voz aos seus dispositivos com a Amazon AlexaTDC2016POA | Trilha IoT -  Dando voz aos seus dispositivos com a Amazon Alexa
TDC2016POA | Trilha IoT - Dando voz aos seus dispositivos com a Amazon Alexa
tdc-globalcode
 
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ PythonTDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
tdc-globalcode
 
TDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQLTDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQL
tdc-globalcode
 
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadeloTDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
tdc-globalcode
 
TDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação FuncionalTDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação Funcional
tdc-globalcode
 
TDC2016SP - Utilizando Azure Storage em app´s Xamarin
TDC2016SP - Utilizando Azure Storage em app´s XamarinTDC2016SP - Utilizando Azure Storage em app´s Xamarin
TDC2016SP - Utilizando Azure Storage em app´s Xamarin
tdc-globalcode
 
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
tdc-globalcode
 
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
tdc-globalcode
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
tdc-globalcode
 
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAINTDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
tdc-globalcode
 
TDC2016SP - Become a jedi with PHP streams
TDC2016SP - Become a jedi with PHP streamsTDC2016SP - Become a jedi with PHP streams
TDC2016SP - Become a jedi with PHP streams
tdc-globalcode
 
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
tdc-globalcode
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
tdc-globalcode
 
TDC2016SP - Finanças Quantitativas com Python
TDC2016SP - Finanças Quantitativas com PythonTDC2016SP - Finanças Quantitativas com Python
TDC2016SP - Finanças Quantitativas com Python
tdc-globalcode
 
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
tdc-globalcode
 

Destaque (18)

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - O impacto do desenvolvimento na conversão
TDC2016SP -  O impacto do desenvolvimento na conversãoTDC2016SP -  O impacto do desenvolvimento na conversão
TDC2016SP - O impacto do desenvolvimento na conversão
 
TDC2016POA | Trilha Analise de Negocios - Business Coach, o Analista de Negó...
TDC2016POA | Trilha Analise de Negocios -  Business Coach, o Analista de Negó...TDC2016POA | Trilha Analise de Negocios -  Business Coach, o Analista de Negó...
TDC2016POA | Trilha Analise de Negocios - Business Coach, o Analista de Negó...
 
TDC2016POA | Trilha IoT - Dando voz aos seus dispositivos com a Amazon Alexa
TDC2016POA | Trilha IoT -  Dando voz aos seus dispositivos com a Amazon AlexaTDC2016POA | Trilha IoT -  Dando voz aos seus dispositivos com a Amazon Alexa
TDC2016POA | Trilha IoT - Dando voz aos seus dispositivos com a Amazon Alexa
 
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ PythonTDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
 
TDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQLTDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQL
 
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadeloTDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
TDC2016POA | Trilha Ruby - Como não fazer do Rails o seu pesadelo
 
TDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação FuncionalTDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação Funcional
 
TDC2016SP - Utilizando Azure Storage em app´s Xamarin
TDC2016SP - Utilizando Azure Storage em app´s XamarinTDC2016SP - Utilizando Azure Storage em app´s Xamarin
TDC2016SP - Utilizando Azure Storage em app´s Xamarin
 
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
TDC2016SP - O que fazer e o que NÃO fazer em Realidade Virtual
 
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
TDC 2016 |Trilha DevOps - Dissecando e entendendo pipelines de entrega de sof...
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
 
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAINTDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
TDC2016POA | Trilha Games - Construindo uma comunidade: o caso PAIN
 
TDC2016SP - Become a jedi with PHP streams
TDC2016SP - Become a jedi with PHP streamsTDC2016SP - Become a jedi with PHP streams
TDC2016SP - Become a jedi with PHP streams
 
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
TDC2016POA | Trilha Ruby - Melhorando seu código com Law of Demeter e Tell do...
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TDC2016SP - Finanças Quantitativas com Python
TDC2016SP - Finanças Quantitativas com PythonTDC2016SP - Finanças Quantitativas com Python
TDC2016SP - Finanças Quantitativas com Python
 
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
TDC2016POA | Trilha Ruby - 5 Boas práticas para se aplicar em Testes de Aceit...
 

Semelhante a TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK

cARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentadacARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentada
Pedro de Vasconcellos
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
Iury Teixeira
 
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-RedArduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
Diego Teles
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
tdc-globalcode
 
Através do espelho
Através do espelhoAtravés do espelho
Através do espelho
Ana Coli
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Edlaine Zamora
 
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filhoCada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
Magno Santana Silva
 
Custos de dizer um Sim
Custos de dizer um SimCustos de dizer um Sim
Custos de dizer um Sim
Caroline Wirtti
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
tdc-globalcode
 
#SGames Desenvolvendo o GPS Coquetel Musical
#SGames Desenvolvendo o GPS Coquetel Musical#SGames Desenvolvendo o GPS Coquetel Musical
#SGames Desenvolvendo o GPS Coquetel Musical
Laudivan de Almeida
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhereTDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
tdc-globalcode
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
Afonso Machado
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
Camilo Lopes
 
Phonegap
PhonegapPhonegap
Phonegap
Lucas Aquiles
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
Fernanda Ferreira
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
Henrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
Willy Salazar
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
Maximiliano Alves
 
Dispositivos de Realidade Virtual do Futuro
Dispositivos de Realidade Virtual do FuturoDispositivos de Realidade Virtual do Futuro
Dispositivos de Realidade Virtual do Futuro
Vinicius Vecchi
 

Semelhante a TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK (20)

cARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentadacARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentada
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-RedArduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
Arduinos e Makers Trilha TDC 17 SP - IoT + Node-Red
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Através do espelho
Através do espelhoAtravés do espelho
Através do espelho
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filhoCada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
 
Custos de dizer um Sim
Custos de dizer um SimCustos de dizer um Sim
Custos de dizer um Sim
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
#SGames Desenvolvendo o GPS Coquetel Musical
#SGames Desenvolvendo o GPS Coquetel Musical#SGames Desenvolvendo o GPS Coquetel Musical
#SGames Desenvolvendo o GPS Coquetel Musical
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhereTDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
Phonegap
PhonegapPhonegap
Phonegap
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Dispositivos de Realidade Virtual do Futuro
Dispositivos de Realidade Virtual do FuturoDispositivos de Realidade Virtual do Futuro
Dispositivos de Realidade Virtual do Futuro
 

Mais de tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
tdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
tdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
tdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
tdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
tdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
tdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
tdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
tdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
tdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
tdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
tdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
tdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
tdc-globalcode
 

Mais de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Último

Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
Mary Alvarenga
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
ARIADNEMARTINSDACRUZ
 
Aula 1 - Ordem Mundial Aula de Geografia
Aula 1 - Ordem Mundial Aula de GeografiaAula 1 - Ordem Mundial Aula de Geografia
Aula 1 - Ordem Mundial Aula de Geografia
WELTONROBERTOFREITAS
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
Zenir Carmen Bez Trombeta
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
Crisnaiara
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
LuizHenriquedeAlmeid6
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
fran0410
 
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdfMAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
GracinhaSantos6
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
Manuais Formação
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
MatheusSousa716350
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
Eurodeputados Portugueses 2024-2029 | Parlamento Europeu
Eurodeputados Portugueses 2024-2029 | Parlamento EuropeuEurodeputados Portugueses 2024-2029 | Parlamento Europeu
Eurodeputados Portugueses 2024-2029 | Parlamento Europeu
Centro Jacques Delors
 
said edward w - orientalismo. livro de história pdf
said edward w - orientalismo. livro de história pdfsaid edward w - orientalismo. livro de história pdf
said edward w - orientalismo. livro de história pdf
ThiagoRORISDASILVA1
 
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
AdrianoMontagna1
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
DNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicosDNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicos
jonny615148
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
Primeira fase do modernismo Mapa Mental.pdf
Primeira fase do modernismo Mapa Mental.pdfPrimeira fase do modernismo Mapa Mental.pdf
Primeira fase do modernismo Mapa Mental.pdf
Maurício Bratz
 
Copia de cartilla de portugués 1 2024.pdf
Copia de cartilla de portugués 1 2024.pdfCopia de cartilla de portugués 1 2024.pdf
Copia de cartilla de portugués 1 2024.pdf
davidreyes364666
 
Aula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdfAula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdf
AntonioAngeloNeves
 

Último (20)

Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
 
Aula 1 - Ordem Mundial Aula de Geografia
Aula 1 - Ordem Mundial Aula de GeografiaAula 1 - Ordem Mundial Aula de Geografia
Aula 1 - Ordem Mundial Aula de Geografia
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
 
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdfMAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
MAPAS MENTAIS Conhecimentos Pedagógicos - ATUALIZADO 2024 PROF. Fernanda.pdf
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
 
cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..cidadas 5° ano - ensino fundamental 2 ..
cidadas 5° ano - ensino fundamental 2 ..
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
Eurodeputados Portugueses 2024-2029 | Parlamento Europeu
Eurodeputados Portugueses 2024-2029 | Parlamento EuropeuEurodeputados Portugueses 2024-2029 | Parlamento Europeu
Eurodeputados Portugueses 2024-2029 | Parlamento Europeu
 
said edward w - orientalismo. livro de história pdf
said edward w - orientalismo. livro de história pdfsaid edward w - orientalismo. livro de história pdf
said edward w - orientalismo. livro de história pdf
 
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
3ª série HIS - PROVA PAULISTA DIA 1 - 1º BIM-24.pdf
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
DNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicosDNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicos
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
Primeira fase do modernismo Mapa Mental.pdf
Primeira fase do modernismo Mapa Mental.pdfPrimeira fase do modernismo Mapa Mental.pdf
Primeira fase do modernismo Mapa Mental.pdf
 
Copia de cartilla de portugués 1 2024.pdf
Copia de cartilla de portugués 1 2024.pdfCopia de cartilla de portugués 1 2024.pdf
Copia de cartilla de portugués 1 2024.pdf
 
Aula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdfAula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdf
 

TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK

  • 1. Globalcode – Open4education Realidade Virtual – Evoluindo aplicações mobile com o Google VR SDK Daniel Monteiro Desenvolvedor Android - OLX Brasil
  • 2. Globalcode – Open4education Agenda • Introdução, disclaimers e quem sou eu • De onde partimos • Anatomia de uma aplicação com panorama • Criando mundos virtuais 3D • Possibilidades trazidas pelo novo Google VR SDK • Dicas valiosas
  • 4. Globalcode – Open4education Introdução • Reuso é ótimo • A comoditização é a motriz indireta da inovação. • Se já temos pronto, pra qua reescrever? Devemos nos apoiar sobre o ombro de gigantes!
  • 5. Globalcode – Open4education Introdução • Mas Unity3D não é solução pra tudo • Aproveitar tudo que já foi escrito e testado e com o que toda a equipe de desenvolvimento ja é familiar ou aproveitamos as soluções de VR existentes e tentamos reescrever todo o nosso legado em cima destas soluções? • Muitas vezes queremos manter um mínimo de familiaridade para o usuário, que certamente não quer saltar logo de cara numa experiência VR
  • 6. Globalcode – Open4education Introdução • Muitas vezes queremos revitalizar nossos apps • A popularização de um meio depende do mundano - e talvez isso explique porque VR não "pegou" até agora. Era caro ou dificil demais para provedores de serviços mais cotidianos e de pouco interesse para os centros avançados de pequisa.
  • 7. Globalcode – Open4education Introdução • Estratégias básicas usando Google VR: • Panoramas with Cardboard App • Mundos 3D em Java • Mundos 3D misturando Java e C++ • Indo fundo no C++
  • 9. Globalcode – Open4education • Essa será uma palestra essencialmente técnica, mas com pontos de intersecção com UX e, as vezes, Design. Disclaimer
  • 10. Globalcode – Open4education • Eu gosto de C++ • Especialmente C++14 • Tentarei ser racional e escolher a ferramenta correta para o problema correto • Mas no fim do dia, e isso pode surpreender alguns, trabalhar com OpenGL em C++ é mais fácil do que com Java! Disclaimer
  • 12. Globalcode – Open4education • Daniel Monteiro (“Monty”) • Natural das misteriosas terras de Niterói • Jogar Doom mudou minha vida. E eu ainda adoro! Quem sou eu?
  • 13. Globalcode – Open4education • Desenvolvendo jogos desde garoto, com QBasic (~1996) Quem sou eu?
  • 14. Globalcode – Open4education • Escrevi meu primeiro glBegin em 1999 • Mas isso não quer dizer que eu era bom • Frequentei bastante o Programadores de Jogos Quem sou eu?
  • 15. Globalcode – Open4education • Bacharel em Ciência da Computação pela UFF • Onde aprendi a teoria por trás da prática Quem sou eu?
  • 16. Globalcode – Open4education • Perdi minha inocência com Symbian em 2003 Quem sou eu?
  • 17. Globalcode – Open4education • Recuperei a fé com Maemo em 2005 Quem sou eu?
  • 18. Globalcode – Open4education • Percebi o potencial do Android em 2009 Quem sou eu?
  • 19. Globalcode – Open4education • Hoje sou desenvolvedor Android na OLX Quem sou eu?
  • 21. Globalcode – Open4education De onde partimos • Requisitos para a aplicação • Aparelhos precisam de giroscópio • Não tão comum no Brasil • Degradar graciosamente • Usuários, para ter uma boa experiência, precisam de uma tela boa • E a melhor experiência só vem com os óculos • Para configurar bem os óculos, o usuário precisa da aplicação Cardboard • Mas não me surpeenderia disso eventualmente vir embarcado no próprio OS
  • 22. Globalcode – Open4education De onde partimos • Limitações recomendadas • Conteúdo ainda é o maior desafio. Planeje bem sua geração • É preferível oferecer uma interação incompleta em que não haja imersão total, mas com qualidade do que uma experiência que pode causar desconforto ao usuário.
  • 23. Globalcode – Open4education De onde partimos • Formas de interação e dicas de como otimizar a experiência do usuário • Apesar da maioria dos Cardboards terem gatilho, nem todos os telefones tem magnetômetro • Os novos óculos, baseados em touch são surpreendentemente dificeis de achar • Alternativas são a retícula temporal e voz (infelizmente pouco usada)
  • 25. Globalcode – Open4education Anatomia de um panorama • Muito simples, realmente. Vejam o Codelab! • Realizei esse Codelab durante o I/O em ~40 minutos • Realizei novamente depois, e coloquei no Github
  • 26. Globalcode – Open4education Anatomia de um panorama • Muito simples, realmente. Vejam o Codelab! • Realizei esse Codelab durante o I/O em ~40 minutos • Realizei novamente depois, e coloquei no Github • Mas façam vocês antes de olhar o meu
  • 27. Globalcode – Open4education Anatomia de um panorama • VrPanoramaView • A mais simples e aproximável • Mas ainda tem suas limitações • View customizada que pode assumir a tela cheia • Carregamento de imagens assíncrono é recomendável
  • 29. Globalcode – Open4education Criando mundos 3D • Resolve o problema de conteúdo - em parte • Mundo 3D não é necessariamente um ambiente • Qualquer falha no conteúdo vai aparecer em destaque para o usuário • Uma visão “low-fi” é mais fácil de ser “comprada”
  • 30. Globalcode – Open4education Criando mundos 3D • Mas cria o problema precisar de mais código • A máquina tem que trabalhar em dobro para processar a experiência de cada olho e todos os seus detalhes - afinal mesmo que seja uma versão menos fidedigna da realidade, ainda temos que caprichar
  • 31. Globalcode – Open4education Criando mundos 3D • Sem falar em um melhor planejamento de UX • Possibilidades “infinitas” trazem um problema de decisão infinito • Não temos ainda um guideline muito gravado em pedra • Mas felizmente a Google tem trabalhado nisso e criou um guideline empírico
  • 32. Globalcode – Open4education Criando mundos 3D • Diversas estratégias possíveis • Diferentes formas de integrar uma base de código atual com os novos elementos • Mesmo que se opte pelo SDK que usa a linguagem padrão da plataforma, existe grande economia em usar C++
  • 33. Globalcode – Open4education Criando mundos 3D • Um modelo de computação heterogêneo • Mal ou bem, estamos programando uma unidade de processamento especializada e isolada • Precisamos gerar um snapshot que represente nossos dados bem o suficiente para que a unidade de renderização tenha informações suficientes, no tempo suficiente, para gerar o resultado desejado
  • 34. Globalcode – Open4education Criando mundos 3D • Uma forma de tratar do problema de conteúdo pode ser uma abordagem procedural • O quente é gerar o conteúdo 3D partindo do seu conteúdo tradicional - até para tornar mais familiar ao usuário
  • 36. Globalcode – Open4education Possibilidades do GoogleVR • GoogleVR não é só Android • Versão para iOS com SDK nativo
  • 37. Globalcode – Open4education Possibilidades do GoogleVR • E certamente não é só Cardboard • O DayDream vem aí (mas deve demorar mais no Brasil). A promessa sugere telefones capazes de prover uma experiência robusta • Um grupo considerável faz streaming de jogos do PC para os óculos com resultados convincentes • Imagino que um SDK mais robusto faça o Cardboard mais presente no meio acadêmico
  • 38. Globalcode – Open4education Possibilidades do GoogleVR • Porque não integrar com outros hardwares, para uma experiência heterogenea? • Não esperar que os fabricantes nos entregues pacotes prontos e fechados. Inovar, explorar • Assim como mobile apps não são apenas para consumidores - nada impede que usemos Android como um recurso interno para uma experiência fixa.
  • 40. Globalcode – Open4education Dicas valiosas! • Para se obter o vetor de direção usuário, veja a HeadTransform, fornecida no callback onNewFrame.
  • 41. Globalcode – Open4education Dicas valiosas! • Por sinal, não se esqueça de “normalizar” seu conteúdo para que este apareça na frente o usuário sempre que ele entrar em seu mundo. Mas faça-o apenas no plano XZ.
  • 42. Globalcode – Open4education Dicas valiosas! • Cuidado com código re-entrante e com as diferenças de ciclo de vida do código Java e do código nativo em C++
  • 43. Globalcode – Open4education Dicas valiosas! • A cada frame você precisa habilitar o teste de profundidade - provavelmente um bug. O SDK deve desabilitar o teste de profundidade para agilizar a distorção da imagem. Faça: glEnable( GL_DEPTH_TEST);
  • 44. Globalcode – Open4education Dicas valiosas! • Importante lembrar também de definir a perspectiva de cada olho: eye.getPerspective(zNear, zFar ); O efeito de esquecer de definir a perspectiva é mais cruel, uma vez seu código provavelmente já tem alguma definição de perspectiva previa - o resultado é que cada olho terá uma imagem, mas não terá efeito de profundidade.
  • 45. Globalcode – Open4education Dicas valiosas! • Tradicionalmente, em OpenGL a gente sempre esbarrou num bug idiota - sua geometria estar atrás da câmera. Com GoogleVR, basta você olhar para trás! Isso também implica em ter cuidado com coisas que anteriormente eram vistas apenas por um lado!
  • 46. Globalcode – Open4education Dicas valiosas! • Você não precisa mais derivar uma GLSurfaceView ou similar. GvrView pode ser usada diretamente, aceitando um GvrView. StereoRenderer (que deve ser implementado).
  • 47. Globalcode – Open4education Dicas valiosas! • Importante lembrar de usar setGvrView além do setContentView!
  • 48. Globalcode – Open4education Dicas valiosas! • Um bug do suporte ao JNI no Android Studio faz com que a declaração de uma função gerada não seja criada dentro do bloco extern “C”
  • 49. Globalcode – Open4education Dicas valiosas! • O uso do GoogleVR SDK para NDK poderá oferecer o poder máximo do DayDream para a aplicação...mas todo poder tem um custo - bastante trabalho de controle fica por conta da aplicação, para que esta possa extrair até a última gota de desempenho do telefone
  • 50. Globalcode – Open4education Dicas valiosas! • E você certamente vai querer usar alguma biblioteca matemática extra, como a GLM ou a MathFoo, da própria Google.
  • 51. Globalcode – Open4education Dicas valiosas! • Honestamente, por hora ao menos, o SDK experimental do Google VR para NDK ainda não se justifica para 95% dos podem vir a desejar de fato usar JNI
  • 52. Globalcode – Open4education Dicas valiosas! • Mas se você realmente precisa portar uma aplicação que já é feita em C/C++, talvez seja melhor experimentar usar o demo Treasure Hunt como base partir hackeando até um ponto satisfatório
  • 53. Globalcode – Open4education Dicas valiosas! • No fim do dia, JNI pode requerir muitas mudanças na estrutura do seu projeto. Hic sunt dracones!
  • 55. Globalcode – Open4education Links e contatos http://about.me/danielmonteiro