In OpenGL, che cos'è il rendering "zero state"?


10

Recentemente in un'intervista di lavoro, ho detto che mi sono insegnato a OpenGL moderno e al rendering con oggetti buffer di vertici perché la mia università ha insegnato solo la pipeline a funzioni fisse con rendering in modalità immediata al momento. L'intervistatore mi ha brevemente interrotto per dire che i VBO sono stati effettivamente sostituiti da qualcosa chiamato "rendering dello stato zero" e poi mi ha permesso di continuare.

Ho dimenticato di chiedere in seguito cosa significasse, perché ci siamo rapidamente spostati su diversi argomenti e l'intervistatore alla fine era a corto di tempo a causa di un intenso programma.

Più tardi, ho cercato online "OpenGL zero state" e "zero state rendering" senza risultati che sembravano rilevanti, principalmente solo cose sullo stato OpenGL.

L'organizzazione in questione è fortemente basata sulla ricerca, quindi esiste la possibilità che si tratti di un'estensione con attualmente poco supporto o che la terminologia utilizzata vari a causa della sua natura all'avanguardia?


Sei sicuro che fosse "stato zero" o avrebbe potuto essere qualcos'altro con una parola "zero"? La mia ipotesi è che stesse parlando di zero spese generali: gdcvault.com/play/1020791
Lasse,

C'è una buona probabilità che possa essere "zero ascoltato", dal raschiare il video, anche se sono sicuro al 100% che le sue parole reali sono "stato zero". La mia ipotesi era che si stesse riferendo a un'unica nuova funzionalità utilizzata per le chiamate di disegno, invece di ottimizzare ciò che era già disponibile. 'Zero overhead' è il nuovo modo consigliato di disegnare le cose in OpenGL?
usm,

6
Potrebbe essere stato "attributo zero"? Il rendering Zero-attributo (spesso chiamato "il rendering senza attributi") fa sostituire VBOs.
Trevor Powell,

5
Questa domanda non è fuori tema, le domande terminologiche sono assolutamente consentite.

1
Sono abbastanza certo che quello di cui parlava il tuo intervistatore era ciò che è più comunemente noto come Rendering Bindless. In breve, elimina la necessità di associare singoli oggetti a handle globali per modificarli o utilizzarli. Dovresti ottenere risultati migliori cercandolo.
kevintodisco,

Risposte:


9

Il tuo intervistatore stava parlando, con le sue stesse parole, dell'API bindless . Recentemente nVidia ha fatto delle belle presentazioni su tutto ciò, che chiamano accesso diretto allo stato ( 1 , 2 ). Questo non sostituisce i VBO.


EDIT : In realtà, consideriamo il suggerimento di Trevor Powell:

Questo sembra che alcune persone potrebbero sicuramente decidere di eliminare i VBO, a favore del rendering senza attributi, usando shader di geometria che raccolgono dati o trame uniformi, come menzionato in questo articolo .

Riesco a vedere come qualcuno potrebbe decidere di cambiare il proprio motore senza attirarsi completamente, ma non perdonerei una simile mossa se fossi nella squadra: il motivo - se leggi attentamente questa panoramica della pipeline - è che con l'attributo- meno, la cache FIFO vertice diventa inutilizzabile poiché viene saltata del tutto. Senza attributi quindi rimuove una buona opportunità di ottimizzazione.

Ciò ha ovviamente bisogno di analisi comparativa, ma puramente a priori, sembra una cattiva idea per una soluzione generica, per tutti gli usi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.