Как программно с помощью Scenekit (ARKit) iOS 11 создать квадратный или прямоугольный оверлей (плоскость) над камерой с заданной шириной и высотой?

Я новичок в AR и хочу создать квадратное или прямоугольное наложение на основе заданной ширины и высоты над камерой с помощью iOS 11 ARKit-Scenekit.

Я пробовал использовать https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip, и он показывает квадрат фокуса в центре, с помощью которого мы можем расположить любую 3D-модель. Но действительно нестабильно.

Можно ли создать плоскость, подобную квадрату фокуса в приведенном выше примере, на основе размера 3D-модели, которую мы собираемся разместить, чтобы

1) Мы можем перетащить самолет куда угодно

2) Поверните самолет

3) Поместите 3D-модель над фокусным квадратом (плоскостью).

Что-то похожее на этот http://www.madewitharkit.com/post/163259313638/arkit-furniture-dropping-app-by


person yaali    schedule 04.08.2017    source источник
comment
Да, все это возможно. Что вы пробовали до сих пор и где возникают проблемы?   -  person PDK    schedule 04.08.2017
comment
@PDK Я попытался изменить размер данного квадрата фокуса в примере кода, но он не работает должным образом. Не могли бы вы рассказать мне, как создать квадрат или прямоугольник (пустой квадрат или только прямоугольную границу) в SCNNode и разместить его горизонтально относительно оси x, как указано в madewitharkit.com/post/163259313638/ демо.   -  person yaali    schedule 07.08.2017
comment
Попробуйте обновить свои исходные сообщения, объясняя (кратко), что вы сделали до сих пор и каков был результат (например, сообщение об ошибке - и как вы не смогли найти решение для этого), и не забудьте указать, какие источники вы уже использовали. Если вы сомневаетесь как, прочтите (если вы еще не сделали этого): stackoverflow.com/help/asking и stackoverflow.com/help/how-to-ask   -  person PDK    schedule 07.08.2017
comment
ты получил ответ ???   -  person Saneesh    schedule 25.07.2018
comment
Не совсем. Но в итоге я создал SCNNode / SCNPlane с моей шириной и высотой 3D-объекта и добавил его в сцену. Нечто похожее на ответ @Lebron   -  person yaali    schedule 25.07.2018


Ответы (1)


Простой способ реализовать вашу потребность: подготовить значок прямоугольника и сгенерировать SCNNode с помощью метода:

func geometryNodeFromImage(named name: String, width: CGFloat, height: CGFloat, length: CGFloat) -> SCNNode {
    let box = SCNBox(width: width, height: height, length: length, chamferRadius: 0)

    let rectangleMaterial = SCNMaterial()
    rectangleMaterial.diffuse.contents = UIImage(named: name)
    box.materials = [rectangleMaterial]

    return SCNNode(geometry: box)
}
person Lebron    schedule 12.09.2017