如何获得指定给USD网格的材质名称?
for mat in importedModel.model!.materials { print(mat) print(mat as? SimpleMaterial) }
当我试着重铸它的时候,我得到的几乎是零。我想在导入时重新配置我所有的材料。但是我不能在不知道什么材料是什么的情况下做到这一点。
djp7away1#
问题似乎出在你的加载方法上。使用Entity.load(named:)代替Entity.loadModel(named:)。要找出每个模型的部件使用的着色器,请使用以下代码:
Entity.load(named:)
Entity.loadModel(named:)
import UIKit import RealityKit class ViewController: UIViewController { @IBOutlet var arView: ARView! override func viewDidLoad() { super.viewDidLoad() let usdz = try! Entity.load(named: "car.usdz") let anchor = AnchorEntity() anchor.addChild(usdz) arView.scene.anchors.append(anchor) print(usdz) // full scene hierarchy let firstAnchor = arView.scene.anchors.first let entity = firstAnchor?.findEntity(named: "wheel") as? ModelEntity guard let materials = entity?.model?.materials else { return } for material in materials { print(material) } } }
结果:
1条答案
按热度按时间djp7away1#
问题似乎出在你的加载方法上。使用
Entity.load(named:)
代替Entity.loadModel(named:)
。要找出每个模型的部件使用的着色器,请使用以下代码:结果: