I'm implementing a volume renderer and I want to use Windowing Transfer Function to enable the user to change the opacity of some regions. As far as I understood, there are three variables window, offset and scale
The window is how much of my values I want to change the alpha for, the offset is how far my window from the minimum value. But I'm not sure what is the scale ? Is it the increase between one alpha value to the next, or is it the maximum alpha in my current window?
Am I missing anything or getting anything wrong?
This is what I have in mind

Normally the transfer function is a remapping from old alpha to new alpha. As a rule of thumb the range of values going into the transfer function is the same as what's coming out.
So if your original alpha values are in the range [0,1] then the values produced by your function should be in the range [0,1] as well.
(BTW: a window function is something different, you'd multiply it as an inner product on the incoming values)