L'istanza migliora le prestazioni (in modo significativo) quando si esegue il rendering di più copie (della stessa quantità?) Della stessa mesh contemporaneamente. Ma quanto overhead ha quando si esegue il rendering esattamente di una copia con una chiamata di disegno? Sarebbe una buona o una cattiva idea usare l'istanziamento per tutta la geometria resa dal motore?
Modifica: supponiamo di creare un gioco FPS. La maggior parte degli oggetti ha un solo esempio: un coltello, una pistola, una mitragliatrice, un edificio e una torre radio. Ma ci sono anche alcuni oggetti con più istanze: alberi (ad es. 3 tipi di alberi con centinaia di istanze), erba e così via ... Quello che voglio dire è: invece di rendere gli oggetti a una istanza il modo "tradizionale" e gli alberi ed erba usando l'istanziamento, li rendiamo tutti usando l'istanziamento. Quindi la nostra torre radio ha solo un'istanza (le cui informazioni memorizziamo in un buffer di dati di istanza) e rendiamo quella torre usando un qualche tipo di DrawInstanced()
chiamata con un numero di istanze uguale 1
. Lo stesso con tutti gli altri oggetti (ovviamente, alberi ed erba hanno più istanze).
Quindi la mia domanda è: è una cattiva idea disegnare una singola istanza di un oggetto usando l'istanza? L'istanziamento ha un overhead eccessivo (dal punto di vista della memoria e delle prestazioni) o è in qualche modo indesiderato per il rendering di oggetti a istanza singola?