bevy/crates/bevy_mikktspace
Zachary Harrold 45e2398b51
Upgrade to Glam 0.29.3 and Simplify Feature Gating (#18638)
# Objective

- Fixes #18397
- Supersedes #18474
- Simplifies 0.16 migration

## Solution

- Upgrade to Glam 0.29.3, which has backported the `nostd-libm` feature.
- Expose a similar feature in `bevy_math` and enable it in
`bevy_internal`, allowing `bevy_math`, `bevy_input`, and
`bevy_transform` to be unconditional dependencies again.

## Testing

- CI

---

## Notes

- This includes `libm` as a dependency, but this was already the case in
the common scenario where `rand` or many other features were enabled.
Considering `libm` is an official Rust crate, it's a very low-risk
dependency to unconditionally include.
- For users who do not want `libm` included, simply import Bevy's
subcrates directly, since `bevy_math/nostd-libm` will not be enabled.
- I know we are _very_ late in the RC cycle for 0.16, but this has a
substantial impact on the usability of `bevy` that I consider worth
including.
2025-03-31 18:54:46 +00:00
..
examples Add print_stdout and print_stderr lints (#17446) (#18233) 2025-03-11 19:35:48 +00:00
src Fix mikkitspace typos (#18218) 2025-03-10 21:53:00 +00:00
tests Upgrade to Rust Edition 2024 (#17967) 2025-02-24 03:54:47 +00:00
Cargo.toml Upgrade to Glam 0.29.3 and Simplify Feature Gating (#18638) 2025-03-31 18:54:46 +00:00
LICENSE-APACHE
LICENSE-MIT
README.md Fix mikkitspace typos (#18218) 2025-03-10 21:53:00 +00:00

Bevy Mikktspace

License Crates.io Downloads Docs Discord

This is a fork of https://github.com/gltf-rs/mikktspace, which in turn is a port of the Mikkelsen Tangent Space Algorithm reference implementation to Rust. It has been forked for use in the bevy game engine to be able to update math crate dependencies in lock-step with bevy releases. It is vendored in the bevy repository itself as crates/bevy_mikktspace.

Port of the Mikkelsen Tangent Space Algorithm reference implementation.

Requires at least Rust 1.76.0.

Examples

generate

Demonstrates generating tangents for a cube with 4 triangular faces per side.

cargo run --example generate

License agreement

Licensed under either of

at your option. AND parts of the code are licensed under:

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.