如果我在着色器中有一堆充满数据cbuffer1,cbuffer2,cbuffer3等的常量缓冲区。在hlsl中是否有任何方法可以在运行时动态访问特定的常量缓冲区?像这样......
cbuffers[1].MyValue
或者是拥有像这样的大量if语句的唯一方法......
if(index == 0){
return cbuffer0.MyValue;
} else if(index == 1){
return cbuffer1.MyValue;
} else if(index == 2){
return cbuffer2.MyValue;
}
这似乎表现不佳。
答案 0 :(得分:0)
如果所有3个常量缓冲区的数据都以相同的格式布局,为什么不只有1个常量缓冲区,其中包含3个结构的数组?