Hallo Gemeinde,
für ein Uni Projekt schreibe ich mit paar anderen Leuten eine kleine "Engine", wenn man das so nennen mag. Eigentlich ist es nur ein Szenegraph mit Frustum Culling und ein paar PostEffects. Wir realisieren Frustum Culling auf Grundlage von der Bounding Volume Hierarchie des Szenegraphen. Jetzt wollen wir jedoch Instanzen der selben Geometrie instanziiert rendern, beispielhaft 100 Häuser des selben Meshes. Prinzipiell bei statischer Geometrie wie einem Haus das sich nicht mehr ändert ne Klasse Sache: Lade einmalig alle Matrizen in einen Buffer auf die GPU und rendere Instanziiert - klappt auch super. Was ist denn jetzt bei dynamischer, sich bewegender Geometrie? Bleibt mir wohl nichts anderes übrig als den Buffer jedesmal neu zu füllen - teuer aber ok, spart mir ja ne Menge drawcalls und die Matrizen hätten sowieso hochgeladen werden müssen. Die interessantere Frage ist eher wie verbinde ich instanziiertes Drawing mit Frustum Culling? Was sind da die typischen Vorgehensweisen?
Man könnte jetzt in einer Liste alle Matrizen speichern die nicht geculled werden und die hochladen, das ist aber ein teurer Prozess und wenn ich das implementiere ist nicht instanziiertes Drawing sogar schneller :/
Hat jemand damit Erfahrung und kann mir Ratschläge geben wie man sowas am klügsten umsetzt?
Danke und Gruß,
sc4v