[英]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快照,成功顯示了帶有紋理的蜜蜂:
我缺少將模型文件(包括紋理)完全加載到場景中的什么地方?
我找到了解決方案。 MDLAsset中有一個方法作為MDLAsset.loadTextures()來加載紋理。 當您調用它時,它將加載紋理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.