Spec-Zone.ru › Web APIs

XRHitTestResult

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами таблицу совместимости с браузерами перед использованием в рабочей среде.

Интерфейс XRHitTestResult API устройств WebXR содержит единственный результат проверки попадания. Вы можете получить массив объектов XRHitTestResult для кадра, вызвав XRFrame.getHitTestResults().

Свойства экземпляра

Нет.

Методы экземпляра

XRHitTestResult.createAnchor() Экспериментально

Возвращает Promise, который разрешается с созданным из результата проверки попадания XRAnchor.

XRHitTestResult.getPose() Экспериментально

Возвращает XRPose результата проверки попадания относительно заданного базового пространства.

Примеры

Получение объектов XRHitTestResult в цикле кадров

В дополнение к отображению XRHitTestResult в цикле кадров, этот пример демонстрирует несколько действий, которые необходимо выполнить перед запросом этого объекта. Во время настройки сессии укажите "hit-test" в качестве одного из requiredFeatures. Затем вызовите XRSession.requestHitTestSource() с желаемыми ссылками. (Получите их, вызвав XRSession.requestReferenceSpace().) Это возвращает XRHitTestSource. Вы будете использовать его в цикле кадров для получения объектов XRHitTestResult.

const xrSession = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["local", "hit-test"],
});

let hitTestSource = null;

xrSession
  .requestHitTestSource({
    space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
    offsetRay: new XRRay({ y: 0.5 }),
  })
  .then((viewerHitTestSource) => {
    hitTestSource = viewerHitTestSource;
  });

// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResults(hitTestSource);

  // do things with the hit test results
}

Получение положения результата проверки попадания

Используйте getPose() для запроса положения результата.

let hitTestResults = xrFrame.getHitTestResults(hitTestSource);

if (hitTestResults.length > 0) {
  let pose = hitTestResults[0].getPose(referenceSpace);
}

Создание якоря из результата проверки попадания

После нахождения пересечений на реальных поверхностях с помощью проверки попадания, вы можете создать XRAnchor для прикрепления виртуального объекта к этому расположению.

hitTestResult.createAnchor().then(
  (anchor) => {
    // add anchored objects to the scene
  },
  (error) => {
    console.error(`Could not create anchor: ${error}`);
  },
);

Спецификации

Спецификация
Модуль проверки попадания WebXR
# xr-hit-test-result-interface

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
XRHitTestResult 81 81 Нет 68 Нет 81 Нет 58 Нет 13.0 Нет
createAnchor 85 85 Нет 71 Нет 85 Нет 60 Нет 14.0 Нет
getPose 81 81 Нет 68 Нет 81 Нет 58 Нет 13.0 Нет

См. также

  • XRTransientInputHitTestResult
  • XRPose
  • XRAnchor

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRHitTestResult

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API