scenix v0.4.0
Install
[dependencies]
scenix = "0.4.0"
Highlights
- New
scenix-material crate with the Material trait, compact PipelineKey, alpha modes, PBR, physical, toon, line, points, and custom WGSL shader materials.
- New
scenix-light crate with ambient, directional, point, spot, hemisphere, and area lights.
- Validated
ShadowConfig and texture-free LightProbe projection from raw cube-face or equirectangular linear RGB samples.
- The facade crate now enables the
material and light features by default alongside scene and mesh.
Crates published to crates.io
| Crate |
Version |
Description |
scenix-math |
0.4.0 |
Custom no_std 3D math primitives |
scenix-core |
0.4.0 |
Shared IDs, colors, errors, and traits |
scenix-input |
0.4.0 |
Platform-agnostic input state types |
scenix-scene |
0.4.0 |
GPU-free scene graph and traversal APIs |
scenix-mesh |
0.4.0 |
CPU-side geometry, primitive generation, instancing, and batching |
scenix-material |
0.4.0 |
GPU-free material descriptions and pipeline keys |
scenix-light |
0.4.0 |
GPU-free lights, shadow configuration, and light probes |
scenix |
0.4.0 |
Facade crate for scenix Materials and Lights APIs |
Materials and lights example
use scenix::{Color, DirectionalLight, Material, PbrMaterial, ShadowConfig, Vec3};
let material = PbrMaterial::new()
.albedo(Color::from_hex(0xCC_88_44).to_linear())
.metallic_roughness(0.0, 0.55);
let sun = DirectionalLight::new(Vec3::new(-1.0, -2.0, -1.0), Color::WHITE, 3.0)
.shadow(ShadowConfig::default());
assert!(!material.is_transparent());
assert!(sun.shadow.unwrap().validate().is_ok());
Verification
cargo test --workspace --all-features
cargo test -p scenix-math -p scenix-core -p scenix-input -p scenix-scene -p scenix-mesh -p scenix-material -p scenix-light --no-default-features
cargo clippy --workspace --all-features -- -D warnings
cargo fmt --check
cargo doc --workspace --all-features --no-deps
cargo publish --dry-run for every crate before publish