Gekokujo Vanilla Enhanced

Users who are viewing this thread

Success!
TWUPit.jpg
1.5k poly per each "lush" pine tree. Now going to add some more different models to make diversity.
 
So it seems that only four biomes are involved for he map:
ZOWu2Q.jpg
F - plains forest
P - plains
Also snowy plains and snowy forest.

For  some reason desert biome is used by bridge scene and I can't figure how (same for road scene).
What I want to do is to make use of different biomes for different type of flora and background (like, mt. Fuji in distance).
 
I am roughly guessing how terrain works now.
SNTLkl.jpg

There are potentially three unused scene slots, which are random scene, steppe forest and desert forest. If I guessed correctly, desert forest map ID is 13... Or is it? Or is it used at all?
Anyways, I can as well make use of the road and bridge scenes, turning them back into randomly generated ones.
The idea here is to set up different biomes for different vegetation and/or different terrain borders. That means repainting the whole map.
 
On the second thought it actually seems like a bit too much work. I have looked for Japanese flora and it is basically pines all over the place.
 
Progress so far!
Z4sVUO.jpg
I have polished my pine tree production, on that picture there is 4 type of them (one is naked), and all of them were made in about an hour (after a week of trial and error). Naked pine is 600 polys, green pines are from 1100 to 1400 polys. Looks very good and FPS is smooth. I have achieved a balance between performance/aesthetics/creation time.
Going to produce a dozen or so of these trees, as well as trees in batches (by three-four) for high-density spots. Maybe. Or maybe not.
Then i will do a bush and a grass mesh so as to work in three directions at once.
 
On the topic of scenes tell me you aren't deleting the custom scenes the original mod had. Like the road and the hill overlooking a bridge and stuff. Those are mega fun. Although they do lack variety.
 
Not really going to bother deleting them.
According to code, phlpp had intention of making three different scene for bridge and path, but he commented out that part of code and typed something like "these scenes are going to be rare after all". I moght have invoked the module builder script, but all the changes I made were directly to .txt files. It might break some interconnections, but well, who knows.

I will look into the scenes.txt and try to switch on the randomizer, hopefully, it will work beneath the manually made scene and provide variety, but for that I would need to see if path and river positions could be secured so that to prevent flying bridges over landmass.

Also, I am looking forward to add bamboo groves and blossoming cherries but only as a part of of city/castle scenes, I think.
 
I have looked into the module systems and it really looks convenient.
I have re-enabled three bridge scene variations and three path scene variations, so in the future I will make them all good looking and pretty. Might as well add even more.

I only regret about not having source for flora_kinds.txt, and all I am left to do is guessing what flags means what. But whatever.
 
Made firs:
Hhd85b.jpg

AxoQSM.jpg

zZ84VF.jpg

XIodBA.jpg

Damn, I love how it looks like. So far they use same texture as pine tree, might give it a unique one later one, or leave as it is.
 
Also it seems that phlpp forgot to distribute Module_data folder that made the think there is no way guessing what is what in the flora_kinds.txt.
Bad phlpp, bad!
 
You can download version 3.0. That one has the folder and file you are looking for.

Code:
80
grass 6442469688324 5
 grass_a  0
 grass_b  0
 grass_c  0
 grass_d  0
 grass_e  0
grass_bush 42950461452 2
 grass_bush_a  0
 grass_bush_b  0
grass_saz 2147485222924 2
 grass_bush_c  0
 grass_bush_d  0
grass_purple 2147484174348 2
 grass_bush_e  0
 grass_bush_f  0
fern 4294968083456 2
 fern_a  0
 fern_b  0
grass_steppe 6442469689352 5
 grass_yellow_a  0
 grass_yellow_b  0
 grass_yellow_c  0
 grass_yellow_d  0
 grass_yellow_e  0
grass_bush_g 1717987707916 3
 grass_bush_g01  0
 grass_bush_g02  0
 grass_bush_g03  0
grass_bush_h 1717987705860 3
 grass_bush_h01  0
 grass_bush_h02  0
 grass_bush_h03  0
