繁体   English   中英

是否需要为GL_TEXTURE_2D的每个绑定设置纹理参数?

[英]Is setting the texture parameters for each binding of GL_TEXTURE_2D neccessary?

我正在阅读一些基本的opengl教程,并想知道是否可以使此代码更好。

我的问题是c ++,但我相信这会延续到其他使用不同语言的opengl实现中。

这是代码:

glGenTextures(1, &texture1);
glBindTexture(GL_TEXTURE_2D, texture1);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
//load the data for the texture, apply it, the free the data

glGenTextures(1, &texture2);
glBindTexture(GL_TEXTURE_2D, texture2);
//Now the question.

绑定texture2之后,如果我想对两个图像都具有相同的效果,那么是否有必要重复glTexParameteri行?

纹理参数是纹理对象状态的一部分。 设置纹理参数时,就是在该对象中设置状态。 因此,您的问题大致相当于“如果我做xv = 5; yv这是否意味着如果xy是同一类型,则yv也为5?”

当您将对象绑定到上下文,然后在该绑定点上调用状态设置函数时,您正在对象中设置状态,就像xv = 5会将状态设置到对象x OpenGL只是对此概念有一个不寻常的拼写(有时,如果不查找函数是将状态设置为对象还是上下文,很难不知道就很难知道),但这两种方法都是一样的。

因此,不,在一个对象上设置状态不会将该状态转移到恰好绑定到该绑定点的另一状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM