Echtzeit-Wolkenalgorithmus

7

Ich möchte wissen, wie der Algorithmus in diesem Spiel funktioniert: http://www.gametrailers.com/user-movie/cloud-the-game/45068

Insbesondere, wie das Spiel die Echtzeitwolke generiert und in der Lage ist, dynamisch mit anderen Wolken zu verschmelzen.

Ich habe versucht, einige Informationen zu googeln, konnte jedoch keine nützlichen Informationen finden. Wahrscheinlich, weil ich falsche Keywords verwendet habe

Löwe
quelle

Antworten:

13

Cloud-Rendering ist eine schwierige Aufgabe. Aber diese Wolken im Video sind nur ein paar "trübe" Partikel. Ich finde das nicht schön :)

Für schöne Wolken ist das Problem nicht die Wolkensimulation, sondern das Wolken-Rendering, das unmöglich zu handhaben ist, um in Echtzeit für Szenen mit dynamischer Beleuchtung fotorealistisch zu sein. Was in teilnehmenden Medien wie der Cloud passiert, ist: Geben Sie hier die Bildbeschreibung ein

Lichtemission tritt nur auf, wenn teilnehmende Medien Licht emittieren (wie heißes Gas oder Feuer) oder wenn sie beleuchtet werden (dies ist ein Teil des normalen Renderings). Absorption bedeutet, dass Licht absorbiert wird und Streuung das größte Rechenproblem darstellt. Licht wird innerhalb des Volumens gestreut. Dann möchten Sie Selbstschatten und Schatten auf den Boden und eine undurchsichtige Szene ausstrahlen lassen. Wie es geht?

Wo bekomme ich eine Wolke? Wolken können durch Perlinrauschen simuliert werden. Es ist sehr häufig und sieht gut aus. Perlin-Rauschen kann 4D sein, wobei die 4. Dimension Zeit ist, um schöne dynamische Wolken zu erzeugen. Wenn Sie Wolkenformen angeben möchten: Sie müssen die gewünschten Formen volumetrisieren, als 3D-Dichtegitter speichern und mit Perlin multiplizieren.

Wie man es rendert

Durch das Rendern von Partikeln? . Partikelwolken sind möglich. Es ist die einfachste Methode. Die Simulation einer Lichtausbreitung zwischen Partikeln ist jedoch ziemlich schwierig. Es ist sehr typisch, dass Sie Partikel in Blickrichtung der Kamera (oder in der sogenannten Halbachse zwischen Kamera- und Lichtrichtung) sortieren müssen. Dies ist in Echtzeitanwendungen nur möglich, wenn Ihre Zielplattform Shader-Modell 4 oder besser Shader-Modell 5 - und GPGPU-Computing (wie Cuda, OpenCl oder Direct Compute) - nicht unterstützt. Sie können also in jedem Frame parallele Radix-Sortierung und -Sortierung von Partikeln schreiben wird in Echtzeit sein). Die Sortierung ist für die Alpha-Überblendung und auch für die intelligente Schattenzuordnung erforderlich.

Ich werde Sie zu einigen Artikeln führen:

Durch volumetrisches Raycasting . Volumetrisches Raycasting bedeutet, dass Sie ein Gitter haben, in dem Sie eine Flüssigkeitssimulation durchgeführt haben (typisch Navier-Strokes, aber auch eine voxelisierte Wolkenform ist in Ordnung). Und schießen Sie Strahlen für jedes Pixel durch das Volumen und integrieren Sie die Strahlung über den Strahl. Dies ist für Echtzeitanwendungen überraschend in Ordnung .Raycasting im Wiki. Sie müssen kein GPGPU-Computing haben. Das volumetrische Raycasting kann mit dem Pixel-Shader durchgeführt werden, da keine Synchronisation zwischen Threads (Strahlen) erforderlich ist. Ein Raster in 3D-Textur ist auf Grafikhardware perfekt, da Sie von der nativen trilinearen Interpolation der Textureinheit profitieren können. Selbstschatten kann durchgeführt werden, indem Strahlen von jeder Probe auf Licht geschossen und die Dichte des Lichtschattenvolumens gezählt werden. Das ist langsam. Sie können einige Schattenzuordnungen mit Übergängen verwenden (z. B. Tiefenschattenzuordnungen). Die Lichtstreuung ist auch in Echtzeit nicht möglich (mit gpgpu ist es).

Das volumetrische Raycasting ist schnell und einfacher zu implementieren als die Partikelsortierung und funktioniert auch bei älteren HW schnell.

Etwas zu studieren:

Notabene
quelle
Vielen Dank für die detaillierten Informationen. Für unseren Zweck muss sich die Wolke in eine von uns angegebene Form verwandeln. Ich denke, wir können das Perlin Noise 3D-Gitter mit Partikeln verwenden. Die Beleuchtung, auch durch volumetrisches Raycasting, ist wahrscheinlich verboten, da die mobile Plattform unsere Zielplattform ist.
Leo
Was ist mit den Arten von Wolken in Lumion? Sie sind nicht durchfliegbar, sehen aber wunderschön aus. vimeo.com/12173355
George R