将音频频谱作为libGDX中的纹理传递到着色器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将音频频谱作为libGDX中的纹理传递到着色器相关的知识,希望对你有一定的参考价值。
我正在使用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)
我正在使用libGDX开发音频可视化器。我想将音频频谱数据(包含音频样本的FFT的数组)传递给我从Shadertoy获取的着色器:https://www.shadertoy.com / ...
答案
您可以简单地使用drawPixel
方法并将数据存储在每个像素的第一个通道中,就像在阴影示例中一样(它们使用红色通道)。
以上是关于将音频频谱作为libGDX中的纹理传递到着色器的主要内容,如果未能解决你的问题,请参考以下文章