如何实现Terraria / Starbound 2d照明?

时间:2015-07-31 01:20:57

标签: unity3d 2d

我正在以Terraria / Starbound为视角进行2D比赛。我希望照明看起来像这样:enter image description here

我试图通过在游戏中的所有精灵上添加一个材质然后给它们一个精灵漫反射着色器来获得这样的光照。然后,无论我需要光线,我都会点亮。虽然有两个问题:1)在光线最强的地方,它会消耗雪碧的颜色并使其变亮。 2)我注意到一个很大的FPS下降(我只有1点光!)。

有没有办法在不必编写自己的照明引擎的情况下实现这样的照明?我搜索了资产商店,并且我已经搜索过,看看团结是否有办法从这个角度处理2D照明,但我什么都没发现。

如果我必须编写自己的照明引擎,对于那些相对较新的团结并且只有约8个月经验的人来说,那会复杂吗?

1 个答案:

答案 0 :(得分:1)

假设您正在使用平铺地图。

你需要有一个视野地图,可以通过阅读这个来实现:http://www.redblobgames.com/articles/visibility/

使用此类地图,您可以准确了解每个图块的颜色着色。现在,只需将颜色与地图上每个图块的SpriteRenderer混合即可。

有人已经创建了一个视线插件: http://forum.unity3d.com/threads/light-of-sight-2d-dynamic-lighting-open-source.295968/