実装

 
 
 

カスタム Fx オペレータは、エフェクトのセットアップおよびレンダリングを定義する、一連の事前定義ユーザ関数として記述されます。 これらの関数は、次の 3 つの主要領域のどれかに該当します。

これらのユーザ関数は、サポート関数のインターフェイス ライブラリを介してコードのメイン ボディとやり取りします。 UFO コードのコンパイルおよびリンクによって Dynamic Shared Object(.so)または Dynamically Linked Library(.dll)が生成されます。この生成内容は、実行時に Softimage にロードされます。

事前定義関数のシンボルは、カスタム Fx オペレータ内で検索され、アドレスは今後の呼び出しのために表にされます。 オペレータが実行された場合、最終的な様相は、あたかも関数が製品に直接リンクされているかのようなものになります。

インターフェイス ライブラリは、C のバインドで書かれます。この目的のために提供されているヘッダ ファイルには、次のものがあります。

以下はユーザ関数の説明です。

機能

説明

ufoProcessDefine

プロセスの定義および初期化

ufoProcessCopyUserData

ユーザ データのコピー

ufoProcessDeleteUserData

ユーザ データの削除

ufoProcessPreSequenceRender

プリレンダリング シーケンス

ufoProcessPostSequenceRender

ポストレンダリング シーケンス

ufoProcessCanAvoidRendering

レンダリングが回避可能かどうかを判断するプリフレーム レンダ関数

ufoProcessPreRender

プリレンダリング

ufoProcessPostRender

ポストレンダリング

ufoProcessPreRenderPass

プリレンダリング パス

ufoProcessPostRenderPass

ポストレンダリング パス

ufoProcessRenderPixel

ピクセル レンダ

ufoProcessRenderLine

ライン レンダ

ufoProcessRenderRectangle

矩形レンダ

ufoProcessCalcDefinedRectangle

出力にレンダリングできる矩形を計算します。

ufoProcessCalcNeedRectangles

入力から必要な矩形を計算します。

ufoProcessCalcDefinedPixelType

指定された入力ピクセル タイプを基に最適なピクセル タイプを計算します。

ufoProcessSpecifyConvertPixelTypes

入力/出力ピクセル タイプの変換を指定します。

ufoProcessParamsEdited

パラメータ編集のコールバック ルーチン。変更対象となるその他のパラメータも設定できます。

ufoEditorBeginViewerEditing

ビューアでプロセスが編集されると呼び出され、再描画コールバックおよびマウス コールバックが呼び出されることを予期できます。

UfoEditorEndViewerEditing

ビューアでプロセスが編集されなくなると呼び出されます。

ufoEditorRGBDraw

画面の RGB 平面に描画します。

ufoEditorOverlayDraw

画面のオーバーレイ平面に描画します。

ufoEditorMouseDown

画面上のマウス ボタン ダウン イベントを処理します。

ufoEditorMouseUp

画面上のマウス ボタン アップ イベントを処理します。

ufoEditorMouseDrag

画面上のマウス ドラッグを処理します。

ufoEditorMousePosition

画面上のマウス移動(ボタン ダウンなし)イベントを処理します。

ufoEditorKeyEvent

画面上のキー イベントを処理します。

ufoEditorSetParamGroup

パラメータ グループを GUI に描画または表示されるように設定および変更します。

最小要件は、ufoProcessDefine とともに、ufoProcessRenderPixel、ufoProcessRenderLine または ufoProcessRender-Rectangle がオペレータによって定義されることです。 この要件が満たされないと、オペレータ プロセスは使用できないため、Fx Tree に表示されません。

画面インタラクションの最小要件は、ufoEditorCreate と、ufoEditorRGBDraw、ufoEditorOverlayDraw、ufoEditorMouseDown、ufoEditorMouseUp、ufoEditorMouseDrag、ufoEditorMousePosition、または ufoEditorKeyEvent のいずれかがオペレータによって定義されることです。

ユーザ定義 X Motif GUI の最小要件は、ufoEditorCreateufoEditorUpdateGui の両方がオペレータによって定義されることです。