gpt4 book ai didi

c# - Unity - 2D 着色器/光照,如 Terraria 或 Starbound

转载 作者:太空狗 更新时间:2023-10-29 20:38:18 27 4
gpt4 key购买 nike

我有一张包含很多 Sprite 的 map 。我可以向具有漫反射阴影的 Sprite 添加 Material ,而不是添加大量灯光。但这不会给我想要的结果。并且性能很重。


例子

在第一张图片中,您可以看到光是由手电筒产生的。它通过“开放空间”以最佳方式扩展光线,并且很快就会被 block 挡住。

enter image description here


这是顶层的一个很好的例子。我们可以看到某种二维定向光吗?请注意,屋内的照明再次由手电筒产生。右侧的洞穴更好地展示了光的处理方式。另外,请注意背景中的洞,这会在洞穴中产生一些额外的光线。就好像灯光真的透过背景照在那里。

enter image description here


我有什么

你可以清楚地看到这里的问题。灯光会增加它们的强度。由于某种原因,光线在一些瓷砖周围形成了方形边缘。此外,大量的灯光会很快导致性能问题。

enter image description here


光线转换?

我读到您可以以某种方式使用光线转换?瞄准“开放空间”之类的?我对着色器或游戏中的照明完全没有经验。我想要一个关于如何实现这种 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 挡住,并被开放空间让通过。


其他帮助论坛

也是我发的。

游戏开发交流: https://gamedev.stackexchange.com/questions/155440/unity-2d-shader-lighting-like-terraria-or-starbound

Unity 论坛: https://answers.unity.com/questions/1480518/2d-shader-lighting-like-terraria-or-starbound.html


最佳答案

为了统一,我可以提及关于 2d 动态光照的 2 个主要元素。

  1. unity essentials 中用于 2d 光照的主要资源之一是 DDL light ,附官方教程here .
  2. 最重要的是,Unity 本身正在开发动态光照系统,目前处于测试阶段(针对 2019.2)。 Unity 引入了用于 2d 灯的轻量级 RP 包 here并且有一个教程 here .

关于c# - Unity - 2D 着色器/光照,如 Terraria 或 Starbound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49288411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com