webentwicklung-frage-antwort-db.com.de

Wie erstelle ich realistische .scn-Dateien?

In der Apple-Beispielapplikation AR gibt es viele realistisch aussehende Objekte (Tasse, Kerze usw.). Beim Arbeiten mit dem Scene-Kit-Editor für Xcode ist es jedoch offensichtlich, dass Sie nur grundlegende Objekte erstellen können. 

Meine Frage ist, mit welcher Software/Datei realistische scn-Objekte erstellt werden können. Ich bin mir sicher, dass es eine Software gibt, mit der Sie 3D-Modelle erstellen und in scn-Dateien konvertieren können. Ich weiß nur nicht, welche Software verwendet werden soll oder welche Dateien in scn konvertiert werden können.

Hinweis: Ich verstehe, dass diese Frage für die Stackoverflow-Richtlinien zu vage/zu weit gefasst sein kann. Ich weiß nur nicht, wo ich meine Frage stellen soll, und dies scheint der beste Ort zu sein

28
14wml

Um einige bestehende Modelle zum Arbeiten zu bekommen, habe ich Folgendes getan ... nur die Grundlagen, die ich kenne. 

  1. Ich ging zu Turbosquid und fand ein 3D-Modell, das für mich funktionieren würde. 
  2. Stellen Sie sicher, dass es die OBJ-Dateien hat. Kaufen und downloaden.
  3. Nächster Download Blender . Importieren Sie die soeben gekaufte OBJ-Datei.
  4. Exportieren Sie eine DAE-Datei.
  5. Ziehen Sie die DAE-Dateien und alle Texturen (PNG-Dateien) in den Ordner .scnassets in Ihrem Projekt. 
  6. Klicken Sie im Ordner .scnassets auf das DAE-Modell. Klicken Sie, um das Objekt im Szenendiagramm auszuwählen.
  7. Klicken Sie auf den Globus oben rechts. 
  8. Ich habe auf Diffuse geklickt und eine der PNGs ausgewählt, die ich in das Modell gezogen habe

Sie können auch die Blender-Konvertierung überspringen und einfach eines der kostenlosen Online-Konvertierungswerkzeuge für OBJ in DAE verwenden. Google es. Und kaufen Sie auf Turbosquid ein günstiges 5-Dollar-Modell, das nur eine OBJ-Datei enthält und nicht viele andere Teile. Sie sind zu groß und verursachen ohnehin andere Probleme als Starthilfe.

Update Nachdem Sie eine Apple WWDC-Präsentation zu Model IO in Xcode angesehen haben, sehe ich jetzt, dass Sie eine OBJ-Datei in Ihrem Ordner .scnassets ablegen könnten. Wählen Sie diese Datei aus, gehen Sie zum Editor und wählen Sie In SCN-Datei konvertieren. Das sollte auch funktionieren, aber ich habe es nicht versucht. Es lohnt sich mit einer Kopie Ihrer OBJ-Datei zu versuchen.

Update Dezember 2018: Ich habe mehr mit 3D-Dateien gearbeitet. Hier finden Sie inkrementelle Hilfe zu diesem Problem.

Verwenden Sie MeshLab, um Ihr 3D-Modell zu importieren und in eine .DAE-Datei zu konvertieren. Ziehen Sie die .DAE-Datei in einen Ordner in Xcode. Das ist es, was Sie zur Anzeige in Ihrer App verwenden werden. 

  1. http://www.meshlab.net/

Wenn es sich bei Ihrem 3D-Quellmodell um eine .OBJ-Datei handelt, gibt es zwei verwandte Dateien, die sich im selben Ordner wie die .OBJ-Datei befinden sollten. Dies sind eine * .mtl-Datei und eine * .jpg- oder * .BMP-Datei. Die .mtl-Datei kann mit TextEdit geöffnet werden. 

Öffnen Sie und stellen Sie sicher, dass es eine Zeile mit der Aufschrift map_Kd * .jpg enthält. Das .jpg ist das Texturbild, das die 3D-Netzdatei umgibt. Ich habe festgestellt, dass es am besten ist, sicherzustellen, dass Ihre Texturdatei im JPG-Format vorliegt. Ist dies nicht der Fall, ändern Sie sie in das JPG-Format (in der Vorschau beispielsweise durch erneutes Speichern als JPEG) und bearbeiten Sie dann die TML-Datei für den neuen JPG-Dateinamen.

Ich hatte einige Texturdateien, die .bmp waren, und ich habe gerade in .jpg konvertiert, die .mtl-Datei bearbeitet und ich war gut.

Das zweite Problem ist der Name des Knotens in der OBJ-Datei. Die .obj-Datei kann auch mit TextEdit geöffnet werden. Die .obj-Datei sollte auf die .mtl-Datei in demselben Ordner verweisen. Wenn nicht, haben Sie ein Problem. 

Und hier ist der knifflige Teil. Wenn Sie einem rootNode in einer SceneKit-Szene einen childNode hinzufügen, müssen Sie den Textnamen "withName:" eingeben. Öffnen Sie die konvertierte .DAE-Datei, die Sie mit Ihrem .obj + .jpg + .mtl erstellt haben (alle drei werden beim Importieren in MeshLab verwendet, aber nach dem Exportieren in .DAE gibt es nur die .DAE-Datei), und suchen Sie nach dem Knoten " id = ". Es könnte sagen: "node id =" node ". Wenn dies der Fall ist, ist der Wortknoten" word "der Name des childNode, den Sie für Ihren Textnamen in der Eigenschaft" withName: "des scene.rootNode.childNode (withName:") eingeben. Knoten ", rekursiv: true) Aufruf. 

