Welches ist besser, ein Modell mit großer Ebene oder mehrere Modelle mit kleinerer Ebene?

8

Ich schreibe ein Spiel in XNA 4 und möchte so etwas wie einen Korridor haben. Denken Sie, dass es besser ist, ein großes und solides Modell oder mehrere kleine Teile (Fenster, Treppe, Tür ...) zu verwenden?

Vodáček
quelle

Antworten:

8

Beim Rendern von Grafiken lässt sich ein großes Netz schneller zeichnen als mehrere kleinere Netze.

Wenn Sie über so etwas wie einen Korridor sprechen, wird es für die GPU wahrscheinlich nicht so intensiv sein, wenn Sie ihn als Tür, Boden und einige Wände einschicken. Mit den kleineren Maschen können Sie auch leichter an der Positionierung herumspielen.

Wenn Ihre Zeichnung zu einem Engpass wird, sollten Sie dies berücksichtigen.

Die kommunistische Ente
quelle
1
Es muss nicht schneller sein. Nehmen Sie die Welt von Oblivion und machen Sie dies so, als wäre es einfach dumm und sehr langsam, da Sie nicht auswählen können, welche Abschnitte für den Spieler sichtbar sind. Sie werden am Ende eine Menge Ressourcen verschwenden
Peter Ølsted
1
Sein Beispiel war ein Korridor. Wenn er "die ganze Welt" gesagt hätte, hätte ich das erwähnt. : P
Die kommunistische Ente
Gut gesprochen, mein schlechtes
Peter Ølsted
Ja, meine
Levelszene
Mit dieser Szene definitiv mehrere Elemente. Es wäre ein echtes Problem, die Szene in 3DMax, Blender oder was auch immer zu ändern. Und als "The Communist Duck" können Sie es tun, wenn es zu einem Engpass wird und Sie sicher sind, dass es das Modell und nichts anderes ist, als vielleicht (wenn die Leistung wirklich so wichtig ist).
Peter Ølsted
5

Ich würde vorschlagen, die Tür als separates Modell zu behalten, es sei denn, Sie sind sicher, dass Sie sie niemals öffnen möchten.

Windows, wenn sie transparent sind, möchten auch separate Modelle sein, damit sie für das Rendern in der Tiefe sortiert werden können.

Alles andere sollte wahrscheinlich ein einziges Modell und eine einzige Textur sein, um die beste Leistung zu erzielen und Risse zu beseitigen, an denen sie sich verbinden.

Adam
quelle
3

Wenn Ihr Level zu viele Details enthält, sollten Sie es in Teile teilen und etwas Kegelstumpf-Keulen anwenden, um nur aktuell sichtbare Netze zu zeichnen.

r2d2rigo
quelle
Ich habe diese Methode bereits verwendet, aber ich denke, dass dies nur für das gesamte Modell funktioniert (nicht für Netze), aber es ist möglich, dass wir von meinem Zeichnungscode abhängen.
Vodáček
Ob dies vom gesamten Modell oder den Netzen abhängt, hängt von Ihrem Renderer ab oder davon, wie Sie das Culling implementiert haben. Scheitelpunkte sind Scheitelpunkte.
Verlangsamte
1

In den meisten Fällen lohnt es sich, kleine Teile zu verwenden, da dies die Wiederverwendbarkeit und Flexibilität Ihres Codes gewährleistet. und im Falle eines Korridors oder Ähnlichem, der nicht VIELE (viele würden eine Zahl wie mindestens 40 bedeuten) kleinere Teile enthält, ist der Leistungsgewinn bei der Verwendung eines großen und soliden Modells vernachlässigbar (außer wenn Sie das Objekt viele Male zeichnen pro Frame).

Wenn Sie sich für die Leistung interessieren, empfehle ich, die Beleuchtung vorab zu berechnen oder eine Art von Vertex-Arrays (Vertex-Puffer?) zu verwenden, die tatsächlich einen Unterschied machen würden. (Wenn diese Dinge in XNA möglich sind - ich weiß nicht viel über XNA)

ps: Der erste Absatz dieses Beitrags bezieht sich nur auf das Zeichnen (nicht beispielsweise auf die Verwendung separater Physikmodelle für Teile des Korridors).

V_shr
quelle