Nano Hash - криптовалюты, майнинг, программирование

Можно ли размещать объекты с проверкой попадания без обнаружения плоскости?

После создания иммерсивного опыта AR с аудио от Apple, я подумал, что было бы интересно поэкспериментировать. и старайтесь размещать объекты где угодно, а не только на вертикальной и горизонтальной плоскости. Можно ли вообще разместить объект касанием без определения плоскости? Я понимаю, что обнаружение плоскости повысит точность тестов попадания и обнаружение ARAnchor, так что будет ли какой-нибудь способ, где можно было бы выполнить тесты попадания в любом другом месте сцены?


Ответы:


1

Если ваша сцена AR уже содержит какую-либо трехмерную геометрию в текущем сеансе, вы определенно можете использовать проверка попадания, чтобы разместить там новую модель (размещение на основе уже содержащейся трехмерной геометрии), или вы можете использовать характерные точки для размещения модели (если таковые имеются).

Если в вашей AR-сцене вообще нет 3D-геометрии или есть чрезвычайно разреженное облако точек, к чему вы примените метод проверки попадания? Hit-test - это спроецированная 2D-точка из экранного пространства на 3D-поверхность (помните, что обнаруженные плоскости являются скрытыми 3D-плоскостями) или на любую подходящую особенность.

Итак, в AR обнаружение плоскости имеет решающее значение, когда разработчик использует проверку попадания.

func hitTest(_ point: CGPoint, 
               types: ARHitTestResult.ResultType) -> [ARHitTestResult]

Здесь вы можете увидеть все доступные ARHitTestResult.ResultType.

Но обратите внимание на это, есть метод hitTest, возвращающий SCNHitTestResult:

func hitTest(_ point: CGPoint, 
             options: [SCNHitTestOption : Any]?) -> [SCNHitTestResult]

Использование:

let touchPosition: CGPoint = gesture.location(in: sceneView)

let hitTestResult = sceneView.hitTest(touchPosition, 
                                      types: .existingPlaneUsingExtent)

or:

let hitTestResult = sceneView.hitTest(touchPosition, 
                                      types: .featurePoint)

введите здесь описание изображения

Также хит-тестирование активно используется в 3D-играх, но там оно больше для VR, чем для AR.

03.07.2019
  • Спасибо. Итак, я говорю об этом, проверка попадания - это в основном функция, которая определяет географическую 2D-плоскость, а не 3D-плоскость. ARKit создает грубое облако точек, чтобы понять трехмерный мир вокруг пользователя, и затем они считаются якорями, которые, возможно, являются частью реальных самолетов. В чем я все еще не уверен: могу ли я выполнить проверку попадания на плоскости, отличной от 2D? Например, размещение трехмерного объекта в воздухе, а не на поверхности. 04.07.2019
  • Вы можете разместить трехмерный объект в воздухе без использования проверки на попадание. Для этого вы можете использовать матрицу преобразования ARCamera + некоторое расстояние по оси Z. 04.07.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..