On this page | |
Since | 18.0 |
How to ¶
このノードは、Create LODノードと併用することを前提に設計されています。
Create LODノードは、LOD_0
、LOD_1
、LOD_2
のように生成された名前を使ってバリアントを作成します。
各バリアントは、PolyReduceを使って元のディテールのある程度の割合を維持した結果になっています。
-
Create LODとカメラが既にネットワーク内にある時に、Auto Select LODを追加します。
-
Auto Select LODノードのパラメータエディタ内で、 Primitive Pattern パラメータにLODバリアントを作成したPrimのパス(例えば、
/my_model
)を設定します。 -
Camera パラメータにUSDレンダーカメラのパスを設定します。このノードは、このカメラと選択したPrim間の距離を使ってLevel of Detailを選択します。
-
Variant Set パラメータにCreate LODノードで作成した Variant Set 名(例えば、
levels
)を設定します。 -
Number of LODs パラメータにCreate LODノードの Number of LODs パラメータと同じ数を設定します。
-
Threshold Distance パラメータにそのレベルの 内側距離 を設定します。最初の距離は
0
にしてください。例えば、Create LODの Keep Percent パラメータを
100, 75, 50, 25
に設定し、このノードの Threshold Distance パラメータを0, 5, 10, 15
に設定すると、以下の挙動が得られます:-
カメラがPrimから
0
から5
ユニットまで離れている時、第一レベルを表示します(LOD_0
。元のモデルの100%を維持)。 -
5
から10
ユニットまで離れている時、第二レベルを表示します(LOD_1
。75%を維持)。 -
10
から15
ユニットまで離れている時、第三レベルを表示します(LOD_2
。50%を維持)。 -
カメラがPrimから
15
ユニット以上離れると、第四レベルを表示します(LOD_3
。25%を維持)。
-
Tips ¶
-
最初のThreshold Distanceを
0
に設定しなかった場合、カメラがPrimから0
から最初の距離まで離れていると、そのPrimは バリアントを表示しない ので、不可視になります。 -
カメラとPrim間の距離は、カメラポイント位置とPrimの重心間で測定されます(実際の表面までの距離に基づいているわけではありません)。 例えば、モデルの表面が重心から平均で2ユニット離れている場合、その分をThreshold Distanceに考慮すると良いでしょう。
-
Dynamic LOD switching of variants during an animation is not possible when you write your scene to disk as a single USD file. The reason is that USD itself doesn’t support animated variant sets. However, there are workarounds for using the Auto Select LOD LOP with dynamic variant switching
-
Write per-frame USD layers. If you put
$F
in the filename, you can write each USD frame out to disk. The downside is that you loose any efficiencies from time-sampled attributes, but the variants can be different in each file passed tohusk
for rendering. This workflow is similar toifd
generation for Mantra, where a small number of farm machines spit out USD files, which are then passed tohusk
for rendering. -
Render with
hython
directly. This approach opens up more options for using Solaris like Katana or Nuke, and having artists add HDAs and nodes in the LOP graph. Then you can compose the scene with more proceduralism, without writing per-frame USDs to disk. -
Another, more elaborated option is to have all LOD present in the asset as child prims. Then you can have a wrangle that sets visibility on those LOD child prims, based on the distance from the camera instead of the variant set. A similar setup is to adjust camera-based shading primvars, as well as visibility.
-
パラメータ ¶
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある 再選択ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この再選択ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(/path/to/prim.collection:name
)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Camera
シーングラフツリー内のUSDレンダーカメラのパス。 このノードは、このカメラと選択されたPrim間の距離を使って、Level of Detailを選択します。
Variant Set
バリアントの選択元となるバリアントセットの名前。
Number of LODs
ここには、指定した Variant Set 内のLODバリアントの数を設定します。
Threshold Distance
カメラがターゲットPrimから この距離以上 離れている時、それに応じたバリアントが選択されます。 つまり、Multi-Parmセット内の1番目の Threshold Distance パラメータは、1番目のバリアントの最小距離を設定し、2番目の Threshold Distance パラメータは、2番目のバリアントの最小距離を設定します。
See also |