From 386d9d02583e0168651aa4c475e189bbeb13338d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Wed, 3 Feb 2016 22:41:27 +0100 Subject: [PATCH] WIP on clouds --- src/render/software/clouds/CloudModelStratoCumulus.cpp | 10 +++++----- src/render/software/clouds/CloudModelStratoCumulus.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/render/software/clouds/CloudModelStratoCumulus.cpp b/src/render/software/clouds/CloudModelStratoCumulus.cpp index 6fe8d0c..ae4fb1b 100644 --- a/src/render/software/clouds/CloudModelStratoCumulus.cpp +++ b/src/render/software/clouds/CloudModelStratoCumulus.cpp @@ -7,7 +7,8 @@ CloudModelStratoCumulus::CloudModelStratoCumulus(CloudLayerDefinition *layer) : BaseCloudsModel(layer) { noise = new NoiseFunctionSimplex(); - base_detail = 0.1; + shape_level = 0.1; + detail_level = 0.001; } CloudModelStratoCumulus::~CloudModelStratoCumulus() { @@ -16,9 +17,8 @@ CloudModelStratoCumulus::~CloudModelStratoCumulus() { void CloudModelStratoCumulus::update() { noise->setState(layer->getNoiseState()); - - noise->setScaling(30.0 * layer->scaling); - noise->normalizeRange(1.0, base_detail); + noise->setScaling(layer->scaling); + noise->normalizeRange(1.0); } void CloudModelStratoCumulus::getAltitudeRange(double *min_altitude, double *max_altitude) const { @@ -37,7 +37,7 @@ BaseCloudsModel::CloudDensityInfo CloudModelStratoCumulus::getDensity(const Vect } else if (location.y > max_altitude) { return {0.0, location.y - max_altitude}; } else { - val = noise->get3d(base_detail, 0.3 * location.x, location.y - min_altitude, 0.3 * location.z); + val = noise->get3d(shape_level, location.x * 0.01, (location.y - min_altitude) * 0.03, location.z * 0.01); val = val - 0.8 + layer->coverage; return {val, fabs(val)}; } diff --git a/src/render/software/clouds/CloudModelStratoCumulus.h b/src/render/software/clouds/CloudModelStratoCumulus.h index 8bc2ccd..40d5120 100644 --- a/src/render/software/clouds/CloudModelStratoCumulus.h +++ b/src/render/software/clouds/CloudModelStratoCumulus.h @@ -20,7 +20,8 @@ class CloudModelStratoCumulus : public BaseCloudsModel { private: FractalNoise *noise; - double base_detail; + double shape_level; + double detail_level; }; } }