动态选择常量缓冲区

时间:2014-07-23 11:49:55

标签: hlsl

如果我在着色器中有一堆充满数据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;
}

这似乎表现不佳。

1 个答案:

答案 0 :(得分:0)

如果所有3个常量缓冲区的数据都以相同的格式布局,为什么不只有1个常量缓冲区,其中包含3个结构的数组?