这个着色器中的“uniform samplerXX iChannel0..3”是什么?

时间:2014-01-24 05:34:47

标签: opengl glsl shader

我碰巧在着色器玩具上看到了这个着色器。

https://www.shadertoy.com/view/ldf3W8

我想知道:

uniform samplerXX iChannel0..3; 

我试着看一下顶点着色器,但我找不到任何东西。

另外,我如何将音频波转换为纹理? (这是在这里完成的)

1 个答案:

答案 0 :(得分:2)

  

我想知道什么是均匀的samplerXX iChannel0..3;是

制服是外部设置的变量,它们在基元绘制期间对着色器的调用具有相同的值(为基元组成的每个顶点调用顶点着色器,每个片段的片段着色器(大致转换为像素)绘制由原始人。)

采样器是OpenGL将纹理单元绑定到着色器的方法。在实际的OpenGL程序中,您使用glGenTexturesglActiveTextureglBindTextureglTexImage(以及其他一些函数,但这些是重要函数)加载纹理并将使用glActiveTexture选择的纹理单元绑定到采样器制服。

  

另外,我如何将音频波转换为纹理?

纹理只是插值查找表。您可以将任何您喜欢的数据放入LUT中。大多数情况下,纹理用于图像数据,但您也可以将PCM样本放入其中。因此,您只需从音频API中获取PCM数据,并将其作为数据传递给纹理。