我们的音乐可视化工具,Vibralizer,今天在Steam EAItch上发布了,我想分享一下我骄傲的技术。

我和我的合作伙伴一年多前开始构建一个音乐可视化工具作为一个副业项目,一旦我们有了超过几个场景(我们称之为“Vibes”),我们就意识到用户需要一个导航它们的方式。我们的第一个想法是创建一个更典型的屏幕空间画布,带有滚动视图和每个场景的缩略图或翻书精灵。但是,我们很快就沉迷于一个玻璃球的隐喻,各个场景就像可以跳入的小球世界(我们还计划实现由Cocoon灵感的过渡效果)。

我们希望玻璃球感觉很重和物理——一些你想收集的东西——我意识到我们可以通过利用两个关键约束来进行一些很酷的阴影着色:

  1. 玻璃球是球形的,可以被概括为球形。
  2. 玻璃球位于平面表面。

这意味着我们可以利用游戏开发中的老技巧:胶囊阴影!这就是通过将圆投影到四边形上的一种方式来实现的,正如马里奥64中马里奥的阴影那样(只是一个缩放和淡入淡出的精灵)。但在我们的案例中,我们会用更温暖的阴影来着色四边形。同时,我还添加了来自玻璃球本身的颜色,根据玻璃球的厚度调整了光泽强度,并最终将低分辨率的立方体反射投影到表面,模拟了球形玻璃如何作为透镜,将其周围的环境投影到表面(我们有一个真实的玻璃球作为参考,并注意到这种现象)。然后,阴影的方向拉伸由场景中的方向光驱动。

这并不像物理准确或进行任何形式的光传输模拟那样,但作为一种样式化的方法,我真的很享受它。