Sie können Ihre Knotennamen-ID in einen Knoten ändern, falls noch nicht geschehen.

Hoffe das hilft. Viele Stunden Arbeit und Hilfe von anderen, um die nächste Runde der Arbeit mit 3D-Modellen zu verstehen. 

17
D. Rothschild

Der SceneKit-Editor von Xcode ist kein Paket für das Erstellen von 3D-Grafiken. Ebenso wie der SpriteKit-Editor und die Interface Builder-Komponenten nicht mit Photoshop, Illustrator, Pixelmator, Affinity Designer usw. vergleichbar sind Sie müssen Blender, Maya, 3DS Max oder eines der anderen wichtigen 3D-Authoring-Tools lernen. Beachten Sie, dass die Lernkurve zum 3D-Künstler ein wenig steiler ist als das Lernen in 2D zu malen. 

Für den SceneKit-Editor is wird die Ausgabe von einem 3D-Künstler übernommen und für die Verwendung in einer SceneKit-basierten App oder einem Spiel vorbereitet oder kombiniert, wobei Materialdefinitionen so angepasst werden, dass sie mit dem Renderer von SceneKit richtig aussehen und separate Assets zum Erstellen anordnen eine Spielebene oder eine andere Szene, indem Sie dynamische SceneKit-spezifische Funktionen wie Partikeleffekte und Physik usw. hinzufügen. 

Sie überbrücken diese beiden Welten, indem Sie Assets aus Ihren 3D-Grafikwerkzeugen in einem der Formate exportieren, die SceneKit importieren kann. Digital Asset Exchange (.dae) ist hier eine der besten Optionen. Mit SceneKit Model I/O können Sie jedoch auch andere Formate wie OBJ oder Pixar USD importieren. 

Wenn Sie diese in Xcode öffnen, erhalten Sie den SceneKit-Editor, mit dem Sie SceneKit-spezifische Änderungen markieren und die Ergebnisse zur Verwendung in Ihrer App als .scn-Dateien speichern können.


Beim Erstellen und Vorbereiten von 3D-Objekten gibt es einige Möglichkeiten, die dazu führen, dass sie in ARKit realistischer aussehen. Die ARKit-Sitzung von WWDC (und die ReadMe-Datei im Beispielcodeprojekt, die dieser Sitzung angehängt ist) enthält einige solche Tipps:

  • verwenden Sie physikalisch basierte Materialien
  • "backen" Sie umgebende Okklusion und andere statische Lichteffekte
    • fügen Sie unsichtbare Schattenebenen hinzu
14
rickster

Sie können realistische 3D-Modelle im .DAE-Format erstellen, das von vielen Tools unterstützt wird. In Xcode können Sie diese .DAE-Datei in das .SCN-Format konvertieren. Überprüfen Sie dies für die Konvertierung

Wie konvertiert man .DAE in .SCN

4
Kamran

Um realistische 3D-Modelle zu erstellen, verwenden Sie die folgenden Softwarepakete:

Autodesk Maya, Autodesk 3DS Max, Maxon Cinema 4D, The Foundry Modo oder Blender.

Mit diesen 3D-Authoring-Tools können Sie Polygonal- und NURBS-Geometrie erstellen. Jedes realistische 3D-Objekt benötigt jedoch nicht nur eine ideale Form, sondern auch eine perfekte Textur. Jedes der oben genannten Pakete enthält daher einen eigenen UV-Textur-Editor, mit dem Sie die Texturen von Objekten interaktiv anzeigen, platzieren und bearbeiten können. Im UV-Textur-Editor können Sie die UV-Topologie für eine Oberfläche so auswählen, verschieben, skalieren und generell ändern, wie Sie es mit anderen Modellierungswerkzeugen tun. Sie können das mit der zugewiesenen Textur-Map verknüpfte Bild auch als Hintergrund in einem solchen UV-Textur-Editor anzeigen und das UV-Layout nach Bedarf anpassen.

Der Shader, der zur 3D-Oberfläche Ihres Objekts gehört, kann viele verschiedene Texturen enthalten (normalerweise in jpeg, png oder tiff). Diese Texturen sind: diffuse Farbe, Transparenz, Rauheit, Erhebung, Metallizität, Reflexionsvermögen, Brechungsvermögen, Spiegelung, Transluzenz usw. Diese Texturen lassen 3D-Objekte realistisch erscheinen. Schauen Sie sich das Bild unten an, es gibt 28 Renderdurchgänge, einige davon können Texturen in Schlitzen aus Schattierungsmaterial sein:

 enter image description here

Hier finden Sie Maya Modeling Kurse von Pluralsight.

Hier finden Sie Maya Schattierungs- und Texturierungskurs

Ich persönlich bevorzuge Autodesk Maya. Es verfügt über ein modulares System für Plug-Ins und eine Vielzahl von Eingabe- und Ausgabe-2D- und 3D-Formaten. Hier ist ein fantastisches Beispiel eines virtuellen 3D-Autos in einer realen Umgebung: 

 enter image description here

Wenn Ihr 3D-Modell und Ihre Texturen für den Export bereit sind, müssen Sie die .DAE-Datei in Maya speichern.

Erstellen Sie in Xcode einfach die neue .SCN-Datei im Ordner .scnassets und ziehen Sie diese .DAE-Datei in die Szene.

Oder Sie können in iOS 12 in Xcode 10 das neue .USDZ-Dateiformat von Pixar verwenden. Ziehen Sie es einfach in Ihre SZENE.

0
ARGeo