如何在HLSL中使用大数组(错误X4505)

3

当我尝试编译时,出现以下错误:

X4505:临时寄存器和可索引临时寄存器的总和超过了 4096 的限制。

但是我的着色器FX Composer中可以正常工作。

它崩溃的原因可能是因为我使用了非常大的数组,因为我正在使用 Marching Cubes。

const static int edgeTable[256] = ...
const static int triTable[256][16] = ...

我应该如何使用这些数组?(D11)


1
每个着色器阶段允许使用多达15个着色器常量缓冲区;每个缓冲区可容纳多达4096个常量。 - MuertoExcobito
2个回答

1

其实,在发布这篇文章几天后(熬了几个通宵),我已经解决了这个问题,但是忘记上传解决方案。 现在我已经忘记了具体的解决方法,所以我将上传整个解决方案:https://github.com/Ownie/MarchingCubesShader


-2

2
那么?如何在HLSL中使用大数组(错误X4505)? - Jeroen van Langen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接