Разве вы не можете просто нормализовать свои нормы, позвонив по этому номеру?
glEnable( GL_NORMALIZE );
Это не идеально, потому что нормализация, вероятно, немного ударит по графическому процессору, но это действительно зависит от того, вызвано ли ваше узкое место передачей данных в графический процессор или из-за того, что графический процессор выполняет слишком много. Как и при любой оптимизации, вам нужно выяснить, что дает лучшую скорость. Я бы подозревал что вы, вероятно, замедлились, передав данные вершин, так что вы получите ускорение.