Softimage でのリアルタイム シェーダ(ハードウェア シェーダとも呼ばれる)のプラグインの記述は、通常のシェーダ定義およびシェーダ言語パーサ プラグインを、実装するを数個余分に使用して記述することと同じです。
以下の表では、Softimage でのリアルタイム シェーダの実行フローを説明します。
Phase(位相) |
説明 |
---|---|
DLLの初期化 |
.dll/.so を初期化するとき、最初に呼び出される関数はRTS_GetVersion です。 この関数は 4 を返す必要があります。 |
[リアルタイムシェーダ]の初期化 |
リアルタイム シェーダの実行が可能で(つまり、ビューポートがリアルタイム シェーダ ディスプレイ モードの 1 つに設定されている)、かつリアルタイム シェーダが作成されている場合、Init 関数が呼び出されます。 ここで、インスタンス ユーザ データの作成と初期化を行えます。 |
属性の定義 |
どの属性をレンダリングするかは、GetAttributeList コールバック関数が返す CHardwareAttributeArrays を宣言することによって定義できます。Softimage は CHardwareAttribute オブジェクトへのリファレンスのリストを取得し、描画する時点で Execute コールバック関数に渡します。このとき、各 CHardwareAttribute がジオメトリのレンダリング方法の定義に使用される条件をユーザが設定できます。 |
リアルタイム シェーダの実行 |
シェーダがアタッチされたマテリアルを使用するオブジェクトの再描画が必要になるたびに、Execute 関数が呼び出されます。 Execute コールバック関数では、以下のタスクを実行できます。 |
リアルタイム シェーダの終了 |
リアルタイム シェーダが壊れている場合は、Term 関数が呼び出されます。 |
また、Softimage SDK のインストール フォルダにある examples フォルダのリアルタイム シェーダのサンプルを参照することもできます。