Я пытаюсь найти лучшую стратегию для выравнивания SCNScene с физической таблицей. Также как приложение ARKit WWWFreeRivers .
В настоящее время я просто тестирую, чтобы отобразить простую модель самолета с теми же размерами, что и в таблице. Если я вытяну плоскость, которую обнаруживает ARKit, я увижу, что плоскость не очень точна с краями. Они всегда выходят за границы (изображение ниже).
Так что я не могу полагаться на этот самолет, просто поместив модель в центр этого. Модель также вращается неправильно (изображение ниже).
У меня была другая идея использовать технику ARReferenceImage, чтобы сфотографировать текстуру столешницы, и позволить ARKit найти и сопоставить это «изображение» таблицы. Но даже с текстурой деревянного зерна ARKit не хватило данных, чтобы распознать его. И ARKit просто терпит неудачу, если у вас есть эти ошибки. Он даже не пытается сделать плохой матч.
Как мне это сделать?
Идеи, которые у меня были до сих пор:
- Возьмите изображение таблицы и используйте функцию ARImageReference, чтобы соответствовать ему. Это не сработало. Может быть, если я добавлю в таблицу еще несколько интересных особенностей, например, какие-нибудь QR-коды в углах.
- Определите самолет, а затем нажмите на четыре угла на столе, чтобы наметить квадрат, и используйте его.
- Сделайте как приложение WWW, просто поместите объект случайным образом на плоскость, а затем позвольте пользователю масштабировать, перемещать и вращать модель, чтобы дать ей правильное положение.
Есть еще идеи? Как вы думаете, что будет лучшим подходом к этому?