此着色器中的“uniform SamplerXX iChannel0..3”是什么?

use*_*536 5 opengl-es glsl

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

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

我想知道什么:

uniform samplerXX iChannel0..3; 
Run Code Online (Sandbox Code Playgroud)

是?

我试图查看顶点着色器,但我没有在那里找到任何东西。

另外,如何将音频波转换为纹理?(这里正在进行)

dat*_*olf 3

我想知道什么是统一的samplerXX iChannel0..3; 是?

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

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

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

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