Mein SceneKit-Projekt verwendet eine importierte OBJ-Datei, die nur einen Knoten mit einem großen Bild enthält. Bild umfasst verschiedene Objekte oder Teile. Ich muss auf einen Fuß oder ein bildspezifisches Teil tippen und es markieren lassen. Dies ist Code OBJ-DateiSceneKit NSNode Split-Teile
sceneView = SCNView(frame: self.view.frame)
self.view.addSubview(sceneView)
let scene = SCNScene(named: "OBJ.obj")!
print("\(scene.rootNode.childNodes.first?.geometry?.materials.count)")
sceneView.scene = scene
und hier zu importieren Ich bin mit tap Gestenerkenner
// add a tap gesture recognizer
let doubleTapRecognizer = UITapGestureRecognizer(target: self, action : #selector(self.tapGesture(sender:)));
doubleTapRecognizer.numberOfTapsRequired = 1;
doubleTapRecognizer.numberOfTouchesRequired = 1;
sceneView.addGestureRecognizer(doubleTapRecognizer);
func tapGesture(sender: UITapGestureRecognizer){
let hitResult : SCNHitTestResult
// check what nodes are tapped
let p = sender.location(in: sceneView)
let hitResults = sceneView.hitTest(p, options: nil)
}
Ich habe 3D-Modell mit verschiedenen Teilen wie dem linken Fuß den rechten Fuß und Boden benötigt werden angezapft und zeige unterschiedliche Farbe auf ihnen. Das Problem ist, dass alle diese in einem einzelnen Knoten sind.
Sind Sie sicher, dass es nur ein Knoten ist und keine Kinder hat? Es ist üblich, ein Bild für mehrere Knoten zu haben. Überprüfen Sie Ihre Knotenhierarchie erneut. Ansonsten, wie Hal Mueller sagt, ist es sinnvoll, zu einer 3D-Modellierungssoftware zurückzukehren und dieses Netz in mehrere Netze zu teilen. –
ja bin sicher, dass es nur einen Knoten gibt. Der Knoten besteht aus vielen Geometrieelementen, die ich mithilfe der HitTest-Methode erhalten habe. Endlich habe ich jeden Teil des 3D Modells bekommen. Jetzt stehe ich vor dem Problem, wie kann ich Materialien anwenden, um Geometrieelementfarben zu streuen? –
Überprüfen Sie die Dokumentation für 'SCNGeometryElement' https://developer.apple.com/reference/scenekit/scngeometryelement. Ihre Geometrie besteht aus mehreren Elementen, die mehreren Materialien entsprechen können. –