Thema: Gael (Spiel)

Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#44

AW: Gael (Spiel)

  Alt 22. Nov 2010, 15:13
Hi

Wird mal wieder Zeit für ein Status-Update. Es gibt zwar noch keinen neuen Download - aber vielleicht tröstet das Video am Ende etwas

Fortschritt der Karte
In letzter Zeit habe ich mal wieder an der bisher einzigen Karte weitergearbeitet. Es gab noch einigen freien Raum, den ich noch ausfüllen musste. Die Karte ist damit noch nicht fertig, aber ein Großteil ist damit schon mal abgeschlossen.

Beim Testen der Karte fiel mir auch gleich ein kleines Performance-Problem auf. Die Map hat im Moment ca. 250.000 Vertice und ca. 30 dynamische, schattenwerfende, Lichter. Bei den Tests kam ich jedoch meistens kaum über 10 FPS hinaus. Also habe lange nach Bottle-Necks gesucht und geschaut, wo ich gut noch Performance herausholen kann. Das hat einiges gebraucht. Von vorher durchschnittlich 10 FPS habe ich nun 40 FPS - da war ich selbst etwas erstaunt. Im Moment schaufelt mein Laptop daher ca. 50-60 Millionen Vertice pro Sekunde aufm Bildschirm hin und her (wobei viele bei der Shadow-Map-Generierung anfallen). Im Moment bin ich aber wieder Füllraten-Limitiert, denn bei einer geringeren Auflösung habe ich fast durchgehend 60 FPS. Da muss ich mir die Shader nochmal genauer anschauen.

Ich habe noch ein paar Screenshots der aktuellen Karte für euch hochgeladen.
(zum Vergrößern klicken)
screenshot1.png screenshot2.png screenshot3.png screenshot4.png screenshot5.png

Erweiterungen an der Partikel-Engine
Vor etwas längerer Zeit hatte ich bereits eine Idee zur Erweiterung meiner Partikel-Engine, jedoch bin ich aus zeitlichen Gründen bisher nicht dazu gekommen, das umzusetzen. Jedoch habe ich mir jetzt mal die Zeit genommen und die Particle-Engine erweitert. Genauer gesagt geht es um Sub-Emitter. Jedem Emitter kann man nun einen Sub-Emitter hinzufügen. Mit Hilfe des Sub-Emitters werden dann weitere Partikel auf dem Weg des Root-Partikels erzeugt. Sagen wir, wir haben einen Funken. Dieser Funken fliegt durch den Raum. Zusätzlich soll der Funken noch einen Rauch-Schleier hinter sich her ziehen. Um das zu erreichen, erstelle ich einen neuen Emitter, der sich um die Erstellung und Verwaltung des Rauches kümmert. Dem Funken-Emitter weise ich dann den Rauch-Emitter als Sub-Emitter zu. Für jeden Funken, den der Funk-Emitter nun verarbeitet (also Position, etc.) weist er seinen Sub-Rauch-Emitter nun an, an der aktuellen Position des Funken selbst ein paar Partikel erstellen soll. Ich weiß, dass das jetzt nicht so leicht zu verstehen ist - ich bin im Moment etwas im Prüfungsstress und kann mich daher nicht besser ausdrücken aber ich hoffe, dass es einigermaßen zu verstehen ist.

Natürlich habe ich auch gleich mal ein Video einer Test-Explosion erstellt. Die Explosion besteht aus 7 Emittern, die von der Script-Engine heraus automatisch getriggert werden. Zusätzlich ist noch ein PointLight in der Mitte, damit die Explosion auch Licht emittiert. Am deutlichsten erkennt man die Sub-Emitter bei den großen Funken, die eine Rauchfahne hinter sich herziehen. Hier ist das Video.

Ich hoffe, es gefällt
Gruß
David
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat