Ландшафт задан сеткой высот, для каждой высоты известна нормаль. По идее вектора бинормали и тангента зависят только от значения нормали и больше ни от чего.
т.е.
Binormal, Tangent = func1(Normal)
Возможно ли в шейдер передавать только нормаль (для экономии времени) и поворот вектора освещения считать на ее основании?
Т.е
Обычно делают так:
newLightVec = func2(Tangent, Binormal, Normal, LightVec)
Можно ли сделать так:
newLightVec = func3(Normal, LightVec)?