Можно ли получить доступ к сетке, созданной ARKit? ⇐ IOS
Можно ли получить доступ к сетке, созданной ARKit?
Я изучаю AR, используя SwiftUI и RealityKit, и начал с очень простой реализации, которая сначала показывает только поток камеры.
Позже виртуальные объекты следует размещать с помощью ModelEntity и AnchorEntity.
Приложение:
импортировать SwiftUI @основной структура BasicARApp: Приложение { var body: некоторая сцена { ОкноГруппа { МейнВью() } } } Основное представление:
импортировать SwiftUI импортировать RealityKit структура MainView: Просмотр { var body: some View { ARViewContainer().edgesIgnoringSafeArea(.all) } } структура ARViewContainer: UIViewRepresentable { func makeUIView (контекст: Контекст) -> ARView { пусть arView = ARView (кадр: .ноль) вернуть arView } func updateUIView(_ uiView: ARView, context: Context) {} } Приложение, которое я имею в виду, требует определения объекта, ближайшего к камере.
Чтобы найти этот объект в сетке, созданной ARKit, в документах Apple предлагается выполнить лучевую трансляцию из местоположения через сетку, например. используя
if let result = arView.raycast(from: TapLocation, разрешено: .estimatedPlane, выравнивание: .any).first { // … } Однако я думаю, что было бы проще, если бы у меня был прямой доступ к сетке и отфильтровывал узлы, ближайшие к камере.
Итак, мой вопрос: как мне получить доступ к сетке, созданной ARKit?
Я изучаю AR, используя SwiftUI и RealityKit, и начал с очень простой реализации, которая сначала показывает только поток камеры.
Позже виртуальные объекты следует размещать с помощью ModelEntity и AnchorEntity.
Приложение:
импортировать SwiftUI @основной структура BasicARApp: Приложение { var body: некоторая сцена { ОкноГруппа { МейнВью() } } } Основное представление:
импортировать SwiftUI импортировать RealityKit структура MainView: Просмотр { var body: some View { ARViewContainer().edgesIgnoringSafeArea(.all) } } структура ARViewContainer: UIViewRepresentable { func makeUIView (контекст: Контекст) -> ARView { пусть arView = ARView (кадр: .ноль) вернуть arView } func updateUIView(_ uiView: ARView, context: Context) {} } Приложение, которое я имею в виду, требует определения объекта, ближайшего к камере.
Чтобы найти этот объект в сетке, созданной ARKit, в документах Apple предлагается выполнить лучевую трансляцию из местоположения через сетку, например. используя
if let result = arView.raycast(from: TapLocation, разрешено: .estimatedPlane, выравнивание: .any).first { // … } Однако я думаю, что было бы проще, если бы у меня был прямой доступ к сетке и отфильтровывал узлы, ближайшие к камере.
Итак, мой вопрос: как мне получить доступ к сетке, созданной ARKit?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение