Ich mache ein 3D-Ego-Spiel. Soll ich jedem Charakter einen eigenen VBO geben oder alle Charaktere zu einem einzigen VBO zusammenfassen? Was sind die Vor- / Nachteile?
Ich mache ein 3D-Ego-Spiel. Soll ich jedem Charakter einen eigenen VBO geben oder alle Charaktere zu einem einzigen VBO zusammenfassen? Was sind die Vor- / Nachteile?
Antworten:
Dies ist wirklich eine Wahl zwischen Leistung und Flexibilität, aber ich werde meine Meinungen dazu auflisten.
Ein einziger VBO
Die positiven Seiten sind:
und die negativen Seiten sind:
Einzelne VBO: s
Die positiven Seiten sind:
und die negativen Seiten sind:
Zusammenfassung
Ich würde Ihnen empfehlen, Ihre Bewerbung zu profilieren. Holen Sie sich Ihren echten Engpass bei Daten, die Sie sehen können. Eine vorzeitige Optimierung kann (in diesem Fall) als unnötig angezeigt werden. Wenn Sie jedoch angesichts des individuellen VBO- Szenarios einen echten Leistungsverlust in Ihrer Anwendung feststellen , können Sie mit der Implementierung eines einzelnen VBO beginnen.
Solange es nicht benötigt wird (die Anzahl der Objekte ist gering, insgesamt nicht viele Statusänderungen usw.), würde ich empfehlen, einzelne VBOs zu verwenden, es sei denn, Sie sehen, dass dies nicht funktioniert.
Bearbeiten
Ich habe vergessen zu erwähnen, dass es mit mehreren Draw Calls in Ordnung wäre. Das Wichtigste in leistungskritischen Zeiten ist, die Statusänderungen auf ein Minimum zu beschränken. Sie können einfach die Anzahl der zu verarbeitenden Indizes und einen Offset für jeden Draw-Aufruf festlegen. Dies ist in Ordnung. Aber halten Sie die Statusänderungen so gering wie möglich und tätigen Sie so wenig Draw Calls wie möglich. Das ist das große Hallo dieser Antwort, oder zumindest das, was ich versucht habe zu sagen.