代码之家  ›  专栏  ›  技术社区  ›  Goz

在D3D10的着色器常量缓冲区中设置纹理

  •  1
  • Goz  · 技术社区  · 14 年前

    好的,我在D3D10下编译了一个着色器。

    我正在获取着色器反射,以获取着色器中所有常量/全局变量的详细信息。但是我有点困惑。。。如何将纹理设置为恒定缓冲区?

    我假设我不只是映射常量缓冲区并将ID3D10Texture指针复制到其中。。。我假设我使用了ID3D10ShaderResourceView,但我只是不确定如何在常量缓冲区中设置它。

    任何帮助都将不胜感激!

    1 回复  |  直到 14 年前
        1
  •  1
  •   elmattic    14 年前

    不将纹理绑定到常量缓冲区。通过视图将纹理绑定到stage(此处为GS stage),方法如下:

    void GSSetShaderResources(
      [in]  UINT StartSlot,
      [in]  UINT NumViews,
      [in]  ID3D10ShaderResourceView *ppShaderResourceViews
    );
    

    视图和CBs实际上是两个独立的东西。