I had just thought to extract matrices from forward- and backward-computations and pre-multiply them before applying to the eyepos. This is however not possible as one of the projectors may be a Refraction itself with a non-Matrix part...
So there is a refraction computation in the forward(eyepos) transformation, but this eyepoint is only used in the Moon shader and some settings in Ring face-culling. The positional difference between refracted and unrefracted positions for illumination angle changes is totally insignificant. Nick or Alex, can you please try Planet.cpp, line ca. 1612:
I had just thought to extract matrices from forward- and backward- computations and pre-multiply them before applying to the eyepos. This is however not possible as one of the projectors may be a Refraction itself with a non-Matrix part...
So there is a refraction computation in the forward(eyepos) transformation, but this eyepoint is only used in the Moon shader and some settings in Ring face-culling. The positional difference between refracted and unrefracted positions for illumination angle changes is totally insignificant. Nick or Alex, can you please try Planet.cpp, line ca. 1612:
StelApp: :getInstance( ).getCore( )->getHeliocent ricEclipticMode lViewTransform( StelCore: :RefractionOff) ->forward( eyePos) ;
and remove Nick's hack-fix.
Is this enough to avoid the flicker in 64bit builds?