我有一个纹理,我需要知道它在像素着色器中的尺寸。这似乎是 GetDimensions 的工作。这是代码:
Texture2D t: register(t4);
...
float w;
float h;
t.GetDimensions(w, h);
但是,这会导致错误:
此错误似乎没有记录在任何地方。我是否错误地使用了该功能?我应该使用不同的技术吗?
我正在通过 DirectX 在着色器模型 4.0 级别 9_1 中工作。
最佳答案
如果函数在调用着色器阶段不可用,通常会发生此错误。
将 着色器常量 用于纹理宽度和高度。它将指令保存在着色器中,这在性能方面也可能更好。
关于graphics - HLSL:在像素着色器中获取纹理尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16403704/