3个不稳定版本
0.14.0 | 2024年7月4日 |
---|---|
0.13.1 | 2024年4月25日 |
0.13.0 | 2024年2月20日 |
#457 in 游戏开发
173 monthly downloads
32KB
422 代码行
Bevy的2D屏幕空间光照贴图
屏幕空间光照贴图是2D中最简单的光照技术之一。尽管简单,但它可以很好地适用于某些类型的2D游戏。
此库为Bevy引擎提供了此技术的实现。该库作为Bevy插件制作。
有关此技术的更多详细信息,请参阅此处:https://slembcke.github.io/2D-Lighting-Overview
示例代码的截图
技术细节
插件使用三个相机
- 一个用于渲染正常精灵。
- 一个用于渲染光照贴图。
- 一个用于最终图像。
前两个相机渲染到纹理。这两个纹理然后进行乘法混合,并用作填充整个屏幕空间的矩形的材质。这个矩形由第三个相机渲染到屏幕上。
要使用此插件,您只需要
- 将所有正常精灵附加到CAMERA_LAYER_SPRITE渲染层。
- 将您的光照精灵附加到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