.objファイルをロードしようとしています。どのようにロードされた後、secenekitは多くのサブメッシュを持つ巨大なジオメトリを持つ1つのノードしか生成しません。誰もがこの巨大なノードを多くのノードに分割する方法を知っています。各ノードは1つのサブメッシュフォームを元のノードとして所有していますか?私はそれらに別の物理学を適用する必要があります。前もって感謝します。SceneKitでは、1つのSCNNodeを複数のノードに分割する方法は?
私は、次の方法を試してみました:
- 手動での.objファイルを解析します。これは動作しますが、あまりにも多くのメモリを食べる
ファイルをロードした後、私は巨大なノードを取得します。その後、I (.OBJファイルから取得)メッシュごと
let geometry = SCNGeometry(sources: rootNode.geometry!.geometrySources, elements: [rootNode.geometry!.geometryElementAtIndex(count)]) geometry.firstMaterial = rootNode.geometry!.materials[count] let node = SCNNode(geometry: geometry)
を行うこれも動作しますが、レンダリングのために長い時間がかかる、私は、各ノードの全体のソースをコピーしているためであると思います。
こんにちはHalさん、ありがとうございます。これは良いアイデアのように思えますが、コンバータを書くためにかなりの時間を費やす必要があるようにも見えます。とにかく時間があればこれを試してみる。ありがとう。 – must
あなたは既にコンバージョンコードを書いていると思いましたか?そこから、アーカイブステップを追加すると完了です。 –
こんにちはHal。私がやったのは、.objファイルからデータを読み込み、sceneKit APIを使用してこれらのデータに従ってノードを作成することです。 .scnファイルをあらかじめ生成するには、.scnファイルの形式に関する知識が必要だと思います。 .scnファイルをコードで生成する方法はありますか?ありがとう。 – must