Какова область применения glTexParameter в OpenGL? - PullRequest
8 голосов
/ 05 сентября 2010

Действует ли glTexParamter на все текстуры глобально или только на текстуру, которая в данный момент связана.

Например, если я вызову это при загрузке текстуры:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

И это при другой загрузке текстуры:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

Когда я связываю первую текстуру, она будет использовать только последнее установленное мной значение (GL_CLAMP) или будут использовать значения, изначально установленные при привязке текстуры?

1 Ответ

6 голосов
/ 05 сентября 2010

Из FAQ по OpenGL :


21.070 Как работают объекты текстуры?

Объекты текстуры хранят карты текстур и связанные с нимисостояние параметра текстуры.Они позволяют переключаться между текстурами одним вызовом glBindTexture ().

(...)

Следующие функции влияют и сохраняют состояние в объектах текстуры: glTexImage * (), glTexSubImage * (), glCopyTexImage * (), glCopyTexSubImage * (), glTexParameter * () и glPrioritizeTextures ().Поскольку процедуры GLU для построения пирамид mipmap в конечном итоге вызывают glTexImage * (), они также влияют на состояние объекта текстуры. В этом списке заметно отсутствуют glTexEnv * () и glTexGen * ();они не сохраняют состояние в текстурных объектах.


Ergo, glTexParameter * влияет только на связанную текстуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...