Skip to content

Commit db782db

Browse files
committed
v0.18.0
1 parent ea57ad2 commit db782db

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
44
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
55

6-
## Unreleased
6+
## [0.18.0] 2026-02-01
77

88
_This version is compatible with Bevy 0.18_
99

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
[![Crate](https://img.shields.io/crates/v/bevy_hanabi.svg)](https://crates.io/crates/bevy_hanabi)
66
[![Build Status](https://github.com/djeedai/bevy_hanabi/actions/workflows/ci.yaml/badge.svg)](https://github.com/djeedai/bevy_hanabi/actions/workflows/ci.yaml)
77
[![Coverage Status](https://coveralls.io/repos/github/djeedai/bevy_hanabi/badge.svg?branch=main)](https://coveralls.io/github/djeedai/bevy_hanabi?branch=main)
8-
[![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-v0.17-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)
8+
[![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-v0.18-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)
99

1010
🎆 Hanabi — a GPU particle system for the Bevy game engine.
1111

12-
![firework](https://raw.githubusercontent.com/djeedai/bevy_hanabi/f1878586b57129ea4d53fa89c7c7a5ef579d8924/examples/firework.gif)
12+
![firework](https://raw.githubusercontent.com/djeedai/bevy_hanabi/ea57ad23be55a098b9d9446425f1909a8e88f6fc/examples/firework.gif)
1313

1414
## Overview
1515

1616
The Hanabi particle system is a modern GPU-based particle system for the Bevy game engine. It focuses on scale to produce stunning visual effects (VFX) in real time, offloading most of the work to the GPU, with minimal CPU intervention. The design is inspired by modern particle systems found in other industry-leading game engines.
1717

1818
🚧 _This project is under heavy development, and is currently lacking both features and performance / usability polish. However, for moderate-size effects, it can already be used in your project. Feedback and contributions on both design and features are very much welcome._
1919

20-
🎆 Hanabi makes heavy use of compute shaders to offload work to the GPU in a performant way. Support for compute shaders on the `wasm` target (WebAssembly) is available as of v0.13 (Bevy 0.14), and only through WebGPU. See the [WebAssembly support](https://github.com/djeedai/bevy_hanabi/blob/f1878586b57129ea4d53fa89c7c7a5ef579d8924/docs/wasm.md) documentation for details.
20+
🎆 Hanabi makes heavy use of compute shaders to offload work to the GPU in a performant way. Support for compute shaders on the `wasm` target (WebAssembly) is available as of v0.13 (Bevy 0.14), and only through WebGPU. See the [WebAssembly support](https://github.com/djeedai/bevy_hanabi/blob/ea57ad23be55a098b9d9446425f1909a8e88f6fc/docs/wasm.md) documentation for details.
2121

2222
## Usage
2323

@@ -29,7 +29,7 @@ Add the `bevy_hanabi` dependency to `Cargo.toml`:
2929

3030
```toml
3131
[dependencies]
32-
bevy_hanabi = "0.17"
32+
bevy_hanabi = "0.18"
3333
```
3434

3535
See also [Features](#features) below for the list of supported features.
@@ -124,9 +124,9 @@ commands.spawn((
124124

125125
## Examples
126126

127-
See the [`examples/`](https://github.com/djeedai/bevy_hanabi/tree/f1878586b57129ea4d53fa89c7c7a5ef579d8924/examples) folder.
127+
See the [`examples/`](https://github.com/djeedai/bevy_hanabi/tree/ea57ad23be55a098b9d9446425f1909a8e88f6fc/examples) folder.
128128

129-
A web demo (using the WebAssembly target) showing all examples is availabe in the [`examples/wasm/`](https://github.com/djeedai/bevy_hanabi/tree/f1878586b57129ea4d53fa89c7c7a5ef579d8924/examples/wasm) folder. You can open `index.html` in any browser to see a GIF of all the examples. Running the actual WebAssembly example however requires serving the files with an HTTP server. If you have NodeJS installed, you can do that for example by running `npx http-server examples/wasm`.
129+
A web demo (using the WebAssembly target) showing all examples is availabe in the [`examples/wasm/`](https://github.com/djeedai/bevy_hanabi/tree/ea57ad23be55a098b9d9446425f1909a8e88f6fc/examples/wasm) folder. You can open `index.html` in any browser to see a GIF of all the examples. Running the actual WebAssembly example however requires serving the files with an HTTP server. If you have NodeJS installed, you can do that for example by running `npx http-server examples/wasm`.
130130

131131
Note for Linux users: The examples build with the `bevy/x11` feature by default to enable support for the X11 display server. If you want to use the Wayland display server instead, add the `bevy/wayland` feature.
132132

@@ -188,8 +188,8 @@ This list contains the major fixed features provided by 🎆 Hanabi. Beyond that
188188
- [x] Trails / Ribbons
189189
- [x] Camera support
190190
- [x] Render layers
191-
- [x] 2D cameras ([`Camera2d`](https://docs.rs/bevy/0.17.2/bevy/core_pipeline/core_2d/struct.Camera2d.html)) only
192-
- [x] 3D cameras ([`Camera3d`](https://docs.rs/bevy/0.17.2/bevy/core_pipeline/core_3d/struct.Camera3d.html)) only
191+
- [x] 2D cameras ([`Camera2d`](https://docs.rs/bevy/0.18/bevy/core_pipeline/core_2d/struct.Camera2d.html)) only
192+
- [x] 3D cameras ([`Camera3d`](https://docs.rs/bevy/0.18/bevy/core_pipeline/core_3d/struct.Camera3d.html)) only
193193
- [x] Simultaneous dual 2D/3D cameras
194194
- [x] Multiple viewports (split screen)
195195
- [x] HDR camera and bloom
@@ -211,16 +211,16 @@ This list contains the major fixed features provided by 🎆 Hanabi. Beyond that
211211

212212
| Feature | Default | Description |
213213
|---|:-:|---|
214-
| `2d` || Enable rendering through 2D cameras ([`Camera2d`](https://docs.rs/bevy/0.17.2/bevy/core_pipeline/core_2d/struct.Camera2d.html)) |
215-
| `3d` || Enable rendering through 3D cameras ([`Camera3d`](https://docs.rs/bevy/0.17.2/bevy/core_pipeline/core_3d/struct.Camera3d.html)) |
214+
| `2d` || Enable rendering through 2D cameras ([`Camera2d`](https://docs.rs/bevy/0.18/bevy/core_pipeline/core_2d/struct.Camera2d.html)) |
215+
| `3d` || Enable rendering through 3D cameras ([`Camera3d`](https://docs.rs/bevy/0.18/bevy/core_pipeline/core_3d/struct.Camera3d.html)) |
216216
| `serde`* || Use `serde` to derive `Serialization` and `Deserialization` on asset-related types. |
217217

218218
(*) `serde` is not compatible with WASM (due to the `typetag` dependency not being available on `wasm` without extra setup).
219219

220220
For optimization purpose, users of a single type of camera can disable the other type by skipping default features in their `Cargo.toml`. For example to use only the 3D mode:
221221

222222
```toml
223-
bevy_hanabi = { version = "0.17", default-features = false, features = [ "3d", "serde" ] }
223+
bevy_hanabi = { version = "0.18", default-features = false, features = [ "3d", "serde" ] }
224224
```
225225

226226
## Compatible Bevy versions
@@ -231,6 +231,7 @@ Compatibility of `bevy_hanabi` versions:
231231

232232
| `bevy_hanabi` | `bevy` |
233233
| :-- | :-- |
234+
| `0.18` | `0.18` |
234235
| `0.17` | `0.17` |
235236
| `0.16` | `0.16` |
236237
| `0.14`-`0.15` | `0.15` |

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
//!
4141
//! ```toml
4242
//! # Example: enable only 3D integration
43-
//! bevy_hanabi = { version = "0.17", default-features = false, features = ["3d"] }
43+
//! bevy_hanabi = { version = "0.18", default-features = false, features = ["3d"] }
4444
//! ```
4545
//!
4646
//! # Example

src/render/sort.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,13 @@ impl SortBindGroups {
216216
sort_fill_bind_group_layout_descs: default(),
217217
sort_fill_bind_groups: default(),
218218
sort_bind_group_layout_desc,
219-
sort_bind_group: None, // created once the pipeline and its bind group layouts are created by the pipeline cache
219+
// This bind group is created later, once the pipeline and its bind group layouts are
220+
// created by the pipeline cache. Technically we could create the bind group layout
221+
// immediately because the PipelineCache pretends to but actually creates them
222+
// on-the-fly in get_bind_group_layout(), but this is brittle as any behavior change
223+
// would break Hanabi. Instead we create this bind group alongside all others, which is
224+
// more consistent too.
225+
sort_bind_group: None,
220226
sort_copy_bind_group_layout_desc,
221227
sort_pipeline_id,
222228
sort_copy_pipeline_id,

0 commit comments

Comments
 (0)