On this page |
概要 ¶
vexexec [-j nthreads] [-p nproc] [-t] [-v list] [-V verbose] [-A precision] <program.vex> <program arguments> ...
説明 ¶
vexexec
は、コマンドラインでCVEXシェーダを実行します。これはHoudiniや他の負荷が高いコンテキストを起動することなく、例えばprintf
関数などの単純なVEXコードをデバッグするのに使います。
-j
オプションには、走らせるCPUスレッドの数を指定します。
-p
オプションでは、シェーダが実行するVEX配列のサイズを指定します(デフォルトでは、シェーダはスカラープログラムとして実行されます。つまり、デフォルトが1です。)。
-p
の値を大きくするほど、より大きな配列サイズでプログラムの挙動のテストや実行をすることができます。
つまり、HoudiniとMantraでより多くのシェーダを実行できることを意味します。
例えば、VOP SOPをジオメトリ内のポイントの数と同等の配列サイズにします。
-t
オプションは、VEXを実行するタイミングを有効にします。
-v
オプションには、バインドする追加入力をカンマ区切りのリストで指定します。
-V
オプションにはVEXを実行した時の詳細レベルを指定します。-V
オプションの引数は、以下の引数を組み合わせることができます:
-
0
:詳細レベルを0に設定します。
-
1
:詳細レベルを1に設定します。
-
2
:詳細レベルを2に設定します。
-
c
:ログメッセージにカラーを付けることができます(デフォルト)。
-
C
:ログメッセージのカラーを無効にします。
-
t
:ログメッセージにタイムスタンプを付けることができます(デフォルト)。
-
T
:ログメッセージのタイムスタンプを無効にします。
-
p
:VEXプロファイリングを有効にします。
-
P
:VEXプロファイリングとNAN検出を有効にします。
例:
-
-V 2PC
:詳細レベルを2に設定し、VEXプロファイリングとNA検出を実行し、ログメッセージのカラーを無効にします。
-A
オプションは、実行精度を設定します。デフォルトは32
です。設定可能な値は、32
と64
のみです。
バインド ¶
vexexecで対応している事前定義シェーダのパラメータバインドが少しだけあります。これはシェーダのコンテキストを管理するために使用します。 -vコマンドラインオプションを使えば、新しいバインドを追加することができます。
int proc = 0;
現在のプロッセッサ番号。
int ival = 0;
データの現在のバッチへのオフセット。
float fval = 0;
[0,1]
のランダムな浮動小数点に初期化される変化する値。
vector vval = 0;
[0,1]
のランダムな浮動小数点に初期化される変化する値。
vector4 pval = 0;
[0,1]
のランダムな浮動小数点に初期化される変化する値。
これらの値はシェーダを実行後にCVEXで照会されます:
export float result = 0;
浮動小数点結果。
サンプル ¶
cvex simple(int proc = 0; export float result = 0) { result = proc * proc; printf("proc = %g, proc^2 = %g\n", proc, result); }
simple.vflに保存して、以下のコマンドを実行します:
vcc simple.vfl vexexec -p3 simple.vex
出力:
proc = 0, proc^2 = 0
proc = 1, proc^2 = 1
proc = 2, proc^2 = 4