Geometry Instancing und Scene Graphen
Verfasst: 04.03.2014, 13:54
Seit kurzem setze ich mich intensiver mit OpenGL 3.x auseinander. Aktuell habe ich mir nun einge Artikel und Sourcen zum neu verfügbaren Geometry Instancing angeschaut. Der Sinn ist mir klar und die Umsetzung auf den ersten Blick auch nicht zu kompliziert. Die Frage ist, wie macht das ganze einen vernünftigen Sinn im Zusammenhang mit einem Scenen Graphen?
Nehmen wir mal einfach an, wir haben ein kleinen Wald. Die Geometrie vieler Bäume ist identisch, so dass Geometrie Instancing hier sinn macht, um die Rendercalls auf ein Minimum zu reduzieren. Normalerweise würde ich im Szenen Graphen ja zunächst einmal prüfen, was sichtbar ist und eine entsprechende Render-Queue aufbauen, diese entsprechend der Z-Order abarbeiten und jedes Ojekt mit seinen aktuellen Node-Translation Daten rendern.
Wenn ich das richtig sehe, müsste ich hier mit dem Instanced Rendering ansetzen. D.h. ich hätte nur noch 1x die Geometriedaten und müsste dann entsprechend der Queue die Node-Translation für die jeweiligen Instanzen aufbereiten und dann alles per single call rendern. Richtig?
Macht das ganze Sinn? Wenn ja wie verhält sich das ganze, z.B. im Wald bzgl. der Z-Order wenn ich z.B. 2 Baumsorten gleichzeitig per Geometry Instancing rendern würde? Bzw. wenn ich das mixe, d.h. auch Elemente habe die per einfachem draw call gerendert werden und zwischen den Objekten liegen, die per instanced rendering gerendert werden? Genau diese Problematik wird ja eigentlich durch den Graphen behandelt ...
Nehmen wir mal einfach an, wir haben ein kleinen Wald. Die Geometrie vieler Bäume ist identisch, so dass Geometrie Instancing hier sinn macht, um die Rendercalls auf ein Minimum zu reduzieren. Normalerweise würde ich im Szenen Graphen ja zunächst einmal prüfen, was sichtbar ist und eine entsprechende Render-Queue aufbauen, diese entsprechend der Z-Order abarbeiten und jedes Ojekt mit seinen aktuellen Node-Translation Daten rendern.
Wenn ich das richtig sehe, müsste ich hier mit dem Instanced Rendering ansetzen. D.h. ich hätte nur noch 1x die Geometriedaten und müsste dann entsprechend der Queue die Node-Translation für die jeweiligen Instanzen aufbereiten und dann alles per single call rendern. Richtig?
Macht das ganze Sinn? Wenn ja wie verhält sich das ganze, z.B. im Wald bzgl. der Z-Order wenn ich z.B. 2 Baumsorten gleichzeitig per Geometry Instancing rendern würde? Bzw. wenn ich das mixe, d.h. auch Elemente habe die per einfachem draw call gerendert werden und zwischen den Objekten liegen, die per instanced rendering gerendert werden? Genau diese Problematik wird ja eigentlich durch den Graphen behandelt ...