I'm in the process of implementing a day/night cycle into
Since I do not have the computing-power to do additional night-renders I have decided to use color-tinting with im.MatrixColor(). This also has the positive side-effect that it's not increasing the size of the game by adding many images.
The color-matrix is fed with dynamic values that are based on the ingame-time in the real code.
background at night example:
The problem:
I have many screens that hold overlay-images. These need to be tinted as well. I could just add the im.MatrixColor-code for every image but that is a lot of fiddling. What I am looking for is a solution that can tint an entire screen will all it's content.
I've search the web up- and down and could only find this post from 2015 ... not yet possible it seems:
Since there is a preview of Ren'Py 7 out ... maybe some people know more about it.
Btw. I tried the very cheap way of just placing a screen with only a translucent background-color over the scene ... no way ... it looks very bad ... using im.MatrixColor() is required to make this look good. Placing a translucent-layer of the scene can never look that good because it will just add colors together.
Edit: im.MatrixColor() is not GPU hardware accelerated and runs on the CPU, careful with the performance when using it.
You must be registered to see the links
.Since I do not have the computing-power to do additional night-renders I have decided to use color-tinting with im.MatrixColor(). This also has the positive side-effect that it's not increasing the size of the game by adding many images.
The color-matrix is fed with dynamic values that are based on the ingame-time in the real code.
background at night example:
Code:
image i_bg = im.MatrixColor("images/bg.png",im.matrix.saturation(0.5)*im.matrix.tint(.75,.75,1.0)*im.matrix.brightness(-0.2))
scene i_bg
I have many screens that hold overlay-images. These need to be tinted as well. I could just add the im.MatrixColor-code for every image but that is a lot of fiddling. What I am looking for is a solution that can tint an entire screen will all it's content.
I've search the web up- and down and could only find this post from 2015 ... not yet possible it seems:
You must be registered to see the links
Since there is a preview of Ren'Py 7 out ... maybe some people know more about it.
Btw. I tried the very cheap way of just placing a screen with only a translucent background-color over the scene ... no way ... it looks very bad ... using im.MatrixColor() is required to make this look good. Placing a translucent-layer of the scene can never look that good because it will just add colors together.
Edit: im.MatrixColor() is not GPU hardware accelerated and runs on the CPU, careful with the performance when using it.