【问题标题】:Converting Directx 9 shaders for Directx 11.1 (Windows Store Apps)为 Directx 11.1 转换 Directx 9 着色器(Windows 应用商店应用程序)
【发布时间】:2012-12-07 06:48:26
【问题描述】:

我正在尝试学习使用 hlsl 为 DirectX Windows 应用商店应用编写 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);
    }
}

【问题讨论】:

    标签: directx windows-store-apps hlsl directx-11 directx-9


    【解决方案1】:

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

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

    【讨论】:

    • 我必须学习 DX11 着色器,但只有 DX9 着色器示例。如果我有时间和精力,我会搭建一个环境,先学习和尝试 DX9,然后了解 DX9 和 DX11 之间的区别,然后开始在 DX11 中编写。我希望短路 DX9 并直接转移到 DX11,并提供一些帮助,例如提供参考或可能列出差异。
    • 我知道这正是您所要求的——当您两个都不会说时将中国诗歌翻译成俄语。 DX9 HLSL 和 DX11 HLSL 的核心语言几乎相同,但管理 DirectX 状态的部分发生了变化。如果您不知道“DirectX 状态”是什么意思,那么您需要认真爬山才能理解混合状态、着色器阶段等。
    • 我已经开始了解事情了。感谢您的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多