2010-03-08 30 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