【问题标题】:HLSL sampler inside struct possible?结构内的HLSL采样器可能吗?
【发布时间】:2011-02-22 10:59:53
【问题描述】:

我正在使用 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引用的想法有点工作,但我需要以某种方式在函数中声明它,但我不确定它如何工作,因为在函数内声明采样器不起作用?有人有什么想法吗?

【问题讨论】:

    标签: directx hlsl directx-9


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-10-08
        • 1970-01-01
        • 2011-06-19
        • 2019-02-03
        • 2021-06-14
        • 2010-11-21
        • 1970-01-01
        • 1970-01-01
        • 2020-12-07
        相关资源
        最近更新 更多