Flamme
(Daniel Kliewer)
Die Flamme besteht aus einer Textur (linkes Bild) und einer noise map (rechtes Bild), welche für die prozedurale Darstellung des Feuers verwendet wird.
Das arbeiten ohne Partikel hat neben der Performance auch noch den Vorteil, dass die Flamme nicht durch eine maximale Größe beschränkt ist. Um eine Flamme zu erzeugen, erstellt man eine Instanz von VolumetricFire bei der man die Höhe und die jeweilige Breite in X und Z Richtung angeben muss. Danach ruft man innerhalb der animateFire Funktion (mehr dazu in Kapitel "Platzierung und Animation") die update Funktion dieser Instanz auf, welche die Berechnungen für die Animation durchführt. Da dies bei vielen Feuern zu schlechter Performance führen würde, bestehen alle Flammen welche dieselbe Größe haben aus geklonten meshes einer einzelnen VolumetricFire Instanz. Somit wird die Performance nicht von der Gesamtanzahl der Flammen, sondern nur von der Anzahl verschieden großer Flammen beeinflusst.