Durch das Instanziieren wird die Leistung (erheblich) verbessert, wenn mehrere (Hunderttausende) Kopien desselben Netzes gleichzeitig gerendert werden. Aber wie viel Overhead hat es, wenn genau eine Kopie mit einem Zeichnungsaufruf gerendert wird? Wäre es eine gute oder eine schlechte Idee, Instanzen für alle vom Motor gerenderten Geometrien zu verwenden?
Bearbeiten: Nehmen wir an, wir erstellen ein FPS-Spiel. Die meisten Objekte haben nur eine Instanz: ein Messer, ein Gewehr, ein Maschinengewehr, ein Gebäude und einen Funkturm. Es gibt aber auch Objekte mit mehreren Instanzen: Bäume (z. B. 3 Baumarten mit Hunderten von Instanzen), Gras und so weiter. Ich meine: Anstatt die Objekte mit einer Instanz auf die "traditionelle" Art und Weise zu rendern und Bäume und Gras unter Verwendung von Instanzen rendern wir sie alle Verwendung von Instanzen. Unser Funkturm hat also nur eine Instanz (deren Informationen wir in einem Instanzdatenpuffer speichern) und wir rendern diesen Turm mit einer Art DrawInstanced()
Aufruf mit gleichem Instanzzähler 1
. Dasselbe gilt für alle anderen Objekte (Bäume und Gras haben natürlich mehrere Instanzen).
Meine Frage lautet also: Ist es eine schlechte Idee, eine einzelne Instanz eines Objekts mithilfe von Instanzen zu zeichnen? Hat die Instanzierung einen zu hohen Overhead (in Bezug auf Speicher und Leistung) oder ist dies in irgendeiner Weise unerwünscht, um Objekte mit einer einzelnen Instanz zu rendern?