4e3e038c80
Every block the mesher draws asked the model catalog for its models: a BTreeMap lookup of the state, a Vec of the chosen variants, then for each variant a clone of its model name and a string-keyed BTreeMap lookup of the baked model, collected into a second Vec. On generated terrain that was a fifth of the mesher's time. The catalog now resolves each variant to its baked model's index once, at load (CompiledChoices maps its variants), keeps states in a Vec by id, and the mesher reuses one list of models for every block of a section. The random draws are the same calls in the same order (CompiledChoices::for_each is the old collect), so the same models are chosen. examples/chunk_load_bench.rs generates and lights real terrain with the vanilla generator and meshes it on one thread, with a checksum of the meshes: identical meshes, 45.8 -> 35.4 us per section on the Mac mini. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>