将音频频谱作为libGDX中的纹理传递到着色器

问题描述 投票:2回答:1

我正在使用libGDX开发音频可视化器。

我想将音频频谱数据(包含音频样本的FFT的数组)传递给我从Shadertoyhttps://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)

我正在使用libGDX开发音频可视化器。我想将音频频谱数据(包含音频样本的FFT的数组)传递给我从Shadertoy获取的着色器:https://www.shadertoy.com / ...

kotlin libgdx glsl shader
1个回答
0
投票

您可以简单地使用drawPixel方法并将数据存储在每个像素的第一个通道中,就像在阴影示例中一样(它们使用红色通道)。

© www.soinside.com 2019 - 2024. All rights reserved.