DirectX 標準注釈とセマンティクスリファレンス
標準注釈とセマンティクス (DXSAS) は、シェーダーをツール、アプリケーション、ゲーム エンジンで使用できるようにする標準的な方法でシェーダーを使用する方法を提供します。 DXSAS では、効果を共有するためにホスト アプリケーションの値と効果パラメーターにアタッチされるセマンティクスと注釈のセットを定義します。 これらの注釈とセマンティクスを有用にするには、ホスト アプリケーションと効果ファイルの両方に実装する必要があります。 このドキュメントでは、DirectX Effect Framework の機能を利用して、ホスト アプリケーションとツールが DirectX 効果 (.fx ファイル) をプログラムで共有したり、UI との対話を設計したりできるようにする DXSAS 標準について説明します。
背景情報
標準の注釈とセマンティクスは、効果と X ファイルのパラメーターをアプリケーション値をホストするようにバインドするように設計されています。 D3DX 効果フレームワーク (または効果) は、レンダリング状態をカプセル化します。 効果にレンダリング状態 (頂点、テクスチャ、ピクセル処理状態を含む) をカプセル化することで、さまざまなレンダリング オプションをカバーする効果のライブラリを作成できます。 これには、さまざまな種類のハードウェアでのレンダリング、単一またはマルチパス ブレンドを使用したレンダリングなどのオプションが含まれる場合があります。 効果フレームワークの詳細については、「 効果のリファレンス」を参照してください。 DXSAS は、このフレームワークの上に構築されており、開発者にとってより一貫性のあるエクスペリエンスを実現できます。 レンダリング設定が効果にカプセル化されると、DXSAS 標準を使用すると、効果開発者は注釈を使用して効果パラメーターの意図を公開できます。 これらの注釈は、標準に準拠している (効果を使用するように設計されたものだけでなく) 任意のホスト アプリケーションまたはツールによって読み取ることができます。これにより、設計された方法で効果を使用する方法が理解されます。
アプリケーションをサポートする効果セマンティクスと注釈のセットを標準化することで、効果作成者は複数のプロジェクトで使用できる効果を作成し、効果ユーザーのコミュニティを広めることができます。 DXSAS 標準では、開発者がファイルを読みやすくし、ツール間で交換でき、開発者はサード パーティ製ツールを利用してパイプラインの効果を作成できます。
このドキュメントでは、注釈を使用して効果パラメーターの意図を表現する DXSAS 標準について説明します。また、ホスト アプリケーションが効果を利用できるようにすることに同意するホスト アプリケーション値のコレクションを定義します。
標準注釈とセマンティクスを使用したオーサリング効果
次の図からわかるように、DXSAS 標準では、効果ファイルと、ファイルを操作するためにここで説明するガイドラインに従うホスト アプリケーションに注釈が必要です。
ホスト アプリケーションは、ユーザー インターフェイス ロジックとホスト環境を実装する必要があります。 DXSAS 準拠の効果を実装するには、次のトピックを参照してください。
- Global Parameter は、バージョンやエフェクト作成者など、効果に関連する情報を定義します。
- Data Binding は、効果に公開されているホスト アプリケーションによって設定できる効果によって使用できるパラメーターのコレクション (およびその型と構造) を定義します。
- ユーザー インターフェイス コントロールを効果パラメーターに関連付けるには、 UI 注釈を使用します。 これらの注釈には、 SasUiMax、 SasUiMin、 SasUiSteps、 SasUiStepsPower、 および SasUiStride が含まれます。
- 外部ファイルに含まれるデータを使用して効果パラメーターを初期化するには、 パラメーター初期化注釈を使用します。
- ホスト アプリケーションと効果 (またはその逆) の間でデータが転送されると、型が完全に一致しない場合に キャストと変換 が発生します。 このセクションでは、ソースとターゲットの種類が異なる場合のデータの書き込み方法を指定します。 さらに、 ParameterValueModifiers を 使用して、ホスト アプリケーションで effect パラメーターから読み取られたデータを解釈する方法を変更します。 これらの注釈には、 SasNormalize と SasUnits が含まれます。
大文字と小文字の区別
識別子、セマンティクス、注釈の値はすべて大文字と小文字が区別されません。 注釈名 (値ではない) では、大文字と小文字が区別されます。 注釈名は D3DX 効果システムによって認識されるため、SAS 注釈名も同様です。
関連トピック