我有一张包含很多 Sprite 的 map 。我可以向具有漫反射阴影的 Sprite 添加 Material ,而不是添加大量灯光。但这不会给我想要的结果。并且性能很重。
例子
在第一张图片中,您可以看到光是由手电筒产生的。它通过“开放空间”以最佳方式扩展光线,并且很快就会被 block 挡住。
这是顶层的一个很好的例子。我们可以看到某种二维定向光吗?请注意,屋内的照明再次由手电筒产生。右侧的洞穴更好地展示了光的处理方式。另外,请注意背景中的洞,这会在洞穴中产生一些额外的光线。就好像灯光真的透过背景照在那里。
我有什么
你可以清楚地看到这里的问题。灯光会增加它们的强度。由于某种原因,光线在一些瓷砖周围形成了方形边缘。此外,大量的灯光会很快导致性能问题。
光线转换?
我读到您可以以某种方式使用光线转换?瞄准“开放空间”之类的?我对着色器或游戏中的照明完全没有经验。我想要一个关于如何实现这种 Terraria/Starbound 照明效果的解释清楚的答案。这并不意味着我说光线转换是解决方案。
我的世界
在 Minecraft 中,光可以传播一定数量的空气 block 。它逐渐消失到完全黑暗。在图形设置中,您可以启用平滑闪电
,这将(显然)平 slider 上的闪电。
我想这是用着色器完成的,但我不确定。我的猜测是这很重性能。但我在考虑空气 block (它们是游戏对象),也许我的逻辑有误。
注意:我喜欢有帮助的答案,但请提供包含详细解释的链接。或者在您的回答中提供源代码解释或指向 Unity 文档的链接。我不希望看到理论成立之类的。我很想知道如何在 Unity 中实现这种光照。
我还想知道是否可以不使用来自 Unity Marketplace 的包。
类似,但不好
查看类似的帖子,其中包含指向涵盖光线转换基础知识的文章的链接。但没有解释如何在 Unity 中实现这一点,而不是我想要实现的 Terraria/Starbound 效果:
Make pixel lighting like terraria and starbound
How to achieve Terraria/Starbound 2d lighting?
视频印象
例如,观看此视频,了解 2d 光在 Starbound 中的工作原理:
https://www.youtube.com/watch?v=F5d-USf69SU
我知道这有点高级,但玩家闪光灯产生的点光也会被方 block 挡住,并被开放空间让通过。
其他帮助论坛
也是我发的。
Unity 论坛: https://answers.unity.com/questions/1480518/2d-shader-lighting-like-terraria-or-starbound.html
最佳答案
为了统一,我可以提及关于 2d 动态光照的 2 个主要元素。
关于c# - Unity - 2D 着色器/光照,如 Terraria 或 Starbound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49288411/