【发布时间】:2018-03-14 22:09:16
【问题描述】:
我有一张包含很多精灵的地图。我可以使用漫反射阴影向精灵添加材质,而不是添加大量灯光。但这不会给我想要的结果。而且性能很重。
示例
在第一张图片中,您可以看到光是由手电筒产生的。它通过“开放空间”最大限度地扩展其光线,并很快被街区阻挡。
这是顶层的一个很好的例子。我们可以看到某种二维定向光吗?请注意,房屋内的照明再次由手电筒产生。右侧的洞穴展示了如何处理光线的更好示例。另外,请注意背景中的洞,这会在洞穴中产生一些额外的光线。好像光线真的透过那里的背景照耀着一样。
我有什么
您可以在这里清楚地看到问题所在。灯光增加了它们的强度。出于某种原因,光线会在某些瓷砖周围形成方形边缘。此外,大量灯光会很快导致性能问题。
光线投射?
我读到您可以以某种方式使用光线投射?以“开放空间”为目标?我完全没有使用着色器或游戏照明的经验。我很想得到一个关于如何实现这种泰拉瑞亚/星界灯光效果的解释清楚的答案。这并不意味着我说光线投射是解决方案。
我的世界
在 Minecraft 中,光可以传播一定数量的空气块。它逐渐消失到完全黑暗。在图形设置中,您可以启用Smooth Lightning,这将(显然)平滑块上的闪电。
我猜这是用着色器完成的,但我不确定。我的猜测是这对性能很重要。但我正在考虑空气块(它们是游戏对象),也许我的逻辑有误。
注意:我喜欢有帮助的答案,但请提供一个包含详细解释的链接。或者在您的答案中提供带有源代码或 Unity 文档链接的解释。我不希望看到理论得到解决。我很想知道如何在 Unity 中实现这种照明。
我还想知道是否可以不使用 Unity Marketplace 中的包。
类似,但不好
查看类似的帖子,其中包含涵盖光线投射基础知识的文章链接。但没有解释如何在 Unity 中实现这一点,而不是我想要实现的 Terraria/Starbound 效果:
Make pixel lighting like terraria and starbound
How to achieve Terraria/Starbound 2d lighting?
视频展示
例如,观看此视频,了解 Starbound 中 2d 光的工作原理:
https://www.youtube.com/watch?v=F5d-USf69SU
我知道这有点高级,但玩家的闪光灯产生的点光也会被方块挡住,让空地通过。
其他帮助论坛
也是我发的。
Gamedev 交流: https://gamedev.stackexchange.com/questions/155440/unity-2d-shader-lighting-like-terraria-or-starbound
团结论坛: https://answers.unity.com/questions/1480518/2d-shader-lighting-like-terraria-or-starbound.html
【问题讨论】:
-
写得很好的问题,但我觉得它可能更适合 gamedev.stackexchange 而不是 Stack Overflow
-
@Bejasc 我自己也在问这个问题。而且我觉得 stackoverflow 有一个全能的程序员社区,可能能够解决这个问题。我可能也会在 Unity 论坛上发布它,并提供我的问题与链接。
-
请注意,不鼓励在 StackExchange 站点上进行交叉发布。我同意 Bejasc 的观点,这个问题可能会在 GameDev.StackExchange 上得到更好的答案,但如果你保持这个版本,我将不得不在那里关闭它。
-
@DMGregory 你认为它会在 gamedev 上更快地得到更好的答案吗?
-
更快,很难说。这取决于我们的交通量和人们的空闲时间。
标签: c# unity3d 2d shader light