Instancja poprawia wydajność (znacznie) podczas renderowania wielu (setki tysięcy?) Kopii tej samej siatki jednocześnie. Ale ile to narzutu podczas renderowania dokładnie jednej kopii za pomocą jednego wywołania losowania? Czy dobrym pomysłem byłoby użycie instancji dla całej geometrii renderowanej przez silnik?
Edycja: Załóżmy, że tworzymy grę FPS. Większość obiektów ma tylko jedną instancję: nóż, pistolet, karabin maszynowy, budynek i wieżę radiową. Ale są też obiekty z wieloma instancjami: drzewa (np. 3 rodzaje drzew z setkami instancji), trawa i tak dalej ... Mam na myśli: zamiast renderować obiekty z jedną instancją w „tradycyjny” sposób i drzewa i trawy za pomocą instancji, renderujemy je wszystkie za pomocą instancji. Tak więc nasza wieża radiowa ma tylko jedną instancję (której informacje przechowujemy w buforze danych instancji) i renderujemy tę wieżę za pomocą pewnego rodzaju DrawInstanced()
wywołania z liczbą instancji równą 1
. To samo dotyczy wszystkich innych obiektów (oczywiście drzewa i trawa mają wiele wystąpień).
Moje pytanie brzmi: czy złym pomysłem jest narysowanie pojedynczej instancji obiektu za pomocą instancji? Czy wystąpienie ma zbyt dużo narzutu (pod względem pamięci i wydajności), czy też jest w jakikolwiek sposób niepożądane w przypadku renderowania obiektów z jedną instancją?