Что типа того, но в шейдере жиж надо еще умножать gl_NormalMatrix.
Как мне поступить? Умножать в фрагментном шейдере на gl_NormalMatrix этот вектор или не паковать так, а только направление на свет и потом уже в фрагментном шейдере производить всё нужные операции?