Manitas
Grandmaster Knight
Have you ever wondered why M&B looks so bad on older machines in DX7 mode?
Usually it's because DX7 is old n bad, but in this case there's another reason: they just gave up on it completely.
They stitched DX7 mode together in a hurry, just so it does not crash, not caring about visuals at all. They even rolled back stuff that was present in older versions (like bumpmapping etc..)
Now, the good news is, we can create our own shaders for DX7 mode.
The bad news is, possibilities are very limited, because they don't pass textures to shader in DX7 mode properly, so no fancy stuff, as we have to do with just one, basic texture.
So, introducing the beta version of unofficial DX7 patch for testing:
Download the patch (ver .02, updated Feb 07)
Keep in mind that it might be buggy, and there's no warranty whatsoever, so if you're afraid of having to reinstall M&B if things go wrong, don't apply the patch and wait for a more stable version.
Changes made:
- Glowing objects (rocks, outer terrain, foliage etc.) no longer glow and are now lit dynamicly.
- Shininess is back on weapons and some armors (not all of them because some require more than one texture, so it's impossible because they don't pass textures to shader in DX7 mode properly)
- Interiors become dynamicly lit again.
- It is dark at night.
Now a bunch of screens for comparison:
Burglen by night:
Some more:
And my new forrest terrain type at night:
Though, you won't see this ingame until WFAS is out.
Attention:
Tavern interiors may appear nastily yellow, this is not my shaders' fault, light scene props are bit strange (in native DX7 you don't experience this, because interiors are not affected by dynamic lighting at all).
I replaced those props in the native module, but there's no way I can modify other people's mods.
Heres an example of my light scene props:
Please, let me know if there are any problems, if some glowing problems still occur, and general opinions.
Especially, I expect the flora shader to cause some controversy, but it is difficult to do it right because they don't pass textures to shader in DX7 mode properly.
Usually it's because DX7 is old n bad, but in this case there's another reason: they just gave up on it completely.
They stitched DX7 mode together in a hurry, just so it does not crash, not caring about visuals at all. They even rolled back stuff that was present in older versions (like bumpmapping etc..)
Now, the good news is, we can create our own shaders for DX7 mode.
The bad news is, possibilities are very limited, because they don't pass textures to shader in DX7 mode properly, so no fancy stuff, as we have to do with just one, basic texture.
So, introducing the beta version of unofficial DX7 patch for testing:
Download the patch (ver .02, updated Feb 07)
Keep in mind that it might be buggy, and there's no warranty whatsoever, so if you're afraid of having to reinstall M&B if things go wrong, don't apply the patch and wait for a more stable version.
Changes made:
- Glowing objects (rocks, outer terrain, foliage etc.) no longer glow and are now lit dynamicly.
- Shininess is back on weapons and some armors (not all of them because some require more than one texture, so it's impossible because they don't pass textures to shader in DX7 mode properly)
- Interiors become dynamicly lit again.
- It is dark at night.
Now a bunch of screens for comparison:
Burglen by night:
Some more:
And my new forrest terrain type at night:
Though, you won't see this ingame until WFAS is out.
Attention:
Tavern interiors may appear nastily yellow, this is not my shaders' fault, light scene props are bit strange (in native DX7 you don't experience this, because interiors are not affected by dynamic lighting at all).
I replaced those props in the native module, but there's no way I can modify other people's mods.
Heres an example of my light scene props:
("light",sokf_invisible,"light_sphere","0", [
(ti_on_init_scene_prop,
[
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 3 * 99, ":scale"),
(store_mul, ":green", 3 * 88, ":scale"),
(store_mul, ":blue", 3 * 53, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 10, 30),
]),
]),
("light_red",sokf_invisible,"light_sphere","0", [
(ti_on_init_scene_prop,
[
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 1 * 170, ":scale"),
(store_mul, ":green", 1 * 100, ":scale"),
(store_mul, ":blue", 1 * 30, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 20, 30),
]),
]),
("light_night",sokf_invisible,"light_sphere","0", [
(ti_on_init_scene_prop,
[
# (store_time_of_day,reg(12)),
# (neg|is_between,reg(12),5,20),
(is_currently_night, 0),
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 1 * 99, ":scale"),
(store_mul, ":green", 1 * 88, ":scale"),
(store_mul, ":blue", 1 * 53, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 10, 30),
]),
]),
(ti_on_init_scene_prop,
[
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 3 * 99, ":scale"),
(store_mul, ":green", 3 * 88, ":scale"),
(store_mul, ":blue", 3 * 53, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 10, 30),
]),
]),
("light_red",sokf_invisible,"light_sphere","0", [
(ti_on_init_scene_prop,
[
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 1 * 170, ":scale"),
(store_mul, ":green", 1 * 100, ":scale"),
(store_mul, ":blue", 1 * 30, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 20, 30),
]),
]),
("light_night",sokf_invisible,"light_sphere","0", [
(ti_on_init_scene_prop,
[
# (store_time_of_day,reg(12)),
# (neg|is_between,reg(12),5,20),
(is_currently_night, 0),
(store_trigger_param_1, ":prop_instance_no"),
(set_fixed_point_multiplier, 100),
(prop_instance_get_scale, pos5, ":prop_instance_no"),
(position_get_scale_x, ":scale", pos5),
(store_mul, ":red", 1 * 99, ":scale"),
(store_mul, ":green", 1 * 88, ":scale"),
(store_mul, ":blue", 1 * 53, ":scale"),
(val_div, ":red", 100),
(val_div, ":green", 100),
(val_div, ":blue", 100),
(set_current_color,":red", ":green", ":blue"),
(set_position_delta,0,0,0),
(add_point_light, 10, 30),
]),
]),
Please, let me know if there are any problems, if some glowing problems still occur, and general opinions.
Especially, I expect the flora shader to cause some controversy, but it is difficult to do it right because they don't pass textures to shader in DX7 mode properly.