2013-06-17 16 views
6

Sto leggendo su Texture Views nel Red Book new. Nella pagina 322 si dice:Quando utilizzare Texture Views

OpenGL permette di condividere un singolo archivio di dati tra più trame, ognuna con il proprio formato e le dimensioni.

(via Texture Visualizzazioni)

Ora, le mie domande sono:

significa una singola sorgente texture è fatto riferimento da più istanze (in questo caso vista texture)?

In che modo è diverso dall'utilizzo dello stesso oggetto texture, ad esempio ma con diversi campionatori?

Inoltre, vuol dire che cambiando i pixel di texture via texture veduta cambierà i pixel nell'oggetto trama originale? (Suppongo la risposta è positiva come il doc dice che è alias al negozio texture)

risposta

6

Sì, condividere un data store significa accedere alla stessa memoria da oggetti diversi. Proprio come condividere un puntatore significa poter accedere alla stessa memoria da due posizioni diverse.

È diverso dall'utilizzo di oggetti di campionamento in quanto non vi sono somiglianze tra di loro. Sampler objects parametri di campionamento dei negozi. Gli oggetti Texture hanno parameters that are not for sampling, ad esempio the mipmap range, swizzle mask e simili. Questi non sono stati di campionamento; sono lo stato della trama.

Gli oggetti texture hanno anche un specific texture type. Viste differenti della stessa memoria possono avere different texture types (within limits). È possibile avere una GL_TEXTURE_2D che è una vista di un singolo livello di una trama GL_TEXTURE_2D_ARRAY. Puoi prendere uno GL_TEXTURE_2D_ARRAY di 6 o più livelli e creare uno GL_TEXTURE_CUBE_MAP da esso.

Gli oggetti del campionatore non possono farlo.

Gli oggetti trama hanno un internal format che definisce come deve essere interpretata la memoria. Viste diverse della stessa memoria possono avere different formats (within limits) I campionatori non influenzano il formato.

Gli oggetti del campionatore non possono farlo.

È possibile utilizzare le viste di trama per ottenere lo stesso effetto degli oggetti di campionamento? No. Con i campionatori, si disaccoppiano i parametri di campionamento dagli oggetti texture. Ciò consente di utilizzare lo stesso set di parametri per più oggetti diversi. E quindi, puoi cambiare un oggetto sampler e usarlo con trame multiple, senza dover andare a ciascuna trama e modificarla.

Sono due caratteristiche diverse, per due scopi diversi.

+0

Sì, ora è abbastanza chiaro.Ma una volta la domanda non ha risposto: se la modifica dei dati nella visualizzazione trama cambierà anche nella trama di riferimento? Basata sulla frase: "Proprio come la condivisione di un puntatore significa essere in grado per accedere alla stessa memoria da due posizioni diverse. " la risposta è probabilmente "Sì"? –