シーングラフデータの生成プロセス

前述のように、の本当のコアKatanaレンダリングしたいものがフィルターのツリーによって記述され、これらのフィルターがオンデマンドで評価されるように設計されているということです。これから、もう少し詳しく見ていきます。 Katanaシーングラフデータを生成します。

ユーザーが持っている主なインターフェイスはNode Graphタブ。ノードのネットワークを作成して、取り込むAlembicファイルなどを指定します。マテリアルとカメラを作成します。編集とオーバーライドを設定します。また、単一のプロジェクトで複数のレンダリング出力を作成できます。ノードのパラメーターは、アニメーション化、式を使用して設定、およびCurve EditorそしてDope Sheetビュー。のNode Graph複数の出力を持ち、接続されていないパーツを分離することもできます。また、タイムライン上の任意の時点で異なるパラメーター設定を持つ可能性があります。

UIでのレンダリングや値の検査など、シーンデータを評価する場合、ノードを使用して、必要なすべてのフィルターの説明を作成します。このフィルターツリーには単一のルートがあり、出力に使用している特定のノードで現在のフレームのシーングラフデータを作成するために必要なフィルターのレシピを表します。

3DelightやRendermanなどの出力プロセスに渡されるのは、このフィルターツリーの説明です。急傾斜の場合:これは実際には、フィルターツリーのシリアル化された説明をパラメーターとして出力プロセスに渡すことで行われます。たとえば、レンダリングプロシージャの文字列パラメーターです。

シーングラフデータの実際の生成は、このフィルターの説明を使用してシーングラフイテレーターを作成することによって行われます。次に、これらを使用してシーングラフを調べ、任意の場所の属性値にアクセスします。 Scene Graphタブ。イテレータを使用するこのアプローチは、 Katanaのスケーラビリティと、すべてのシーングラフデータをオンデマンドで生成する方法。

フィルターツリーを使用して、最初の基本反復子/root創造された。これを取得するために問い合わせることができます:

その場所の名前付き属性のリスト。

特定の名前付き属性または属性グループの値。アニメーション化された値の場合、複数の時間サンプルが存在する可能性があり、シャッター間隔に関連するサンプルが返されます。

階層をたどる子および兄弟の場所の新しいイテレーター。

このプロセスは、UI内でも使用され、シーングラフデータを検査します。 Scene GraphAttributesそしてViewerタブ。UIでは、ユーザーがシーングラフを展開し、結果を検査するときに、レンダリング中に使用されるものと同じフィルターとライブラリが呼び出されます。これにより、ユーザーは現在のフレームの任意のノードで生成されたシーングラフデータを検査できます。TDは、ビジュアルプログラミングアプローチでフィルターを設定するIDEとしてUIを使用し、それらのフィルターを実行して、生成されたシーングラフデータに与える影響を確認できます。

APIについては後で詳しく説明しますが、ノードグラフを作成および変更する主なAPIはPython NodegraphAPIであり、新しいフィルターを作成する主なAPIはC ++ Scene Graph Generator APIとAttribute Modifier Plug-in APIです。