2016-07-20 18 views
0

Ich möchte eine Form erstellen, die nicht mit dem in Geometriemodellen erstellten SceneKit erstellt werden kann. Daher möchte ich ein anderes 3D-Modellierungsprogramm verwenden. Ich bin interessiert, ob diese Modelle (zum Beispiel in Blender) als Modelle dienen können, die direkt in SceneKit erstellt werden können. Ich möchte in der Lage sein, Materialien anzuwenden und die Farbe des Objekts im Code zu ändern, und möchte vorher wissen, ob dies mit importierten Modellen möglich ist.Verwenden von Materialien in 3D-Modellen, die in Blender erstellt wurden

Ich weiß, ich kann das Modell in .dae (Collada-Datei) exportieren und so kann ich sicher das Modell verwenden, aber kann sein Material nicht ändern.

Wenn es möglich ist, es auf eine andere Weise zu ändern, würde ich mich freuen, wenn Sie kurz erklären könnten, wie das Objekt von Blender (in welchem ​​Format) exportiert werden soll.

Antwort

0

Eigentlich ja können Sie das Material im Collada (Dae) -Format ändern.

Die Materialien sind in der Klasse SCNMaterial enthalten.

Hier sind die Methoden können Sie das Material zuzugreifen:


Zuerst haben Sie wahrscheinlich die einfachste Methode, Material Zugang:

SCNNode.geometry.firstMaterial

Diese Methode gibt Ihr die erstes Material, das das Objekt verwendet.


Als nächstes haben Sie ganze Material Zugang:

SCNNode.geometry.materials

Diese Methode gibt Ihnen eine NSArray alle Materialien enthält, die das Objekt unter Verwendung.


Dann endlich haben Sie den good'ol Namen Zugang:

[SCNNode.geometry.materialWithName: NSString]

Diese Methode gibt Ihnen ein NSArray alle Materialien enthalten, die das Objekt unter Verwendung.


Und in den Apfel docs:

Was ist SCNNode.geometry? Finden Sie heraus, here

Material access und manipulation.


Eine Randbemerkung:

tatsächlich zu steuern, um die Farbe/Bild eines SCNMaterial Sie SCNMaterialProperty

A SCNMaterial ist aus mehreren SCNMaterialProperty s verwenden müssen.

Für weitere Informationen lesen Sie bitte die Dokumentation

+0

Vielen Dank für Ihre Hilfe. Möchte man beim Exportieren von Modellen in Blender einfach nur die Form ohne Texturen und ohne UV-Unrapping erstellen, oder sollte ich das tun, um diese als Material in Xcode anwenden zu können? Ich habe versucht, die diffuse Karte des ersten Materials meines Objekts zu setzen, und habe einen Fehler erhalten, der besagt, dass "diffuse eine Nur-Lese-Eigenschaft" ist. Ich gehe also davon aus, dass ich vor dem Export etwas falsch mache. – Larisa

+0

Um die diffuse Verwendung 'diffuse.contents' einzustellen. Diese "diffuse" kann auf eine Farbe, ein Bild usw. eingestellt werden. Für weitere Informationen besuchen Sie bitte die Apple Docs auf 'SCNMaterialProperty' [hier] (https://developer.apple.com/library/mac/documentation/SceneKit/Reference/ SCNMaterialProperty_Class/index.html # // apple_ref/swift/cl/c: objc (cs) SCNMaterialProperty). –