Ich arbeite gerade an meiner Masterarbeit über LOD und Netzvereinfachung und habe viele wissenschaftliche Artikel und Artikel zu diesem Thema gelesen. Ich kann jedoch nicht genügend Informationen darüber finden, wie LOD in modernen Spielen verwendet wird. Ich weiß, dass viele Spiele eine Art dynamisches LOD für das Terrain verwenden, aber was ist mit woanders?
Detailgenauigkeit für 3D-Grafiken weist beispielsweise darauf hin, dass diskrete LOD (bei denen Künstler mehrere Modelle im Voraus vorbereiten) aufgrund des Leistungsaufwands von kontinuierlicher LOD weit verbreitet ist. Das Buch wurde jedoch 2002 veröffentlicht und ich frage mich, ob die Dinge jetzt anders sind. Es wurde nachgeforscht, wie dynamisches LOD mit dem Geometrie-Shader durchgeführt werden kann ( dieses Papier zum Beispiel mit seiner Implementierung in ShaderX6). Wäre dies in einem modernen Spiel sinnvoll?
Zusammenfassend ist meine Frage über den Stand der LOD in modernen Videospielen, welche Algorithmen werden verwendet und warum? Wird insbesondere eine ansichtsabhängige kontinuierliche Vereinfachung verwendet, oder macht der Laufzeitaufwand die Verwendung diskreter Modelle mit ordnungsgemäßer Mischung und Betrügern zu einer attraktiveren Lösung? Wenn diskrete Modelle verwendet werden, wird ein Algorithmus (z. B. Vertex-Clustering ) verwendet, um sie offline zu generieren. Erstellen Künstler die Modelle manuell oder wird möglicherweise eine Kombination aus beiden Methoden verwendet?
quelle
Antworten:
Derzeit scheint es, dass diskretes LOD immer noch bevorzugt wird, aber es bleibt abzuwarten, ob sich dies mit der nächsten Generation von Konsolenhardware ändern wird.
Tom Forsyth hat viel über Continuous LOD geschrieben, was er "Progressive Meshing" nennt. Spiel Gems 2 purports Programmierung einer dieser Gegenstände zu haben, aber es scheint , gespiegelt zu werden hier .
Ich glaube, eines von Toms Spielen wird mit progressivem Meshing auf Konsolenhardware der neuesten Generation ausgeliefert. Ich glaube nicht, dass es der Rechenaufwand ist, um den sich die Leute mit kontinuierlicher LOD sorgen. Ich denke, es ist eher so, dass diskrete LOD einfacher ist. Kontinuierliche LOD hebt schwerer in der Werkzeugleitung und hat nicht genügend klare Vorteile.
Für die Erzeugung diskreter LODs verwenden wir eine Kombination aus automatischen Werkzeugen und Künstlererstellung. Das DirectX SDK enthält einige Funktionen zum automatischen Reduzieren der Geometrie. Ich glaube, wir verwenden diese Funktion als ersten Durchgang. Wenn die Qualität nicht ausreicht, können Künstler die diskreten LODs von Hand oder mit zusätzlichen Tools in Maya erstellen.
quelle
LOD wird nicht nur für Gelände, sondern auch für Silhouetten entfernter Strukturen und für Adleraugenansichten von Strategie- / Simulationsspielen verwendet. Ich kenne die Details der Algorithmen nicht und denke, das ist der Hauptteil Ihrer Frage, aber ich wollte Ihnen einige Beispiele für den Stand der LOD in modernen Videospielen geben.
quelle
Ein moderner Ansatz für kontinuierliches LOD ist die Hardware-Tessellation. Die Hardware-Tessellation wurde in DirectX 11 implementiert und bietet im Wesentlichen eine programmierbare Unterteilung von Oberflächen. Da dies auf der GPU implementiert ist, sind wesentlich mehr Details möglich als bei der CPU-generierten Tessellation. Durch Unterteilen von Oberflächen basierend auf dem Betrachtungsabstand können Sie beispielsweise eine Form von kontinuierlichem LOD bereitstellen.
Hardware-Tessellation ist eine sehr neue Funktion von GPUs, und es gibt nicht viele Spiele, die sie verwenden. Ich vermute, dass die Spiele, die es hauptsächlich als Drop-In für das Bump-Mapping verwenden, die tatsächliche Geometrie ändern können, anstatt das Bump-Mapping im Pixel-Shader. Es gibt wahrscheinlich viel Raum für weitere Untersuchungen zur Vereinfachung und Verbesserung von Netzen mithilfe von Hardware-Tessellation.
Einige weitere Ressourcen:
quelle
Hier ist ein alternativer Vorschlag, um es interessant zu halten. Die konvexe Zerlegung kann recht schnell ungefähre Geometrien erzeugen und ist normalerweise für Kollisionsnetze geeignet. Diese Netze funktionieren gut als LOD und sind plausibel als Echtzeit-Dezimierung zur Beschleunigung einer Pipeline.
http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html
quelle
Bei LOD geht es darum, die Verarbeitungsmenge über die Zeit konstant zu halten. Die hierarchische Detailebene ist die einzige Möglichkeit, dies für Szenen mit erheblichen Details zu tun. Wenn Sie einem Objekt nahe genug sind, wird es in mehrere Objekte zerlegt. Diese rekursive LOD bietet nicht nur einen einfachen Mechanismus zum Behandeln der Übergangspunkte für das Umschalten in neue Detailebenen, sondern ermöglicht auch, dass die Anzahl der Renderaufrufe in etwa gleich bleibt, unabhängig davon, wie weit / nah Sie zu Ihren Weltobjekten gelangen.
Es ist alles sehr gut, großartige LODs für Ihre Netze und Texturen zu haben, aber in mindestens einem Spiel, das ich auf der PS2 ausgeliefert habe, habe ich Zeit gespart, indem ich einfach alle Blätter in Sektoren zu einzelnen Draw Calls zusammengefasst habe. Dieser größere Draw-Aufruf dauerte fast 90% weniger als das Rendern aller Low-Lod-Varianten, selbst bei sorgfältig geordneten Materialübergängen und Batch-Rendering aller Netzarten. Betrachten Sie also LOD mit Vorsicht. Es geht nicht nur um einzelne Objekte. Es geht um die gesamte Renderphase.
quelle
Ein weiteres Thema, über das Sie in Ihrem Vortrag diskutieren sollten (obwohl eine ganze These leicht allein zu diesem Thema verfasst werden könnte), ist die prozedurale Geländegenerierung.
Viele moderne Projekte beginnen damit, prozedurale Geländegenerierung in Echtzeit zu verwenden, um massive Geländeausdehnungen zu erzeugen (Outerra, Infinity (INovae), um nur einige der bekanntesten zu nennen). Diskrete LOD ist einfach keine Option, da die Netze prozedural sind.
Diese Gebiete verwenden häufig heirarchische Partitionierungsstrukturen wie Quadtrees, um die LOD zu bestimmen, und generieren ein Netz mit der geeigneten Auflösung basierend auf der Tiefe des Baumknotens.
Ohne den Einsatz von Continuos LOD wären diese großartigen Projekte einfach unmöglich.
quelle