2

我正在尝试学习使用 hlsl 为 DirectX Windows Store App 编写 DirectX 着色器。

Visual Studio 2012 有一个很好的工具来帮助设计着色器,但由于我是着色器的新手,我无法解释导出的 hlsl 源代码并可能对其进行更改以微调着色器。

我实际上想要的是能够重用为 DirectX 9 编写的一些着色器(主要用于 XNA)。此外,net 有非常有用的教程来教授 DirectX 9 的着色器。我正在比较 DirectX 9 和 11 的着色器,但看不到如何将现有的 DirectX 9 着色器转换为我可能在 DirectX 11 中使用的着色器。

我想我缺少一些基本概念来深入了解这方面的细节。请让我知道两个平台中着色器之间的区别。

对文档或好的教程的引用将不胜感激。

我看到的最大区别是 DirectX 11 着色器具有如下所示的主要功能,尽管旧着色器没有。

P2F main(V2P pixel)

相反,他们有如下内容:

technique10 FireTechnique
{
    pass pass0
    {
        SetBlendState(AlphaBlendingOn, float4(0.0f, 0.0f, 0.0f, 0.0f), 0xFFFFFFFF);
        SetVertexShader(CompileShader(vs_4_0, FireVertexShader()));
        SetPixelShader(CompileShader(ps_4_0, FirePixelShader()));
        SetGeometryShader(NULL);
    }
}
4

1 回答 1

1

试试http://msdn.microsoft.com/en-us/library/windows/desktop/ff476190(v=vs.85).aspx

但实际上,也许您应该首先了解 DX9 着色器(FXComposer?我不确定您是如何采购这些 DX9 着色器的)——感觉有点像您想从一种您不知道的语言翻译进入另一个你不知道不学习第一个。

于 2012-12-06T22:48:26.850 回答