Ho letto documenti sulla computer grafica e ogni tanto mi imbatto nel termine "dipendente dalla lettura della trama" o "dipendente dal recupero delle texture" usato nel contesto di interrogare le trame nel codice dello shader. Cosa legge una trama dipendente e qual è la differenza tra questa e una trama "normale"?Cosa legge una trama dipendente?
risposta
Una "lettura di trama dipendente" è quando vengono utilizzati i valori di ritorno da una ricerca di trama (o da altri calcoli in-shader) per determinare WHERE da cercare da una seconda trama. Un'importante implicazione è che le coordinate della trama (da cui si guarda in alto) non sono determinate fino alla metà dell'esecuzione dello shader ... non c'è alcun tipo di analisi statica che si possa fare sullo shader (anche conoscendo i valori di tutti i parametri) che ti dirà quali saranno le coordinate in anticipo. E 'anche rigorosamente ordina i due consistenza legge e limiti di quanto l'ordine di esecuzione potrebbe essere cambiato da ottimizzazioni nel driver, ecc
Su vecchie schede grafiche, ha usato per essere un bel paio di limitazioni su questo genere di cose . Ad esempio, a un punto (IIRC) è possibile cercare da più trame ma solo con un piccolo numero di coordinate di trama distinte. L'hardware è stato effettivamente implementato in modo tale che alcuni tipi di letture dipendenti dalla trama fossero o impossibili o molto inefficienti.
Nell'ultima generazione o due di carte, non dovresti preoccuparti di questo. Ma potresti leggere libri o articoli di un paio di anni fa quando davvero dovevi prestare molta attenzione a queste cose.
Una lettura di trama normale utilizza solo le coordinate di trama passate nello shader. Una lettura della trama dipendente è con le coordinate della trama che sono state calcolate in parte utilizzando i valori recuperati da un'altra trama precedentemente accessibile nello shader. Quindi il secondo accesso alla trama è "dipendente" dal valore recuperato dal primo.
La risposta accettata (e quella sottostante) limita in modo errato le letture della trama dipendente all'utilizzo dell'output di un'altra trama letta. Non è corretto
Una trama dipendente dalla lettura è qualsiasi trama letta con le coordinate che non sono le coordinate esatte passate nel programma shader. Anche uno swizzle causerà una lettura della trama dipendente.
Questo è preso direttamente da Apple's OpenGL ES programming guide.
Grazie, @benthehutt, ho chiarito nella mia risposta. –
- 1. Inserire una trama in miniatura all'interno di una trama
- 2. disegna una trama pixelata
- 3. Cosa significa [] quando legge da un array PHP?
- 4. Puoi avere un'interfaccia dipendente da una classe?
- 5. Come posso creare una trama "mappa dei colori" in MATLAB?
- 6. ggplot2: ordinamento di una trama
- 7. annotare una trama utilizzando matplotlib
- 8. Specchiare orizzontalmente una trama SKSpriteNode
- 9. OpenGL - Rendering in una trama
- 10. riga, = trama (x, sin (x)) cosa significa virgola?
- 11. Dipendente Walker: dll mancanti
- 12. Come si scrive/legge su una smartcard?
- 13. Come si legge esattamente una riga?
- 14. Stringa di formato per l'output dipendente da una variabile
- 15. Dipendente/dipendente Maven per il driver JDBC Redshift
- 16. Template dipendente typename
- 17. Modello + Nome dipendente
- 18. macro dipendente macro
- 19. Produrre una trama raster in R
- 20. Converti un UIImage in una trama
- 21. Punti trama su una sfera in R
- 22. Come etichettare una trama di contorno Seaborn
- 23. etichettare una trama in incrementi di pi
- 24. Come fare una trama ridicolmente ampia
- 25. Come si crea una trama verticale numpy?
- 26. Get XLIM da una trama in R
- 27. matplotlib - trama duplicata da una figura all'altra?
- 28. Leggere i pixel da una trama WebGL
- 29. Python: formato A4 per una trama
- 30. Tagliare un quadrato traslucido in una trama
In realtà, in base a PowerVR, è necessario prestare attenzione a hardware abbastanza recente :-) http://bit.ly/yvSnM – Justicle
Sulla mia GTX 570, le ricerche di texture dipendenti nello shader di frammenti sono un ordine di grandezza più lento di ricerche di texture indipendenti. (Questo ha spinto il motore su cui stavo lavorando da zero/soffocamento FPS a 20 FPS.) Ho sperimentato un aumento di velocità leggermente inferiore rimuovendo una "ricerca costante di array" dipendente nello shader della geometria. (Il conteggio primitivo dipendeva da questo valore). Il contesto è tutto! – Philip
Questo non è corretto, vedere la mia risposta. – benthehutt