【发布时间】:2020-01-02 01:28:14
【问题描述】:
我正在使用 libGDX 开发音频可视化工具。
我想将音频频谱数据(包含音频样本的 FFT 的数组)传递给我从 Shadertoy 获取的着色器:https://www.shadertoy.com/view/ttfGzH。
在 GLSL 代码中,我希望制服包含作为纹理的数据:
uniform sampler2D iChannel0;
问题是我不知道如何将任意数组作为纹理传递给 libGDX 中的着色器。
我已经在 SO 和 libGDX 的论坛中进行了搜索,但我的问题没有令人满意的答案。
这是我的 Kotlin 代码(显然不起作用 xD):
val p = Pixmap(512, 1, Pixmap.Format.Alpha)
val t = Texture(p)
val map = p.pixels
map.putFloat(....) // fill the map with FFT data
[...]
t.bind(0)
shader.setUniformi("iChannel0", 0)
【问题讨论】:
-
如果在将数据加载到
Pixmap后创建Texture会怎样? -
@Genhis 没什么兄弟 :(
-
你应该在设置制服之前调用 shader.begin()。