Meine Erfahrungen bislang:

Grundsätzlich so klein wie möglich, so groß wie nötig.
Beispiel: Rennstrecke, 1000x1000 Meter, 2400 Quants.
Das läuft sehr gut hier.

Bei Außenleveln ist LOD für Figuren, Objekte und Materialien / Shader unabdingbar, wenn die Fps oben bleiben sollen.
Von Beginn an LOD nutzen, nicht erst wenn es eng wird.
Macht weniger Arbeit, man sieht die Auswirkungen direkt und kann daran feilen.

Modelle in MED sinnvoll gruppieren. Ist nicht immer einfach, muß man testen.
Es hat z.B. nichts gebracht Baumgruppen mit je 10000 Polys zu erstellen.
Einzelne Bäume renderten wesentlich schneller.
Ich schätze der ABT Tree und das LOD können dann besser wirken.
Statt fünf verschiedener Modelle mit je 10000 / Polys und 18 Skins habe ich nun
drei Modelle mit je 3000 Polys und 6 Skins, die dafür öfter im Level verteilt sind.
Im Grunde ist es klar das letztere Möglichkeit besser läuft, da nicht soviele Durchgänge nötig sind.
Mußte ich auf dem harten Weg lernen.
Man kann jede Engine ganz schnell in die Knie zwingen:
Ohne Gruppierung: >40 fps, mit Gruppierung: unspielbar.
Bei Modellen mit nur ein oder zwei Texturen kann das gruppieren natürlich einen gehörigen Boost erwirken!

Schau Dir infinite_terrain.c an, im Gamestudio Ordner unter "Samples"
Auch wenn Du kein Terrain brauchst, da sind viele gute tipps bezüglich großer Level drin.

Nebel benutzen um zusammen mit LOD und clip_far die Sichtweite einstellbar zu machen

Möglichst wenige Traces, vor allem wenn diese pro Frame einmal passieren sollen

Modelle nicht übermässig skalieren! Weder zur Laufzeit (am besten pro Frame: das ist ein echter fps Killer!)
noch im WED. Besser im MED schon die passende Größe einstellen.
Zweifach skalieren geht schon im WED, 20-fach oder 0.02 fach ist schlecht.

-Also: Immer wenn etwas extrem wird (skalierung, texturgrößen, entitieanzahl, anzahl der laufenden funktionen...)
gibt es Probleme. Wie jcl schon sagte: common sense muß sein beim Umgang mit solchen "Mengen".
Dann sind Optimierungen notwendig, die einem erstmal garnicht in den Sinn kommen, so wie die Kollision global abzuschalten,
alle Entities zu erstellen und sie dann wieder einzuschalten...wer und wie soll (man) das ahnen?

-Experimentieren, viel

-Jede Änderung auf Ihre Performance hin überprüfen

-Texturgrößen: Alles bis 2048 ist recht problemlos. 256 läuft sehr gut, ich benutze meist 512 und 1024.
Größer bitte nur wenn es unbedingt sein muss und auch hier wieder common sense: DDS benutzen.
Wenn es geht, immer!!

-Mit dem HEX editor Neo und dem Ati compressonator kannst Du viele Modelle schnell auf DDS umstellen.

-Darum, aber nicht nur: Alle Skins extern anlegen. Immer. Hat nur Vorteile.

-Kollision: Möglichst viele Objekte auf PASSABLE setzen.
LowPoly Kollisionsmeshes verwenden und unsichtbar machen, ist schnell und löst potentielle Probleme im Vorfeld

-...ich hab bestimmt was vergessen tongue

-Edit: Levelgröße war falsch angegeben

-Edit 2: ab ins Wiki damit, ich hab aber jetzt echt keine zeit mehr. wink

Last edited by fogman; 06/06/10 15:03.

no science involved