我试图了解这两个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_LOD
和GL_TEXTURE_MAX_LOD
),则可以使用glTexParameterf
传递float参数。有关基于要设置的pname来使用int还是float版本的更多信息,请参见链接的文档。当传递像GL_REPEAT
这样的枚举时,您应该使用glTexParameteri
,但是如果您使用glTexParameterf
,驱动程序很可能只会将其转换。
例如(来自文档):
您可以根据第二个参数使用正确的版本。
关于opengl - glTexParameterf和glTexParameteri有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29919386/