I see. One way to handle it is to do a small rewrite since the horizontal blur data is stored as Uint8 and not FColor. That rewrite would quadruple the memory footprint of the buffer (which isn’t necessarily terrible but should be avoided). Alternatively you could maybe create some kind of color-gradient or curve where 0 grades to black 127 grades to the color of your choice and 255 grades towards white (fully unveiled). Then in this line:
Manager->TextureData[x + y * signedSize] = FColor((uint8)sum, (uint8)sum, (uint8)sum, 255);
you’d use “sum” as the input for your curve, and the resulting RGB instead of sum. I’d have to experiment a bit with the math to get it “right” maybe with an S-curve or something semi-fancy, though you could probably get by using linear interpolation.
Some pseudo code would be:
if(sum < 127) {
transform 0->127 to 0->1
lerp from black to the color of your choice
} else {
transform 128->255 to 0->1
lerp from the color of your choice to black
}
You’d probably also want to change the current alpha for the shroud of darkness from 100 to 127 for the “color of your choice” to match more excactly.
Cheers,