簡體   English   中英

使用Xcode上的ModelIO庫無法通過腳本通過腳本快速加載USDZ文件的紋理

[英]Can't load texture of USDZ file via script using ModelIO library on Xcode with swift

我在Xcode項目中添加了USDZ文件。 USDZ文件在Mac上打開的Xcode中的項目中正常顯示,但是,當我嘗試使用modelIO庫通過代碼加載它時,它會加載網格,但不會加載紋理。

在下面的快照中,我嘗試加載一個蜜蜂模型。 第二個是蜜蜂和飛機,不渲染蜜蜂紋理,而飛機紋理加載沒有問題。 我也將USDZ文件轉換為scn文件,並且工作正常。 我認為問題不在於文件,而是我使用的代碼無法正確加載USDZ文件。 我正在嘗試通過代碼加載USDZ文件,並且我使用的庫不太重要。 如果您還有其他建議,歡迎隨時聽取。

我使用以下代碼加載模型:

    let fileName = “bee”
       let ext = “usdz”
       let asset = MDLAsset(url: Bundle.main.url(forResource:fileName, withExtension: ext)!)
       let loadedScene = SCNScene(mdlAsset: asset)
           for child in loadedScene.rootNode.childNodes {
              child.geometry?.firstMaterial?.lightingModel = .physicallyBased
}

以下是一些快照來演示我得到的結果:-從Mac上的Xcode Viewer快照,成功顯示了帶有紋理的蜜蜂:

在此處輸入圖片說明

  • 從手機,蜜蜂和飛機上的應用程序快照,蜜蜂紋理不可見:

在此處輸入圖片說明

  • 在Xcode控制台上,我得到以下錯誤日志:

在此處輸入圖片說明

我缺少將模型文件(包括紋理)完全加載到場景中的什么地方?

我找到了解決方案。 MDLAsset中有一個方法作為MDLAsset.loadTextures()來加載紋理。 當您調用它時,它將加載紋理。

暫無
暫無

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

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