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

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

1 ответ

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

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

Таким образом, в 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)

или же:

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

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

Другие вопросы по тегам