Я пытаюсь реализовать ARcore
с Xamarin
и хочу установить объект 3D
в конкретный geolocation
(like in pokemongo
). Я попытался просмотреть этот образец, который я нашел на этом форуме: https://blog.xamarin.com/augmented-reality-xamarin-android-arcore/, но мне кажется, что я не могу изменить положение трехмерного объекта, и он установлен в соответствии с краном gesture
только на plane
.
Есть ли способ разместить объект и отследить его? Мне удалось сделать это с ARkit
, но до сих пор безуспешно для ARcore
Android.
Любые идеи были бы полезны.
Похоже, что оболочка Xamarin для ARCore просто обертывает OpenGL. В результате для рисования объекта требуется задать несколько матриц (Модель, Вид и Проекция):
objectRenderer.UpdateModelMatrix(anchorMatrix, scaleFactor);
objectRenderer.Draw(viewMatrix, projectionMatrix, lightIntensity);
Если вы просто удалите это из цикла foreach (var planeAttachment in planeAttachments) {
, тогда вы можете установить anchorMatrix
(также известный как modelMatrix
) на фиксированный / жестко запрограммированный перевод, тогда он сам исправится относительно камеры.
Вот достойная статья о матрицах просмотра: https://www.3dgep.com/understanding-the-view-matrix/#The_View_Matrix
- Начать бесстыдный плагин -
Однако, если вы готовы попробовать новые платформы, моя команда создала кроссплатформенную библиотеку React-Native для разработки AR / VR (Viro React): https://viromedia.com/viroreact/
Если вы более знакомы с SceneKit на iOS, мы создали аналогичное решение для Android с поддержкой AR / VR (ViroCore): https://viromedia.com/virocore/
Любое решение позволит вам пропустить тонкости OpenGL и просто расположить ваши объекты / модели с относительной легкостью.
т.е.
Расположить вашу модель на расстоянии 1 метра перед собой так же просто, как (в Viro React):
<Viro3dObject source = {require("./res/model.obj")} position = {[0,0,-1]} type = "OBJ" />