Если в моем шейдере есть загрузка постоянных буферов, заполненных данными cbuffer1, cbuffer2, cbuffer3 и т. Д. Есть ли какой-либо способ в hlsl, чтобы я мог динамически обращаться к определенному постоянному бустеру во время выполнения? Что-то вроде этого ...Динамический выбор постоянного буфера
cbuffers[1].MyValue
Или это единственный способ иметь массивным, если заявление, как это ...
if(index == 0){
return cbuffer0.MyValue;
} else if(index == 1){
return cbuffer1.MyValue;
} else if(index == 2){
return cbuffer2.MyValue;
}
Что кажется, что он не будет хорошо работать.
Данные имеют одинаковый макет, но используемые буферы будут различаться. Поэтому я не могу хранить все данные в одном буфере, не создавая новый буфер, который содержит объединенные данные в каждом кадре. –