The way we do cockpit lighting in X-Plane
working cockpit lighting settings would be a neat little trick to have - this would be indeed easier if we had access to custom shaders, so i could write up my own little emmisive map deal and have the pit kinda light itself up (instead of having to switch between pre-baked textures)... so i'll wait for D11 to evolve a bit, then i'll adapt whatever needed for it to work
I don't know how it works in Orbiter - but in X-Plane we don't use custom shaders. We make cockpit lightings in several ways:
Firstly, there's the panel lights, for when the cockpit is dark, for example during night-flights. We have a normal panel texture, named like this:
(Or so I think.) Aircraft_name is pretty obviously the name of your aircraft.
Now we have a night texture, where the panel itself is dim and the letters and markings on it are bright, called:
Aircraft_name_panel_LIT.png
We apply the first one (as far as I remember) to the corresponding panel, and then we have a proceedure:
We define a so-called 'dataref'. Datarefs are lines of code in X-Plane that define what a 3D object in the VC does in that particular aircraft. The particular dataref (again, as far as I remember) is responsible to the texture of the panel. So, for example we define that dataref to a dial, and so when we spin the dial inside the simulator, the simulator interpolates between the two textures, from a value of 0 to a value of 1, 0 being only original texture, and 1 being the LIT texture file only, and anything in-between being a linear interpolation between the two.
About light sources in the cockpit, we define those by either defining their location inside a bundled software in the sim, or inside the 3D model of the aircraft. X-Plane then draws the light, and in the latest version it also supports shading caused by that light.
Again, all that is as far as I can remember, and I'm also not familiar with the Orbiter rendering engine & its methodology, it's simply an analysis of what we do in X-Plane and perhaps a suggestion to find a way to implement that in Orbiter, because I find it simple & intuitive with predictable results.
~Take care, Oz.