Aircoookie / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!
https://kno.wled.ge
MIT License
15.13k stars 3.28k forks source link

Feature Request: Smart Dimming with Dynamic LED Distribution #4331

Open unterdrueckt opened 3 days ago

unterdrueckt commented 3 days ago

Feature Request: Smart Dimming with Dynamic LED Distribution

Description

Currently, WLED does not support dynamic dimming where only a subset of LEDs are lit at low brightness levels. At 1% brightness, all LEDs remain on, which can result in excessive brightness. A more efficient approach would be to selectively light a fraction of the LEDs at low brightness settings, improving both aesthetics and energy efficiency.

Proposed Solution

  1. Low Brightness Control:

    • At low brightness levels (e.g., 1%-10%), only a subset of LEDs should be lit (e.g., every 5th LED).
  2. Dynamic LED Distribution:

    • At higher brightness levels (e.g., 60%-100%), all LEDs should be fully lit, as they currently are.
    • At mid-range brightness levels (e.g., 30%-50%), a mix of fully lit and selectively dimmed LEDs should be used to balance brightness and ensure smooth transitions.
  3. Improved Low-Light Dynamic Range:

    • This would allow for better light and color control at low brightness levels.

Additional Considerations

Thank you for considering this feature!

willmmiles commented 3 days ago

I, for one, can relate to dynamic range issues at low brightness levels - for several of my projects I've been wishing for dimmer LEDs!

Spatial brightness distribution could potentially be implemented as an option at the segment level when grouping > 1. Probably we'd want some kind of LED performance model to decide how to map energy to pixels.

DedeHai commented 3 days ago

This would be quite easy to do as an FX. There then are even sliders to control the min/max point to enable this "dithering". You can then overlay it using overlapping segements.

DedeHai commented 3 days ago

@unterdrueckt if I were to make this into an FX: since I have no setup to test this I need some hints. Here is what I am thinking: