载入中...
搜索中...
未找到
CaveMeshRecipe.cpp
浏览该文件的文档.
16 ParamDescriptor::choice("genesis", "Cave Genesis", "epigene", {"epigene", "hypogene", "mixed"}));
18 cave.params.push_back(ParamDescriptor::floating("width", "World Width", 30.f, 1.f, 1000.f, 0.5f));
19 cave.params.push_back(ParamDescriptor::floating("height", "World Height", 12.f, 1.f, 1000.f, 0.5f));
20 cave.params.push_back(ParamDescriptor::floating("depth", "World Depth", 24.f, 1.f, 1000.f, 0.5f));
23 cave.params.push_back(ParamDescriptor::floating("tunnelRadius", "Tunnel Radius", 0.16f, 0.04f, 0.4f, 0.01f));
24 cave.params.push_back(ParamDescriptor::floating("chamberScale", "Chamber Scale", 1.f, 0.35f, 2.5f, 0.05f));
30 ParamDescriptor::floating("chamberIrregularity", "Chamber Low-frequency Relief", 0.f, 0.f, 1.f, 0.01f));
31 cave.params.push_back(ParamDescriptor::floating("roughness", "Wall Roughness", 0.12f, 0.f, 0.45f, 0.01f));
33 ParamDescriptor::floating("multiscaleRoughness", "Multi-scale Wall Relief", 0.f, 0.f, 1.f, 0.01f));
34 cave.params.push_back(ParamDescriptor::floating("erosion", "Karst Erosion", 0.55f, 0.f, 1.f, 0.01f));
35 cave.params.push_back(ParamDescriptor::floating("bedding", "Bedding Dissolution", 0.6f, 0.f, 1.f, 0.01f));
38 cave.params.push_back(ParamDescriptor::floating("vadoseIncision", "Stream Incision", 0.35f, 0.f, 1.f, 0.01f));
40 ParamDescriptor::floating("waterTableCorrosion", "Water-table Corrosion", 0.f, 0.f, 1.f, 0.01f));
41 cave.params.push_back(ParamDescriptor::floating("scallopErosion", "Flow Scallops", 0.45f, 0.f, 1.f, 0.01f));
42 cave.params.push_back(ParamDescriptor::floating("scallopScale", "Scallop Scale", 0.12f, 0.04f, 0.32f, 0.01f));
44 ParamDescriptor::floating("scallopHydraulicScaling", "Flow-scaled Scallops", 0.f, 0.f, 1.f, 0.01f));
46 ParamDescriptor::floating("scallopScaleVariability", "Scallop Scale Variability", 0.f, 0.f, 1.f, 0.01f));
48 ParamDescriptor::floating("scallopFlowSeparation", "Scallop Flow Separation", 0.f, 0.f, 1.f, 0.01f));
50 ParamDescriptor::floating("scallopFlowHistory", "Multi-stage Scallop Overprint", 0.f, 0.f, 1.f, 0.01f));
51 cave.params.push_back(ParamDescriptor::floating("hydraulicErosion", "Hydraulic Erosion", 0.f, 0.f, 1.f, 0.01f));
53 ParamDescriptor::floating("mixingCorrosion", "Confluence Mixing Corrosion", 0.f, 0.f, 1.f, 0.01f));
55 ParamDescriptor::floating("lithologicHeterogeneity", "Lithologic Selective Erosion", 0.f, 0.f, 1.f, 0.01f));
57 ParamDescriptor::floating("floodAbrasion", "Sediment-laden Flood Abrasion", 0.f, 0.f, 1.f, 0.01f));
59 ParamDescriptor::floating("floodPlucking", "Fracture-controlled Flood Plucking", 0.f, 0.f, 1.f, 0.01f));
61 ParamDescriptor::floating("constrictionScour", "Constriction Pool Scour", 0.f, 0.f, 1.f, 0.01f));
62 cave.params.push_back(ParamDescriptor::floating("knickpointErosion", "Knickpoint Erosion", 0.f, 0.f, 1.f, 0.01f));
63 cave.params.push_back(ParamDescriptor::floating("streamBedKarren", "Stream-bed Karren", 0.f, 0.f, 1.f, 0.01f));
64 cave.params.push_back(ParamDescriptor::floating("eddyPotholes", "Eddy Potholes", 0.f, 0.f, 1.f, 0.01f));
65 cave.params.push_back(ParamDescriptor::floating("potholeGravelSize", "Pothole Gravel Size", 0.5f, 0.f, 1.f, 0.01f));
66 cave.params.push_back(ParamDescriptor::floating("breakdownScour", "Breakdown-block Scour", 0.f, 0.f, 1.f, 0.01f));
68 cave.params.push_back(ParamDescriptor::floating("dripstoneScale", "Dripstone Scale", 0.7f, 0.25f, 1.5f, 0.05f));
71 cave.params.push_back(ParamDescriptor::floating("normalSmoothing", "Normal Smoothing", 0.78f, 0.f, 1.f, 0.01f));
74 cave.params.push_back(ParamDescriptor::floating("flowstoneScale", "Flowstone Scale", 0.75f, 0.25f, 1.5f, 0.05f));
75 cave.params.push_back(ParamDescriptor::integer("surfaceRefinement", "Surface Refinement", 0, 0, 2));
77 ParamDescriptor::floating("refinementThreshold", "Refinement Error", 0.0015f, 0.0001f, 0.02f, 0.0001f));
86 advanced(ParamDescriptor::floating("waterTableLevel", "Highest Water-table Level", 0.18f, -0.8f, 0.8f, 0.01f));
88 advanced(ParamDescriptor::floating("waterTableDrop", "Water-table Stage Drop", 0.18f, 0.05f, 0.5f, 0.01f));
89 advanced(ParamDescriptor::floating("waterTableFluctuation", "Water-table Fluctuation", 0.35f, 0.f, 1.f, 0.01f));
91 ParamDescriptor::floating("fractureApertureVariability", "Joint Aperture Variability", 0.f, 0.f, 1.f, 0.01f));
93 ParamDescriptor::floating("fractureStressControl", "Stress-controlled Joint Branching", 0.f, 0.f, 1.f, 0.01f));
95 ParamDescriptor::floating("fractureFlowFeedback", "Aperture-flow Joint Channelization", 0.f, 0.f, 1.f, 0.01f));
96 advanced(ParamDescriptor::floating("hydraulicGradient", "Hydraulic Gradient", 0.35f, 0.01f, 2.f, 0.01f));
99 advanced(ParamDescriptor::floating("damkohler", "Effective Damkohler", 0.002f, 0.00005f, 0.05f, 0.00005f));
100 advanced(ParamDescriptor::floating("transportG", "Transverse Transport G", 1.f, 0.1f, 5.f, 0.1f));
101 advanced(ParamDescriptor::floating("sedimentLoad", "Flood Sediment Load", 0.55f, 0.f, 1.f, 0.01f));
102 advanced(ParamDescriptor::floating("pluckingBlockScale", "Plucked Block Scale", 0.1f, 0.04f, 0.2f, 0.01f));
103 advanced(ParamDescriptor::floating("microstructure", "Rock Microstructure", 0.f, 0.f, 1.f, 0.01f));
104 advanced(ParamDescriptor::floating("roughnessFlowCoupling", "Rough-wall Mass Transfer", 0.f, 0.f, 1.f, 0.01f));
105 advanced(ParamDescriptor::floating("surfaceSlopeReactivity", "Geometry-controlled Surface Reactivity", 0.f, 0.f,
107 advanced(ParamDescriptor::floating("reactivePatchiness", "Correlated Reactive Patches", 0.f, 0.f, 1.f, 0.01f));
108 advanced(ParamDescriptor::floating("condensationCorrosion", "Condensation Corrosion", 0.f, 0.f, 1.f, 0.01f));
109 advanced(ParamDescriptor::floating("biogenicCorrosion", "Biogenic Corrosion", 0.f, 0.f, 1.f, 0.01f));
110 advanced(ParamDescriptor::floating("mineralArmoring", "Secondary-mineral Armoring", 0.f, 0.f, 1.f, 0.01f));
111 advanced(ParamDescriptor::floating("condensationFaceting", "Condensation Faceting", 0.f, 0.f, 1.f, 0.01f));
112 advanced(ParamDescriptor::floating("differentialVeinErosion", "Differential Vein Erosion", 0.f, 0.f, 1.f, 0.01f));
115 advanced(ParamDescriptor::floating("sedimentDeposition", "Sediment Deposition", 0.f, 0.f, 1.f, 0.01f));
116 advanced(ParamDescriptor::floating("paragenesis", "Sediment-driven Paragenesis", 0.f, 0.f, 1.f, 0.01f));
118 advanced(ParamDescriptor::floating("microporosityAccess", "Accessible Microporosity", 0.55f, 0.f, 1.f, 0.01f));
119 advanced(ParamDescriptor::floating("permeabilityContrast", "Permeability Contrast", 0.65f, 0.f, 1.f, 0.01f));
void registerRecipe(const std::string &id, MeshRecipeFn fn)
Register a recipe without metadata.
Definition MarchingCubes.cpp:456
Definition EvpackPointGraphLoader.h:12
void registerCaveMeshRecipe(MeshRecipeRegistry ®istry)
Register the deterministic three-dimensional limestone cave recipe.
Definition CaveMeshRecipe.cpp:10
UI-independent metadata for one procedural recipe parameter.
Definition ParamSchema.h:14
static ParamDescriptor choice(std::string key, std::string label, std::string defaultValue, std::vector< std::string > choices)
Construct a finite-choice string descriptor.
Definition ParamSchema.cpp:65
static ParamDescriptor floating(std::string key, std::string label, float defaultValue, float minimum, float maximum, float step)
Construct a bounded floating-point descriptor.
Definition ParamSchema.cpp:33
static ParamDescriptor integer(std::string key, std::string label, int defaultValue, int minimum, int maximum, int step=1)
Construct a bounded integer descriptor.
Definition ParamSchema.cpp:19
Complete metadata and parameter schema shared by every procgen recipe family.
Definition ParamSchema.h:52
std::vector< ParamDescriptor > params
Definition ParamSchema.h:56