Сохранение параметров текстуры
Я использую 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? */
Ответы
Ответ 1
Они хранятся. На странице руководства glBindTexture() говорится:
Пока текстура связана, GL операции над мишенью, на которую она привязана к связанной текстуре.
Поскольку первый параметр glTexParameter()
является целью, они применяются к связанному объекту точно так же, как glTexImage()
.