结构中的HLSL采样器可能吗?

时间:2011-02-22 10:59:53

标签: directx hlsl directx-9

我正在使用DirectX 9效果框架。

我想创建一个包含如下采样器的结构:

struct Test
{
    texture tex;
    sampler texSamp = sampler_state
    {
        Texture = <tex>;
    };
};

然而着色器编译器失败了:

internal error: this-relative Test::tex 'tex' found outsideof function scope

看起来这个相对引用的想法是有效的,但我需要以某种方式在函数内声明它,但我不确定它是如何工作的,因为在函数内声明采样器不起作用?有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为在HLSL中,一切都是值类型。 你知道这有什么意义吗?

每次将此结构分配给其他变量时,您都会执行采样器的副本。 阴影语言在很多方面都有限制,例如采样数,而不仅仅是采样器的数量。

答案 1 :(得分:0)

似乎HLSL结构中不支持非数字类型,这对我的应用程序来说是一种耻辱。