This can be changed in the registry - here's a document from Microsoft that explains all of this in detail.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AdaptiveDisplayBrightness contains configuration values related to the light sensor.
ALRPoints - controls what brightness to use depending on the value returned by the sensor, in this format :
00 + a list of points in the format
[zero-padded hex value of the desired percentage of the baseline brightness] + [zero-padded hex value of the light detected by the sensor] - I got this by a lot of trial and error, here's Microsoft's documentation about this value, and here's my custom ALRPoints value that works.
IlluminanceChangeSensitivity - controls how much the sensor is sensible to light changes, for example a value of 20 means that the ambient light should change by 20 lux for the screen brightness to change.
DisplayResponseInterval - controls how much time should the service wait before polling the sensor again (in milliseconds, minimal value is 100), for example a value of 5000 means that the brightness can only change every 5 seconds.
Note: when editing those values, be sure to select
Base decimal in Regedit.
I recommend using the Sensor Diagnostic Tool, it's available in the WDK Test Pack (you may need to install the actual WDK first), once installed it's located in
C:\Program Files (x86)\Windows Kits\8.1\Tools\x86\sensordiagnostictool.exe and it looks like this :
The interesting values are :
SB (at the very top, here it's at 100%), it shows the brightness set by the Adaptive brightness service.
SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE is the default ALR curve, in the format
[lux, percentage of the baseline brightness] (the opposite format of the registry, which is
brightness, lux) - if you want to create your own ALR curve, you'll need to override each and only point of this default curve (that's the only way I got it to work).
SENSOR_DATA_TYPE_LIGHT_LUX is the luminosity detected by the sensor, I hope that on your system it's actually the real light value in lux, unfortunately on mine it's just a value between 0 and 255, 0 means almost total darkness and 255 means a flashlight pointed at the sensor.
Once you have set the values you wanted, you'll need to restart the
Adaptive brightness service for your changes to take effect.
Here's a thread on XDA-Developers that provides tweaked luminosity curves for Surface tablets, you may want to take a look at the registry files (they work fine on Windows 7 by the way).