我有一个纹理,我需要知道它在像素着色器中的尺寸。这似乎是GetDimensions的工作。这是代码:
Texture2D t: register(t4);
...
float w;
float h;
t.GetDimensions(w, h);
但是,这会导致错误:
X4532:无法将表达式映射到像素着色器指令集
此错误似乎未在任何地方记录。我错误地使用了这个功能吗?我应该使用不同的技术吗?
我正在通过DirectX在shader model 4.0 level 9_1中工作。
答案 0 :(得分:2)
如果函数在调用着色器阶段不可用,则通常会发生此错误。
我应该使用不同的技术吗?
对纹理宽度和高度使用着色器常量。它可以在着色器中保存指令,这也可能是性能更好的。