Заглавные горячие слова: Метавселенная
- 28 июля Цукерберг сообщил, что компания формирует команду разработчиков для работы над Метавселенной. «Превратите Facebook из социальной сети в метавселенную в течение следующих пяти лет».
- Nvidia показала в документальном фильме: «Пресс-конференция в апреле этого года была полностью искусственной».
- В начале марта этого года Roblox, американское многопользовательское онлайн-творческое 3D-сообщество «Metaverse First Share», было размещено на Нью-Йоркской фондовой бирже, и в тот день цена его акций взлетела на 54,4%.
- Tencent выиграла агента Roblox в Китае
- В декабре 2020 года генеральный директор Tencent Ма Хуатенг заявил, что эра мобильного интернета прошла, а эра полноценного интернета — это будущее.
- Игровая компания Epic Games в апреле получила 1 миллиард долларов на создание метавселенной
- Внутри страны MeteApp, который утверждает, что строит мир метавселенной для всех возрастов, получил финансирование серии C в размере 100 миллионов долларов во главе с SIG Haina Asia Capital после того, как Roblox стал публичным.
- ByteDance был разоблачен в апреле и инвестировал почти 100 миллионов юаней в код Qiankun «китайской версии Roblox».
- Момо Вангли заявил, что в будущем, с дальнейшим развитием виртуальной реальности, непрерывной зрелостью оборудования VR/AR к популяризации домохозяйств и изменением режима взаимодействия человека с компьютером, неизбежно появятся новые возможности, то есть своего рода жизни, которая напрямую связывает людей за их спинами.
- В центре внимания направления интерактивных технологий комитета Ali Front-end также находятся «виртуальные персонажи» и «AR / VR».
можно увидеть:«Интернет-будущее, нацеленное на Interactive Entertainment Capital - Metaverse»
Что такое метавселенная
-
Первое появление: В фантастическом романе Нила Стефенсона 1992 года "Лавина" в этом романе рассказано много сцен про виртуальные аватары, киберпанк и т.д.
-
Википедия: виртуальное трехмерное пространство с характеристиками восприятия связи и совместного использования, основанное на будущем Интернете, которое представляет характеристики конвергенции и физического постоянства через виртуальную дополненную физическую реальность.
- Проще говоря: мы один на один переписываемся с новой личностью в виртуальном мире и «живем» без перерыва.
-
RobloxПредполагая, что настоящий продукт метавселенной должен состоять из восьми элементов, легко напомнить фильм «Первому игроку приготовиться»:
-
Идентичность: наличие виртуальной личности, независимо от того, связана она с реальной личностью или нет.
-
Друзья: Имейте друзей в метавселенной, общайтесь, знаете ли вы друг друга в реальности или нет.
-
Погружение: возможность погрузиться в опыт метавселенной и игнорировать все остальное.
-
Низкая задержка: все в Метавселенной происходит синхронно, без асинхронности или задержки.
-
Разнообразие: Metaverse предоставляет разнообразный богатый контент, включая игровой процесс, реквизит, художественные материалы и т. д.
-
Везде: войдите в Метавселенную с любого устройства и погрузитесь в нее в любое время и в любом месте.
-
Экономическая система: Как и в любой сложной крупной игре, у Метавселенной должна быть своя собственная экономическая система.
-
Цивилизация: Метавселенная должна быть виртуальной цивилизацией.
-
Как «окончательная форма Интернета» у всех на слуху, он требует зрелости программных и аппаратных технологий, таких как AR, VR, 5G, облачные вычисления и блокчейн. Только тогда мы сможем построить мир, который децентрализован, не контролируется кем-то одним, устойчив и никогда не закончится.
Упомянутые выше технологии, которые тесно связаны с текущим интерфейсом, — это AR и VR.
Состояние АР
Ощущение старого вина в новой бутылке, было 17-18 лет, когда была популярна концепция VR и AR. В течение нескольких лет дополненная реальность использовалась для создания виртуальных туров по местам, проектирования и совместной работы над 3D-моделями, игр, развлечений, покупок, маркетинга, обучения, визуализации и многого другого. От юзабилити до простоты использования и обновлений опыта — это главное инновационное предложение последнего раунда пользовательского опыта UX.Новый раунд революции пользовательского опыта будет сосредоточен на том, как действительно обеспечить ценность опыта. Это именно то, что AR сейчас играет в нашей жизни.
Случай:
- AR + путешествия: навигация, советы по магазинам, реклама, советы по продвижению и многое другое
- Покупки: примерка обуви, примерка одежды, примерка макияжа.
- игра:
WebXR
WebXR — это стандарт и концепция, которая относится к возможности реализации виртуальной и дополненной реальности на основе Интернета.
На самом деле, это API для разработки приложений AR (дополненной реальности) и VR (виртуальная реальность) в Интернете, а «X» обозначает что угодно в иммерсивном опыте.
API
- Эволюция API: в основном продвигается Google, от стандарта WebVR, предложенного в 2016 году, до отсутствия дополненной реальности, измененной на 2018 год.WebXR
- Связанные примеры API:immersive — Web.GitHub.IO/Web Судя по всему — Сэм побежал…
- Последнее обновление: 13 апреля 2021 г. В Chrome версии 90 добавлен новый WebXR API:
- WebXR Depth API: получите расстояние между устройством пользователя и объектами в реальной среде.
- Оценка освещения WebXR AR: получите освещение окружающей среды
- Образец кода:
async function activateXR() {
// 创建 WebGL 上下文
const canvas = document.createElement("canvas");
document.body.appendChild(canvas);
const gl = canvas.getContext("webgl", { xrCompatible: true });
// 初始化three.js
const scene = new THREE.Scene();
// 创建一个有不同颜色面的立方体
const materials = [
new THREE.MeshBasicMaterial({ color: 0xff0000 }),
new THREE.MeshBasicMaterial({ color: 0x0000ff }),
new THREE.MeshBasicMaterial({ color: 0x00ff00 }),
new THREE.MeshBasicMaterial({ color: 0xff00ff }),
new THREE.MeshBasicMaterial({ color: 0x00ffff }),
new THREE.MeshBasicMaterial({ color: 0xffff00 })
];
// 将立方体添加到场景中
const cube = new THREE.Mesh(new THREE.BoxBufferGeometry(0.2, 0.2, 0.2), materials);
cube.position.set(1, 1, 1);
scene.add(cube);
// 使用three.js设置渲染:创建渲染器、挂载相机
const renderer = new THREE.WebGLRenderer({
alpha: true,
preserveDrawingBuffer: true,
canvas: canvas,
context: gl
});
renderer.autoClear = false;
// API 直接更新相机矩阵
// 禁用矩阵自动更新
const camera = new THREE.PerspectiveCamera();
camera.matrixAutoUpdate = false;
// 使用“immersive-ar”初始化 WebXR 会话
const session = await navigator.xr.requestSession("immersive-ar");
session.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl)
});
const referenceSpace = await session.requestReferenceSpace('local');
// 创建一个渲染循环,允许我们在 AR 视图上绘图
const onXRFrame = (time, frame) => {
session.requestAnimationFrame(onXRFrame);
// 将图形帧缓冲区绑定到 baseLayer 的帧缓冲区
gl.bindFramebuffer(gl.FRAMEBUFFER, session.renderState.baseLayer.framebuffer)
// 检索设备的姿态
// XRFrame.getViewerPose 可以在会话尝试建立跟踪时返回 null
const pose = frame.getViewerPose(referenceSpace);
if (pose) {
// 在移动端 AR 中,只有一个视图
const view = pose.views[0];
const viewport = session.renderState.baseLayer.getViewport(view);
renderer.setSize(viewport.width, viewport.height)
// 使用视图的变换矩阵和投影矩阵来配置 THREE.camera
camera.matrix.fromArray(view.transform.matrix)
camera.projectionMatrix.fromArray(view.projectionMatrix);
camera.updateMatrixWorld(true);
// 使用 THREE.WebGLRenderer 渲染场景
renderer.render(scene, camera)
}
}
session.requestAnimationFrame(onXRFrame);
}
- Совместимость. Как передовой стандарт W3C, Chrome в настоящее время совершенствуется. В целом поддержка WebXR браузерами на рынке слабая, и соответствующие совместимые библиотеки и готовые решения будут представлены позже.
Наблюдатель модели:model-viewer
- Веб-компонент, реализованный Google, который можно использовать для просмотра и взаимодействия с 3D-моделями в Интернете.
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
<model-viewer src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
ios-src="https://modelviewer.dev/shared-assets/models/Astronaut.usdz"
alt="A 3D model of an astronaut"
ar
auto-rotate
camera-controls></model-viewer>
- фактический эффект:
Unity
В качестве известного движка 3D-игр также имеется соответствующая библиотека поддержки WebWR.
- единство-webxr-экспорт:GitHub.com/D О-пантера/...
Экология сообщества
-
XR Swim: Предоставляет разработчикам единую платформу для публикации контента WebXR, которая эквивалентна платформе Steam в области приложений AR/VR в Интернете.
испытание
- Как поддерживать высокоточные сцены с малой задержкой и возможность быстрой обработки данных для рендеринга и анимации.
- Традиционные способы связи недостаточно быстры. Просмотр большого количества данных из сцены может превысить пределы рендеринга.
WebAR
Преимущества и недостатки
Имеет те же плюсы и минусы, что и WebXR.
- Преимущества: кроссплатформенность, простота распространения (формат распространения URL)
- недостаток:
- Различные стандарты браузера
- 3D-контент загружается медленно и не может реализовать сложный контент
- низкое качество рендеринга
- Невозможно добиться сложных взаимодействий (ограничено традиционным взаимодействием с браузером)
Фреймворк WebAr и ключевые принципы
- Внедрение дополненной реальности требует:Идентифицируйте, отслеживайте и визуализируйте
-
AR SDK: Команда дополненной реальности Google (Google AR) предоставляет WebARonARKit, WebARonARCore. Все функции включают отслеживание движения, осведомленность об окружающей среде и определение освещенности.
- Яблоко:WebARonARKit(из мобильного ARKit)
- Андроид:WebARonARCore(из мобильного ARCore)
-
Основные AR-фреймворки: В настоящее время обслуживание и использование болееAR.js, и некоторые другие:
- три.ar.js:GitHub.com/Google-AR/Он…
- ARTToolKit:www.hitl.washington.edu/artoolkit/
- JSARTToolKit:GitHub.com/anti-IG/JS искусство OO…
- аргон.js:www.argonjs.io/
- благоговение.js:awe.media/#main
- отслеживание.js:GitHub.com/Эдуардо Лондон…
-
AR.js: Он имеет вышеупомянутые возможности от сбора информации до обработки, рендеринга и рисования.
- В основном инкапсулированные:
- WebRTC: получение видеопотока (наиболее важным методом API является getUserMedia() , который получает видеопоток с камеры в режиме реального времени)
- JSARToolKit: В основном обеспечивает функцию идентификации и отслеживания маркеров. (выпущен в 1999 году и обновлен до настоящего времени)
- Three.js, Babylon.js, A-Frame (это все библиотеки рендеринга на основе WebGL)
- AR в десяти строках HTML:
- В основном инкапсулированные:
<script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.6.0/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
<a-scene embedded arjs='sourceType: webcam;'>
<a-box position='0 0.5 0' material='opacity: 0.5;'></a-box>
<a-marker-camera preset='hiro'></a-marker-camera>
</a-scene>
</body>
-
Эффект следующий:кодовый адрес,Определить адрес изображения
-
Также существуют фреймворки для независимых функций:
-
Определить и отследить: Tracking.js, JSFeat, ConvNetJS, deeplearn.js, keras.js.После получения видеопотока задача состоит в том, чтобы идентифицировать и отслеживать.不管是对于 native AR 还是 WebAR,目前的识别算法与框架已经非常成熟,难就难在识别之后如何跟踪,如何更好更稳定更高质量的跟踪。
- Способ 1. Непосредственная обработка видеопотока во внешнем интерфейсе. Обработка изображений непосредственно на интерфейсе, вы можете использовать Tracking.js и JSFeat. Эти две библиотеки похожи тем, что обе они выполняют компьютерное зрение на переднем крае, включая извлечение характерных точек, распознавание лиц и т. д.
- Способ 2: фронтенд передает видеопоток на бэкенд, а бэкенд возвращает результат на фронтенд после обработки (так обстоит дело с некоторыми облачными сервисами распознавания).
-
Рендеринг и взаимодействие:A-Frame, Three.js, Babylon.js, Pixi.js, WebGL
- A-Frame: платформа с открытым исходным кодом, основанная на Three.js, которая может напрямую настраивать сцену в HTML, подходит для простого построения 3D-сцены.
-
Определить и отследить: Tracking.js, JSFeat, ConvNetJS, deeplearn.js, keras.js.После получения видеопотока задача состоит в том, чтобы идентифицировать и отслеживать.不管是对于 native AR 还是 WebAR,目前的识别算法与框架已经非常成熟,难就难在识别之后如何跟踪,如何更好更稳定更高质量的跟踪。
-
Принцип реализации библиотеки фреймворка: Принципы реализации упомянутой выше структуры AR в основном показаны на следующем рисунке:
план производительности
- Переместите чисто вычислительный код в шейдеры WebGL или Web Workers.
- WebGL вызывает ускорение графического процессора
- Шейдеры можно использовать для ускорения кода, связанного только с рендерингом (перерисовкой), а помещение в шейдер кода, не имеющего ничего общего с рендерингом, вызовет повторные вычисления
- Web Worker
- Подходит для кода, который не требует предварительного расчета или требований в реальном времени, таких как алгоритмы компоновки
- WebGL вызывает ускорение графического процессора
- WebAssembly
-
gpu.js
- Преобразуйте простые функции JavaScript в язык шейдеров и скомпилируйте их, чтобы они работали на вашем графическом процессоре. Если графический процессор недоступен, функция все равно будет работать в обычном JavaScript.
- Используйте алгоритмы фильтрации (например, фильтрацию Калмана), чтобы уменьшить заикание в меньшей степени, чтобы визуальный опыт пользователя казался более плавным.
рыночное решение
- Кивикуб:www.kivicube.com/
- Создавайте сцены AR, VR и 3D и делитесь ими на общей веб-платформе.
- Быстрый просмотр дополненной реальности:У-у-у, но я vi cube.com/AR-quick-slightly…
- Пример:адрес,Определить адрес изображения
- EasyAR:www.easyar.cn/
- Поддерживает WebAR, Mini Program AR, возможности отслеживания Sense, а также предоставляет облачное распознавание, услуги распознавания жестов / жестов.
- Поддерживает WebAR, Mini Program AR, возможности отслеживания Sense, а также предоставляет облачное распознавание, услуги распознавания жестов / жестов.
- 8-я стена:www.8thwall.com/
- Универсальная платформа для создания, совместной работы и публикации проектов дополненной реальности, не требующая стороннего программного обеспечения, настройки сервера или внешних инструментов, просто войдите в систему, введите код и нажмите «Опубликовать».
- Создал комплексное облачное решение для создания, совместной работы и мгновенной публикации проектов WebAR на основе браузера.
- Пример:GitHub.com/8 хорош ва-ля-ля/Веб…
- Быстрый просмотр Apple AR:У-у-у, но я vi cube.com/AR-quick-slightly…
- Предоставляет разработчикам удобный инструмент для предварительного просмотра и публикации 3D-моделей.
- Встройте представление Quick Look в приложение или веб-сайт для iPhone и iPad, чтобы отобразить файл виртуальных объектов USDZ в 3D или AR.
расширять
- Enterprise AR: 7 практических вариантов использования на 2021 год:AR VR travel.com/enterprise-…
- Основные области: удаленная помощь, медицинская диагностика, продажи, обучение, логистика, производство, прототипирование.
Релевантная информация
- Google АР:
- гитхаб:github.com/google-ar
- Основной сайт дополненной реальности:developers.google.com/ar
- WebXR:
- Google:Developers.Google.com/AR/develop/…
- w3c:www.w3.org/TR/webxr/
- Связанные официальные примеры API:immersive — Web.GitHub.IO/Web Судя по всему — Сэм побежал…
- МДН:developer.Mozilla.org/this-cn/docs/…
- Нежное введение в WebXR:AR VR travel.com/ah-gentle-in…
- Краткое руководство по WebAR и мини-программе AR:Наггетс.Талант/пост/695158…
- Представляем реализацию и применение WebAR:Tickets.WeChat.QQ.com/Yes?__Author=MЭто…
- Методы развития дополненной реальности (AR) на северном конце:сегмент fault.com/ah/119000001…
- Дополненная реальность в 10 строках HTML:medium.com/AR Technology/Augs…
- ресурс:
- Миксамо:www.mixamo.com/#/