2010-11-11 8 views
6

Un sacco di siti/articoli dicono "partita! batch! lotto!'. Qualcuno può spiegare cosa rappresenta il "batching" rispetto agli shader?Raccolta grafica 3D

Vale a dire, lo fa

  1. mutevoli trame
  2. cambiano le variabili di shader arbitrarie

significare qualcosa non può essere 'batch'?

(Scusate se questa è una domanda ritardato: D)

risposta

8

Il modo più semplice per riassumere, è di provare a fare il minor numero di chiamate API, come si può disegnare ciò che è necessario per disegnare. Usando array di vertici o VBO (nemmeno opzionali nelle moderne API), gli atlanti di trama ed evitando la necessità di modifiche di stato contribuiscono tutti a questo. È davvero sorprendente il numero di triangoli che una moderna GPU può disegnare nel tempo necessario per girarsi e impostare la prossima chiamata di disegno.

+0

E applicando questo ai due punti, la modifica delle cose annulla il dosaggio. Cambiare le trame di solito non è un problema, se entrambe le trame sono come in VRAM, ma la modifica costante delle variabili shader può rallentare. – ssube

+0

Grazie. In che modo il motore di gioco moderno gestisce le matrici di trasformazione durante il batching (che cambia per oggetto)? Le matrici di trasformazione – jameszhao00

+0

verranno impostate come costanti dello shader quando necessario. Questo non è un grosso problema perché gran parte della scena è di solito il mondo. È statico e non ha bisogno di una trasformazione. In tal caso: Trasforma i dati al momento del caricamento, prima di caricarli nel vertex-buffer. –

3