次の方法で共有


DirectX 標準アノテーションとセマンティクスのリファレンス

標準アノテーションとセマンティクス (DXSAS) は、ツール、アプリケーション、およびゲーム エンジンでシェーダーを使用できるように、シェーダーの使い方を標準的な方法で示します。DXSAS では、エフェクトを共有するために、ホスト アプリケーションの値およびエフェクト パラメーターに付加するセマンティクスとアノテーションのセットを定義します。これらのアノテーションとセマンティクスを活用するためには、これらをホスト アプリケーションとエフェクト ファイルの両方に実装する必要があります。このドキュメントでは、DXSAS 標準について説明し、DirectX エフェクト フレームワークの機能を活用して、ホスト アプリケーションとツールでプログラム的に DirectX エフェクト (.fx ファイル) を共有し、UI による相互作用を設計します。

背景情報

標準アノテーションとセマンティクスは、エフェクトおよび X ファイル パラメーターをホスト アプリケーションの値にバインドするように設計されています。D3DX エフェクト フレームワーク (またはエフェクト) は、レンダリング ステートをカプセル化します。エフェクトでレンダリング ステート (頂点、テクスチャー、ピクセルの処理ステートを含む) をカプセル化することによって、広範なレンダリング オプションに対応するエフェクトのライブラリを作成できます。これには、さまざまなハードウェア タイプ上でのレンダリングや、単一パスまたはマルチパス ブレンディングによるレンダリングなどのオプションも含まれます。エフェクト フレームワークの詳細については、「エフェクトのリファレンス」 を参照してください。DXSAS により、開発者が一貫した実践を考慮するためのこのフレームワークの最上部を構築します。従来はエフェクトのレンダリングの設定はカプセル化されていましたが、DXSAS 標準ではアノテーションを使用してエフェクト パラメーターの用途を明示できるようになりました。これらのアノテーションは任意のホスト アプリケーションで読み込むことができ、(エフェクトを使用するよう設計したものに限らず) 標準に準拠したツールではエフェクトの用途が意図したとおりに認識されます。

ホスト アプリケーションでサポートするエフェクトのセマンティクスおよびアノテーションのセットを標準化することにより、エフェクトの作成者は複数のプロジェクトで使えるエフェクトを作成でき、エフェクト ユーザーのコミュニティの拡大を促進します。DXSAS 標準により、ファイルは開発者にとって読みやすくなり、ツール間の互換性が高まり、パイプラインでエフェクトをオーサリングするサード パーティ ツールを活用できます。

このドキュメントでは、DXSAS 標準についての説明の中で、アノテーションを使用してエフェクト パラメーターの目的を示し、ホスト アプリケーションにエフェクトの用途を承諾させるホスト アプリケーション値の集合を定義します。

標準アノテーションとセマンティクスによるエフェクトのオーサリング

次の図に示すように、DXSAS 標準ではエフェクト ファイルのアノテーションのほかに、このファイルと連携する後述のガイドラインに準拠したホスト アプリケーションが必要です。

Ee418091.SAS_2(ja-jp,VS.85).gif

ホスト アプリケーションは、ユーザー インターフェイス ロジックおよびホスト環境を実装する必要があります。DXSAS 準拠のエフェクトを実装するには、トピックを参照してください。

  • グローバル パラメーターでは、バージョン、エフェクト作成者などのエフェクトに関する情報を定義します。
  • データ バインドでは、エフェクトで使用できるパラメーター (およびその型と構造体) の集合を定義します。これは、エフェクトに公開するホスト アプリケーションで設定できます。
  • ユーザー インターフェイス コントロールとエフェクト パラメーターを関連付けるには、UI アノテーションを使用します。これらのアノテーションには、SasUiMaxSasUiMinSasUiStepsSasUiStepsPowerSasUiStride などがあります。
  • エフェクト パラメーターを外部ファイルに格納されたデータで初期化するには、パラメーター初期化アノテーションを使用します。
  • ホスト アプリケーションとエフェクト間でデータを転送するときに、型が正確に一致しないとキャストと変換が発生します。この項では、ソースとターゲットで型が異なるときに、データが書き込まれる方法を説明しています。さらに、ParameterValueModifiers を使用して、ホスト アプリケーションがエフェクト パラメーターから読み込むデータの解釈の方法を変更します。これらのアノテーションには、SasNormalizeSasUnits があります。

大文字/小文字の区別

すべての識別子、セマンティクス、アノテーションの値は、大文字と小文字が区別されません。アノテーション名 (値ではない) は、大文字/小文字が区別されます。アノテーション名は D3DX エフェクト システムで認識されるので、SAS アノテーション名も認識されます。