Wie werden 3D-Modelle in Spielen entworfen und angezeigt? Ist das alles Code? Auf Papier gezeichnet, dann auf einer 3D-Grafiksoftware, dann ... was?
Natürlich Spiel Programmierer wird jede Ecke in jeder Form nicht definieren (/ Objekt) sie gezeichnet werden soll, alle in Code (ob in Direct3D oder OpenGL.) Also, die Spiel - Designer haben die Werkzeuge zu verwenden, wie Maya oder so etwas wie proprietäre 3D-Grafiksoftware; sie „ziehen“ , um das Modell in dieser Software, exportieren sie in dem Format ausgegeben , dann Programmierer es über Code analysieren und automatisch die decodierten / geparsten rohen Eckpunkte des Objekts / Modell eingeben?
Ich habe viel gegoogelt, aber ich konnte nichts Festes finden, um zu erklären, wie dieser Aspekt von professionellen Videospielen bearbeitet wird.
Antworten:
In all den Spielen, an denen ich gearbeitet habe, sieht die Asset Creation-Pipeline ungefähr so aus:
Es ist die Aufgabe des Level-Designers, die Assets zusammenzusetzen, um das Level selbst zu "bauen".
Es ist ungewöhnlich, ein ganzes Level als ein einzelnes Stück Geometrie zu bauen. Die meisten Levels bestehen aus Teilen oder Abschnitten. (zB: berüchtigt verwendet eine Reihe von Hexagon „Kacheln“ http://www.gamasutra.com/php-bin/news_index.php?story=118581 und Skyrim (und viele andere) verwenden , um einen lego Stil Ansatz Stück zusammen Ebenen http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )
Es gibt normalerweise einen Level-Editor mit einer Beschreibung, der in diesen Prozess involviert ist, obwohl viele Spiele 3D-Modellierer als "Level-Editoren" verwendet haben, um zuvor erstellte Assets zu instanziieren.
Sobald dies erledigt ist, werden die Assets in der Regel von der Toolchain verarbeitet, die die 3D Modeler-freundlichen Dateien in spielbereite Daten umwandelt, die direkt in die Runtime geladen werden können.
Toolchains (das Bit, das die Rohdaten aufnimmt und in spielbereite Daten umwandelt) gehören häufig zu den kompliziertesten Konstruktionselementen in der Spieleentwicklung. Sie müssen mit vielen verschiedenen Anwendungen kommunizieren, viele verschiedene Dateiformate verstehen und auch wissen, wie Daten in ein effizienteres und sofort verwendbares Format umgewandelt werden können. Toolchains führen in der Regel auch Beleuchtungsvorgänge, Scheitelpunktschweißen, LOD-Generierung usw. durch. Oft dauert das Erstellen des gesamten Datensatzes für ein großes AAA-Spiel sehr lange, häufig länger als 8 Stunden, um eine vollständige Neuerstellung durchzuführen. Daher enthalten Toolchains in der Regel auch eine verteilte Verarbeitung, um die Last auf alle PCs im gesamten Studio zu verteilen.
Die Runtime ist das Spiel selbst. Die ausführbare Datei, die auf Ihrem PC oder Ihrer Konsole ausgeführt wird. Innerhalb der Runtime gibt es ein System namens Resource Manager. Es ist die Aufgabe des Ressourcenmanagers, die von anderen Systemen im Spiel angeforderten Assets zu laden.
Beispiel: Wenn Sie die Spielauslastung eines Levels mitteilen, werden die Metadaten des Levels dem Ressourcenmanager eine Liste der Assets bereitstellen, die geladen werden müssen, um das Level anzuzeigen. Ebenso enthält jedes Asset eine Liste aller Texturen, Materialien oder Unter-Assets, die geladen werden müssen.
Sobald alles tatsächlich in den Speicher geladen ist. Das Spiel sendet Dinge, die für den Renderer sichtbar sind, und interagiert dann mit der API, die zum tatsächlichen Zeichnen von Dingen auf dem Bildschirm verwendet wird.
Programmierer können (und können) Scheitelpunktinformationen von Hand erzeugen. Dies wird normalerweise als "Sofortmodus-Rendering" bezeichnet. Es ist nicht sehr effizient und wird nur in Situationen verwendet, in denen es nicht möglich ist, vorgenerierte oder Shader-manipulierte Vertex-Daten zu verwenden. ZB: UI-Rendering, Vollbild-Quads.
In der Regel sind 99% der Objekte auf dem Bildschirm vorgenerierte Scheitelpunktinformationen, die im Modus "Beibehalten" gerendert werden, wobei Shader alle erforderlichen Manipulationen durchführen. ZB: Skinned Animation
quelle
Hier ist eine einfache Antwort: Sie erledigen alles in 3D-Grafikanwendungen wie Maya oder 3DS Max. Zuerst machen sie einige Concept Arts (auf Papier), danach erstellen sie Modelle, Texturen (in Photoshop oder so ähnlich). Einfache Animationen werden auch vollständig in der Software erstellt, komplexere Animationen werden über Motion Capture erstellt und dann Ihrem Modell zugeordnet. Für Animationen verwenden Sie normalerweise die Skeleton-Animation.
Alle diese Daten werden in Dateien gespeichert.
Wenn Ihr Spiel startet, werden alle diese Dateien analysiert und Modelle, Texturen und Animationen geladen. Und wenn es gebraucht wird, werden sie angezeigt.
quelle
Die Programmierer tatsächlich kann jede Ecke einzeln definieren , wenn sie wollen. Dies ist natürlich nie der Fall, es sei denn, sie machen eine Art grundlegende Cube-Demo. Normalerweise entspricht das, was in den Modelldateien gespeichert wird, einer Liste von Scheitelpunkten, die der Programmierer mühelos in seinen Modellzeichnungscode einfügen kann. Es steckt offensichtlich mehr dahinter, aber im Grunde geben Modellformate indirekte "Anweisungen" zum Zeichnen eines bestimmten Modells.
In vielen Fällen und für viele Modelldateiformate wurde die Codierungsseite für Sie erledigt. Es gibt sogar einige textbasierte Modellformate mit zugehörigem Zeichnungscode, die es einem älteren Codierer ziemlich einfach machen, zu verfolgen, wie das Modell in Code übersetzt wird.
Ich war jedoch noch nie die Person, die diesen Code geschrieben hat, daher ist es möglich, dass einige Details meiner Erklärung nicht zutreffen.
quelle
Ich habe alleine gearbeitet, um ein Spiel zusammenzustellen. Ich kann Ihnen eine einfache Liste der von mir verwendeten Programme geben.
Modellierung: 3D Coat, Modo
Takelage: Modo
Texturen: GIMP, Inkscape
Game Engine: Einheit
Dies ist natürlich eine kleine Liste von Anwendungen, aber für mich funktionieren sie und sind für Hobby- und Indie-Entwickler erschwinglich.
quelle