0

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

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

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

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

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

似乎 this-relative 引用的想法是可行的,但我需要以某种方式在函数中声明它,但我不确定它是如何工作的,因为在函数内部声明采样器不起作用?有人有想法么?

4

2 回答 2

1

我虽然在 HLSL 中一切都是值类型。你知道这会有什么影响吗?

每次将此结构分配给其他变量时,您都会复制采样器。着色语言在许多方面都有限制,例如采样数量,而不仅仅是采样器的数量。

于 2011-04-30T14:36:46.593 回答
0

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

于 2011-02-22T11:23:07.240 回答