On this page |
このノードには、現行VOPネットワークタイプのすべてのグローバル変数となる出力があります。このノードには入力はありません。
このノードから利用できる変数には、ほとんどの場合、常にOutput Variablesノードに用意されている入力変数のすべてを含んでいます。 この2つのノードの違いはOutput Variablesノードは、変更可能なグローバル変数に対する入力のみを用意している点です。
すべてのVOPネットワークタイプには、そのタイプに関連するグローバル変数一式があります。
これらは、VOPネットワークが作用するVEXコンテキストに固有の変数です。
(SurfaceやDisplacementのような)シェーディングコンテキストでは、シェードをかけたジオメトリでのポイントのPosition(P
)といった変数や、シェードをかけたポイントでのサーフェスの法線(N
)といった変数になります。
SOPやPOP Operatorネットワークでは、これらの変数には、制御を受けているポイントのPosition(P
)や、制御を受けているポイントのポイント番号(ptnum
)などが含まれます。
パラメータ
Context Type
ノードがアクティブなシェーダコンテキストを指定します。 シェーダコンテキストは、 Surface 、 Fog 、 Light または Displacement などです。
Material Shader Builder SHOPには、いくつかのシェーダを含めることが可能で、各シェーダはBuilder HOP内にあるVOPネットワークの一部により定義します。 内部はいくつかのシェーダコンテキストタイプ用のノードになります。例えば、SurfaceおよびDisplacementのシェーダコンテキストでは、カラーを割り当て、サーフェスジオメトリに変位を加えるマテリアルを定義します。
他のSHOP、例えばSurface Shader BuilderやDisplacement Shader Builderには、1つのタイプだけのコンテキストが含まれます。 内部のVOPノードには、そのコンテキストタイプのみを指定できるため、このパラメータは無効になります。
Output A Single Variable
有効な場合、出力数を1に縮小し、下記のメニューから選択したグローバル変数のみを出力します。 このオプションは、そのノードが、異なるコンテキストからのアクセスを必要とするサブネットワークの一部である場合に便利です。
Variable Name
使用できるすべてのグローバル変数のメニューです。その上にあるトグルと連動して機能します。
入力
ありません。
出力
使用できる出力のリストは、現行VOPネットワークタイプに依存します。 出力数は、 Output A Single Variable が有効かどうかにより変わります。
VEX Surface SHOP Typeネットワーク内にある場合、出力には下記の項目があります。
Cf
サーフェスカラー。
Of
サーフェス不透明度。
Af
サーフェスアルファ。
P
サーフェス位置。
Pz
サーフェスデプス。
I
目(カメラ)からサーフェスへの方向。
dPds, dPdt
サーフェスの方向または微分係数。
N
サーフェス法線。
Ng
サーフェスジオメトリック法線。
Eye
目(カメラ)の位置。
s, t
パラメトリック s および t 座標(u, v)。
Time
シェーディング時間。
dPdz
深度による位置変化。
SID
サンプル識別子。サンプルidをnextsample()
VEX関数と使用すると、再レンダリング時やフレーム間で変化しない一貫性のあるランダムサンプルを生成します。
Examples
The following examples include this node.
Street Crowd Example Example for Crowd Solver dynamics node
2つのエージェントグループによるストリートのセットアップを説明した群衆サンプル。
このセットアップは、2つのエージェントグループを作成します。 黄色のエージェントがゾンビで、ストリートのパスに沿います。青色のエージェントがぶらついている歩行者で、ゾンビが近づくと走ります。
エージェントの状態を変更するトリガーは、crowd_sim DOPNETでセットアップします。 ゾンビのグループは、信号との距離と信号の色を使用し、信号が赤になると停止状態に変わります。 生存者のグループは、ゾンビが近づくと走行状態に変わります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
DensityViscosity Example for FLIP Solver dynamics node
このサンプルでは、ソリッドオブジェクトと作用する異なる密度と粘度を持つ2つの流体について説明しています。
FlipColorMix Example for FLIP Solver dynamics node
このサンプルでは、Flip Solverを使って、赤の流体と青の流体のカラーを混ぜて、紫の流体を作成する方法を説明しています。
FlipColumn Example for FLIP Solver dynamics node
このサンプルでは、流体の色がStaticオブジェクトとの衝突で混色させる方法を説明しています。
SpinningFlipCollision Example for FLIP Solver dynamics node
このサンプルでは、ジオメトリのVelocityベクトルに基づいて、 ジオメトリ上に撒き散らしたポイントから新しいパーティクルを生成して FLIP流体を作成する方法を説明しています。 また、流体用の衝突オブジェクトとして動作するように、 ジオメトリをセットアップする方法も説明しています。
PaintedGrog Example for Fluid Object dynamics node
このサンプルでは、色の付いた滴を落として、Grogキャラクタをペイントするためにトーラスを作成しています。 Grogキャラクタは、その色の付いたトーラスによって色が付着します。 このサンプルでは、流体シミュレーションにカラー情報を追加する方法も説明しています。
DiffuseSmoke Example for Gas Diffuse dynamics node
このサンプルでは、Gas Diffuse DOPで煙シミュレーションの密度を拡散させる方法を説明しています。
TimelessGas Example for Gas Particle to Field dynamics node
このサンプルでは、TimelessモードでgasParticleToFieldの使い方を説明しています。
このサンプルでは、RBDオブジェクトで押しつぶされる草をシミュレーションしています。 Furオブジェクトで草の葉を表現し、Wireオブジェクトで動きをシミュレーションしています。 単一のFurオブジェクトで草を表現し、その近辺の草の葉がそれに合わせて動きます。 硬さが異なるオブジェクトを追加すれば、不均一な動きを表現することができます。 "Complex Mode"を有効にすると、2つのオブジェクトを使って草が表現されます。 それぞれのカーブに設定した硬さは、Wireオブジェクトの"Angular Spring Constant"と"Linear Spring Constant"パラメータで調整することができます。
PopFlow Example for Particle Fluid Solver dynamics node
このサンプルでは、POP NetworkとParticle Fluidシミュレーションを統合することで、 パーティクル流体シミュレーターによる流体力学を用いたアーティスティックなPOPの制御 をする方法を説明しています。
CurveForce Example for POP Curve Force dynamics node
このサンプルでは、POP Curve Forceノードを使って、パーティクルシミュレーションとFLIP流体シミュレーションの流れを制御する方法を説明しています。
2dfluid Example for Smoke Object dynamics node
2D流体をCOPにエクスポートして、それを画像シーケンスファイルとしてディスクに保存し、それをテクスチャマップ、変位マップなどに使う方法を説明しています。
BreakWire Example for Wire Solver dynamics node
このサンプルでは、ポイント単位でワイヤー拘束を壊す方法を説明しています。 Wire Solverで、'pintoanimation'という名前のアトリビュートを持つポイントを拘束するようにセットアップしています。
このサンプルで注目すべき特徴は以下の通りです:
-
ジオメトリエリアライト
-
減衰ランプ制御
-
サーフェスモデルのスペキュラーレイヤー
サンプルでは、NURBSカーブに基づいたジオメトリライトを構成しています。 ライトの減衰には、カラーキーを使うことで、異なるライトの色をライトからの距離に応じて生成することができます。 ground plane shaderは、2つのスペキュラーコンポーネント(広いコンポーネントと狭い光沢コンポーネント)でサーフェスモデルを使って、複数レイヤーの外観を生成します。
IndirectLightBox Example for Indirect Light object node
このサンプルでは、間接Diffuse照明用の間接光オブジェクトをセットアップする方法を説明しています。 シーンは、何回も押し出して作成したボックスと、光源とカメラで構成されています。 カメラの範囲に入るすべてのライトが、カメラに到達する前にシーン内で2度以上跳ね返るようにライトを配置しています。 間接光オブジェクトは、100万個のフォトンを生成するように設定されています。 フォトンマップを可視化するには、ライトのレンダリングモードを"Direct Global Photon Map"に変更します。 サンプリング品質を調整するには、Mantra ROPのPixel SamplesまたはRay Samplesを修正します。 このサンプルで使用するレンダリングエンジンは、PBRです。
このサンプルでは、アニメーションするランプと参照ランプの使い方を説明しています。
Down Hill Lava Flow Example for Material shader node
このファイルでは、傾斜が低い箇所にCrust(地殻)が集まって硬化する溶岩の流れを作成しています。このアニメーションは、シェーダで作成していて、ジオメトリそのものはアニメーションしていません。
Note
Lava(溶岩)マテリアルのパラメータのほとんどを、サーフェスノードで作成したPointアトリビュートで上書きしています。
FirePit Example for Material shader node
Note
このファイルでは、ジオメトリはアニメーションしていません。 テクスチャをアニメーションさせることで、すべてのアニメーションを表現しています。
炎は、UVテクスチャを簡単に適用できるようにグリッドで作成し、Magnet SOPを使ってメタボール周辺を歪ませています。
炎には、黄色または青のFlameテクスチャのどれかを割り当てています。
Flamesのopacity mask wrapをDecalに設定することで、テクスチャがFlameジオメトリの上部で単一ピクセルリングを繰り返して表示するのを回避しています。
また、flameOpacMap.jpg
というマスクファイルを使って、上部にFlameの形状を調整しています。
noise offsetを$T
でY軸を強くアニメーションさせることで、Flameが上昇しているように見せています。これは、Noise jitterもY軸に対して大きくなります。
炭は、変形させたグリッドにCopy Stampを適用した球で表現しています。
Attribute CreateSOPを使えば、SOPレベルでLava(溶岩)のテクスチャのパラメータを上書きしてCopy Stampすれば、$BBY
などのローカル変数を使ってテクスチャをアニメーションさせることができます。
そうすれば、テクスチャのCrust(地殻)とその値だけを使って、炭の上部の形状を修正することができます。
これは、炭の下部で使用するテクスチャのLava(溶岩)のアスペクト比を保持します。熱を発する炭の下部の残り火を表現するために、Lava(溶岩)の強度(Kd
アトリビュート)をスタンプしてアニメーションしています。
StyleDisplacement Example for Material shader node
このサンプルファイルでは、2つの四角形で構成されたオブジェクトに対して、片方の四角形にはバンプマップを、もう片方の四角形にはTrue Displacementが適用されています。 そのオブジェクトが複製されており、2番目のコピーでは、スタイルシートを使用して、それらの2つの四角形に対してマテリアルの割り当てを逆にしています。
VolumeNoiseIso Example for Mantra: VEX Volume Procedural shader node
このサンプルでは、Mantraのボリュームレンダリング機能を使って、CVEXシェーダで定義したアイソサーフェスをレンダリングする方法を説明しています。 noiseフィールドをCVEXシェーダで生成し、それをVEX Volume Proceduralに接続しています。 密度が0のサーフェスを見つけて、法線を表示するSimple Surfaceシェーダを使ってシェーディングすることで、ボリュームをシェーディングします。
LayerVariations Example for Agent Layer geometry node
このサンプルは、いろいろなジオメトリのバリエーションを持ついくつかのレイヤーを作成して、 それらのレイヤーをエージェントにランダムに割り当てる方法を説明しています。
BlendAttr Example for Attribute Composite geometry node
このサンプルでは、Attribute Composite SOPを使ってアトリビュートをブレンドする方法を説明しています。
RandomMaterial Example for Attribute String Edit geometry node
このサンプルでは、Attrib String Edit SOPを使って、文字列Primitiveアトリビュートの修正と、
プリミティブ単位でグリッドのカラーをランダム化する方法を説明しています。
サンプルでは、material_override
Primitiveアトリビュートの文字列値にdiff_int
を修正しています。
FluffyTorus Example for Bake Volume geometry node
このサンプルでは、Bake Volume SOPをセットアップしてFogボリュームのシャドウによるライトフィールドを計算する方法を説明しています。 これによってMantraのConstantボリュームシェーダで適切にレンダリングするためのフィールドが出力されます。
PathAnalysis Example for Find Shortest Path geometry node
これは、FindShortestPathとAttribWrangleによる測定に基づいた"中心軸"パスを優先にする高度なサンプルです。これは、壁への近接を回避するのに役に立ちます。
空間内でもっと簡単に確認するには、Display OptionsダイアログのOptimizationタブにあるCulling > Remove Backfacesをオンにします。 Switchノードを使って別の中心軸測定を可視化してみてください。パスの中心軸を考慮しない同じサンプルを、違いがわかるようにSOPネットワーク内の端に置いています。
このサンプルでは、ForEach SOPを使って、同じSOPをジオメトリに繰り返して適用し、且つ、繰り返しの周期毎にその効果を累積していく方法を説明しています。
FurBallWorkflow Example for Fur geometry node
このサンプルでは、Fur SOPとMantra Fur Procedural SHOPをアニメーションするスキンジオメトリに適用する方法を説明しています。 CVEXシェーダを使って、ジオメトリに割り当てられたアトリビュートに応じて髪の毛の見た目を定義しています。
FurPipelineExample Example for Fur geometry node
このサンプルでは、カスタムシェーダを使ってFur SOPで生成したファーの外観を定義する方法を説明しています。
PaintPoints Example for Paint geometry node
このサンプルでは、領域単位でポイント数を設定して、ジオメトリ上にペイントでポイントを撒き散らす方法を説明しています。
AlphaOmega Example for Points from Volume geometry node
このサンプルでは、Points From Volume SOPでFLIPシミュレーション用のターゲットゴールを作成して、指定したジオメトリを満たすようにします。
UnpackWithStyle Example for Unpack geometry node
このサンプルでは、アンパックと同時にスタイルシート情報を評価することができるUnpack SOPの機能について説明しています。 Nested Packed Primitiveでは、スタイル情報を維持しつつも部分的にアンパックできることを説明しています。 このサンプルでは、Python SOPを使って、プリミティブ単位でスタイルシートから情報を抽出する方法も説明しています。
volumeanalysis_grad Example for Volume Analysis geometry node
このサンプルでは、Volume Analysis SOPでボリュームの勾配を計算し、その勾配からジオメトリのポイントを変位する方法を説明しています。
volumesurface_explicitgrade Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで、三角形のサイズを指定するための他のボリュームを使って、SDFをサーフェス化する方法を説明しています。
volumesurface_simple Example for Volume Surface geometry node
このサンプルでは、Volume Surface SOPで順応性のあるトライアングルサイズを使ってSDFをサーフェス化する方法を説明しています。
GroupPainted Example for Add Point to Group VOP node
このサンプルでは、アトリビュートをペイントする方法と、Add Point To Group VOPとCreate Point Group VOPを使って、 そのアトリビュートからポイントグループを構築する方法を説明しています。
VOPpointgroup Example for Add Point to Group VOP node
1つおきにポイントを新しいグループに追加するVOP SOPのサンプルを説明しています。
ポイントグループのみがVOPでサポートされています。
ここで使用しているVOPは、Add Point To Group VOP、Create Point Group VOP、Point In Group VOPです。
WornMetal Example for Curvature VOP node
このサンプルでは、Curvature VOPをシェーダネットワークに追加して、マテリアルに剥げやアンティーク調の見た目を追加する方法を説明しています。
このサンプルでは、If-Thenサブネットの外側からの"true"値、さらに外側からの"false"値も持つIf-Then Block VOPの使い方を説明しています。
Condition VOPは、"t" Global Variableに基づいて使われます。 "t"が0.5未満なら、If-Thenは、"false"になり、 "t"が0.5以上なら、"true"になります。
条件の結果がTrueなら、青いカラー、Falseなら赤いカラーが使われます。
CrinkleSphere Example for Inline Code VOP node
このサンプルでは、Inline Codeノードを使って、VEXコードを直接シェーダやオペレータ定義に記述する方法を説明しています。
SimpleMetaImport Example for Meta-Loop Import VOP node
このサンプルでは、Meta-Loop Start、Meta-Loop Next、Meta-Loop Import VOPの使い方を説明しています。
入力ジオメトリ内のすべてのメタボールの密度の合計を計算し、それをComposite Network内で画像として作成しています。
RampParameter Example for Parameter VOP node
このサンプルでは、Ramp Parameter VOPノードを使って、PyroシミュレーションのTemperature(温度)アトリビュートでパーティクルの色を制御する方法を説明しています。
PointCloudIterateAverage Example for Point Cloud Iterate VOP node
このサンプルでは、pciterate VOPを使ってpcopenで返されたポイントを平均化する方法を説明しています。 最初に、ZX平面上の円の内側を1に初期化した浮動小数点"check"チャンネルでポイントクラウドを生成します。 そして、pciterate VOPを使ってループでシェーダ内にポイントをフィルタリングして、"check"チャンネルの値を平均化します。 このサンプルで使われているポイントクラウドは、points.pcとしてアセット内に保存しています。
PointCloudWrite Example for Point Cloud Write VOP node
このサンプルでは、pcwrite VOPを使って、ポイントクラウドファイルにポイントを書き出す方法を説明しています。 mantra1 ROPをレンダリングして、ポイントクラウドを生成し、gplayコマンドでポイントクラウドを閲覧してください。 ポイントの分布は、Mantraシェーダを実行した場所に依存します。 この場合では、Mantra ROPは、非表示にしたサーフェスをシェーディングして、球のバックフェースからポイントを生成できるように設定しています。
RaytraceVopShader Example for Ray Trace VOP node
このサンプルでは、VOP VEXネットワークを使って、単純なレイトレースシェーダについて説明しています。 シェーダプロパティを修正するには、マテリアル内にPropertiesシェーダを作成して、Outputシェーダノードに接続します。 そして、レンダリングパラメータをPropertiesノードに追加します。 例えば、反射の数を制御するには、reflect limitパラメータを追加します。
SensorDeform Example for Sensor Panorama Create VOP node
このサンプルでは、Sensor Creationに関する説明とConeコマンドを使って深度情報を抽出する方法を説明しています。 これは、中心の球を観測した球で変形させることができます。
See also |