DirectXWindowsストアアプリ用にhlslを使用してDirectXシェーダーを作成する方法を学ぼうとしています。
Visual Studio 2012には、シェーダーの設計に役立つ優れたツールがありますが、私はシェーダーの初心者であるため、エクスポートされたhlslソースを解釈できず、シェーダーを微調整するために変更することもできません。
私が実際に望んでいるのは、DirectX 9用に作成されたシェーダーの一部を再利用できるようにすることです(主にXNAで使用されます)。また、netには、DirectX 9のシェーダーを教えるための非常に便利なチュートリアルがあります。DirectX9と11のシェーダーを比較していますが、既存のDirectX9シェーダーをDirectX11で使用できるシェーダーに変換する方法がわかりません。
これについて詳しく説明するための基本的な概念が欠けていると思います。2つのプラットフォームのシェーダーの違いを教えてください。
ドキュメントまたは優れたチュートリアルへの参照をいただければ幸いです。
私が見る最大の違いは、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);
}
}