diff --git a/lib_paysages/clouds.c b/lib_paysages/clouds.c index 021a242..dee1f54 100644 --- a/lib_paysages/clouds.c +++ b/lib_paysages/clouds.c @@ -511,12 +511,16 @@ Color cloudsGetLayerColor(CloudsLayerDefinition* definition, Renderer* renderer, detail = renderer->getPrecision(renderer, start) / definition->scaling; segment_count = _findSegments(definition, renderer, start, direction, detail, 20, definition->transparencydepth, max_length, &inside_length, &total_length, segments); - for (i = 0; i < segment_count; i++) + for (i = segment_count - 1; i >= 0; i--) { col = _applyLayerLighting(definition, renderer, segments[i].start, detail); col.a = (segments[i].length >= definition->transparencydepth) ? 1.0 : (segments[i].length / definition->transparencydepth); colorMask(&result, &col); } + if (inside_length >= definition->transparencydepth) + { + col.a = 1.0; + } result = renderer->applyAtmosphere(renderer, start, result);