2016-07-05 22 views
5

Abbiamo un asset con 12k tris (un container di carico) abbiamo trovato un asset dall'aspetto migliore presso l'Unity Asset store con 3.5k tris. Tuttavia, la lunghezza fisica della nuova risorsa è la metà di quella vecchia, quindi per mantenere lo stesso livello di progettazione abbiamo bisogno di due oggetti per ogni oggetto vecchio.Prestazioni Batches vs Tris

Abbiamo il batch statico barrato per gli oggetti.

Nuova risorsa contro le vecchie statistiche guardando lo stesso posto nella stessa scena

tris: 800k vs 1.1m 
verts 900k vs 1.4m 
batches: 611 vs 490 
setpass calls: 192 vs 167 

Bonus 
Lightmap: 150mb vs 200mb 

Così abbiamo più lotti e disegnare le chiamate, ovviamente, perché la maggiore quantità di oggetti. La diminuzione del numero triplo vale un aumento delle chiamate batch/setpass?

La nostra piattaforma di destinazione è SteamVR (desktop PC e HTC Vive/Rift) e le specifiche consigliate sarà GTX 970 e di fascia media CPU

Vecchio bene in background nuovo asset (s) in primo piano enter image description here

+2

Non riesco a darti una risposta abbastanza precisa, quindi lascerò un commento qui dicendo che una regola generale è che i batch sono un carico della CPU, mentre i tris sono un carico della GPU. Quindi, meno tris e più lotti asset ridurranno il carico della GPU, ma aumenteranno un po 'il carico della CPU. –

+1

Controlla i tuoi fps e Time.deltaTime per ottenere un aswer – Absinthe

risposta

1

In generale, le chiamate di prelievo sono più costose del solo numero di tris. Ovviamente avresti bisogno di un profilo per risultati pratici. Si noti che, come dichiarato nei documenti, il batching funzionerà solo in determinate condizioni, una delle quali è, che la mesh ha meno di 900 (?) Vertici, tra gli altri. È possibile ottimizzare ulteriormente la scena eseguendo il batching personalizzato tramite uno strumento editor, come OnPostprocessScene durante la compilazione o qualsiasi altra cosa si adatti alla tua pipeline. Puoi utilizzare CustomBatchingUtility, MeshUtility o scrivere il tuo. Quindi non hai bisogno di un compromesso, ottieni il meglio da entrambi i mondi.

+0

Il bagno dinamico ha un limite di 900 vertici/shader, quindi con lo shader standard 900/4 = 225. Il batching dinamico non è molto efficiente, il batch statico è molto diverso . Ho imparato molto dal momento in cui è stata posta la domanda, se ti piaccio, le videochiamate sul desktop VR rappresentano un enorme successo per le prestazioni rispetto a tris. In questo caso non importa molto, i piccoli contenitori sono occlusi velocemente. Se hai un gioco open world, potrebbe essere saggio fare l'atlante LOD1 e oltre, in modo che possano essere messi in batch – Anders