繁体   English   中英

在OpenGL中glActiveTexture和GL_TEXTURE0的功能是什么?

[英]What is the function of glActiveTexture and GL_TEXTURE0 in OpenGL?

我正在找到一种方法来理解为什么需要glActiveTexture 我有以下代码:

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

如果我想象GL_TEXTURE_2D是挂在墙上的图片框架而textureId是真实图片,那么glBindTexture是唯一一个为帧分配实际图片的命令,那么, GL_TEXTURE0glActiveTexture什么?

我的代码可以正常工作吗?

glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);

glActiveTexture(GL_TEXTURE1);
glTexImage2D(GL_TEXTURE_2D, .....)
glTexParameteri(GL_TEXTURE_2D, ...)

我目前正在使用OpenGL2.1。

如果我想象GL_TEXTURE_2D是挂在墙上的图片框架而textureId是真实的图片,

其实这是一个非常好的比喻:)

那么,GL_TEXTURE0和glActiveTexture是什么?

想想有多个相框的墙,第一帧标记为GL_TEXTURE0,第二帧标记为GL_TEXTURE1,依此类推。

OpenGL在某个时刻引入了多重纹理(基本上在一个几何通道上使用了多个纹理 ); 为了使旧代码保持工作,他们不能只为所有函数添加额外的参数。 这就是你必须明确指定要处理的纹理单元的原因。

暂无
暂无

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

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