mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-06 20:02:16 +00:00
8e6a107f6e
* Lists many PRs add to: no written lengths, one file per theme (#7747) * xtask lists: the fixed-table allowlist in order, each with its own reason * Lists: the wide-character blocks and the drawing scale presets as slices too (#7747) * Lists: the drawing units test reads UNITS as a slice (#7747)
293 lines
10 KiB
Rust
293 lines
10 KiB
Rust
//! Original starter visual data, MIT OR Apache-2.0. No external material library.
|
|
use crate::appearance_pack::{Category, GlassBoundary, GlassRecipe, OpaqueRecipe, TextureAxis, TextureRecipe, VisualPreset};
|
|
|
|
const WOOD: &str = "Uniform opaque preview only; grain resources/mapping are not applied";
|
|
const SOLAR: &str = "Uniform opaque preview only; no cell grid, busbars, electricity or efficiency claim";
|
|
const REGOLITH: &str = "Uniform opaque preview only; no granular displacement or measured lunar optical data";
|
|
const OPAQUE: &str = "Illustrative opaque isotropic PBR; no measured alloy, polymer or engineering properties";
|
|
|
|
const fn look(color: [u8; 3], metallic: f64, roughness: f64, dielectric_ior: f64) -> OpaqueRecipe {
|
|
OpaqueRecipe { color, metallic, roughness, dielectric_ior }
|
|
}
|
|
const fn maps(id: &'static str, repeat_mm: [f64; 2], grain: bool) -> Option<TextureRecipe> {
|
|
Some(TextureRecipe { id, repeat_mm, grain_axis: if grain { Some(TextureAxis::V) } else { None } })
|
|
}
|
|
const fn glass(transmission_linear_rgb: [f64; 3], ior: f64, reference_path_mm: f64, boundary: GlassBoundary) -> GlassRecipe {
|
|
GlassRecipe { transmission_linear_rgb, dielectric_ior: ior, reference_path_mm, boundary }
|
|
}
|
|
|
|
pub const STARTER_PACK: &[VisualPreset] = &[
|
|
VisualPreset::opaque(
|
|
"starter.wood.oak-honey",
|
|
"Wood - Honey Oak Uniform Preview",
|
|
Category::Wood,
|
|
look([190, 145, 88], 0.0, 0.64, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.oak-honey.maps-v1", [120.0, 240.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.oak-smoked",
|
|
"Wood - Smoked Oak Uniform Preview",
|
|
Category::Wood,
|
|
look([91, 72, 55], 0.0, 0.68, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.oak-smoked.maps-v1", [120.0, 240.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.walnut-dark",
|
|
"Wood - Dark Walnut Uniform Preview",
|
|
Category::Wood,
|
|
look([99, 66, 43], 0.0, 0.60, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.walnut-dark.maps-v1", [100.0, 220.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.maple-light",
|
|
"Wood - Light Maple Uniform Preview",
|
|
Category::Wood,
|
|
look([221, 192, 141], 0.0, 0.57, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.maple-light.maps-v1", [100.0, 200.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.cherry-warm",
|
|
"Wood - Warm Cherry Uniform Preview",
|
|
Category::Wood,
|
|
look([164, 99, 65], 0.0, 0.58, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.cherry-warm.maps-v1", [110.0, 220.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.ash-pale",
|
|
"Wood - Pale Ash Uniform Preview",
|
|
Category::Wood,
|
|
look([209, 186, 146], 0.0, 0.70, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.ash-pale.maps-v1", [120.0, 260.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.birch-cream",
|
|
"Wood - Cream Birch Uniform Preview",
|
|
Category::Wood,
|
|
look([228, 206, 163], 0.0, 0.63, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.birch-cream.maps-v1", [100.0, 200.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.wood.teak-golden",
|
|
"Wood - Golden Teak Uniform Preview",
|
|
Category::Wood,
|
|
look([167, 122, 66], 0.0, 0.61, 1.5),
|
|
WOOD,
|
|
maps("starter.wood.teak-golden.maps-v1", [110.0, 250.0], true),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.carbon-steel-polished",
|
|
"Metal - Polished Carbon Steel",
|
|
Category::Metal,
|
|
look([161, 166, 173], 1.0, 0.16, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.stainless-soft-satin",
|
|
"Metal - Soft Satin Stainless",
|
|
Category::Metal,
|
|
look([187, 193, 201], 1.0, 0.36, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.aluminum-bead-blast",
|
|
"Metal - Bead Blast Aluminum",
|
|
Category::Metal,
|
|
look([195, 201, 210], 1.0, 0.58, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.aluminum-silver-polish",
|
|
"Metal - Silver Polish Aluminum",
|
|
Category::Metal,
|
|
look([218, 224, 232], 1.0, 0.13, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.copper-aged-warm",
|
|
"Metal - Warm Aged Copper",
|
|
Category::Metal,
|
|
look([171, 95, 57], 1.0, 0.48, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.brass-champagne",
|
|
"Metal - Champagne Satin Brass",
|
|
Category::Metal,
|
|
look([205, 173, 102], 1.0, 0.32, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.bronze-dark-cast",
|
|
"Metal - Dark Cast Bronze",
|
|
Category::Metal,
|
|
look([133, 95, 58], 1.0, 0.66, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.titanium-matte",
|
|
"Metal - Matte Gray Titanium",
|
|
Category::Metal,
|
|
look([147, 149, 157], 1.0, 0.53, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.gold-warm",
|
|
"Metal - Warm Reflective Gold",
|
|
Category::Metal,
|
|
look([235, 190, 82], 1.0, 0.18, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.metal.silver-cool",
|
|
"Metal - Cool Reflective Silver",
|
|
Category::Metal,
|
|
look([225, 230, 237], 1.0, 0.12, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.abs-charcoal",
|
|
"Plastic - Charcoal ABS",
|
|
Category::Plastic,
|
|
look([43, 45, 48], 0.0, 0.44, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.abs-warm-white",
|
|
"Plastic - Warm White ABS",
|
|
Category::Plastic,
|
|
look([232, 229, 220], 0.0, 0.40, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque("starter.plastic.pla-coral", "Plastic - Coral PLA", Category::Plastic, look([218, 99, 83], 0.0, 0.43, 1.5), OPAQUE, None),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.petg-cyan-opaque",
|
|
"Plastic - Opaque Cyan PETG",
|
|
Category::Plastic,
|
|
look([36, 148, 167], 0.0, 0.29, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.nylon-ivory",
|
|
"Plastic - Ivory Nylon",
|
|
Category::Plastic,
|
|
look([220, 213, 190], 0.0, 0.62, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.pc-graphite-opaque",
|
|
"Plastic - Opaque Graphite PC",
|
|
Category::Plastic,
|
|
look([70, 76, 84], 0.0, 0.27, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.hdpe-natural-opaque",
|
|
"Plastic - Opaque Natural HDPE",
|
|
Category::Plastic,
|
|
look([221, 222, 207], 0.0, 0.48, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque("starter.plastic.pom-black", "Plastic - Black POM", Category::Plastic, look([29, 31, 35], 0.0, 0.32, 1.5), OPAQUE, None),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.tpu-matte-black",
|
|
"Plastic - Matte Black TPU",
|
|
Category::Plastic,
|
|
look([31, 30, 32], 0.0, 0.83, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.plastic.peek-amber-opaque",
|
|
"Plastic - Opaque Amber PEEK",
|
|
Category::Plastic,
|
|
look([157, 119, 62], 0.0, 0.51, 1.5),
|
|
OPAQUE,
|
|
None,
|
|
),
|
|
VisualPreset::glass(
|
|
"starter.glass.clear-soda-lime",
|
|
"Glass Recipe - Clear Soda Lime",
|
|
glass([0.92, 0.98, 0.96], 1.52, 3.0, GlassBoundary::Closed),
|
|
),
|
|
VisualPreset::glass("starter.glass.low-iron-clear", "Glass Recipe - Low Iron Clear", glass([0.98, 0.99, 1.0], 1.50, 4.0, GlassBoundary::Closed)),
|
|
VisualPreset::glass("starter.glass.smoky-neutral", "Glass Recipe - Smoky Neutral", glass([0.35, 0.38, 0.42], 1.52, 3.0, GlassBoundary::Closed)),
|
|
VisualPreset::glass("starter.glass.amber-tint", "Glass Recipe - Amber Tint", glass([0.84, 0.38, 0.08], 1.51, 3.0, GlassBoundary::Closed)),
|
|
VisualPreset::glass("starter.glass.cobalt-blue", "Glass Recipe - Cobalt Blue", glass([0.06, 0.14, 0.76], 1.53, 3.0, GlassBoundary::Closed)),
|
|
VisualPreset::glass(
|
|
"starter.glass.thin-clear",
|
|
"Glass Recipe - Thin Clear Sheet",
|
|
glass([0.95, 0.98, 0.99], 1.50, 2.0, GlassBoundary::Thin { thickness_mm: 2.0 }),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.solar.mono-blue",
|
|
"Solar Panel - Mono Blue Uniform Preview",
|
|
Category::Solar,
|
|
look([20, 41, 85], 0.0, 0.20, 1.5),
|
|
SOLAR,
|
|
maps("starter.solar.mono-blue.maps-v1", [160.0, 160.0], false),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.solar.thin-film-dark",
|
|
"Solar Panel - Dark Thin Film Uniform Preview",
|
|
Category::Solar,
|
|
look([28, 33, 42], 0.0, 0.28, 1.5),
|
|
SOLAR,
|
|
maps("starter.solar.thin-film-dark.maps-v1", [100.0, 200.0], false),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.regolith.mare-charcoal",
|
|
"Regolith - Mare Charcoal Uniform Preview",
|
|
Category::Regolith,
|
|
look([56, 56, 55], 0.0, 0.97, 1.5),
|
|
REGOLITH,
|
|
maps("starter.regolith.mare-charcoal.maps-v1", [200.0, 200.0], false),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.regolith.highland-pale",
|
|
"Regolith - Highland Pale Uniform Preview",
|
|
Category::Regolith,
|
|
look([116, 113, 106], 0.0, 0.93, 1.5),
|
|
REGOLITH,
|
|
maps("starter.regolith.highland-pale.maps-v1", [200.0, 200.0], false),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.regolith.dust-neutral",
|
|
"Regolith - Neutral Dust Uniform Preview",
|
|
Category::Regolith,
|
|
look([86, 85, 81], 0.0, 1.0, 1.5),
|
|
REGOLITH,
|
|
maps("starter.regolith.dust-neutral.maps-v1", [150.0, 150.0], false),
|
|
),
|
|
VisualPreset::opaque(
|
|
"starter.regolith.agglutinate-dark",
|
|
"Regolith - Dark Agglutinate Uniform Preview",
|
|
Category::Regolith,
|
|
look([66, 63, 60], 0.0, 0.89, 1.5),
|
|
REGOLITH,
|
|
maps("starter.regolith.agglutinate-dark.maps-v1", [200.0, 200.0], false),
|
|
),
|
|
];
|