11

在 Shader Model 2.0 下的 HLSL 着色器中编译以下 for 循环时,出现错误 X3511。

for (int x = -5; x <= 5; x++)
{
    for (int y = -5; y <= 5; y++)
    {
            ...

错误内容如下:无法展开循环,循环似乎没有及时终止(5 次迭代),使用 [unroll(n)] 属性强制使用更高的数字。

我知道这个错误消息,但我没有在 for 语句的条件部分使用变量 - 这是一个硬编码的 x <= 5 条件。这里有什么问题?

提前致谢!

4

1 回答 1

12

试试这个:

[unroll(121)] for (int i=0; i<121; i++)
{
    int x = i / (int)11 - 5;
    int y = i % (int)11 - 5;
}
于 2012-09-04T13:43:04.343 回答