Skip to content

scenix v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 May 10:03
· 13 commits to main since this release
c7b7e5c

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