繁体   English   中英

Scenekit FPS低和内存使用率高的问题

[英]Scenekit low FPS and high memory usage issue

我已经使用Scenekit创建了一个360度的图像查看器。 在此查看器中,我只是创建一个sphere node并将其附加到sceneroot node 我正在使用Aleta相机捕获的高分辨率图像作为该球体节点的纹理。

我不明白为什么场景工具包占用太多内存来显示360度图像。 我的图片大小为12MBresolution11520 x 5760 当我将场景加载到场景视图中时,我的内存使用量高达400 MB,这非常可怕,而且FPS急剧下降到10-20 FPS

以下是我创建场景的代码:

 // Camera node and sphere node...

  var sphereNode : SCNNode!

  lazy var cameraNode: SCNNode = {
        let node = SCNNode()
        let camera = SCNCamera()
        node.camera = camera
        return node
    }()

// Material...

func getMaterial() -> SCNMaterial {
    let material = SCNMaterial()
    material.diffuse.mipFilter = .nearest
    material.diffuse.magnificationFilter = .linear
    material.diffuse.contentsTransform = SCNMatrix4MakeScale(-1, 1, 1)
    material.diffuse.wrapS = .repeat
    material.cullMode = .front
    material.isDoubleSided = false
    return material
} 

// Setup scene...

func setup() {
    self.scene?.rootNode.addChildNode(cameraNode)
    let sphere = SCNSphere(radius: 8)
    sphereNode = SCNNode()
    sphere.segmentCount = 300
    sphere.firstMaterial = getMaterial()
    sphereNode.geometry = sphere
    self.scene?.rootNode.addChildNode(sphereNode)
}

//设置纹理...

  room.getSceneTexture { (image) in
            DispatchQueue.main.async {
                self.sceneView.updateMaterialTexture(image: image)
            }
        }

//纹理方法:

func getSceneTexture(completion: @escaping (UIImage?) -> Void) {
            guard let url = fileURL else {
                completion(nil)
                return
            }
            DispatchQueue.global().async {
                guard let data = try? Data(contentsOf: url) else {
                    completion(nil)
                    return
                }

                DispatchQueue.main.async {
                    let image = UIImage(data: data)
                    completion(image)
                }
            }
            return completion(nil)
        }

从摄像机捕获图像后,我将使用捕获的图像设置素材的内容。

请让我知道是否有人遇到了scenekit's内存问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM