| On this page | 
概要 ¶
Gather VOPは光線をシーンに送ります(光線の数はsamples入力により制御されます)。
入力をGatherノードに追加することで、光線が当たったサーフェスから必要な情報を指定します。
Gatherノードはサブネットワークを格納します(中に入るにはノードをダブルクリックします)。
サブネットのVOPを接続して、入力値に関する操作を行えます。
例えば、光線が当たったサーフェスのカラー(Cf`アトリビュート)を合計するといった操作です。
Gather VOPはループのように動作します。 内側のサブネットは、すべてのサンプルに対して実行されます。 追加の入力を接続して、光線が当たったサーフェスからインポートする値や、ループの変数として使用する値を指定することができます (例えば、光線が当たった各サーフェスからインポートした値に対するアキュムレータとして使用することができます)。
入力を追加して光線が当たったサーフェスから値をインポートする ¶
入力を追加して値をGather VOPへインポートする操作は、あまり直感的には実行できません。
- 
        入力変数を単にGatherノードへ追加するには、( Constant VOPのような)VOPをGatherノードの next入力へ接続して、入力を追加します。他の入力を行なう前に、サーフェスシェーダからインポートする予定の変数を意味する入力を追加します。 Tip Gather VOPは、入力するワイヤーの出力ラベルを使用して、その入力にラベルを付けます。 したがって、入力に重要な名前を付けるには、Constant VOPのパラメータで Constant name パラメータを設定します。 例えば、Constant VOPのパラメータで、 Cfのインポートに使用する入力を作成するために、Constant VOPを接続している場合、 Constant name をCf_importのような名前に設定します。
- 
        Gather VOPのパラメータインターフェースで Number of imports パラメータを使用して、光線が当たったサーフェスからのインポートを表す入力数を設定します。 例えば、5つの追加入力を接続して、 Number of inputs を3に設定する場合、最初に追加された 3つの入力はインポートを意味し、その後の2つの入力はインポートしない変数になります。
- 
        インポートするそれぞれの変数については、Gather VOPのパラメータインターフェースで、それに対応するテキストボックス(例: Import 0 、 Import 1 など)を、 光線が当たったサーフェスからインポートしたい変数の名前に設定します。 これは、サーフェスのアトリビュート名か、サーフェスシェーダのエクスポートされたパラメータの名前になることがあります。 また、特別な変数名、つまり ray:originやray:direction、ray:lengthのような名前を使用して、光線自体に関する情報のインポートもできます。テキストボックスの右にあるメニューボタンを使用すると、一般的なインポートのリストからすばやく選択ができます。 Surface color ( Cf)光線が当たったサーフェスの Cf(拡散カラー)。Surface opacity ( Of)光線が当たったサーフェスの Cf(不透明度)。Ray origin ( ray:origin)光線の実際の原点。 Ray direction ( ray:direction)(円錐を使用した)光線の実際の方向。 Ray length ( ray:length)光線が当たったサーフェスまでの光線の長さ。 
サブネットワークと出力 ¶
Gather VOPをダブルクリックすると、サブネットワークの中に入ります。このサブネットワークは、サーフェスに当たったすべての光線に対して実行されます。
- 
        
        subinputノードは、Gather VOPの入力からの値を提供します。
- 
        
        VOPを suboutputノードに接続して、Gather VOPのの出力として使用できるようにします。
サンプル ¶
光線が当たったすべてのサーフェスのカラーを合計するには:
- 
        2つの Constant VOPsを作成します。パラメータエディタで、両方のノードの Constant type を“Color”に設定します。 
- 
        2つのConstantノードを追加入力としてGather VOPへ接続します(Gather VOPの next入力へつなぎます)。
- 
        1番目のConstantノードのパラメータで、 Constant name を Cf_importに設定します。2番目のConstantノードのパラメータで、 Constant name をsumに設定します。
- 
        Gather VOPのパラメータで、 Number of imports を 1に、 Import 0 をCfに設定します。
- 
        Gather VOPノードをダブルクリックして、そのサブネットワークの中に入ります。 
- 
        Add VOPを作成します。 
- 
        subinputノードの_Cf_importおよび_sumをAddノードに接続します。
- 
        Addノードの sum出力をsuboutpuノードの_sumコネクタへ接続します。
- 
        ((U)を押すか、ネットワークエディタの上部にあるパスのコントロールでクリックして戻ります。 Gatherノードに _sum出力ができあがりました。
サーフェスに当たらなかった光線 ¶
現段階では、サーフェスに当たらなかった光線はGather Loop VOPで処理できません。
処理の必要がある場合、独自のVOPを作成するか、Inline VOPを使用します。
パラメータ ¶
Number of imports
追加する入力(つまり、VOPをnext入力へ接続することで追加する入力)の数で、光線が当たったサーフェスから変数をインポートして、値を取得します。
例えば、5つの追加入力を接続して、 Number of inputs を3に設定している場合、最初に追加された3つの入力はインポートを意味し、その後の2つの入力はインポートしない変数になります。
入力 ¶
Gatherループには、固定長セットと可変長セットの2つの入力セットがあります。固定長セットの入力は下記のとおりです。
P
        
光線の原点です。デフォルトはグローバルP変数です。
dir
        
光線の方向(正規化する必要があります)。デフォルトはグローバルN変数です。
angle
        
サンプルする円錐角度です。デフォルトは0です。
samples
        
送出するサンプル(光線)の数です。デフォルトは1です。
bias
        
光線のバイアスです。デフォルトは0.05です。
maxdist
        
それぞれの光線が止まる前に伝播できる最大距離です。-1の値は、最大距離がないという意味です。デフォルトは-1です。
出力 ¶
Gatherノードのサブネットワークにあるsuboutputノードへ接続した入力に対して、出力がGather VOPで表示されます。 
| See also |