【发布时间】:2011-01-23 23:00:00
【问题描述】:
我有一个小的片段着色器,它对数组中的多个值进行操作,但是数组的大小存储在一个常量中。
数组声明如下:
float4 colors[(blurRadius*2+1)*(blurRadius*2+1)];
然后我继续使用 for 循环为它们分配值
for(int i = -blurRadius; i<= blurRadius; i++)
{
for(int j = -blurRadius; j<=blurRadius;j++)
{
colors[j + blurRadius + ((i+blurRadius)*blurRadius)]=float4(0,0,0,0);
}
}
但是,当运行代码时,会返回以下编译器错误:
error X4000: variable 'colors' used without having been completely initialized
如何在 HLSL 中完全初始化一个我不知道其大小的数组?
【问题讨论】:
标签: c arrays memory initialization hlsl