;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Seu celular já tem: o que é a realidade aumentada, prévia do 'metaverso'

Pokémon Go, exemplo famoso de realidade aumentada, é uma espécie de "degustação" do metaverso imaginado pelo Facebook - Getty Images
Pokémon Go, exemplo famoso de realidade aumentada, é uma espécie de 'degustação' do metaverso imaginado pelo Facebook Imagem: Getty Images

Lisboa (AFP)

03/11/2021 13h04

Quando o Facebook apresentou na semana ada um esboço do "metaverso", o suposto futuro da Internet, mostrou pessoas transportadas para um mundo psicodélico de peixes voadores e robôs amigáveis.

Embora o CEO do Facebook, Mark Zuckerberg, ita que estas experiências estão longe de se tornar realidade, alguns entusiastas argumentam que uma versão mais modesta do metaverso já existe.

"De alguma maneira, nós estamos nas etapas iniciais do metaverso", declarou a presidente da Magic Leap, Peggy Johnson, à AFP, na terça-feira (2) em Lisboa, durante a conferência anual de tecnologia Web Summit.

A Magic Leap fabrica dispositivos de realidade aumentada (RA), que já foram usados por cirurgiões que se preparavam para separar um gêmeos siameses e por supervisores de fábrica que fazem inspeções.

Nos dois casos, as informações surgiram diante dos olhos do usuários sobre o que estavam vendo.

Pode não parecer tão imersivo como as experiências de realidade virtual (RV) que Zuckerberg quer, eventualmente, levar para as casas das pessoas. Dilui, de qualquer maneira, a barreira entre o mundo físico e o digital, uma ideia-chave por trás do metaverso.

"Com a RV, você coloca um dispositivo e está em outro mundo", explica Johnson. "Com RA, você coloca o dispositivo e continua no seu mundo, mas nós ampliamos esse mundo com o conteúdo digital", acrescentou.

Até o momento, a experiência de muitas pessoas com RA se limita a jogar Pokémon Go, ou a experimentar filtros de imagens que colocam, por exemplo, orelhas no rosto de uma pessoa.

Segundo Johnson, porém, o potencial da RA começa a ser concretizado no campo da saúde.

"Você pode chamar especialistas que podem ver o mesmo que você, mas de outra parte do mundo", destaca. "Durante uma cirurgia, você pode estabelecer linhas digitais onde talvez a incisão será feita", exemplifica.

Fundada em 2010, a missão inicial da Magic Leap era popularizar a RA, o que gerou tanto entusiasmo que a empresa captou US$ 2,3 bilhões em investimentos.

Quando o primeiro dispositivo da Magic Leap foi apresentado em 2018, a decepção foi geral, porém. O produto era muito volumoso e caro para o grande público. A empresa foi obrigada a demitir quase metade dos funcionários no ano ado.

Futuro próximo

Ex-executiva da Microsoft, Peggy Johnson assumiu a presidência da empresa em agosto de 2020 e começou a desenvolver óculos de uso profissional.

Em outubro, esta companhia com sede na Flórida anunciou que arrecadou outros US$ 500 milhões em financiamento para um novo dispositivo, o Magic Leap 2, que será lançado em 2022.

A versão atualizada é mais leve, mas seu emprego ainda está previsto, principalmente, para pessoas acostumadas a usar óculos de proteção no trabalho. É o caso cirurgiões em uma operação delicada, ou de especialistas da indústria bélica.

Google Glass, os "óculos inteligentes" que não tiveram sucesso no lançamento em 2014, também ressurgiram como um produto dirigido a usuários profissionais.

Johnson prevê que deve levar alguns anos até que a Magic Leap, ou alguma de suas concorrentes, possam criar dispositivos de RA para o uso do público em geral.

Para Johnson, este será o momento em que a RA transformará nossa vida cotidiana.

A tecnologia poderá, por exemplo, permitir observar comentários de restaurantes, enquanto estamos na rua decidindo para onde ir, afirma.

Se você esqueceu o nome de uma pessoa, sem problema, porque pode aparecer sobre sua cabeça quando a pessoa se aproxima.

"Agora estamos todos olhando para baixo, para nossos telefones celulares", disse Johnson.

A realidade aumentada, espera ela, pode nos ajudar a absorver o mundo ao nosso redor, um mundo com informações extras em camadas.

Se esta revolução acontecer, o mercado pode ficar lotado.

O Facebook trabalha em seu próprio dispositivo de RA, e há boatos de que a Apple também.

Como será o metaverso em 15 anos?

"Eu penso que você vai voltar para casa para pegar seus óculos, porque o esqueceu", prevê Johnson. "Da mesma maneira que você faz hoje com o telefone celular", completou.