grass_bush_i 1717987705860 2
 grass_bush_i01  0
 grass_bush_i02  0
grass_bush_j 1717987707916 2
 grass_bush_j01  0
 grass_bush_j02  0
grass_bush_k 1717987705860 2
 grass_bush_k01  0
 grass_bush_k02  0
grass_bush_l 214748627972 2
 grass_bush_l01  0
 grass_bush_l02  0
thorn_a 644245357572 4
 thorn_a  0
 thorn_b  0
 thorn_c  0
 thorn_d  0
basak 300647713804 1
 basak  0
common_plant 300647713804 1
 common_plant  0
small_plant 214748367884 3
 small_plant  0
 small_plant_b  0
 small_plant_c  0
buddy_plant 214748367884 2
 buddy_plant  0
 buddy_plant_b  0
yellow_flower 214748367884 2
 yellow_flower  0
 yellow_flower_b  0
spiky_plant 214748630028 1
 spiky_plant  0
seedy_plant 214748367884 1
 seedy_plant_a  0
blue_flower 128849021964 1
 blue_flower  0
big_bush 128849021964 1
 big_bush  0
bushes02_a 128849021964 3
 bushes02_a  bo_bushes02_a
 bushes02_b  bo_bushes02_b
 bushes02_c  bo_bushes02_c
bushes03_a 128849019908 3
 bushes03_a  0
 bushes03_b  0
 bushes03_c  0
bushes04_a 300647713804 3
 bushes04_a  0
 bushes04_b  0
 bushes04_c  0
bushes05_a 300647713804 3
 bushes05_a  0
 bushes05_b  0
 bushes05_c  0
bushes06_a 300647712776 3
 bushes06_a  0
 bushes06_b  0
 bushes06_c  0
bushes07_a 300647713804 3
 bushes07_a  0
 bushes07_b  0
 bushes07_c  0
bushes08_a 300647713804 3
 bushes08_a  0
 bushes08_b  0
 bushes08_c  0
bushes09_a 300647713804 3
 bushes09_a  0
 bushes09_b  0
 bushes09_c  0
bushes10_a 300647713804 3
 bushes10_a  0
 bushes10_b  0
 bushes10_c  0
bushes11_a 300647713804 3
 bushes11_a  0
 bushes11_b  0
 bushes11_c  0
bushes12_a 300647713804 3
 bushes12_a  0
 bushes12_b  0
 bushes12_c  0
aspen 17184066572 3
 aspen_a  bo_aspen_a
 Elysian_Fields GateKeeper
 aspen_b  bo_aspen_b
 Elysian_Fields GateKeeper
 aspen_c  bo_aspen_c
 Elysian_Fields GateKeeper
pine_1 17184066572 2
 pine_1_a  bo_pine_1_a
 Elysian_Fields GateKeeper
 pine_1_b  bo_pine_1_b
 Elysian_Fields GateKeeper
pine_2 17184066572 1
 pine_2_a  bo_pine_2_a
 Elysian_Fields GateKeeper
pine_3 17184066572 1
 pine_3_a  bo_pine_3_a
 Elysian_Fields GateKeeper
pine_4 17184066572 1
 pine_4_a  bo_pine_4_a
 Elysian_Fields GateKeeper
snowy_pine 21479034896 1
 tree_snowy_a  bo_tree_snowy_a
 Elysian_Fields GateKeeper
snowy_pine_2 21479034896 1
 snowy_pine_2  bo_snowy_pine_2
 Elysian_Fields GateKeeper
small_rock 21477002252 8
 rock_c  bo_rock_c
 rock_d  bo_rock_d
 rock_e  bo_rock_e
 rock_f  bo_rock_f
 rock_g  bo_rock_g
 rock_h  bo_rock_h
 rock_i  bo_rock_i
 rock_k  bo_rock_k
rock_snowy 21477003280 3
 rock_snowy_a  bo_rock_snowy_a
 rock_snowy_b  bo_rock_snowy_b
 rock_snowy_c  bo_rock_snowy_c
