标签: realitykit

如何在 RealityKit 中为变换设置动画

在我之前的问题中,我已经找到了如何仅在对象上的一个轴上进行旋转变换,现在我希望将其设置为动画。

有没有办法在 RealityKit 中做到这一点?

xcode animation augmented-reality swift realitykit

2
推荐指数
2
解决办法
1758
查看次数

ARKit 和 Reality Composer - 如何使用图像坐标锚定场景

我编写了代码,用于在根据一个月中的某一天按下按钮时初始化 3 个 Reality Composer 场景之一。

一切都很好。

Reality Composer 场景使用图像检测将对象放置在环境中,但目前,一旦图像离开相机视图,对象就会消失。

我想将场景锚定为首次检测到图像的根节点,以便用户可以环视场景,并且即使图像触发器不在相机视图中,也可以维护对象。

我尝试传递下面的 func 渲染器代码,但收到错误消息,指出视图控制器类没有 .planeNode

 func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
            guard let imageAnchor = anchor as? ARImageAnchor else { return }
            let referenceImage = imageAnchor.referenceImage

                // Create a plane to visualize the initial position of the detected image.
                let plane = SCNPlane(width: referenceImage.physicalSize.width,
                                 height: referenceImage.physicalSize.height)
                plane.materials.first?.diffuse.contents = UIColor.blue.withAlphaComponent(0.20)
                self.planeNode = SCNNode(geometry: plane)

                self.planeNode?.opacity = 1

                /*
                 `SCNPlane` is vertically oriented in its local coordinate …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift realitykit reality-composer

1
推荐指数
1
解决办法
3127
查看次数

在 Reality Composer 生成的场景中以编程方式设置纹理

我正在使用 Reality Composer 创建一个圆柱体对象。我的要求是用自定义图像包裹圆柱体。图像由应用程序动态创建。

我尝试了以下方法,但到目前为止它不起作用。

    1. 从 Experience 加载锚点后。
    1. 从锚点获取模型实体。
    1. 从模型实体中获取模型组件。
    1. 添加或编辑材料。

代码:

// Load the "anchor" scene from the "Experience" Reality File
let anchor = try! Experience.loadAnchor()

// Add the anchor to the scene
arView.scene.anchors.append(anchor)

let cylinderEntity : Entity = anchor.cylinder!

let cylinderModelEntity = cylinderEntity.children[0]

var cylinderModelComponent : ModelComponent = cylinderModelEntity.components[ModelComponent.self]!

let paths : NSArray = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) as NSArray
let path : NSString = paths.object(at: 0) as! NSString
let filePath : NSString = path.strings(byAppendingPaths: ["Image.png"])[0] as NSString
let …
Run Code Online (Sandbox Code Playgroud)

augmented-reality swift arkit realitykit reality-composer

1
推荐指数
1
解决办法
740
查看次数

ARKit – 视口大小与实际屏幕分辨率

我正在编写一个使用 ARSCNViewhitTest函数的 ARKit 应用程序。该应用程序还将捕获的图像发送到服务器进行一些分析。

当我这样做时我注意到:

let viewportSize = sceneView.snapshot().size
let viewSize = sceneView.bounds.size 
Run Code Online (Sandbox Code Playgroud)

那么第一个是第二个的两倍。

问题是:

  • 1.为什么会有差异?
  • 2.hitTest中使用什么“大小”(例如坐标)?

augmented-reality scenekit swift arkit realitykit

1
推荐指数
1
解决办法
2217
查看次数

如何在 RealityKit 中旋转实体而不复制它?

我正在使用以下代码旋转从 Reality Composer 加载的实体。我希望球体会简单地旋转。但是,我留下了新的旋转实体和旧实体。以为这会很简单。

我该怎么做才能只旋转实体而不复制它?

ball?.transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90), 
                                       axis: SIMD3(x: 0, y: 1, z: 0.5))
Run Code Online (Sandbox Code Playgroud)

augmented-reality swift arkit realitykit reality-composer

1
推荐指数
1
解决办法
1753
查看次数

如何将我自己的 Reality Composer 场景加载到 RealityKit 中?

我在Experience.rcproject文件中创建了 3 个“场景” ,这是在您使用 xcode 启动新的增强现实项目时创建的。

经常为 3D 工作,我会说这些是场景中的 3 个对象,但在里面Experience.rcproject我添加了 3 个“场景”。每一个内部,都有相同的 3D 模型。第一个附加到水平平面,第二个附加到垂直平面,第三个附加到图像。

我第一次使用 Reality Kit 并在此过程中学习。

我这样做的想法是,当我想要将它附加到水平、垂直或图像时加载正确的对象。

我就是这样完成的。

我修改Experience.swift了 Apple 提供的文件以接受场景名称,如下所示:

public static func loadBox(namedFile:String) throws -> Experience.Box {
    guard let realityFileURL = Foundation.Bundle(for: Experience.Box.self).url(forResource: "Experience", withExtension: "reality") else {
      throw Experience.LoadRealityFileError.fileNotFound("Experience.reality")
    }
    
    let realityFileSceneURL = realityFileURL.appendingPathComponent(namedFile, isDirectory: false)
    let anchorEntity = try Experience.Box.loadAnchor(contentsOf: realityFileSceneURL)
    return createBox(from: anchorEntity)
  }
Run Code Online (Sandbox Code Playgroud)

我叫这条线

let entity = try! Experience.loadBox(namedFile:sceneName)
Run Code Online (Sandbox Code Playgroud)

无论我想要什么,但我必须使用以下代码:

// I have to keep …
Run Code Online (Sandbox Code Playgroud)

augmented-reality swift arkit realitykit

1
推荐指数
1
解决办法
1354
查看次数

RealityKit 中的粒子系统

RealityKit中有粒子系统吗?如果是这样,有人可以指出我正确的文档/文章吗?

到目前为止,我在 RealityKit 模块中没有找到任何粒子系统。

swift realitykit visionos

1
推荐指数
1
解决办法
1413
查看次数