It has been experimentally established that the low-poly 3D grass model used in this case can only look normal in the time period from 09-00 to 15-00, unfortunately. Due to certain lighting algorithms in the IL-2 game (which cannot yet be influenced), the appearance of the grass becomes poor before 09-00 and later than 15-00.
For other grass objects I have done a combination of surface normals adjustment and .mat file parameters to obtain good lighting appearance at all times. I'm sure the same can be done here.
For the surface normals, orienting them perpendicular to the faces is not always the best approach. For these kinds of objects which are comprised of flat faces largely standing on edge, either perfectly perpendicularly or nearly so, orienting the normals mostly vertically works well.
Here are some of the vertices from one of my kunai grass objects. Every four vertices define the four corners of one side of the long strip that makes up one line of grass. Note that
all vertices for
all strips, no matter their X/Y orientation on the ground, have the normal's Z component oriented identically, mostly vertically at 0.9659... (75 degrees). The X and Y normal components are oriented as necessary based on the strip's orientation on the ground.
-1.95624925 5.3062855 -0.01723 0.2118742154 0.1486492944 0.9659258274
-1.85718625 5.336709 2.862366 0.2118742154 0.1486492944 0.9659258274
1.078633 -4.2226295 2.862363 0.2118742154 0.1486492944 0.9659258274
0.97957 -4.25305325 -0.017233 0.2118742154 0.1486492944 0.9659258274
-0.86293975 4.49055475 -0.01723 -0.1595489072 0.2037926448 0.9659258274
-0.7797975 4.552413 2.862366 -0.1595489072 0.2037926448 0.9659258274
5.18940175 -3.47059375 2.412363 -0.1595489072 0.2037926448 0.9659258274
5.10625925 -3.53245225 -0.017233 -0.1595489072 0.2037926448 0.9659258274
0.76139825 -7.075611 -0.01723 -0.2079095038 -0.1541458209 0.9659258274
0.6583055 -7.06507575 2.862366 -0.2079095038 -0.1541458209 0.9659258274
1.67486925 2.88311925 1.962363 -0.2079095038 -0.1541458209 0.9659258274
1.777962 2.8725845 -0.017233 -0.2079095038 -0.1541458209 0.9659258274
0.81812775 3.62229925 -0.01723 0.0948942922 -0.2407952848 0.9659258274
0.915924 3.58802125 2.862366 0.0948942922 -0.2407952848 0.9659258274
-2.3917655 -5.84909525 2.862363 0.0948942922 -0.2407952848 0.9659258274
-2.48956225 -5.814818 -0.017233 0.0948942922 -0.2407952848 0.9659258274
-1.67631575 3.7336305 -0.01723 0.1112559676 0.233686554 0.9659258274
-1.573256 3.74448425 2.412366 0.1112559676 0.233686554 0.9659258274
-0.5258785 -6.20051375 1.962363 0.1112559676 0.233686554 0.9659258274
-0.62893825 -6.2113685 -0.017233 0.1112559676 0.233686554 0.9659258274
Here are the .mat file contents for LOD0:
[ClassInfo]
ClassName TMaterial
[General]
tfDoubleSide 0
tfShouldSort 0
tfDropShadow 0
tfGameTimer 1
[LightParams]
Ambient 1.0
Diffuse 0.5
Specular 0.0
SpecularPow 0
Shine 0.0
[Layer0]
TextureName grass_2048.tga
PaletteName
Frame 0.0
VisibleDistanceNear 0.0
VisibleDistanceFar 1500
TextureCoordScale 0.0 0.0 1.0 1.0
ColorScale 1.0 1.0 1.0 1.0
AlphaTestVal 0.5
tfWrapX 1
tfWrapY 1
tfMinLinear 1
tfMagLinear 1
tfMipMap 1 //0
tfBlend 1
tfBlendAdd 0
tfTestA 1
tfTestZ 1
tfUpDateClear 0
tfModulate 1
tfNoTexture 0
tfAnimatePalette 0
tfAnimateSkippedFrames 0
tfNoWriteZ 0
tfDepthOffset 0
tfTranspBorder 0
tfTestZEqual 0
//AlphaTestVal 0.5 has some edge
//transparency issue against sky;
//0.7 does not.
//But 0.5 here merges perfectly with
//Mid.mat, and looks more natural
//against ground.