我有一个自定义的 usdz 文件(不是通过代码创建的,但比方说一把真正的椅子!)。我将其保存在Entity.
一旦我有了它,这就是我的代码:
func updateUIView(_ uiView: ARView, context: Context) {
if let modelEntity = model.modelEntity {
print("\(model.modelName)")
let anchorEntity = AnchorEntity(plane: .horizontal)
anchorEntity.addChild(modelEntity.clone(recursive: true))
uiView.scene.addAnchor(anchorEntity)
// modelEntity.generateCollisionShapes(recursive: true)
// If we have multiple object, recursive true help to generate collision for all of them
uiView.installGestures(.rotation, for: modelEntity as! Entity & HasCollision)
uiView.debugOptions = .showPhysics
} else {
print("Unable to load modelEntity for \(model.modelName)")
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是“参数类型‘Entity’不符合预期类型‘HasCollision’”。所以我无法添加任何手势。
但我找不到任何有用的资源来实现我的最终目标。有什么建议吗?
我正在尝试调整 AR 模型的大小,我正在使用建筑物大小的模型。
我设法使用 worldscale 和 localscale 调整模型大小,但到底有什么区别?何时应该使用 worldscale 来放大模型以及何时使用 localscale?
我想在检测到的平面上绘制网格点,如ARCore 视频链接所示,但我不知道如何实现。
你能帮我实现这个目标吗?提前致谢。
在一个AR应用程序中,您可以在相机视图中注释对象或建筑物,我想了解角色,手机(iPhone/Android)上的不同硬件位用于实现AR效果.请详细说明以下内容:
例如:如果摄像机视图显示纽约天际线,上面列出的硬件信息如何帮助我注释视图?假设我有克莱斯勒大楼的经度和纬度,并且在我的相机视图中可见,那么如何精确计算在2D图片上注释名称的位置?我知道给定2对(经度,纬度),你可以计算点之间的距离.
我的iOS应用程序应该同时执行以下两个任务:
换句话说:我正在寻找被AR标记包围的QR标签.
这两项任务都应该"实时"运行.我的第一个天真的方法表明,在一个应用程序中将两个SDK组合将导致首次初始化的SDK在初始化第二个SDK时停止工作.
有人有建议吗?谢谢.
我正在研究ARKit(iPhone框架),其中一个免费提供ARKit项目的文件夹是一个标题为的文件夹:art.scnassets.这些代表什么:art.?.scn?.dea?tex?
self.sceneView.scene.rootNode.addChildNode(sphere)
Run Code Online (Sandbox Code Playgroud)
我在上面添加了节点.但我想得到节点并编辑一些东西......
但是......我怎么能得到一个节点?
self.sceneView.scene.rootNode.enumerateChildNodes { (node, stop) in
node.enumerateChildNodes{(node, stop) in
What should I do in here?
})
Run Code Online (Sandbox Code Playgroud) 在这个视频中,一个对象被给予一个动画,在放置时悬停在房间周围,然后在点击时,它会被另一个动画放下.如何在我的项目中添加这种动画?添加已经动画的对象是唯一的方法吗?
谢谢
我正在做这个简单的事情:
图像被挂在检测到的平面上(在我的墙上)。在这两种情况下,我都实现的renderer:didAddNode:forAnchor:功能ARSCNViewDelegate。我站在垂直平面检测和图像识别的地方。
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
guard let shipScene = SCNScene(named: "ship.scn"), let shipNode = shipScene.rootNode.childNode(withName: "ship", recursively: false) else { return }
shipNode.position = SCNVector3(anchor.transform.columns.3.x, anchor.transform.columns.3.y, anchor.transform.columns.3.z)
sceneView.scene.rootNode.addChildNode(shipNode)
print(anchor.transform)
}
Run Code Online (Sandbox Code Playgroud)
在垂直平面检测的情况下,anchor将为ARPlaneAnchor。在图像识别的情况下,anchor将为ARImageAnchor。
为什么这两个锚点的转换矩阵如此不同?我正在打印anchor.transform并得到以下结果:
1。
simd_float4x4([
[0.941312, 0.0, -0.337538, 0.0)],
[0.336284, -0.0861278, 0.937814, 0.0)],
[-0.0290714,-0.996284, -0.0810731, 0.0)],
[0.191099, 0.172432, -1.14543, 1.0)]
])
Run Code Online (Sandbox Code Playgroud)
2。
simd_float4x4([
[0.361231, 0.10894, 0.926093, 0.0)], …Run Code Online (Sandbox Code Playgroud) 我是AR.js的新手,正在按照本教程中的示例进行演示。我正在尝试删除左上角的fps视图。
参考图片:
我的代码是:
//////////////////////////////////////////////////////////////////////////////////
// Init
//////////////////////////////////////////////////////////////////////////////////
// init renderer
var renderer = new THREE.WebGLRenderer({
// antialias : true,
alpha: true
});
renderer.setClearColor(new THREE.Color('lightgrey'), 0)
// renderer.setPixelRatio( 1/2 );
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.domElement.style.position = 'absolute'
renderer.domElement.style.top = '0px'
renderer.domElement.style.left = '0px'
document.body.appendChild(renderer.domElement);
// array of functions for the rendering loop
var onRenderFcts = [];
// init scene and camera
var scene = new THREE.Scene();
//////////////////////////////////////////////////////////////////////////////////
// Initialize a basic camera
//////////////////////////////////////////////////////////////////////////////////
// Create a camera
var camera = new THREE.Camera();
scene.add(camera); …Run Code Online (Sandbox Code Playgroud)