Godot Light2D作为区域光而不是点?

Posted

技术标签:

【中文标题】Godot Light2D作为区域光而不是点?【英文标题】:Godot Light2D as an area light instead of point? 【发布时间】:2021-03-11 11:03:31 【问题描述】:

我注意到所有 Light2D 节点都是从一个点发出的,即使所使用的图像是宽而实心的。有没有办法让精灵的整个区域发出光,而不仅仅是从一个点发出?

当我有“日光”时,我希望它能够均匀地照亮整个关卡。或者,如果我有一个大聚光灯,我希望它感觉像一个巨大的光束,而不是一个点。

谢谢!

【问题讨论】:

【参考方案1】:

当我有“日光”时,我希望它能够均匀地照亮整个关卡。

最好使用自定义着色器或 CanvasModulate 节点来模拟 2D 中的定向照明,而不是使用 Light2D。也就是说,直到 Godot 4.0 以built-in support for 2D directioal lights 发布。

或者,如果我有一个大聚光灯,我希望它感觉像一个巨大的光束,而不是一个点。

与 3D 灯光不同,2D 灯光不区分泛光灯和聚光灯。使用看起来像聚光灯(从上方看)的纹理,例如 45 度角的“圆锥”。

【讨论】:

我认为 4.0 定向灯最接近我所寻找的。​​span> 在 light2d 中使用不同的纹理不会改变它的起始点。无论质地如何,它总是从一个点发出。我的纹理可能是纯白色的,如果发射点位于具有法线贴图的对象的右上角,它只会照亮右侧。我正在寻找的是一个散发区域,而不是一个点。 恐怕不支持区域灯。支持它们的计算成本通常很高,尤其是在 3D 中。

以上是关于Godot Light2D作为区域光而不是点?的主要内容,如果未能解决你的问题,请参考以下文章

Godot C# 在后台运行

Godot:检测按下的鼠标是不是在按钮上方

Godot Tapping 游戏建议

如何将信号参数作为 int 而不是字符串发出?

Godot Engine可以用python语言开发吗

确定一个点是不是在一个区域内