rock 214750792716 6
 rock1  bo_rock1
 rock2  bo_rock2
 rock3  bo_rock3
 rock4  bo_rock4
 rock5  bo_rock6
 rock7  bo_rock7
rock_snowy2 21477003280 4
 rock1_snowy  bo_rock1
 rock2_snowy  bo_rock2
 rock4_snowy  bo_rock4
 rock6_snowy  bo_rock6
tree_1 17184066572 2
 tree_1_a  bo_tree_1_a
 Elysian_Fields GateKeeper
 tree_1_b  bo_tree_1_b
 Elysian_Fields GateKeeper
tree_3 17184066572 2
 tree_3_a  bo_tree_3_a
 Elysian_Fields GateKeeper
 tree_3_b  bo_tree_3_b
 Elysian_Fields GateKeeper
tree_4 17184066572 2
 tree_4_a  bo_tree_4_a
 Elysian_Fields GateKeeper
 tree_4_b  bo_tree_4_b
 Elysian_Fields GateKeeper
tree_5 17184066572 4
 tree_5_a  bo_tree_5_a
 Elysian_Fields GateKeeper
 tree_5_b  bo_tree_5_b
 Elysian_Fields GateKeeper
 tree_5_c  bo_tree_5_c
 Elysian_Fields GateKeeper
 tree_5_d  bo_tree_5_d
 Elysian_Fields GateKeeper
tree_6 17184066572 4
 tree_6_a  bo_tree_6_a
 Elysian_Fields GateKeeper
 tree_6_b  bo_tree_6_b
 Elysian_Fields GateKeeper
 tree_6_c  bo_tree_6_c
 Elysian_Fields GateKeeper
 tree_6_d  bo_tree_6_d
 Elysian_Fields GateKeeper
tree_7 17184066572 3
 tree_7_a  bo_tree_7_a
 Elysian_Fields GateKeeper
 tree_7_b  bo_tree_7_b
 Elysian_Fields GateKeeper
 tree_7_c  bo_tree_7_c
 Elysian_Fields GateKeeper
tree_8 17184066572 3
 tree_8_a  bo_tree_8_a
 Elysian_Fields GateKeeper
 tree_8_b  bo_tree_8_b
 Elysian_Fields GateKeeper
 tree_8_c  bo_tree_8_c
 Elysian_Fields GateKeeper
tree_9 17184066572 3
 tree_9_a  bo_tree_9_a
 Elysian_Fields GateKeeper
 tree_9_b  bo_tree_9_a
 Elysian_Fields GateKeeper
 tree_9_c  bo_tree_9_a
 Elysian_Fields GateKeeper
tree_10 17184066572 3
 tree_10_a  bo_tree_10_a
 Elysian_Fields GateKeeper
 tree_10_b  bo_tree_10_a
 Elysian_Fields GateKeeper
 tree_10_c  bo_tree_10_a
 Elysian_Fields GateKeeper
tree_11 17184066572 3
 tree_11_a  bo_tree_11_a
 Elysian_Fields GateKeeper
 tree_11_b  bo_tree_11_a
 Elysian_Fields GateKeeper
 tree_11_c  bo_tree_11_a
 Elysian_Fields GateKeeper
tree_12 17184066572 3
 tree_12_a  bo_tree_12_a
 Elysian_Fields GateKeeper
 tree_12_b  bo_tree_12_b
 Elysian_Fields GateKeeper
 tree_12_c  bo_tree_12_c
 Elysian_Fields GateKeeper
tree_14 17184066572 3
 tree_14_a  bo_tree_14_a
 Elysian_Fields GateKeeper
 tree_14_b  bo_tree_14_b
 Elysian_Fields GateKeeper
 tree_14_c  bo_tree_14_c
 Elysian_Fields GateKeeper
tree_15 17184066572 3
 tree_15_a  bo_tree_15_a
 mb_test1 tree_a
 tree_15_b  bo_tree_15_b
 mb_test1 tree_a
 tree_15_c  bo_tree_15_c
 mb_test1 tree_b
tree_16 17184066572 2
 tree_16_a  bo_tree_16_a
 Elysian_Fields GateKeeper
 tree_16_b  bo_tree_16_b
 Elysian_Fields GateKeeper
tree_17 17184066572 4
 tree_17_a  bo_tree_17_a
 Elysian_Fields GateKeeper
 tree_17_b  bo_tree_17_b
 Elysian_Fields GateKeeper
 tree_17_c  bo_tree_17_c
 Elysian_Fields GateKeeper
 tree_17_d  bo_tree_17_d
 Elysian_Fields GateKeeper
palm 17184071680 1
 palm_a  bo_palm_a
 Elysian_Fields GateKeeper
tree_new_1 17184066572 2
 tree_a01  bo_tree_a01
 Elysian_Fields GateKeeper
 tree_a02  bo_tree_a01
 Elysian_Fields GateKeeper
bush_new_1 300647713804 2
 bush_a01  0
 bush_a02  0
bush_new_2 300647713804 1
 bush_new_a  0
bush_new_3 300647713804 1
 bush_new_b  0
bush_new_4 300647713804 1
 bush_new_c  0
tree_new_2 17184066572 2
 tree_b01  bo_tree_b01
 Elysian_Fields GateKeeper
 tree_b02  bo_tree_b02
 Elysian_Fields GateKeeper
tree_new_3 17184066572 2
 tree_c01  bo_tree_c01
 Elysian_Fields GateKeeper
 tree_c02  bo_tree_c02
 Elysian_Fields GateKeeper
tree_plane 17184066572 2
 tree_18_a  bo_tree_18_a
 Elysian_Fields GateKeeper
 tree_18_b  bo_tree_18_b
 Elysian_Fields GateKeeper
tree_19 17184066572 1
 tree_19_a  bo_tree_19_a
 Elysian_Fields GateKeeper
beech 12889099276 2
 tree_20_a  bo_tree_20_a
 Elysian_Fields GateKeeper
 tree_20_b  bo_tree_20_b
 Elysian_Fields GateKeeper
tall_tree 17184066572 1
 tall_tree_a  bo_tall_tree_a
 Elysian_Fields GateKeeper
tree_e 17184066572 3
 tree_e_1  bo_tree_e_1
 Elysian_Fields GateKeeper
 tree_e_2  bo_tree_e_2
 Elysian_Fields GateKeeper
 tree_e_3  bo_tree_e_3
 Elysian_Fields GateKeeper
tree_f 17184066572 3
 tree_f_1  bo_tree_f_1
 Elysian_Fields GateKeeper
 tree_f_2  bo_tree_f_1
 Elysian_Fields GateKeeper
 tree_f_3  bo_tree_f_1
 Elysian_Fields GateKeeper
grape_vineyard 0 1
 grape_vineyard  bo_grape_vineyard
grape_vineyard_stake 0 1
 grape_vineyard_stake  bo_grape_vineyard_stake
wheat 17179872268 4
 wheat_a  0
 wheat_b  0
 wheat_c  0
 wheat_d  0
valleyRock_rounded 21476933632 4
 valleyRock_rounded_1  bo_valleyRock_rounded_1
 valleyRock_rounded_2  bo_valleyRock_rounded_2
 valleyRock_rounded_3  bo_valleyRock_rounded_3
 valleyRock_rounded_4  bo_valleyRock_rounded_4
valleyRock_flat 21476933632 6
 valleyRock_flat_1  bo_valleyRock_flat_1
 valleyRock_flat_2  bo_valleyRock_flat_2
 valleyRock_flat_3  bo_valleyRock_flat_3
 valleyRock_flat_4  bo_valleyRock_flat_4
 valleyRock_flat_5  bo_valleyRock_flat_5
 valleyRock_flat_6  bo_valleyRock_flat_6
valleyRock_flatRounded_small 21476933632 3
 valleyRock_flatRounded_small_1  bo_valleyRock_flatRounded_small_1
 valleyRock_flatRounded_small_2  bo_valleyRock_flatRounded_small_2
 valleyRock_flatRounded_small_3  bo_valleyRock_flatRounded_small_3
