【问题标题】:What's the relationship between uniform sampler2D and GL_TEXTURE[NUM] and glGenTexture?uniform sampler2D和GL_TEXTURE[NUM]和glGenTexture有什么关系?
【发布时间】:2026-01-14 08:35:01
【问题描述】:

例如,如果我想使用 glGenTexture 生成 3 个纹理,并且我的 glsl 文件中有 3 个统一的 sampler2D 变量,如何将这 3 个纹理按特定顺序绑定到这 3 个统一变量?

【问题讨论】:

  • 这个问题不是完全重复的,但在精神上与*.com/q/27261380/3530129 相似。我在那里写了一个答案,详细解释了纹理、纹理单元、采样器变量的概念以及它们是如何连接的。

标签: opengl textures glsl


【解决方案1】:

有纹理(把它们想象成溢出像素的“墨盒”。

它们是纹理单元,可以将它们想象成可以插入纹理盒的插槽。

有些采样器有点像可以连接到纹理单元的小软管。


使用glActiveTexture 选择要与以下命令一起使用的纹理单元。通过调用glBindTexture 将“纹理墨盒”插入设备。通过将采样器 uniform 的数值设置为纹理单元的数量,您可以将其连接到该纹理单元以从中获取其像素。

【讨论】: