4

我有一个纹理,我需要知道它在像素着色器中的尺寸。这似乎是GetDimensions的工作。这是代码:

Texture2D t: register(t4);
...
float w;
float h;
t.GetDimensions(w, h);

但是,这会导致错误:

X4532:无法将表达式映射到像素着色器指令集

这个错误似乎没有在任何地方记录。我是否错误地使用了该功能?我应该使用其他技术吗?

我正在通过 DirectX 使用着色器模型 4.0 级别 9_1。

4

1 回答 1

3

如果调用着色器阶段的函数不可用,通常会发生此错误。

我应该使用其他技术吗?

为纹理宽度和高度使用着色器常量。它将指令保存在着色器中,这在性能方面也可能更好。

于 2013-05-06T18:10:24.280 回答