如何在 ARView 中使用 setWorldOrigin?
在下面的 RealityKit 代码中,考虑到我应用于 y 的世界平移,我希望该框的位置较低。我想我误解了 setWorldOrigin 的作用。我想重新定义坐标映射,以便零位于不同的位置。我做错了什么/期待错了什么?谢谢。
let arView = ARView(frame: .zero, cameraMode: .nonAR)
arView.environment.background = .color(.white)
var relativeTransform = matrix_identity_float4x4
relativeTransform.columns.3.y = -1
arView.session.setWorldOrigin(relativeTransform: relativeTransform)
let material = SimpleMaterial(color: .gray, isMetallic: false)
let entity = ModelEntity(mesh: .generateBox(size: 0.3), materials: [material])
let anchor = AnchorEntity(world: .zero)
anchor.addChild(entity)
arView.scene.addAnchor(anchor)
In the RealityKit code below I expect the box to be positioned lower given the world translation I've applied to y. I think I'm misunderstanding what setWorldOrigin does. I want to redefine the coordinate mapping so that zero is in a different location. What am I doing/expecting incorrectly? Thanks.
let arView = ARView(frame: .zero, cameraMode: .nonAR)
arView.environment.background = .color(.white)
var relativeTransform = matrix_identity_float4x4
relativeTransform.columns.3.y = -1
arView.session.setWorldOrigin(relativeTransform: relativeTransform)
let material = SimpleMaterial(color: .gray, isMetallic: false)
let entity = ModelEntity(mesh: .generateBox(size: 0.3), materials: [material])
let anchor = AnchorEntity(world: .zero)
anchor.addChild(entity)
arView.scene.addAnchor(anchor)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AR 解决方案
阅读这篇文章了解详细信息。
非AR解决方案
ARSession是一个AR对象,因此所有session的属性和方法只有在session运行时才起作用。 ARSession 在
.nonAR
模式(即 VR 模式)、macOS 应用程序和 Xcode 模拟器中毫无意义。对于您的情况,我建议使用以下场景。PS
在使用
.ar
模式的 RealityKit 2.0 中,您无法更改远裁剪平面
值。AR solution
Read this post for details.
Non-AR solution
ARSession is an AR object, so all session's properties and methods are working only when session is running. ARSession is meaningless in
.nonAR
mode (i.e. VR mode), on macOS app, and in the Xcode Simulator. In your case, I suggest using the following scenario.P. S.
In RealityKit 2.0 using
.ar
mode, you can't changefar clipping plane
value.