大家好,

经过大约八个月的开发,我发布了 OptikaFX 2D,这是一个用于 Unity 制作的 2D 游戏的照明和阴影系统。最初,我是为俯视角 RPG 和农场模拟游戏构建它的。

我开始做这个是因为 Unity 自带的 Shadow Caster 2D 无法完全满足我的需求。最大的问题是,在模拟阳光时,阴影行为不够理想,而且会避免在整个屏幕上拉伸。

所以我最终自己编写了 HLSL 着色器,并尝试了不同的方法来处理这些情况。

以下是我成功实现的一些主要功能:

墙壁弯曲阴影

2D 精灵的阴影在碰到墙壁或其他结构时可以弯曲并垂直投射。这使得它们在带有建筑物和障碍物的俯视角场景中看起来更自然。

基于时间轴的昼夜循环

光照强度、颜色、方向和动态阴影都可以通过自定义时间轴系统进行动画处理。随着太阳移动和光照变化,阴影会自动更新。

360° 精灵旋转和动画灯光

角色可以围绕光源移动,同时其阴影会根据位置实时更新。例如,一个坐在篝火旁的角色在移动时,可以投射出不同的阴影。

我的主要目标是创建一个灵活、可定制且注重性能的系统,适用于具有多个动态灯光和移动角色的场景。

如果您想体验实际效果,这里有一个可玩的演示:
https://optikafx.itch.io/optikafx-2d

我也很乐意回答您关于构建过程的任何问题。

感谢您的关注!