我正在尝试学习使用 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);
}
}