WikiDer > Prozedurale Generierung
In dem Informatik verweist Verfahrensgenerierung zu Techniken zu Inhalt vor Ort generieren mit Algorithmen anstatt es manuell zu erstellen. Die Inhalte werden bereitgestellt von der Computer Programm generiert, wenn das Programm ausgeführt wird; dies steht im Gegensatz zu Inhalten, die für die Verbreitung des Programms zur Nutzung durch das Programm entwickelt und bereitgestellt werden. Die prozedurale Generierung wird hauptsächlich in Filmen verwendet, GrafikSoftware und bei der Entwicklungsstufen im Computerspiele. Beispiele für Dinge, die prozedural generiert werden können, sind Landschaften, Texturen und 3D-Objekte. Klang wird selten prozedural generiert, mit Ausnahme von Sprachsynthese.
Geschichte
Computerspiele
Die ersten Computerspiele hatten wenig Erinnerung Also mussten sie Inhalte vor Ort generieren: Es gab einfach nicht genug Speicher, um Niveau und andere Dinge, die Sie in Erinnerung behalten sollten. Verwenden von Zufallsgeneratoren Es wurden Ebenen erzeugt, die wie handgemacht aussahen. Der Wächter (1986) zum Beispiel hatte 10.000 einzigartige Level in nur 48 oder 64 Kilobyte. Im Elite (1984) wurden ganze Galaxien aus dem Fibonaccia-Folge.[1] Andere Beispiele sind Rettung auf Fractalus! (1985), in dem die Hügel eines Planeten erzeugt wurden und Flussüberfall (1982), in dem ein Labyrinth mit Hindernissen erzeugt wurde.
In 2004, .kkrieger freigegeben, a Ego-Shooter für den Computer; das Spiel war kurz und einfach, aber alle grafischen Effekte wurden auf nur 96 . reduziert Kilobyte. Dies ist ein großer Unterschied zu kommerziellen Spielen, die über mehrere CDs und oft mehr als 2 . verkauft werden Gigabyte In Gewahrsam nehmen. Das Spiel RoboBlitz (2006) nutzte die prozedurale Generierung und konnte dadurch Xbox Live-Arcade verteilt werden.
Das Spiel Spore (2008), gestaltet von Will Wright, nutzt ausgiebig die prozedurale Generierung. Die Kreaturen in Spore sind vollständig prozedural animiert und gestylt. Auch die Umgebung wird prozedural generiert. Im Ego-Shooter Grenzland (2009) von Getriebesoftware Hunderttausende von Waffen werden prozedural erzeugt.
Demoszene
Das Demoszene ist eine Subkultur, die sich mit der Erstellung von Computerprogrammen beschäftigt, die Demos genannt werden und die visuelle Kunst prozedural generieren. In diesen Demos versucht man Hardware- (insbesondere die Prozessor und der Grafikkarte) so effizient wie möglich, um alle Arten von Effekten zu erzeugen. Viele zeitgenössische Techniken wurden zuerst in Demos gesehen.
Filme
In Filmen wird die prozedurale Generierung verwendet, um beispielsweise Landschaften, Planeten oder andere Umgebungen zu generieren. Die Umgebungen in Star Trek: Nemesis (2002) und heimlich (2005) wurden generiert mit deGen (Umgebungsgenerator) von Digitale Domäne, eine modifizierte Version von Terragen 2.[2] Prozedurale Animationen werden verwendet, um große Personengruppen oder andere Charaktere zu animieren, wie beispielsweise eine Herde von Tieren oder Armeen. Beispiele sind die Gnus in Der König der Löwen[3] (1994) und ein Heer von Hunnen in Mulan[4] (1998).
Die prozedurale Generierung bietet auch die Möglichkeit, alle Arten von Objekten zu generieren, die sich geringfügig voneinander unterscheiden oder Unvollkommenheiten hinzuzufügen. Dies ergibt einen realistischen Effekt, da in der Realität keine zwei Objekte genau gleich sind. So können beispielsweise die Regale in einem Supermarkt mit Produkten aller Art gefüllt werden, ohne dass jedes Produkt manuell gestaltet werden muss.
Technik
Die bei der prozeduralen Generierung verwendeten Funktionen dienen referenziell transparent sein. Dadurch können sie in beliebiger Reihenfolge nacheinander aufgetragen werden und die Zwischenergebnisse können Zwischenspeicher aus Effizienzgründen aufbewahrt werden. Das ist ähnlich wie faule Bewertung im funktionale Programmiersprachen.
Die Erzeugung von Texturen erfolgt oft mit mathematischen Techniken, wie z Fourier-Transformation und Wavelets.[5]
Anwendungen
Terrain

