2010-03-08 25 views
10

Uso glBindTexture() per associare una trama creata in precedenza. Dopo la chiamata a glBindTexture() uso glTexParameteri() per impostare il filtro MIN e MAG. Nessun problema finora.Persistenza dei parametri di trama

Sono quei parametri che ho impostato utilizzando glTexParameteri() associato alla trama stessa o si perdono se si associa un'altra trama. Devo impostarli di nuovo?

glGenTexture(1, &tex1); 
glGenTexture(1, &tex2); 

/* bind tex1 and set params */ 
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1); 
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...); 
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

/* do something */ 

/* bind tex2 and set params */ 
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex2); 
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...); 
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

/* do something */ 

/* bind tex1 again */ 
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1); 

/* do i have to set the parameters from above again or are they stored with tex1? */ 

risposta

10

Sono tenuti. La pagina di manuale per i glBindTexture() dice:

Mentre una texture è legato, GL operazioni sul target a cui è vincolata influenzano la trama legata.

Poiché il primo parametro di glTexParameter() è un obiettivo, si applicano alla oggetto associato proprio come glTexImage().

+0

grazie per aver chiarito questo :) – fen