Skip to main content

scenix_material/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2
3//! GPU-free material descriptions for scenix.
4//!
5//! This crate defines renderer-agnostic materials and compact pipeline keys.
6//! It intentionally has no `wgpu` dependency; GPU upload and bind-group logic
7//! live in the renderer milestone.
8
9extern crate alloc;
10
11pub mod depth;
12#[cfg(feature = "inspector")]
13mod inspector;
14pub mod lambert;
15pub mod line;
16pub mod normal;
17pub mod pbr;
18pub mod physical;
19pub mod points;
20pub mod shader;
21pub mod toon;
22mod traits;
23pub mod unlit;
24pub mod wireframe;
25
26pub use depth::DepthMaterial;
27pub use lambert::LambertMaterial;
28pub use line::LineMaterial;
29pub use normal::NormalMaterial;
30pub use pbr::PbrMaterial;
31pub use physical::PhysicalMaterial;
32pub use points::PointsMaterial;
33pub use shader::ShaderMaterial;
34pub use toon::ToonMaterial;
35pub use traits::{
36    AlphaMode, FEATURE_ALBEDO_TEXTURE, FEATURE_CLEARCOAT, FEATURE_CUSTOM_TEXTURES, FEATURE_DASHED,
37    FEATURE_DOUBLE_SIDED, FEATURE_EMISSIVE_TEXTURE, FEATURE_FLAT_SHADING, FEATURE_GRADIENT_TEXTURE,
38    FEATURE_IRIDESCENCE, FEATURE_METALLIC_ROUGHNESS_TEXTURE, FEATURE_NORMAL_TEXTURE,
39    FEATURE_OCCLUSION_TEXTURE, FEATURE_OUTLINE, FEATURE_SHEEN, FEATURE_SIZE_ATTENUATION,
40    FEATURE_TRANSMISSION, FEATURE_VERTEX_COLORS, FEATURE_WIREFRAME, FEATURE_WORLD_SPACE, Material,
41    PipelineAlphaMode, PipelineKey, ShaderKind,
42};
43pub use unlit::UnlitMaterial;
44pub use wireframe::WireframeMaterial;