我试图了解这两个API之间的区别。
例如,如果我没记错的话,两个调用是相同的:

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

第三个参数'param'包含常量值(例如GL_REPEAT),因此它是浮点型还是整数型都没有关系。

请解释。

最佳答案

它只是函数的整数和浮点形式。

如果pname(第二个)参数是GL_TEXTURE_WRAP_S,而您要传递一个枚举,则应使用glTexParameteri,但对于其他possible values(例如GL_TEXTURE_MIN_LODGL_TEXTURE_MAX_LOD),则可以使用glTexParameterf传递float参数。有关基于要设置的pname来使用int还是float版本的更多信息,请参见链接的文档。当传递像GL_REPEAT这样的枚举时,您应该使用glTexParameteri,但是如果您使用glTexParameterf,驱动程序很可能只会将其转换。

例如(来自文档):



您可以根据第二个参数使用正确的版本。

关于opengl - glTexParameterf和glTexParameteri有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29919386/

10-12 13:54