[英]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_TEXTURE0
和glActiveTexture
什么?
我的代码可以正常工作吗?
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.