簡體   English   中英

如何在 Scenekit macOS App 中導入 obj 文件

[英]How to import an obj file in Scenekit macOS App

我正在嘗試使用以下代碼從 macOS 應用程序(非 iOS)上的本地驅動器將 .obj 文件讀入 SCNNode:

let url = NSURL(string: objPath!)
let asset = MDLAsset(url: url! as URL)
       
let node = SCNNode(mdlObject: asset.object(at: 0))
node.geometry?.firstMaterial?.diffuse.contents = NSColor.red
        
scnView.scene?.rootNode.addChildNode(node)

objPath 是本地文件夾(不在應用程序構建中)的正確絕對路徑。 但它在閱讀時給出“無法打開 OBJ 文件”錯誤。 我只需要訪問本地路徑。

這應該讓你在 swift/xcode 10.2+ 中加載一個 obj/dae 文件:

通過轉至文件 --> 新建 --> 文件並從列表中選擇“SceneKit Catalog”來創建 Scenekit 模型目錄。

import SceneKit.ModelIO

然后:

guard let url = Bundle.main.url(forResource: "your_obj_filename", withExtension: "obj", subdirectory: "your_folder.scnassets") 
     else { fatalError("Failed to find model file.") }

let asset = MDLAsset(url:url)
guard let object = asset.object(at: 0) as? MDLMesh 
     else { fatalError("Failed to get mesh from asset.") }

let newNode  = SCNNode(mdlObject: object)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM