我正在使用DirectX 9效果框架。
我想创建一个包含如下采样器的结构:
struct Test
{
texture tex;
sampler texSamp = sampler_state
{
Texture = <tex>;
};
};
然而着色器编译器失败了:
internal error: this-relative Test::tex 'tex' found outsideof function scope
看起来这个相对引用的想法是有效的,但我需要以某种方式在函数内声明它,但我不确定它是如何工作的,因为在函数内声明采样器不起作用?有人有什么想法吗?
答案 0 :(得分:1)
我认为在HLSL中,一切都是值类型。 你知道这有什么意义吗?
每次将此结构分配给其他变量时,您都会执行采样器的副本。 阴影语言在很多方面都有限制,例如采样数,而不仅仅是采样器的数量。
答案 1 :(得分:0)
似乎HLSL结构中不支持非数字类型,这对我的应用程序来说是一种耻辱。