RealityKitとSceneKit、どちらのメモリ使用量がすくないか


メモリ使用量をへらしたい

ARKitでリッチなUSDZファイルを表示すると、すごくメモリを食う
ファイルサイズが数十MBの3Dでも、レンダリングによるメモリ消費は数百MBになり、複数表示しようものなら落ちてしまう。

普段SceneKitをつかっているのだが、新しい方のRealityKitなら、レンダリングが最適化されてメモリ使用が劇的に少なかったりするんじゃないか、と思い、フレームワークによって、メモリ使用量が変わるか、調べてみた。

(左)RealityKit (右)SceneKit (ネットで拾ってきたRobot 35MBのUSDZ)

<結果>

フレームワーク CPU使用量 メモリ使用量
RealityKit 100% 715MB
SceneKit 73% 645MB

Σ(゚∀´ フエトルヤンッ

RealityKitは「驚くほど滑らかな映像や物理シミュレーションを実現」しているせいか、メモリ使用量が10%ちょい多いようでした。
どっちがappleのサポート手厚いか、どちらがARがきれいかなど、どちらをつかうか悩む昨今です。季節はすっかり夏ですね。

ちなみに、USDZをロードしたコードは以下。

RealityKit
let anchor = AnchorEntity()
arView.scene.anchors.append(anchor)
let robot = try! Entity.loadModel(named: "robot")
anchor.addChild(robot)
SceneKit
let localURL = Bundle.main.url(forResource: "robot", withExtension: "usdz", subdirectory: "art.scnassets")!
let scene = try! SCNScene(url: localURL, options: [.checkConsistency: true])
let robotNode = scene.rootNode
sceneView.scene.rootNode.addChildNode(robotNode)

🐣


フリーランスエンジニアです。
お仕事のご相談こちらまで
[email protected]

LGTMついてないか毎日チェックしています。嬉しいもんです。

Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。

Twitter
Medium