の新機能Katana 3.1

前書き

このドキュメントでは、 Katana 3.1。これらの変更は次のとおりです。

  • との完全な互換性 VFXリファレンスプラットフォーム CY2017仕様、特にコードベースの移植を含むQt 5
  • 作業のサポートの改善非常に大きな属性
  • 改善されたユーザーインターフェイスのパフォーマンス
  • 改善されたAlembicの読み取りパフォーマンス
  • 実験的新しいHydra Viewerレイヤーからのピクセルを表示しますモニタータブ。

技術的な変更

サードパーティのソフトウェア

次の表は、サードパーティソフトウェアの出荷バージョンへの変更をまとめたものです。Katana 3.1v1はとの互換性を目指していますVFXリファレンスプラットフォームCY2017

Katana 3.1 Katana 3.0
Qt 5.6.1 4.8.5
PyQt 5.6 4.11.4
SIP 4.18.1 4.17
OpenSubdiv 3.1.1 3.0.5
Ptex 2.1.28 2.1.10
fmt 4.1.0 出荷されてない
Fontconfig 出荷されてない 2.8.0(Linuxのみ)

Qt 4からQt 5へのポートにより、次のユーザーインターフェイスAPIが変更されました。

  • にオプトインしたQtウィジェットKatana'key-based-dragging'プロトコルは次のように更新する必要があります。以前は、 Katana動的なPyQtを放出しますkeyBasedDragRequestedユーザーがウィジェットの上にマウスを置いて押したときのウィジェットからの信号Ctrl+B。の時点でKatana 3.1、ウィジェットは代わりにオーバーライドする必要がありますcustomEvent()処理する方法QT4Widgets.GlobalEventFilter.KeyBasedDragEvent Qtイベント。ウィジェットはイベントを受け入れ、次を使用してドラッグを開始する必要がありますQT4Widgets.InteractiveDragオブジェクト。

  • 以前にPython属性を設定したQtウィジェットdrawInteractiveHighlightブール値を設定する必要がありますQObject 代わりに同じ名前のプロパティ。このプロパティにより、ウィジェットは標準のハイライト効果をオプトアウトできますKatanaドラッグアンドドロップ操作のターゲットウィジェットに適用されます。

  • 以前にPython属性を設定したQtウィジェットSTOP_GLOBAL_SCROLLINGまたは SKIP_GLOBAL_SCROLLING ブール値を設定する必要がありますQObject代わりに同じ名前のプロパティ。このプロパティにより、ウィジェットはオプトアウトできますKatanaのデフォルトの「グローバルスクロール」動作。 Altカーソルが上にあるときにマウスの中央ボタンでドラッグしますQScrollAreaベースのウィジェット。

  • クラスUI4.Widgets.TextInfoDialog廃止され、削除されました。

Viewer APIの改善

  • ビューアーAPI単一のOpenGLコンテキストのサポートを追加するために修正され、すべてのビューポート。のViewportWidgetクラスは今から継承しますQWidget

  • FnViewerDelegate :: getPartialXform()返される行列に含まれるxformグループを設定するための3つの新しい引数が与えられました。デフォルト値は既存の動作と一致しています。この変更は、複数の変換グループ(TP 346989)を備えたルックスルーカメラを操作する場合の誤った結果のために3.0v2で利用可能になった修正に続きます。

FnAttributeの改善

Katana 2の属性の作成をサポートするようになりました32時間サンプルごとに複数の値、および内部サイズ制限に関連するエラー処理がより堅牢になりました。以前は、 Katana特定の内部制限に違反した場合、クラッシュまたは不正な形式の属性を生成する可能性があり、これらの制限に関する正式な文書はありませんでした。内部データ制限FnAttribute (現在C ++ヘッダーに記載されています)は次のとおりです。

  • DataAttribute (int、float、double、string):
    • 値カウント(時間サンプルごと):[0、263]
    • 時間サンプル数:[0、213]
    • タプルサイズ:[0、216]
  • GroupAttribute
    • 子カウント:[0、228]

OpScriptは、3つ以上の属性を検査および作成できるようになりました27新しいサンプルを使用した時間サンプルごとの値getSamples()方法;任意のデータ属性で利用可能。によって返される「サンプルアクセサー」オブジェクトgetSamples()タイムサンプルデータの読み取り専用ビューの検査、および既存のデータを操作するためのサンプルバッファーの可変コピーの作成をサポートします。完全なドキュメントはKatana開発者ガイドですが、不自然な例は次のとおりです。

地元myIntAttr=インターフェースGetAttr('myAttr') local newSamples = {} for _, sample in ipairs(myIntAttr:getSamples()) do -- Create a mutable copy of the sample buffer local buffer = sample:toArray() for i, elem in ipairs(buffer) do buffer:set(i, elem * 2) end local t = sample:getSampleTime() newSamples[t] = buffer end Interface.SetAttr「myAttr」IntAttributenewSamples)) 

後方互換性のために、 myDataAttr:getNearestSample(time)タイムサンプルのコピーをLuaテーブルとして返し続け、最大227値。ことに注意してくださいgetSamples() APIには新しいLuaJITベースのOpScriptバックエンドが必要であり、レガシーLua 5.1バックエンドでは使用できません。

パフォーマンスの改善

アプリケーションの起動、ユーザーインターフェイスの相互作用、およびアイドルCPU使用率のパフォーマンスは、 Katanaイベントシステムとインスタンスの削除Katanaイベントのポーリング。

OgawaベースのAlembic読み取りのパフォーマンスも、メモリマップドI / Oを使用することにより改善されました。

新機能

ProfilingMockRenderer

  • 新しいサンプルレンダラープラグインが付属していますKatanaProfilingMockRenderer。プラグインは画像のレンダリングを実行しません。代わりに、その目的はプロファイルすることですKatanaは、レンダラープラグインのコンテキストからシーングラフを展開し、シーングラフの位置データにアクセスするためのさまざまなトラバーサル戦略を実装しています。プラグインのソースコードは、 plugins / Src /

    追加の一環としてProfilingMockRenderer例、既存のレンダラープラグインのページKatana開発者ガイドは2つのセクションに分かれています。 概要そして Render API。新しいプラグインは、という新しいセクションに記載されていますプロファイリングモックレンダラー

実験的機能

フロントバッファーの監視

からのピクセルデータを表示する実験的なビューアレイヤーモニタータブが追加されましたビューアー(Hydra)タブ。

設定するときKATANA_EXPERIMENTAL_MONITOR_OVERLAY環境変数Katana環境を起動する1フロントバッファーの監視切り替えられたメニュー項目はタブに追加されます見るメニュー。いつ表示>フロントバッファの監視オンにすると、画像レイヤーがタブのビューアーレイヤーに挿入されます。これにより、フロントバッファーとして表示されるカタログアイテムのピクセルデータが表示されますKatanaモニタータブ。