valleyRock_flatRounded_big 21476933632 2
 valleyRock_flatRounded_big_1  bo_valleyRock_flatRounded_big_1
 valleyRock_flatRounded_big_2  bo_valleyRock_flatRounded_big_2
 
No, what I was talking about was is Warband Module system, that includes Module_data folder in which there are python scripts to generate those .txt files. It is just that for some reason phlpp didn't include Module_data folder, but only Module_system folder that made me confused. But I have already got myself a complete module system package and required flora_kids.py script is already being used.

Now, however, I am more concerned with grass rendering, since it has a pesky bug of alpha channel inetrpolation outline which accumulate with the number pf meshes and mess the drawing order:
MVieps.jpg
You can see the outline of alpha channel on texture. And cumulative effect on the horizon to the left. I have tried all blending modes, all flags, different shaders, and so far I can't figure out how to tackle this issue without breaking smoothness of grass fade-in and fade-out (otherwise I'd use higher value alpha threshold).
 
I have came up with a workaround to this issue by setting up higher alpha test threshold and using custom grass mask in case of grass_no_shadow material which is used while game works in dx7 mode. This greatly improved near-field grass rendering while scarificing a tiny bit of smoothness of grass fade-in.
I also looked into the shader source code, and if I am correct, the near-field alpha rendering could be further improved by switching from linear filtering of a texture to none. Shader files reside in the game's root folder, thus making it a bit inconvenient to end-user, and I am not very inclined to making custom shaders, or modifying the existing ones.

As for grass rendering in dx9 mode I nost likely will leave it as it is, since what is tuned for dx7 shading doesn't look as good in this case. But I will look into means to making grass rendering as good as possible.

Take a note that I am working on a copy of /commonRes/materisls.brf file, so the changes are module-local. I had to do so, since game is hardcoded to look for "grass" and "grass_no_shadow" materials no matter which material is actually assigned to the grass mesh.

Also I discovered that there are two material flags that are named unknown(used for alpha test?) are actually the flags that blend grass with local environment shadow (the flag in the left column) and, probably, ground color (middle column flag). It is very well noticeable in directx7 rendering mode, and, obviously, I left them enabled.

So today on my list is tweaking grass material for dx9, looking for custom fir btanch texture (currently pine is used), adding a few more pine models (since they are rather distinct) and increasing variety of grasses.

Also, I want to make a note that all my custom vegetation meshes do not have LODx models yet (and it seems that LODx's are not working in case of vegetation under dx7?), so that means that all my models are at prime quality despite of the drawing distance, which hints to a decent performance/appearance balance. It is achieved with having trees ynder 1k polygons with their densities (according to flora_kinds.py generation script) at 4...6. As for grass, I currently use 4-poly "cross" model with clamped UV texture at a density of 1000. With all that I have smooth FPS on dx7. Dx9 was always more challenging to my GPU, so I never really used it. And since I am working hard on achieving better visuals for dx7, resorting to use dx9 might as well be meaningless.

And my hardware is rather low-end: Intel Pentium 987 @1.5 GHz + Intel HD 3000, so performance is of a concern to me.
 
From the looks of it, my pine falls under cypress: https://en.m.wikipedia.org/wiki/Chamaecyparis_obtusa

While my fir is rather a spruce? https://en.m.wikipedia.org/wiki/Picea_jezoensis

V0iGgZ.jpg
 
Skimmed through materials and fixed blood particles. Now it looks like blood and flesh being chopped off, not some puffy red clouds (disabled blending), also tweaked the particle behavior... But this is on the side note.
 
Here's blood. Also reduced the number of blood particles from 2500(!) to 55. Also reduced gun smoke particles to from 180 to 50, as well as reduced number of particles of smoke upon bullet hitting ground.
KLnA7B.jpg
Actually, it seems that number of particles per second is a specific number, and the number of particles is limited. That is why I have those fountains of blood hanging in air  :neutral:
 
Back
Top Bottom