如何创建 OpenGL 移动抽象颜色膨胀
我正在考虑 Winamp 视觉插件的简单版本。我有一个益智游戏,我真的很喜欢一些简单的颜色膨胀(想象一片平静的各种颜色的海洋)。我不知道该怎么做,但我觉得如果我有一个起点,我就能到达我需要去的地方。
有什么建议吗?我有音乐和键盘输入,我打算将其用作更改生成器。
I'm thinking of a simple version of Winamp's visual plugins. I have a puzzle game and I would really like some simple color swells (picture a calm ocean of various colors). I have NO idea how to do this, but I feel like if I have a starting point I can get to where I need to be.
Any suggestions? I have both music and keyboard input which I intend to use as change-generators.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议编写一个片段着色器,它使用组合一些不同频率、相移和颜色的正弦波(即以不同方式组合 x 和 y 以及时间,将它们混合在一起,你应该得到一些东西)。
为了使颜色与音乐相对应,请尝试过滤掉一些频段,将每个频段的强度连接到上面的颜色波,并随着时间的推移对每个频段的强度进行一些过滤。 (即,峰值频率提供高输出,但在 0.2-5 秒内缓慢降低。)
I'd suggest to write a fragment shader that uses combines some sine waves of different frequency, phase shifts and color (i.e. combine x and y and time in different ways, mash them together and you should get something).
To get the colors to correspond to the music, try filtering out some frequency bands, connect the intensity of each bands to the color waves above and use some filtering over time on the intensity for each band. (i.e. so that a peaking frequency gives a high output that degrades slowly over 0.2-5 seconds.)