#bevy #screen #lighting #space #bevy-plugin #2d #2d-game

bevy_2d_screen_space_lightmaps

Bevy引擎制作的2D游戏光照插件。此插件使用屏幕空间光照贴图技术

3个不稳定版本

0.14.0 2024年7月4日
0.13.1 2024年4月25日
0.13.0 2024年2月20日

#457 in 游戏开发

Download history 106/week @ 2024-04-23 2/week @ 2024-04-30 1/week @ 2024-06-18 7/week @ 2024-06-25 120/week @ 2024-07-02 6/week @ 2024-07-09

173 monthly downloads

自定义许可

32KB
422 代码行

Bevy的2D屏幕空间光照贴图

屏幕空间光照贴图是2D中最简单的光照技术之一。尽管简单,但它可以很好地适用于某些类型的2D游戏。

此库为Bevy引擎提供了此技术的实现。该库作为Bevy插件制作。

有关此技术的更多详细信息,请参阅此处:https://slembcke.github.io/2D-Lighting-Overview

示例代码的截图

sample_screenshot

技术细节

插件使用三个相机

  1. 一个用于渲染正常精灵。
  2. 一个用于渲染光照贴图。
  3. 一个用于最终图像。

前两个相机渲染到纹理。这两个纹理然后进行乘法混合,并用作填充整个屏幕空间的矩形的材质。这个矩形由第三个相机渲染到屏幕上。

要使用此插件,您只需要

  1. 将所有正常精灵附加到CAMERA_LAYER_SPRITE渲染层。
  2. 将您的光照精灵附加到CAMERA_LAYER_LIGHT渲染层。

请注意,设置在光照相机上的清除颜色决定了场景中的环境光水平。该插件提供了一个资源 LightmapPluginSettings,您可以使用它来更改环境光设置、精灵相机上的清除颜色以及光晕强度。

有关详细信息,请参阅examples/moving_truck.rs中的示例代码。
请注意,在示例中您可以使用鼠标滚轮进行缩放。
要运行示例,请使用:cargo run --example moving_truck

Bevy兼容性

Bevy bevy_2d_screen_space_lightmaps
0.14.x 0.14.0
0.13.x 0.13.1
0.13.0 0.13.0

致谢

部分代码借鉴自https://github.com/zaycev/bevy-magic-light-2d

示例使用了由beeler、Gif和Icons8制作的某些资源。

依赖关系

~40–77MB
~1.5M SLoC