Нет проблема больше в комбинаторном взрыве. то есть можно скомпилировать заблаговременно 3-4 версии из 2-х кусков и все их загрузить на gpu. Но когда этих фрагментов тысячи, то сам понимаешь)
Обычно в редакторе выбираешь материал (несколько материалов могут находиться в одном и том же шейдере). А уже цвет и другие параметры - это вообще uniforms (параметры которые можно связать с хостом и от туда ими управлять) без необходимости загружать новый шейдер=) Так же и с текстурами и вершинами
удивительно как все переросло вообще наверное не в то, о чем думалось, я всегда думал что JS максимум гостевуху на ucoz’е сможет помочь сделать в пару строк, теперь какие-то претензии к перформансу