glActiveTexture显然不能用opengl查询采样器制服和纹理单元之间的对应关系,我找不到关于如何找到哪个纹理单元映射到哪个采样器制服的好文档。这是我能够找到的:
gl_TEXTURE0例如,如果顶点着色器定义:
uniform sampler2D color;
Run Code Online (Sandbox Code Playgroud)
片段着色器定义:
uniform sampler2D tex;
uniform sampler2D norm;
Run Code Online (Sandbox Code Playgroud)
然后color被映射到gl_TEXTURE0,tex被映射到gl_TEXTURE1,然后norm被映射到gl_TEXTURE2。但是如果顶点着色器定义为:
uniform sampler2D norm;
Run Code Online (Sandbox Code Playgroud)
然后不清楚如何映射不同的纹理。由于具有布局限定符或单独的着色器阶段的可能性,这也变得更加复杂。
我似乎无法在任何地方找到有关此的文档。我所知道的一切要么来自我自己的实验,要么来自 Stackoverflow 或 OpenGL 论坛上的答案。有没有人知道在所有可能的情况下如何工作的一套全面的规则,或者查询采样器对应的纹理单元的方法?