【问题标题】:How do I load a texture into a shader (DirectX11/SlimDX)如何将纹理加载到着色器 (DirectX11/SlimDX)
【发布时间】:2012-02-28 21:08:07
【问题描述】:

我有一个现成的 Texture2D;我有一个显然可以工作的着色器纹理采样器和着色器纹理变量,我可以将 Texture2D 放入其中。

唯一的问题是,我不知道如何在 DirectX11 中将纹理加载到着色器中 - 要么 Google 没有帮助,要么只是我无法构建好的搜索词。

我需要什么:将采用 Texture2D 并将其加载到着色器中的代码。例如,有关如何执行此操作的链接。

无论如何,这是我的着色器代码:

cbuffer CameraSet : register(b0)
{
    float4x4 ViewProj ;
} ;
cbuffer MeshSet : register(b1)
{
    float4x4 World ;
    texture2D Texture ;
    SamplerState MeshTextureSampler
    {
        Filter = MIN_MAG_MIP_LINEAR ;
        AddressU = WRAP ;
        AddressV = WRAP ;
    } ;
} ;


struct VShaderOutput
{
    float4 WorldPosition : POSITION ;
    float4 ScreenPosition : SV_POSITION ;
    float2 UV : TEXCOORD;
} ;

VShaderOutput VShader( float4 position : POSITION, float2 uv : TEXCOORD )
{
    VShaderOutput r ;

    r.WorldPosition = mul( position, World ) ;
    r.ScreenPosition = mul( r.WorldPosition, ViewProj ) ;
    r.UV.x = abs( uv.x ) ;
    r.UV.y = abs( uv.y ) ;

    return r ;
}


struct PShaderOutput
{
    float4 SV_Target : SV_TARGET ;
    float SV_Depth : SV_DEPTH ;
};

PShaderOutput PShader( VShaderOutput input )
{
    PShaderOutput r ;

    r.SV_Depth = input.ScreenPosition.z;

    r.SV_Target = Texture.Sample( MeshTextureSampler, input.UV ) ;

    return r ;
}

谢谢。

【问题讨论】:

    标签: slimdx directx-11


    【解决方案1】:

    ...如果是的话

    context.PixelShader.SetShaderResource(TextureShaderResourceView, 0);

    我想我只是回答了我自己的问题。但是为什么数组值为 '0' 会起作用呢?

    【讨论】:

    【解决方案2】:

    我使用 2 个着色器资源:

    hlsl:

    Texture2D<float4> Self : register(t0);
    Texture2D<float4> Other : register(t1);
    

    cs:

    device.ImmediateContext.ComputeShader.SetShaderResource(resourceViewSelf, 0);
    device.ImmediateContext.ComputeShader.SetShaderResource(resourceViewOther, 1);
    

    不知怎的……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多