A progress report.
I've fixed those remaining bad surface normals that are the more worthy. There remain many others which don't detract too badly, and which most players likely wouldn't notice anyway.
The two gauges which employ transparency cutouts in the panel in order that their interior parts be seen have properly black insides to ensure that no background, brighter textures can be seen through any gaps. In this pic, from a rather rakish view angle to drive home the point, shows a nice black inside to the artificial horizon and magnetic compass. Regarding the compass, I've improved upon--and actually utilized--the transparent gradient that gives the impression of deepening shadowing upon the ball interior. And again, the bank angle caret on the artificial horizon now works properly, as opposed to incorrectly being another turn rate indicator.
To highlight again the extended fore-aft 6dof range of virtual head movement, and how it contributes to a better sight picture. The top two pics are at the same 105 degree FOV, for the farthest aft and farthest foreward POVs, respectively. The last panel in this triplet is a closeup at a 30 degree FOV which shows how one can simultaneously see the reticle's center and the cowling, which aids greatly in gunnery while pulling G. The real pilot could do this, as long as his harness had a bit of looseness to permit to lean forward (some looseness is required in order to freely rotate as necessary to check six.)
The cockpit night lights are often something of a bugbear in Il-2 '46. When the light emitter lies near to other textures, the latter often flicker like mad. To reduce this, moving the emitter farther away helps a lot. Here I've moved the lights inward, downward and back so that the flicker is now at least 10X improved.
This pair of pics has the stock A6M5 on the top. The instant of capturing the screenie caught the light intensity at about minimum in its mad flicker cycle. Note how the light is also extremely tightly concentrated, due in good measure to the closeness of the emitters to the panel. The shot below it is of my improved scenario in this A6M2. The light now covers rather more area of the panel, and again the flickering is *vastly* reduced in amplitude and annoyance.
For the lighting, which I strongly suspect is identical in all Zero cockpit classes, here's the improved code. The original lines are the top two, now rem'd out. The left light is light1, and the right is light2. The X, Y and Z values, in order from left to right, when increased move the emitter forward, left and up (hence the reminder "F L U"):
// light1 = new LightPointActor(new LightPoint(), new Point3d(-0.1756, 0.3924, 0.5913));
// light2 = new LightPointActor(new LightPoint(), new Point3d(-0.1479, -0.3612, 0.5913));
light1 = new LightPointActor(new LightPoint(), new Point3d(-0.3, 0.24, 0.45)); //F L U; Left light
light2 = new LightPointActor(new LightPoint(), new Point3d(-0.28, -0.21, 0.45));
Farther down in the cockpit class, the intensity and range of the emitters are set. The first number is for intensity, and the second is for range. The original lines have been rem'd out. Note that the left light was given half the intensity of the other. I made both identical, as well as slightly increasing their range so as to mitigate against the harsher spotlight effect.
public void toggleLight() {
cockpitLightControl = !cockpitLightControl;
if (cockpitLightControl) {
// light1.light.setEmit(0.5F, 0.25F); //left
// light2.light.setEmit(1.0F, 0.25F); //right
light1.light.setEmit(0.95F, 0.35F); //left
light2.light.setEmit(0.95F, 0.35F); //right
setNightMats(true);
} else {
light1.light.setEmit(0.0F, 0.0F); //left
light2.light.setEmit(0.0F, 0.0F); //right
setNightMats(false);
}
}