The mirror probes appear to be oriented in a similar direction, verified via two methods via debugging:
Rotations of the prim, according to selection tool code (see LLViewerWindow::renderSelections)
Rotations used directly by the hero probe (mNearestHero->mDrawable->getWorldRotation()), which appear to be roughly the same orientation but are very different quaternions. See also this third-party quaternion visualization tool (Note: This visualization tool rotates (1,0,0), not (0,0,1) which is the mirror probe vector we care about).
Working probe quaternion xyzw: {-0.299080938, -0.640742242, 0.328631878, 0.626099885}
The "broken" mirror probe shows nothing but void, neither objects nor terrain. The "working" mirror probe shows correct reflections. Due to them having nearly the same orientation, one would expect the behavior to be similar. Something breaks in the math surrounding the hero probe normal. It's either the quaternion math or something a bit later. clipPlane and clipSign have bad values in the shader as a result, causing mirrorClip to discard the reflected objects.
It's currently hard to create a new mirror to attempt to reproduce this bug from scratch, due to current bugs with mirror creation. For this reason, I recommend the SLURL testing location.
Description
I investigated the two rightmost of three large mirrors at this area in Rumpus Room 2048: secondlife://Aditi/secondlife/Rumpus%20Room%202048/38/154/23 .
The mirror probes appear to be oriented in a similar direction, verified via two methods via debugging:
LLViewerWindow::renderSelections
)mNearestHero->mDrawable->getWorldRotation()
), which appear to be roughly the same orientation but are very different quaternions. See also this third-party quaternion visualization tool (Note: This visualization tool rotates (1,0,0), not (0,0,1) which is the mirror probe vector we care about).{-0.299080938, -0.640742242, 0.328631878, 0.626099885}
{0.653281450, 0.270598054, 0.653281569, 0.270597905}
The "broken" mirror probe shows nothing but void, neither objects nor terrain. The "working" mirror probe shows correct reflections. Due to them having nearly the same orientation, one would expect the behavior to be similar. Something breaks in the math surrounding the hero probe normal. It's either the quaternion math or something a bit later.
clipPlane
andclipSign
have bad values in the shader as a result, causing mirrorClip to discard the reflected objects.It's currently hard to create a new mirror to attempt to reproduce this bug from scratch, due to current bugs with mirror creation. For this reason, I recommend the SLURL testing location.
This ticket is prior to implementation of https://github.com/secondlife/viewer/issues/1012 .