リアルタイム(ハードウェア)シェーダ プラグインの作成

 
 
 

Softimage でのリアルタイム シェーダ(ハードウェア シェーダとも呼ばれる)のプラグインの記述は、通常のシェーダ定義およびシェーダ言語パーサ プラグインを、実装するを数個余分に使用して記述することと同じです。

ヒント:

ユーザの観点から見た Softimage でのリアルタイム シェーダの詳細については、『ユーザ ガイド』を参照してください。

Softimage リアルタイム シェーダとお使いのプラグインとの下位互換性の詳細については、「互換性情報」を参照してください。

実行フロー

以下の表では、Softimage でのリアルタイム シェーダの実行フローを説明します。

Phase(位相)

説明

DLLの初期化

.dll/.soを初期化するとき、最初に呼び出される関数はRTS_GetVersionです。 この関数は 4 を返す必要があります。

[リアルタイムシェーダ]の初期化

リアルタイム シェーダの実行が可能で(つまり、ビューポートがリアルタイム シェーダ ディスプレイ モードの 1 つに設定されている)、かつリアルタイム シェーダが作成されている場合、Init 関数が呼び出されます。 ここで、インスタンス ユーザ データの作成と初期化を行えます。

属性の定義

返す CHardwareAttributeArrays を(GetAttributeList コールバック関数のために)宣言することにより、どの属性をレンダリングすべきかを定義できます。 Softimage は CHardwareAttribute オブジェクトに対するこの参照リストを受け取り、描画時にこのリストを Execute コールバック関数に渡します。 その時点で、ユーザは各 CHardwareAttribute を使用してジオメトリのレンダリング方法を定義する条件を設定できます。

リアルタイム シェーダの実行

シェーダがアタッチされたマテリアルを使用するオブジェクトの再描画が必要になるたびに、Execute 関数が呼び出されます。 Execute コールバック関数では、以下のタスクを実行できます。

  • シーン データにアクセスする

  • ジオメトリをレンダリングする

  • エラーを表示する

  • レガシー情報を取得する

  • その他

リアルタイム シェーダの終了

リアルタイム シェーダが壊れている場合は、Term 関数が呼び出されます。