public override void NotifyCurrentCamera( Camera camera )
{
base.NotifyCurrentCamera( camera );
///Fake orientation toward camera
Vector3 zVec = ParentNode.DerivedPosition - camera.DerivedPosition;
zVec.Normalize();
Vector3 fixedAxis = camera.DerivedOrientation * Vector3.UnitY;
Vector3 xVec = fixedAxis.Cross( zVec );
xVec.Normalize();
Vector3 yVec = zVec.Cross( xVec );
yVec.Normalize();
Quaternion oriQuat = Quaternion.FromAxes( xVec, yVec, zVec );
fakeOrientation = oriQuat.ToRotationMatrix();
Quaternion q = ParentNode.DerivedOrientation.UnitInverse * oriQuat;
Matrix3 tempMat = q.ToRotationMatrix();
Matrix4 rotMat = Matrix4.Identity;
rotMat = tempMat;
rotMat.Translation = new Vector3( 0.5f, 0.5f, 0.5f );
unit.TextureMatrix = rotMat;
}