|
|
@@ -13,14 +13,14 @@ namespace Game::Map {
|
|
|
enum class TerrainType { Flat, Hill, Mountain, River };
|
|
|
|
|
|
enum class GroundType {
|
|
|
- ForestMud, // Default: Deep green + mud ground (current style)
|
|
|
- GrassDry, // Dry Mediterranean Grass
|
|
|
- SoilRocky, // Light-Brown Rocky Soil
|
|
|
- AlpineMix, // Alpine Rock + Snow Mix
|
|
|
- SoilFertile // Dark Fertile Farmland Soil
|
|
|
+ ForestMud,
|
|
|
+ GrassDry,
|
|
|
+ SoilRocky,
|
|
|
+ AlpineMix,
|
|
|
+ SoilFertile
|
|
|
};
|
|
|
|
|
|
-inline auto groundTypeToQString(GroundType type) -> QString {
|
|
|
+inline auto ground_type_to_qstring(GroundType type) -> QString {
|
|
|
switch (type) {
|
|
|
case GroundType::ForestMud:
|
|
|
return QStringLiteral("forest_mud");
|
|
|
@@ -36,11 +36,12 @@ inline auto groundTypeToQString(GroundType type) -> QString {
|
|
|
return QStringLiteral("forest_mud");
|
|
|
}
|
|
|
|
|
|
-inline auto groundTypeToString(GroundType type) -> std::string {
|
|
|
- return groundTypeToQString(type).toStdString();
|
|
|
+inline auto ground_type_to_string(GroundType type) -> std::string {
|
|
|
+ return ground_type_to_qstring(type).toStdString();
|
|
|
}
|
|
|
|
|
|
-inline auto tryParseGroundType(const QString &value, GroundType &out) -> bool {
|
|
|
+inline auto try_parse_ground_type(const QString &value,
|
|
|
+ GroundType &out) -> bool {
|
|
|
const QString lowered = value.trimmed().toLower();
|
|
|
if (lowered == QStringLiteral("forest_mud")) {
|
|
|
out = GroundType::ForestMud;
|
|
|
@@ -66,9 +67,9 @@ inline auto tryParseGroundType(const QString &value, GroundType &out) -> bool {
|
|
|
}
|
|
|
|
|
|
inline auto
|
|
|
-groundTypeFromString(const std::string &str) -> std::optional<GroundType> {
|
|
|
+ground_type_from_string(const std::string &str) -> std::optional<GroundType> {
|
|
|
GroundType result;
|
|
|
- if (tryParseGroundType(QString::fromStdString(str), result)) {
|
|
|
+ if (try_parse_ground_type(QString::fromStdString(str), result)) {
|
|
|
return result;
|
|
|
}
|
|
|
return std::nullopt;
|
|
|
@@ -124,268 +125,262 @@ terrainTypeFromString(const std::string &str) -> std::optional<TerrainType> {
|
|
|
}
|
|
|
|
|
|
struct BiomeSettings {
|
|
|
- GroundType groundType = GroundType::ForestMud;
|
|
|
- QVector3D grassPrimary{0.30F, 0.60F, 0.28F};
|
|
|
- QVector3D grassSecondary{0.44F, 0.70F, 0.32F};
|
|
|
- QVector3D grassDry{0.72F, 0.66F, 0.48F};
|
|
|
- QVector3D soilColor{0.28F, 0.24F, 0.18F};
|
|
|
- QVector3D rockLow{0.48F, 0.46F, 0.44F};
|
|
|
- QVector3D rockHigh{0.68F, 0.69F, 0.73F};
|
|
|
- float patchDensity = 4.5F;
|
|
|
- float patchJitter = 0.95F;
|
|
|
- float backgroundBladeDensity = 0.65F;
|
|
|
- float bladeHeightMin = 0.55F;
|
|
|
- float bladeHeightMax = 1.35F;
|
|
|
- float bladeWidthMin = 0.025F;
|
|
|
- float bladeWidthMax = 0.055F;
|
|
|
+ GroundType ground_type = GroundType::ForestMud;
|
|
|
+ QVector3D grass_primary{0.30F, 0.60F, 0.28F};
|
|
|
+ QVector3D grass_secondary{0.44F, 0.70F, 0.32F};
|
|
|
+ QVector3D grass_dry{0.72F, 0.66F, 0.48F};
|
|
|
+ QVector3D soil_color{0.28F, 0.24F, 0.18F};
|
|
|
+ QVector3D rock_low{0.48F, 0.46F, 0.44F};
|
|
|
+ QVector3D rock_high{0.68F, 0.69F, 0.73F};
|
|
|
+ float patch_density = 4.5F;
|
|
|
+ float patch_jitter = 0.95F;
|
|
|
+ float background_blade_density = 0.65F;
|
|
|
+ float blade_height_min = 0.55F;
|
|
|
+ float blade_height_max = 1.35F;
|
|
|
+ float blade_width_min = 0.025F;
|
|
|
+ float blade_width_max = 0.055F;
|
|
|
float sway_strength = 0.25F;
|
|
|
float sway_speed = 1.4F;
|
|
|
- float heightNoiseAmplitude = 0.16F;
|
|
|
- float heightNoiseFrequency = 0.05F;
|
|
|
- float terrainMacroNoiseScale = 0.035F;
|
|
|
- float terrainDetailNoiseScale = 0.14F;
|
|
|
- float terrainSoilHeight = 0.6F;
|
|
|
- float terrainSoilSharpness = 3.8F;
|
|
|
- float terrainRockThreshold = 0.42F;
|
|
|
- float terrainRockSharpness = 3.1F;
|
|
|
- float terrainAmbientBoost = 1.08F;
|
|
|
- float terrainRockDetailStrength = 0.35F;
|
|
|
- float backgroundSwayVariance = 0.2F;
|
|
|
- float backgroundScatterRadius = 0.35F;
|
|
|
+ float height_noise_amplitude = 0.16F;
|
|
|
+ float height_noise_frequency = 0.05F;
|
|
|
+ float terrain_macro_noise_scale = 0.035F;
|
|
|
+ float terrain_detail_noise_scale = 0.14F;
|
|
|
+ float terrain_soil_height = 0.6F;
|
|
|
+ float terrain_soil_sharpness = 3.8F;
|
|
|
+ float terrain_rock_threshold = 0.42F;
|
|
|
+ float terrain_rock_sharpness = 3.1F;
|
|
|
+ float terrain_ambient_boost = 1.08F;
|
|
|
+ float terrain_rock_detail_strength = 0.35F;
|
|
|
+ float background_sway_variance = 0.2F;
|
|
|
+ float background_scatter_radius = 0.35F;
|
|
|
float plant_density = 0.5F;
|
|
|
- float spawnEdgePadding = 0.08F;
|
|
|
+ float spawn_edge_padding = 0.08F;
|
|
|
std::uint32_t seed = 1337U;
|
|
|
- bool groundIrregularityEnabled = true;
|
|
|
- float irregularityScale = 0.15F;
|
|
|
- float irregularityAmplitude = 0.08F;
|
|
|
-
|
|
|
- // Ground-type-specific shader parameters
|
|
|
- float snowCoverage = 0.0F; // 0-1: snow accumulation (alpine_mix)
|
|
|
- float moistureLevel = 0.5F; // 0-1: wetness/dryness (affects soil/grass)
|
|
|
- float crackIntensity = 0.0F; // 0-1: ground cracking (grass_dry)
|
|
|
- float rockExposure = 0.3F; // 0-1: how much rock shows through (soil_rocky)
|
|
|
- float grassSaturation = 1.0F; // 0-1.5: grass color intensity
|
|
|
- float soilRoughness = 0.5F; // 0-1: soil texture roughness
|
|
|
- QVector3D snowColor{0.92F, 0.94F, 0.98F}; // Snow tint color (alpine_mix)
|
|
|
+ bool ground_irregularity_enabled = true;
|
|
|
+ float irregularity_scale = 0.15F;
|
|
|
+ float irregularity_amplitude = 0.08F;
|
|
|
+
|
|
|
+ float snow_coverage = 0.0F;
|
|
|
+ float moisture_level = 0.5F;
|
|
|
+ float crack_intensity = 0.0F;
|
|
|
+ float rock_exposure = 0.3F;
|
|
|
+ float grass_saturation = 1.0F;
|
|
|
+ float soil_roughness = 0.5F;
|
|
|
+ QVector3D snow_color{0.92F, 0.94F, 0.98F};
|
|
|
};
|
|
|
|
|
|
-inline void applyGroundTypeDefaults(BiomeSettings &settings,
|
|
|
- GroundType groundType) {
|
|
|
- settings.groundType = groundType;
|
|
|
- switch (groundType) {
|
|
|
+inline void apply_ground_type_defaults(BiomeSettings &settings,
|
|
|
+ GroundType ground_type) {
|
|
|
+ settings.ground_type = ground_type;
|
|
|
+ switch (ground_type) {
|
|
|
case GroundType::ForestMud:
|
|
|
- // Default: Deep green + mud ground (current style)
|
|
|
- // Lush vegetation with wet, muddy soil in shaded forest areas
|
|
|
- settings.grassPrimary = QVector3D(0.30F, 0.60F, 0.28F);
|
|
|
- settings.grassSecondary = QVector3D(0.44F, 0.70F, 0.32F);
|
|
|
- settings.grassDry = QVector3D(0.72F, 0.66F, 0.48F);
|
|
|
- settings.soilColor = QVector3D(0.28F, 0.24F, 0.18F);
|
|
|
- settings.rockLow = QVector3D(0.48F, 0.46F, 0.44F);
|
|
|
- settings.rockHigh = QVector3D(0.68F, 0.69F, 0.73F);
|
|
|
- settings.terrainAmbientBoost = 1.08F;
|
|
|
- settings.terrainRockDetailStrength = 0.35F;
|
|
|
- // Grass/vegetation properties - tall lush grass
|
|
|
- settings.patchDensity = 4.5F;
|
|
|
- settings.patchJitter = 0.95F;
|
|
|
- settings.backgroundBladeDensity = 0.70F;
|
|
|
- settings.bladeHeightMin = 0.60F;
|
|
|
- settings.bladeHeightMax = 1.40F;
|
|
|
- settings.bladeWidthMin = 0.028F;
|
|
|
- settings.bladeWidthMax = 0.058F;
|
|
|
+
|
|
|
+ settings.grass_primary = QVector3D(0.30F, 0.60F, 0.28F);
|
|
|
+ settings.grass_secondary = QVector3D(0.44F, 0.70F, 0.32F);
|
|
|
+ settings.grass_dry = QVector3D(0.72F, 0.66F, 0.48F);
|
|
|
+ settings.soil_color = QVector3D(0.28F, 0.24F, 0.18F);
|
|
|
+ settings.rock_low = QVector3D(0.48F, 0.46F, 0.44F);
|
|
|
+ settings.rock_high = QVector3D(0.68F, 0.69F, 0.73F);
|
|
|
+ settings.terrain_ambient_boost = 1.08F;
|
|
|
+ settings.terrain_rock_detail_strength = 0.35F;
|
|
|
+
|
|
|
+ settings.patch_density = 4.5F;
|
|
|
+ settings.patch_jitter = 0.95F;
|
|
|
+ settings.background_blade_density = 0.70F;
|
|
|
+ settings.blade_height_min = 0.60F;
|
|
|
+ settings.blade_height_max = 1.40F;
|
|
|
+ settings.blade_width_min = 0.028F;
|
|
|
+ settings.blade_width_max = 0.058F;
|
|
|
settings.sway_strength = 0.28F;
|
|
|
settings.sway_speed = 1.3F;
|
|
|
- // Terrain noise - moderate variation with mud patches
|
|
|
- settings.terrainMacroNoiseScale = 0.035F;
|
|
|
- settings.terrainDetailNoiseScale = 0.14F;
|
|
|
- settings.terrainSoilHeight = 0.65F;
|
|
|
- settings.terrainSoilSharpness = 3.5F;
|
|
|
- settings.terrainRockThreshold = 0.48F;
|
|
|
- settings.terrainRockSharpness = 3.2F;
|
|
|
- // Ground irregularity - moderate for forest floor
|
|
|
- settings.groundIrregularityEnabled = true;
|
|
|
- settings.irregularityScale = 0.15F;
|
|
|
- settings.irregularityAmplitude = 0.09F;
|
|
|
+
|
|
|
+ settings.terrain_macro_noise_scale = 0.035F;
|
|
|
+ settings.terrain_detail_noise_scale = 0.14F;
|
|
|
+ settings.terrain_soil_height = 0.65F;
|
|
|
+ settings.terrain_soil_sharpness = 3.5F;
|
|
|
+ settings.terrain_rock_threshold = 0.48F;
|
|
|
+ settings.terrain_rock_sharpness = 3.2F;
|
|
|
+
|
|
|
+ settings.ground_irregularity_enabled = true;
|
|
|
+ settings.irregularity_scale = 0.15F;
|
|
|
+ settings.irregularity_amplitude = 0.09F;
|
|
|
settings.plant_density = 0.60F;
|
|
|
- // Ground-type-specific shader parameters - forest_mud
|
|
|
- settings.snowCoverage = 0.0F;
|
|
|
- settings.moistureLevel = 0.70F;
|
|
|
- settings.crackIntensity = 0.0F;
|
|
|
- settings.rockExposure = 0.25F;
|
|
|
- settings.grassSaturation = 1.05F;
|
|
|
- settings.soilRoughness = 0.55F;
|
|
|
- settings.snowColor = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
+
|
|
|
+ settings.snow_coverage = 0.0F;
|
|
|
+ settings.moisture_level = 0.70F;
|
|
|
+ settings.crack_intensity = 0.0F;
|
|
|
+ settings.rock_exposure = 0.25F;
|
|
|
+ settings.grass_saturation = 1.05F;
|
|
|
+ settings.soil_roughness = 0.55F;
|
|
|
+ settings.snow_color = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
break;
|
|
|
|
|
|
case GroundType::GrassDry:
|
|
|
- // Dry Mediterranean Grass
|
|
|
- // Sparse, yellowed grass with dusty exposed soil and cracked earth
|
|
|
- settings.grassPrimary = QVector3D(0.58F, 0.54F, 0.32F);
|
|
|
- settings.grassSecondary = QVector3D(0.65F, 0.60F, 0.38F);
|
|
|
- settings.grassDry = QVector3D(0.78F, 0.72F, 0.45F);
|
|
|
- settings.soilColor = QVector3D(0.52F, 0.44F, 0.32F);
|
|
|
- settings.rockLow = QVector3D(0.62F, 0.58F, 0.52F);
|
|
|
- settings.rockHigh = QVector3D(0.78F, 0.75F, 0.70F);
|
|
|
- settings.terrainAmbientBoost = 1.18F;
|
|
|
- settings.terrainRockDetailStrength = 0.28F;
|
|
|
- // Grass/vegetation properties - short sparse dry grass
|
|
|
- settings.patchDensity = 2.8F;
|
|
|
- settings.patchJitter = 0.75F;
|
|
|
- settings.backgroundBladeDensity = 0.35F;
|
|
|
- settings.bladeHeightMin = 0.35F;
|
|
|
- settings.bladeHeightMax = 0.80F;
|
|
|
- settings.bladeWidthMin = 0.018F;
|
|
|
- settings.bladeWidthMax = 0.038F;
|
|
|
+
|
|
|
+ settings.grass_primary = QVector3D(0.58F, 0.54F, 0.32F);
|
|
|
+ settings.grass_secondary = QVector3D(0.65F, 0.60F, 0.38F);
|
|
|
+ settings.grass_dry = QVector3D(0.78F, 0.72F, 0.45F);
|
|
|
+ settings.soil_color = QVector3D(0.52F, 0.44F, 0.32F);
|
|
|
+ settings.rock_low = QVector3D(0.62F, 0.58F, 0.52F);
|
|
|
+ settings.rock_high = QVector3D(0.78F, 0.75F, 0.70F);
|
|
|
+ settings.terrain_ambient_boost = 1.18F;
|
|
|
+ settings.terrain_rock_detail_strength = 0.28F;
|
|
|
+
|
|
|
+ settings.patch_density = 2.8F;
|
|
|
+ settings.patch_jitter = 0.75F;
|
|
|
+ settings.background_blade_density = 0.35F;
|
|
|
+ settings.blade_height_min = 0.35F;
|
|
|
+ settings.blade_height_max = 0.80F;
|
|
|
+ settings.blade_width_min = 0.018F;
|
|
|
+ settings.blade_width_max = 0.038F;
|
|
|
settings.sway_strength = 0.15F;
|
|
|
settings.sway_speed = 1.8F;
|
|
|
- // Terrain noise - less variation, more cracked appearance
|
|
|
- settings.terrainMacroNoiseScale = 0.028F;
|
|
|
- settings.terrainDetailNoiseScale = 0.22F;
|
|
|
- settings.terrainSoilHeight = 0.50F;
|
|
|
- settings.terrainSoilSharpness = 4.5F;
|
|
|
- settings.terrainRockThreshold = 0.38F;
|
|
|
- settings.terrainRockSharpness = 2.8F;
|
|
|
- // Ground irregularity - low for dry packed earth
|
|
|
- settings.groundIrregularityEnabled = true;
|
|
|
- settings.irregularityScale = 0.10F;
|
|
|
- settings.irregularityAmplitude = 0.04F;
|
|
|
+
|
|
|
+ settings.terrain_macro_noise_scale = 0.028F;
|
|
|
+ settings.terrain_detail_noise_scale = 0.22F;
|
|
|
+ settings.terrain_soil_height = 0.50F;
|
|
|
+ settings.terrain_soil_sharpness = 4.5F;
|
|
|
+ settings.terrain_rock_threshold = 0.38F;
|
|
|
+ settings.terrain_rock_sharpness = 2.8F;
|
|
|
+
|
|
|
+ settings.ground_irregularity_enabled = true;
|
|
|
+ settings.irregularity_scale = 0.10F;
|
|
|
+ settings.irregularity_amplitude = 0.04F;
|
|
|
settings.plant_density = 0.25F;
|
|
|
- // Ground-type-specific shader parameters - grass_dry
|
|
|
- settings.snowCoverage = 0.0F;
|
|
|
- settings.moistureLevel = 0.15F;
|
|
|
- settings.crackIntensity = 0.65F;
|
|
|
- settings.rockExposure = 0.35F;
|
|
|
- settings.grassSaturation = 0.75F;
|
|
|
- settings.soilRoughness = 0.72F;
|
|
|
- settings.snowColor = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
+
|
|
|
+ settings.snow_coverage = 0.0F;
|
|
|
+ settings.moisture_level = 0.15F;
|
|
|
+ settings.crack_intensity = 0.65F;
|
|
|
+ settings.rock_exposure = 0.35F;
|
|
|
+ settings.grass_saturation = 0.75F;
|
|
|
+ settings.soil_roughness = 0.72F;
|
|
|
+ settings.snow_color = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
break;
|
|
|
|
|
|
case GroundType::SoilRocky:
|
|
|
- // Light-Brown Rocky Soil
|
|
|
- // Exposed rocks with thin soil cover, mountain foothills aesthetic
|
|
|
- settings.grassPrimary = QVector3D(0.40F, 0.45F, 0.28F);
|
|
|
- settings.grassSecondary = QVector3D(0.48F, 0.52F, 0.32F);
|
|
|
- settings.grassDry = QVector3D(0.58F, 0.52F, 0.38F);
|
|
|
- settings.soilColor = QVector3D(0.55F, 0.48F, 0.38F);
|
|
|
- settings.rockLow = QVector3D(0.52F, 0.50F, 0.46F);
|
|
|
- settings.rockHigh = QVector3D(0.72F, 0.70F, 0.66F);
|
|
|
- settings.terrainAmbientBoost = 1.05F;
|
|
|
- settings.terrainRockDetailStrength = 0.65F;
|
|
|
- // Grass/vegetation properties - sparse clumps between rocks
|
|
|
- settings.patchDensity = 2.2F;
|
|
|
- settings.patchJitter = 0.60F;
|
|
|
- settings.backgroundBladeDensity = 0.28F;
|
|
|
- settings.bladeHeightMin = 0.30F;
|
|
|
- settings.bladeHeightMax = 0.70F;
|
|
|
- settings.bladeWidthMin = 0.020F;
|
|
|
- settings.bladeWidthMax = 0.040F;
|
|
|
+
|
|
|
+ settings.grass_primary = QVector3D(0.40F, 0.45F, 0.28F);
|
|
|
+ settings.grass_secondary = QVector3D(0.48F, 0.52F, 0.32F);
|
|
|
+ settings.grass_dry = QVector3D(0.58F, 0.52F, 0.38F);
|
|
|
+ settings.soil_color = QVector3D(0.55F, 0.48F, 0.38F);
|
|
|
+ settings.rock_low = QVector3D(0.52F, 0.50F, 0.46F);
|
|
|
+ settings.rock_high = QVector3D(0.72F, 0.70F, 0.66F);
|
|
|
+ settings.terrain_ambient_boost = 1.05F;
|
|
|
+ settings.terrain_rock_detail_strength = 0.65F;
|
|
|
+
|
|
|
+ settings.patch_density = 2.2F;
|
|
|
+ settings.patch_jitter = 0.60F;
|
|
|
+ settings.background_blade_density = 0.28F;
|
|
|
+ settings.blade_height_min = 0.30F;
|
|
|
+ settings.blade_height_max = 0.70F;
|
|
|
+ settings.blade_width_min = 0.020F;
|
|
|
+ settings.blade_width_max = 0.040F;
|
|
|
settings.sway_strength = 0.18F;
|
|
|
settings.sway_speed = 1.5F;
|
|
|
- // Terrain noise - high detail for rocky texture
|
|
|
- settings.terrainMacroNoiseScale = 0.055F;
|
|
|
- settings.terrainDetailNoiseScale = 0.28F;
|
|
|
- settings.terrainSoilHeight = 0.40F;
|
|
|
- settings.terrainSoilSharpness = 5.0F;
|
|
|
- settings.terrainRockThreshold = 0.28F;
|
|
|
- settings.terrainRockSharpness = 4.0F;
|
|
|
- // Ground irregularity - high for rocky terrain
|
|
|
- settings.groundIrregularityEnabled = true;
|
|
|
- settings.irregularityScale = 0.22F;
|
|
|
- settings.irregularityAmplitude = 0.14F;
|
|
|
+
|
|
|
+ settings.terrain_macro_noise_scale = 0.055F;
|
|
|
+ settings.terrain_detail_noise_scale = 0.28F;
|
|
|
+ settings.terrain_soil_height = 0.40F;
|
|
|
+ settings.terrain_soil_sharpness = 5.0F;
|
|
|
+ settings.terrain_rock_threshold = 0.28F;
|
|
|
+ settings.terrain_rock_sharpness = 4.0F;
|
|
|
+
|
|
|
+ settings.ground_irregularity_enabled = true;
|
|
|
+ settings.irregularity_scale = 0.22F;
|
|
|
+ settings.irregularity_amplitude = 0.14F;
|
|
|
settings.plant_density = 0.18F;
|
|
|
- // Ground-type-specific shader parameters - soil_rocky
|
|
|
- settings.snowCoverage = 0.0F;
|
|
|
- settings.moistureLevel = 0.35F;
|
|
|
- settings.crackIntensity = 0.25F;
|
|
|
- settings.rockExposure = 0.75F;
|
|
|
- settings.grassSaturation = 0.85F;
|
|
|
- settings.soilRoughness = 0.85F;
|
|
|
- settings.snowColor = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
+
|
|
|
+ settings.snow_coverage = 0.0F;
|
|
|
+ settings.moisture_level = 0.35F;
|
|
|
+ settings.crack_intensity = 0.25F;
|
|
|
+ settings.rock_exposure = 0.75F;
|
|
|
+ settings.grass_saturation = 0.85F;
|
|
|
+ settings.soil_roughness = 0.85F;
|
|
|
+ settings.snow_color = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
break;
|
|
|
|
|
|
case GroundType::AlpineMix:
|
|
|
- // Alpine Rock + Snow Mix
|
|
|
- // High altitude with snow patches, lichen-covered rocks, hardy grass
|
|
|
- settings.grassPrimary = QVector3D(0.32F, 0.40F, 0.30F);
|
|
|
- settings.grassSecondary = QVector3D(0.38F, 0.46F, 0.36F);
|
|
|
- settings.grassDry = QVector3D(0.50F, 0.48F, 0.42F);
|
|
|
- settings.soilColor = QVector3D(0.42F, 0.40F, 0.38F);
|
|
|
- settings.rockLow = QVector3D(0.58F, 0.60F, 0.64F);
|
|
|
- settings.rockHigh = QVector3D(0.88F, 0.90F, 0.94F);
|
|
|
- settings.terrainAmbientBoost = 1.25F;
|
|
|
- settings.terrainRockDetailStrength = 0.52F;
|
|
|
- // Grass/vegetation properties - short hardy alpine grass
|
|
|
- settings.patchDensity = 1.8F;
|
|
|
- settings.patchJitter = 0.50F;
|
|
|
- settings.backgroundBladeDensity = 0.22F;
|
|
|
- settings.bladeHeightMin = 0.20F;
|
|
|
- settings.bladeHeightMax = 0.50F;
|
|
|
- settings.bladeWidthMin = 0.015F;
|
|
|
- settings.bladeWidthMax = 0.032F;
|
|
|
+
|
|
|
+ settings.grass_primary = QVector3D(0.32F, 0.40F, 0.30F);
|
|
|
+ settings.grass_secondary = QVector3D(0.38F, 0.46F, 0.36F);
|
|
|
+ settings.grass_dry = QVector3D(0.50F, 0.48F, 0.42F);
|
|
|
+ settings.soil_color = QVector3D(0.42F, 0.40F, 0.38F);
|
|
|
+ settings.rock_low = QVector3D(0.58F, 0.60F, 0.64F);
|
|
|
+ settings.rock_high = QVector3D(0.88F, 0.90F, 0.94F);
|
|
|
+ settings.terrain_ambient_boost = 1.25F;
|
|
|
+ settings.terrain_rock_detail_strength = 0.52F;
|
|
|
+
|
|
|
+ settings.patch_density = 1.8F;
|
|
|
+ settings.patch_jitter = 0.50F;
|
|
|
+ settings.background_blade_density = 0.22F;
|
|
|
+ settings.blade_height_min = 0.20F;
|
|
|
+ settings.blade_height_max = 0.50F;
|
|
|
+ settings.blade_width_min = 0.015F;
|
|
|
+ settings.blade_width_max = 0.032F;
|
|
|
settings.sway_strength = 0.22F;
|
|
|
settings.sway_speed = 2.0F;
|
|
|
- // Terrain noise - moderate with snow accumulation effect
|
|
|
- settings.terrainMacroNoiseScale = 0.042F;
|
|
|
- settings.terrainDetailNoiseScale = 0.18F;
|
|
|
- settings.terrainSoilHeight = 0.55F;
|
|
|
- settings.terrainSoilSharpness = 3.0F;
|
|
|
- settings.terrainRockThreshold = 0.32F;
|
|
|
- settings.terrainRockSharpness = 2.5F;
|
|
|
- // Ground irregularity - moderate for alpine terrain
|
|
|
- settings.groundIrregularityEnabled = true;
|
|
|
- settings.irregularityScale = 0.18F;
|
|
|
- settings.irregularityAmplitude = 0.12F;
|
|
|
+
|
|
|
+ settings.terrain_macro_noise_scale = 0.042F;
|
|
|
+ settings.terrain_detail_noise_scale = 0.18F;
|
|
|
+ settings.terrain_soil_height = 0.55F;
|
|
|
+ settings.terrain_soil_sharpness = 3.0F;
|
|
|
+ settings.terrain_rock_threshold = 0.32F;
|
|
|
+ settings.terrain_rock_sharpness = 2.5F;
|
|
|
+
|
|
|
+ settings.ground_irregularity_enabled = true;
|
|
|
+ settings.irregularity_scale = 0.18F;
|
|
|
+ settings.irregularity_amplitude = 0.12F;
|
|
|
settings.plant_density = 0.12F;
|
|
|
- // Ground-type-specific shader parameters - alpine_mix
|
|
|
- settings.snowCoverage = 0.55F;
|
|
|
- settings.moistureLevel = 0.45F;
|
|
|
- settings.crackIntensity = 0.10F;
|
|
|
- settings.rockExposure = 0.60F;
|
|
|
- settings.grassSaturation = 0.80F;
|
|
|
- settings.soilRoughness = 0.62F;
|
|
|
- settings.snowColor = QVector3D(0.94F, 0.96F, 1.0F);
|
|
|
+
|
|
|
+ settings.snow_coverage = 0.55F;
|
|
|
+ settings.moisture_level = 0.45F;
|
|
|
+ settings.crack_intensity = 0.10F;
|
|
|
+ settings.rock_exposure = 0.60F;
|
|
|
+ settings.grass_saturation = 0.80F;
|
|
|
+ settings.soil_roughness = 0.62F;
|
|
|
+ settings.snow_color = QVector3D(0.94F, 0.96F, 1.0F);
|
|
|
break;
|
|
|
|
|
|
case GroundType::SoilFertile:
|
|
|
- // Dark Fertile Farmland Soil
|
|
|
- // Rich dark earth with lush green grass, ideal for agriculture
|
|
|
- settings.grassPrimary = QVector3D(0.25F, 0.55F, 0.22F);
|
|
|
- settings.grassSecondary = QVector3D(0.35F, 0.65F, 0.30F);
|
|
|
- settings.grassDry = QVector3D(0.52F, 0.48F, 0.32F);
|
|
|
- settings.soilColor = QVector3D(0.20F, 0.16F, 0.12F);
|
|
|
- settings.rockLow = QVector3D(0.38F, 0.36F, 0.34F);
|
|
|
- settings.rockHigh = QVector3D(0.52F, 0.50F, 0.48F);
|
|
|
- settings.terrainAmbientBoost = 1.02F;
|
|
|
- settings.terrainRockDetailStrength = 0.22F;
|
|
|
- // Grass/vegetation properties - thick healthy grass
|
|
|
- settings.patchDensity = 5.2F;
|
|
|
- settings.patchJitter = 0.90F;
|
|
|
- settings.backgroundBladeDensity = 0.80F;
|
|
|
- settings.bladeHeightMin = 0.55F;
|
|
|
- settings.bladeHeightMax = 1.25F;
|
|
|
- settings.bladeWidthMin = 0.030F;
|
|
|
- settings.bladeWidthMax = 0.062F;
|
|
|
+
|
|
|
+ settings.grass_primary = QVector3D(0.25F, 0.55F, 0.22F);
|
|
|
+ settings.grass_secondary = QVector3D(0.35F, 0.65F, 0.30F);
|
|
|
+ settings.grass_dry = QVector3D(0.52F, 0.48F, 0.32F);
|
|
|
+ settings.soil_color = QVector3D(0.20F, 0.16F, 0.12F);
|
|
|
+ settings.rock_low = QVector3D(0.38F, 0.36F, 0.34F);
|
|
|
+ settings.rock_high = QVector3D(0.52F, 0.50F, 0.48F);
|
|
|
+ settings.terrain_ambient_boost = 1.02F;
|
|
|
+ settings.terrain_rock_detail_strength = 0.22F;
|
|
|
+
|
|
|
+ settings.patch_density = 5.2F;
|
|
|
+ settings.patch_jitter = 0.90F;
|
|
|
+ settings.background_blade_density = 0.80F;
|
|
|
+ settings.blade_height_min = 0.55F;
|
|
|
+ settings.blade_height_max = 1.25F;
|
|
|
+ settings.blade_width_min = 0.030F;
|
|
|
+ settings.blade_width_max = 0.062F;
|
|
|
settings.sway_strength = 0.32F;
|
|
|
settings.sway_speed = 1.2F;
|
|
|
- // Terrain noise - smooth fertile soil
|
|
|
- settings.terrainMacroNoiseScale = 0.025F;
|
|
|
- settings.terrainDetailNoiseScale = 0.10F;
|
|
|
- settings.terrainSoilHeight = 0.75F;
|
|
|
- settings.terrainSoilSharpness = 2.8F;
|
|
|
- settings.terrainRockThreshold = 0.58F;
|
|
|
- settings.terrainRockSharpness = 2.2F;
|
|
|
- // Ground irregularity - low for flat farmland
|
|
|
- settings.groundIrregularityEnabled = true;
|
|
|
- settings.irregularityScale = 0.08F;
|
|
|
- settings.irregularityAmplitude = 0.05F;
|
|
|
+
|
|
|
+ settings.terrain_macro_noise_scale = 0.025F;
|
|
|
+ settings.terrain_detail_noise_scale = 0.10F;
|
|
|
+ settings.terrain_soil_height = 0.75F;
|
|
|
+ settings.terrain_soil_sharpness = 2.8F;
|
|
|
+ settings.terrain_rock_threshold = 0.58F;
|
|
|
+ settings.terrain_rock_sharpness = 2.2F;
|
|
|
+
|
|
|
+ settings.ground_irregularity_enabled = true;
|
|
|
+ settings.irregularity_scale = 0.08F;
|
|
|
+ settings.irregularity_amplitude = 0.05F;
|
|
|
settings.plant_density = 0.45F;
|
|
|
- // Ground-type-specific shader parameters - soil_fertile
|
|
|
- settings.snowCoverage = 0.0F;
|
|
|
- settings.moistureLevel = 0.80F;
|
|
|
- settings.crackIntensity = 0.0F;
|
|
|
- settings.rockExposure = 0.12F;
|
|
|
- settings.grassSaturation = 1.15F;
|
|
|
- settings.soilRoughness = 0.42F;
|
|
|
- settings.snowColor = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
+
|
|
|
+ settings.snow_coverage = 0.0F;
|
|
|
+ settings.moisture_level = 0.80F;
|
|
|
+ settings.crack_intensity = 0.0F;
|
|
|
+ settings.rock_exposure = 0.12F;
|
|
|
+ settings.grass_saturation = 1.15F;
|
|
|
+ settings.soil_roughness = 0.42F;
|
|
|
+ settings.snow_color = QVector3D(0.92F, 0.94F, 0.98F);
|
|
|
break;
|
|
|
}
|
|
|
}
|