Что лучше?
-
В есть одна шейдерная программа с большим количеством мундиров, определяющая огни для использования или сопоставления (например, мне нужна одна сетка для отображения параллакса, а другая - параллакс/зеркальное отображение). Я бы сделал кешированный список униформ для ленивых переводов и просто изменил пару униформ для каждой следующей сетки, если это нужно сделать.
-
В есть много шейдерных программ для каждого необходимого случая, каждый из которых имеет небольшое количество мундиров и выполняет ленивое связывание с glUseProgram для каждой сетки если это необходимо. Здесь я предполагаю, что сетки правильно упакованы, чтобы избежать избыточных переключателей.