Sorry I missed this question!
The renderer only turns NixFX on for the room. It does not set the room darkness by itself.
To make a room dark:
- Put one obj_nixfx_renderer in the room.
- Make a normal controller object for the room, for example obj_room_lighting_controller.
- Put this in the controller's Create event: lighting_setup_done = false;
- Put this in the controller's Step event:
if (!lighting_setup_done) {
var fx = nixfx_state();
if (fx.initialized) {
fx.ambient_color = make_colour_rgb(20, 24, 32); // dark blue-gray
fx.ambient_intensity = 0.10; // lower = darker
lighting_setup_done = true;
}
}
ambient_intensity is the main darkness control, but changing the color also has a huge impact!
- 0.05 = very dark
- 0.10 to 0.20 = normal night/dark room
- 0.30+ = brighter room
If you want a day/night cycle instead of one fixed darkness value, call the ambience function in Step every frame with a timer that changes over time.
Put this in the controller's Create event:
daynight_time = 0;
Put this in the controller's Step event:
var fx = nixfx_state();
if (fx.initialized) {
daynight_time += delta_time * 0.000001;
nixfx_apply_daynight_ambience(daynight_time, 120.0, "balanced", 1.0);
}
That means:
- daynight_time keeps increasing
- 120.0 means a full cycle takes 120 seconds
- "balanced" is the curve name
- 1.0 means full strength
Available curve names are:
- balanced
- clear_day
- moody
If day/night "does nothing", the usual cause is that the function was only called once, or the timer was not changing. It needs to run in Step, not just once in Create.