Die prozedurale Generierung kann verwendet werden, um ein Gelände basierend auf verschiedenen Merkmalen wie Hügeligkeit und Gewässern, aber auch dem Vegetationsgrad zu generieren.
Die meisten Computeranwendungen für das Gelände verwenden a Höhenkarte (Höhenkarte): ein zweidimensionales Bild, das die Höhe des Geländes speichert. Es gibt viele Algorithmen, mit denen eine realistische Höhenkarte erstellt werden kann.[6][7] Diese Algorithmen berücksichtigen beispielsweise den Unterschied zwischen zwei Punkten in der Höhenkarte: Je gradueller der Unterschied, desto gradueller die Hügel in der Landschaft. Diese Algorithmen bestimmen lediglich den Verlauf des Geländes; andere Algorithmen können angewendet werden Texturen und die Vegetation und/oder Gebäude.
Beispiele für Geländegenerierungsalgorithmen sind die Diamant-Quadrat-Algorithmus, Perlin-Rauschen (für eine Vielzahl von Zwecken verwendet) oder Algorithmen basierend auf Fraktale. Auch mathematische Funktionen und Techniken können verwendet werden, wie z Splines. Ein anderer Ansatz besteht darin, physikalische Prozesse zu simulieren, wie z Erosion aus Wasser, Plattentektonik oder Einwirkungen von Meteoriten.
Animation
Prozedurale Animationen werden verwendet, um Partikel (wie Rauch, Feuer oder Wasser) und die Bewegung von Kleidung, Haaren oder Fell zu simulieren. Darüber hinaus wird es zum Bewegen von Charakteren und Objekten verwendet. Prozedurale Animation ist eine Form von digitale Animation.
Für die Charakterbewegung, inverse Kinematik verwendet werden. Die Bewegung der Gliedmaßen (wie die Winkel und die Geschwindigkeit, mit der sie sich bewegen) wird basierend auf den Positionen der Gliedmaßen zu bestimmten Zeiten berechnet.
Eine andere Technik ist die verhaltensbasierte Animation (Verhaltensanimation): Bei diesem Ansatz wird die Animation berechnet, indem angezeigt wird, wie ein Charakter auf seine Umgebung reagiert. Die Animation wird nicht erfasst, sondern je nach Umständen dynamisch ausgeführt. Ein Charakter kann auf Dinge in seiner Umgebung, aber auch auf das Verhalten anderer Charaktere reagieren. Mit dieser Technik können große Tier- oder Menschengruppen animiert werden, indem Verhaltensregeln für die einzelnen Gruppenmitglieder vorgegeben werden. Dies kann zu einem Verhalten führen, das nicht direkt auf bestimmte Verhaltensregeln zurückzuführen ist, sondern durch das Zusammenwirken der Verhaltensregeln verursacht wird (dies ist auftauchend Verhalten genannt).
In Computerspielen manchmal Ragdoll-Physik Wird verwendet, um Charaktere zu animieren, wenn sie fallen oder von etwas getroffen werden. In der Ragdoll-Physik wird die Bewegung eines Skeletts simuliert: Ein Charakter besteht aus Gliedmaßen, die an bestimmten Punkten aneinander befestigt sind. Um die Rechenzeit zu verkürzen, war die Simulation oft einfach und berücksichtigte nicht die Unmöglichkeit bestimmter Drehbewegungen von Gelenken. Der Körper könnte in alle möglichen unnatürlichen Positionen geraten.
Texturen
Texturen können auf unterschiedliche Weise erzeugt werden: Man kann eine Textur mit mathematischen Techniken erzeugen oder man kann eine Textur aus vorhandenen Bildern erzeugen.
Auch in Computerspielen bietet die dynamische Erzeugung von Texturen neue Möglichkeiten. Die Texturen können während des Spiels geändert werden. Somit kann man einen Alterungsprozess mit fortschreitender Zeit im Spiel ablaufen lassen.[5]
Prozedurale Texturen sollten nicht verwechselt werden mit Textursynthese versucht, eine Textur mit den gleichen Eigenschaften wie das Original zu erzeugen. Bei prozeduralen Texturen wird eine neue Textur basierend auf Algorithmen mit Parameter während sich die Textursynthese auf eine vorhandene Textur konzentriert. Hilfsbilder können bei der prozeduralen Erzeugung von Texturen verwendet werden, aber die endgültige Textur kann sich vollständig von den verwendeten Hilfsbildern unterscheiden. Dies ist bei der Textursynthese nicht der Fall, bei der die erzeugte Textur dem verwendeten Original so ähnlich wie möglich ist.
Objekte
Prozedurale Generierung kann auch für andere Zwecke verwendet werden, z. B. für Gebäude[8] und Städte[9]. Ein dreidimensionales Objekt besteht aus verschiedenen Polygone und es kann ein Algorithmus entwickelt werden, der ein solches dreidimensionales Objekt basierend auf Parametern erzeugt. Auch andere Strukturen, wie beispielsweise Straßennetze, können generiert werden.
Software
Nachfolgend finden Sie eine Übersicht über Software, die prozedurale Generierung verwendet:
Anwendungen
Computerspiele
- Flussüberfall (1982)
- Elite (1984)
- Rettung auf Fractalus! (1985)
- Der Wächter (1986)
- Virtuelle Hydride (1995)
- .kkrieger (2004)
- Darwinia (2005)
- Zwergenfestung (2006)
- RoboBlitz (2006)
- Spore (2008)
- Unendlichkeit: Die Suche nach der Erde (in Entwicklung)
- Grenzland (2009)
- Minecraft (2011)
- Diablo 3 (2012)
- Elite: Gefährlich (2014)
- Niemandshimmel (2016)
Middleware
- SpeedTree (Bäume und Pflanzen)
- ProFX Online (Texturen)
- Substanz (Middleware)
- Euphorie (Verfahrensanimation)
- Raummotor (Universum)
Externe Links
- (und) Prozedurale Inhaltsgenerierung Wiki
- (und) Ein prozedurales Universum in Echtzeit, Teil 1: Erzeugung planetarischer Körper, Gamasutra
Quellen, Anmerkungen und/oder Verweise
|