by Thorsten » Tue Nov 21, 2017 7:29 am
There's no magic involved. The shader decides that you see splash impacts when the dot product of splash vector and surface normal comes out negative, i.e. the normal points towards the incoming drops.
(The shader doesn't know what you know, in particular it doesn't know where world 'up' is during the computation).
The normal is aircraft-maintainer controlled at design time, the 3d modeling application sets it and can visualize it.
The splash vector is aircraft-maintainer controlled at runtime, for convenience you can write it into /environment/aircraft-effects/splash-x (yz), but you can also make a <use> tag in a derived effect to point to different properties and use a separate splash vector for each surface if you need.
Unless you have a pathological distribution of normals, for each surface there's a splash vector for which the impacts are head-on, and you can find that vector runtime,
If it worked before, then you copied a surface and flipped the normals to face inward, then you also need to flip the splash vector - otherwise you reversed the sign of the dot product. If it worked consistently across all glass surfaces before and it didn't afterwards even after sign reversal, you missed flipping some of the normals.
These are the things that can happen, and since the shader as such is working, it's one of these two things which went wrong - but the good news is, it's guaranteed to be fixable.