Мне интересно, может ли наличие неинициализированной униформы в шейдерах создать проблемы с выполнением или дальнейшие проблемы с точки зрения поддержки кода / чего-то, о чем я еще не знаю.
По сути, я на этом этапегде шейдер применяет несколько точечных источников света, но я знаю, что это количество точечных источников света будет изменяться во время выполнения программы. Иногда их будет немало, иногда их нет, но, как это написано в этом файле , вы получаете 4 точечных источника света. Если я хочу иметь переменное количество точечных источников света, я предполагаю, что я могу увеличить константу NR_POINT_LIGHTS до максимального количества источников света, которые мне когда-либо придется отображать, и установить униформу, чтобы сообщить шейдеру, сколько источников света он фактически должен нарисовать. Но тогда у меня будет несколько строк массива, которые не будут инициализированы;это проблематично в любом случае?
Я также планировал добавить возможность рисовать простым цветом вместо текстурирования модели, и я сделал бы это точно так же;имея униформу, которая сообщает шейдеру, использовать ли сэмплеры или цвет, заданный в униформе, и просто добавить несколько структур if в остальную часть шейдера ...