gpt4 book ai didi

android - Xamarin ARcore 改变 3D 对象的位置

转载 作者:行者123 更新时间:2023-11-30 00:01:58 26 4
gpt4 key购买 nike

我正在尝试使用 Xamarin 实现 ARcore 并希望在特定的 geolocation 中设置一个 3D 对象(就像在 pokemongo 中一样)。我试图浏览我在这个论坛中找到的这个示例:https://blog.xamarin.com/augmented-reality-xamarin-android-arcore/但似乎我无法更改 3d 对象的位置,它是根据 tap gesture 仅在 plane 上设置的。

有没有办法放置一个物体并跟踪它?我确实设法用 ARkit 做到了这一点,但直到现在 ARcore Android 都没有成功。

任何想法都会有所帮助。

最佳答案

看起来 ARCore 的 Xamarin 包装器只是简单地包装了 OpenGL。因此,绘制对象需要设置多个矩阵(Model、View和Projection)矩阵:

objectRenderer.UpdateModelMatrix(anchorMatrix, scaleFactor);
objectRenderer.Draw(viewMatrix, projectionMatrix, lightIntensity);

如果您只是从 foreach (var planeAttachment in planeAttachments) 中删除它 {
循环,然后您可以将 anchorMatrix(又名 modelMatrix)设置为固定/硬编码转换,然后它会相对于相机固定自身。

这是一篇关于 View 矩阵的不错的文章:https://www.3dgep.com/understanding-the-view-matrix/#The_View_Matrix

-- 开始无耻插件 --

但是,如果您愿意尝试新平台,我的团队已经构建了一个用于 AR/VR 开发的跨平台 React-Native 库 (Viro React):https://viromedia.com/viroreact/

如果您更熟悉 iOS 上的 SceneKit,我们已经在支持 AR/VR 的 Android 上构建了一个类似的解决方案 (ViroCore):https://viromedia.com/virocore/

这两种解决方案都可以让您跳过 OpenGL 的复杂性,并相对轻松地简单地定位您的对象/模型。

即。

将您的模型放在您面前 1 米处就像(在 Viro React 中)一样简单:

<Viro3dObject source={require("./res/model.obj")} position={[0,0,-1]} type="OBJ" />

关于android - Xamarin ARcore 改变 3D 对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49773672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com