2010-03-08 32 views
10

我使用glBindTexture()來綁定以前創建的紋理。在glBindTexture()調用之後,我使用glTexParameteri()來設置MIN和MAG濾鏡。到目前爲止沒有問題。紋理參數的持久性

是我使用綁定到紋理本身的glTexParameteri()設置的那些參數,或者如果綁定另一個紋理,它們會丟失。我必須再次設置它們嗎?

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? */ 

回答

10

他們保留。爲glBindTexture()的手冊頁說:

雖然質地約束,GL目標 操作它 勢必影響勢必質感。

由於glTexParameter()第一個參數是目標,它們適用於綁定對象就像glTexImage()

+0

感謝您澄清這:) – fen 2010-03-09 11:03:20