検索はキーワードに基づいています。
例:「手順」
自然言語で検索しないでください
例:「新しいプロシージャを作成するにはどうすればよいですか?」
O_DisparityGenerator
O_DisparityGeneratorプラグインは、ステレオ画像の視差フィールドを作成するために使用されます。A 視差フィールドあるビューのピクセルの位置を、別のビューの対応するピクセルの位置にマップします。2セットの視差ベクトル:1つは左のビューを右にマップし、もう1つは右のビューを左にマップします。
以下Nukeプラグインは、視差フィールドに依存して出力を生成します。
• O_OcclusionDetector
• O_ColourMatcher(で3D LUTそしてLocal Matchingモード)
• O_FocusMatcher
• O_VerticalAligner(in Local Alignmentモード)
• O_NewView
• O_InteraxialShifter
• O_VectorGenerator
• O_DisparityToDepth、および
• O_DisparityViewer。
入力とコントロール
接続タイプ |
接続名 |
関数 |
入力
|
Fg |
オプションのマスク視差を計算する領域を指定します。これを使用して、前景要素の視差レイヤーを作成できます。 |
無視する |
視差計算から除外する領域を指定するオプションのマスク。 注意: マスクは両方のビューに存在する必要があり、O_DisparityGeneratorは0(背景の場合)または1(前景の場合)のアルファ値を想定しています。 |
|
ソルバー |
もしSourceシーケンスにはO_Solverがうまく一致する機能が含まれていません。同じカメラ設定で別のシーケンスショットにO_Solverを使用できます。その場合、O_Solverをこの入力に接続します。 |
|
ソース |
画像のステレオペア。画像の後にO_Solverノードが続くはずです。ただし、 Solver入力。 |
Control (UI) |
Knob (Scripting) | Default Value | 説明 |
O_DisparityGenerator |
|||
Views to Use |
viewPair |
Dependent on source |
視差フィールドの作成に使用する2つのビューを設定します。これらのビューは、左目と右目用にマッピングされます。 |
Ignore Mask |
ignoreMask |
None |
シーケンスの領域を除外するようにマスクタイプを設定します。 注意: マスクは両方のビューに存在する必要があり、O_DisparityGeneratorは0(使用する領域の場合)または1(無視する領域の場合)のアルファ値を期待します。 • None -無視マスクを使用しないでください。 • Source Alpha -のアルファチャネルを使用Source無視マスクとしてクリップします。 • Source Inverted Alpha -の反転アルファチャネルを使用しますSource無視マスクとしてクリップします。 • Mask Luminance -の輝度を使用Ignore無視マスクとしての入力。 • Mask Inverted Luminance -の逆輝度を使用Ignore無視マスクとしての入力。 • Mask Alpha -のアルファチャネルを使用Ignore無視マスクとしての入力。 • Mask Inverted Alpha -の反転アルファチャネルを使用しますIgnore無視マスクとしての入力。 |
Foreground Mask |
foregroundMask |
None |
オプションのマスクを設定します視差を計算する領域を指定します。これを使用して、前景要素の視差レイヤーを作成できます。使用することもできます無視する前景領域の要素を除外するマスク。 注意: マスクは両方のビューに存在する必要があり、O_DisparityGeneratorは0(背景の場合)または1(前景の場合)のアルファ値を想定しています。 • None -前景マスクを使用しないでください。 • Source Alpha -のアルファチャネルを使用Source前景マスクとしてクリップします。 • Source Inverted Alpha -の反転アルファチャネルを使用しますSource前景マスクとしてクリップします。 • Mask Luminance -の輝度を使用Fg前景マスクとして入力します。 • Mask Inverted Luminance -の逆輝度を使用Fg前景マスクとして入力します。 • Mask Alpha -のアルファチャネルを使用Fg前景マスクとして入力します。 • Mask Inverted Alpha -の反転アルファチャネルを使用しますFg前景マスクとして入力します。 |
Noise |
noiseLevel |
0 |
視差フィールドを計算するときに、O_DisparityGeneratorが入力フッテージで無視するノイズの量を設定します。 値が大きいほど、視差フィールドは滑らかになります。低コントラストの画像領域で視差フィールドにノイズが多い場合は、この値を大きくすることをお勧めします。 |
Strength |
strength |
1 |
左右のビュー間でピクセルを一致させる強度を設定します。 値を大きくすると、1つの画像の類似したピクセルを別の画像に正確に一致させることができ、結果の視差フィールドがギザギザになった場合でも詳細一致に集中できます。値を小さくするとローカルの詳細が失われる可能性がありますが、奇数のスプリアスベクトルが提供される可能性が低くなり、よりスムーズな結果が生成されます。 |
Consistency |
consistency |
0.1 |
左右の視差に適用される制約が一致するように設定します。値を増やして、左右の視差ベクトルが一致するようにします。 |
Alignment |
alignment |
0.1 |
上流O_Solverノードで定義された水平方向の配置と一致するように視差を制限する量を設定します。 値が0の場合、制約のないモーション推定を使用して視差が計算されます。値を増やすと、視差が強制的に揃えられます。ほとんどの場合、これを0またはデフォルト値の0.1に設定します。 |
Sharpness |
sharpness |
0 |
計算された視差フィールドでオブジェクト境界がどのように異なるかを設定します。 この値を大きくすると、明確な境界線と個別のオブジェクトが生成されます。視差レイヤーを一緒にぼかし、オクルージョンを最小限に抑えるには、値を減らします。 O_NewView、O_InteraxialShifter、O_FocusMatcher、およびO_Retimerを使用して画像をより適切に構築するために、この値を0に設定できます。 |
Smoothness |
smoothness |
0 |
画像マッチング後の後処理として視差フィールドに適用される追加の平滑化の量を設定します。 値が大きいほど、結果は滑らかになります。これは次のものと組み合わせて使用できますSharpnessショット内の個別のオブジェクトの視差フィールドを個別に滑らかにするパラメーター。 |
Parallax Limits |
|||
Enforce parallax limits |
enforceParallax |
disabled |
有効にすると、O_DisparityGeneratorは視差を指定した値に制限しますNegativeそしてPositive不正な視差ベクトルを削除する値。O_DisparityViewerの視差ヒストグラム表示を使用して、視差範囲を確認できます。 |
Negative |
negativeParallax |
-100 |
最大の負の視差をピクセル単位で設定します。負の視差では、左の画像のピクセルは右のピクセルの右にあり、オブジェクトはスクリーンプレーンの前に表示されます。 負の視差は、位置合わせされた画像の最大disparityL.x値と最小disparityR.x値によって定義されます。 |
Positve |
positiveParallax |
100 |
正の最大視差をピクセル単位で設定します。正の視差では、左の画像のピクセルは右のピクセルの左側にあり、オブジェクトはスクリーンプレーンの背後に表示されます。 正の視差は、位置合わせされたイメージの最小disparityL.x値と最大disparityR.x値によって定義されます。 |
ビデオチュートリアル
OCULA 3.0-視差ジェネレーターから鋳造所オンヴィメオ。
FoundryからOculaへようこそ。私の名前はJonです。このチュートリアルでは、Ocula 3.0のDisparityGeneratorノードのセットアップと確認について説明します。視差は、Ocula全体で使用され、左ビューと右ビューの間でピースを接続するベクトルであるため、画像を一致させる方法、および1つのビューを他のビューと一緒に更新する方法についてOculaに通知します。プレートの調整、色の一致、フォーカスの一致、zパスの作成、軸間距離の変更、深度の変更、ビューの再構築、目の間のロトの相関、およびリタイミングを行うために使用されます。そのため、ショットの視差を事前に計算し、それを焼き出し、それをコンプで使用できます。これらの操作のいくつかを簡単に見てみましょう。
OculaのVerticalAlignerノードは、視差の垂直成分に基づいて、入力フッテージのピクセルごとの更新を行って、水平方向に整列させることができます。この映像でアナグリフに切り替えると、これを見ることができます。ここでフッテージを見て、それを更新された垂直に整列したフッテージと比較すると、ピクセルごとの更新が行われています。
ColorMatcherノードは、視差を使用して1つのビューの色を他のビューに引き寄せて、2つのビューの違いを修正します。したがって、ここに入力映像が左右にあり、修正された映像があります。これで色が一致したため、右側のビューの色を使用して、これらの視差ベクトルに基づいて左側の色を更新しています。同様に、フォーカスマッチャーは、一方のビューの外観を他方のビューにプルして、フォーカスを更新できます。したがって、ここに入力フッテージがありますが、これは右に比べて左のビューで少し焦点が合っていません。視差を使用して外観を引っ張ることにより、その左側のビューを更新して右側のフォーカスに一致させることができます。また、一致移動カメラがある場合は、これらの視差ベクトルを取得し、それらをzパスに変換し、それらを深度値に変換してコンプで使用できます。そのため、ここでは、これらの視差ベクトルに基づいて、ショットに一致移動カメラを使用して3Dポイントを作成するために三角形化されたzパスがあります。OculaのInteraxialShifterノードは、視差を使用して画像をシフトし、シーンの深度を変更します。それで、ここに入力フッテージ、ここに新しい軸間分離、そして深さを変更しました。に切り替えると簡単にわかります視差ヒストグラム DisparityViewerノードで。入力映像と新しい視差を次に示します。これは、軸間距離の変化に伴う絞り込まれた深さを示しています。
現在、OculaのNewViewノードを使用して、視差を使用して一方のビューを他方から再構築することもできます。ここでは、左の画像を使用して、視差ベクトルを使用して左のピクセルを押して右を再構築しています。したがって、元の右側のビューと比較して、それが再構築された右側のビューです。また、視差を使用してロトをプッシュすることもできます。ここでは、左目でロトを作成し、それを右目まで押しました。最後に、Oculaの視差を使用して、左目と右目で一貫したモーションベクトルを作成します。そのため、視差は左右の動きを結び付け、それを使って行うリタイミングの一貫性を確保します。格差は、すべてのOcula操作にとって重要です。ここでDisparityGeneratorをセットアップし、それらの視差ベクトルを確認してみましょう。
DisparityGeneratorで、検索する必要があります使用するビュー左目と右目用。また、2つのマスク入力があります- マスクを無視視差計算で画像の一部を除外します。たとえば、視差が破損している場合、または前景要素を除外して、その背後にある視差を引き出しようとする場合。あなたも前景マスク、これは視差を計算する領域を定義するため、画像の特定の部分をロトアウトし、そこに視差を計算してショット内の視差レイヤーを引き出すことができます。視差計算を制御するパラメーターもありますので、 力画像の一致度を定義します。増やすことができます力視差を強制的に画像に一致させます。一貫性視差の左右ベクトルがどれだけ一致するかを定義します。アライメントは、視差ベクトルがソルバーのアップストリームによって配信されるアライメントデータをどの程度満たすかについての重みです。これを増やすか、0に設定してアライメントデータを無視することもできます。あなたが持っているシャープネス視差ベクトル内の個別のオブジェクトの方法を定義するパラメーター。 シャープネスシーン内の異なるレイヤー間の視差の境界を引き出します。視差ベクトルを大きくすることにより、視差ベクトルを過度に滑らかにすることもできます。 滑らかさパラメータ。最後に、ここで、視差の計算方法に制限を設定する必要がある場合、クリックしてこれらの制限を強制できます。 視差制限を実施するそして(負そしてポジティブ)ここでピクセルの制限。
計算された格差を見てみましょう。ビューアーを切り替えて視差を表示できます。ここでは、視差はRGBAイメージとして表示されています。それを断ってもっと簡単に見ることができます。実際、ここでやったことは格差をRGBAにコピーし、グレードをして見やすくすることです。本質的に、左の視差ベクトルを赤と緑、右の視差ベクトルを青とアルファで示しています。したがって、赤と緑のx、y、および視差の右ベクトルは青とアルファx、yになります。左の視差は、左の画像を右に引っ張るベクトルです。したがって、右のピクセルから始まり、対応する左のピクセルを指します。視差右は、右の画像を左に引っ張るベクトルなので、左のピクセルから始まり、対応する右を指します。この画像を使用して、パラメーターが視差計算にどのように影響するかを確認できます。これを2の強度に切り替えると、イメージマッチャーをさらに強制するようになります。ノイズが少し増え始め、画像のマッチングが強制されますが、より正確になる可能性があります。だから、増やす力、正確な一致が得られない場合。
実際に正確なマッチングを取得する別の方法は、 シャープネスこれは、視差によりショット内の異なる要素のマッチングを分離できるためです。私が回せばシャープネスここで少し増やしてみると、視差内のさまざまなオブジェクトの境界を拾い上げ、視差をさまざまなレイヤー間で分離できることがわかります。そして最後に、ここで調整する他のことは滑らかさ。これらのベクトルを平滑化する必要がある場合は、ここで過剰平滑化をオンにすることができます。視差を使用する場合、それらを前もって焼き付けてコンプで使用することをお勧めします。そのため、パラメーターのさまざまな設定でこれらをレンダリングできます。デフォルト設定、強力な設定、シャープな設定とスムーズな設定を使用でき、視差ベクトルを選択できます。戻って調整する必要はありません。
それでは、品質のチェックと格差のレビューを見てみましょう。視差ベクトルを確認する最良の方法は、それらをOculaツリーで使用することです。私のお気に入りは、NewViewを実行して、左のピクセルを右に、またはその逆に引くことです。したがって、ここに元の右画像があり、視差を使用して右上に左ピクセルを引っ張ることにより、その右画像を再構築しました。元の権利と再構築された権利が揃っている場合、それらの格差ベクトルはうまく機能しているはずです。そのため、画像はきれいに揃っているように見えるので、再構築した画像と元の画像を結合し、StereoReviewGizmoに入れて、 差。CheckerBoardとして見ることもできます。本質的に、 差ツール、ここで見ているのは左目と右目の間の色の違いだけです。なぜなら、それらは視差ベクトルとうまく揃うからです。格差が完全に正しくない場合、画像が整列していないことがわかります。OculaのDisparityViewerノードを使用して、視差を確認できます。ここでは、画像上にベクトルとしてオーバーレイされた視差を見ることができます。これを切り替えて表示することができます視差ヒストグラム、シーンの深さを要約し、ショットに設定した視差制限と視差を比較します。これらの制限に違反している場合は、違反オーバーレイを表示するように切り替えることができます(視差違反)画像のどこで発生しているかを確認します。これらすべてのオプションがレンダリングされるため、視差ベクトルでベイクアウトできます。 視差ヒストグラム compツリーで発生する再収束をテストするには、ここで非常に便利です。プレートの視差を前もって計算し、コンプ作業を行うことができます。その後、視差を再計算し、それを再び視差ヒストグラムシーンの収束に変化があったかどうかを確認します。したがって、ここでは、ReConvergeノードを配置しました。これを移動すると、 視差ヒストグラムシフトし、シーンの深さのシフトを示します。
これで、Ocula 3.0のDisparityGeneratorに関するこのチュートリアルは終わりです。Oculaで視差が使用される場所、パラメーター設定、およびそれらの調整方法について見てきました。また、OculaのNewViewノードを使用した品質チェック、およびDisparityViewerによるレビューも検討しました。
OCULA 3.0-視差ジェネレーター_レイヤーから鋳造所オンヴィメオ。
こんにちは、私の名前はダンリングです。視差マップを操作し、修正するための高度なテクニックを紹介します。視差マップの最も一般的な用途は、新しいビューの構築です。Ocula 3.0で使用できる便利なトリックをいくつか紹介します。特に、はるかに少ない修正でより良い新しいビューを作成する方法を紹介します。ここで、1つのビューに大幅な変更を加えたシナリオの代わりに、「ヒーロー」ビューと呼びましょう。同じ変更を他のビューに適用します。私が重要な変更を言うとき、これはきれいな背景プレートの作成、カメラ台車の取り外し、何か新しいもののペイントまたは合成、領域の色処理などを意味します-かなりの時間とあなたが2番目の目で2回行いたくありません。このスクリプト例では、地面に追跡されたCheckerBoardを使用して、左目で行われた重要な変更を表します。次に、これらの変更を他のビュー(この場合は右目)にプッシュします。CheckerBoardを使用すると、問題が発生した場合に簡単に確認できます。また、両方の見方で、ある種の人が私たちのためにダンサーのためにロトマスクを描いたと仮定します。これにより、プッシュされた背景プレートにダンサーを簡単に合成できます。
Oculaなしでこれを行う方法を見てみましょう。1つの方法は、セットのジオメトリで追跡カメラ設定を使用し、「ヒーロー」ビューをシーンに投影することです。その後、ScanlineRenderを使用して新しいビューを取得できます。結果を見ると、ここで、これはかなり良い仕事をしていることがわかります。ただし、2つの重要かつ重要な要件があります。1つ目は、シーンの追跡が良好であること、2つ目は、正確なシーンジオメトリがあることです。CheckerBoardの例では、シーンジオメトリはそれほど複雑である必要はありません-単純なカードでおそらく十分です-たとえば、建物の側面のようなより複雑なものの場合、より詳細なジオメトリが必要になります。場合、それは単に不可能です。
次に、標準のOculaの方法で、Disparity GeneratorノードとNewViewノードを使用して、左目から右目へプッシュしてみましょう。ほとんどのOculaパイプラインと同様に、関連するキーフレームが設定され、エラーのある一致がスローされたO_Solverから始めます。次に、ストリームを下ってO_DisparityGeneratorを使用して、視差を取得します。未処理のプレートに視差を生成していることに注意してください。次に、Shuffleノードを使用してCheckerBoardの左目を取り込んでから、O_NewViewノードに供給して新しい右目を与えます。NewViewに左から右目を作成したいことを伝えるために、 入力ここに左、そして私たちは位置を補間する 1まで。このチュートリアルでは、すべてのNewViewノードにこれらの同じ設定を使用します。これを1つのフレームで見ると、良い仕事をしていないことがわかります。ダンサーを着たままのカンプを見ると、CheckerBoardの波線によって、ダンサーの動きが背景の格差に大きく影響していることがわかります。これはまさに望んでいないことです。代わりに、前景とは別に背景の視差を生成する方法が必要です。新しい方法でこれを行うことができますマスクを無視 OculaのO_DisparityGeneratorの機能。これは、視差ジェネレーターに、指定された領域の視差を計算せず、代わりに、その境界付近からの視差を使用してそれを埋めるように指示します。
この例では、前景のダンサーの周りに粗いロトを描きました。元の視差を見て、ジェネレーター(CheckerBoard)ノードを無視すると、ダンサーが効果的に塗りつぶされ、完全に滑らかで使用可能な背景視差プレートが表示されます。その後、この不均衡をNewViewノードに提供すると、はるかに良い仕事が行われたことがわかります。目の間を押した後、直線は直線のままです。ダンサーを再び合成すると、CheckerBoardがダンサーの影響を受けなくなり、時間が経っても滑らかに保たれていることがわかります。元のバックグラウンドプレートの再構成とレイヤー拡張再構成を切り替えて、効果をより明確に見てみましょう。この例では、カメラの追跡やジオメトリの投影を必要とせずにビュー間で背景の変更をプッシュするのがどれほど簡単かは言うまでもなく、Oculaの視差レイヤーの強力な機能を示しています。
このチュートリアルの次のパートでは、前に示した手法を開発して、背景領域と前景領域の両方の新しいビューを改善します。このシナリオでは、ダンサーと左目用の背景要素の両方を大幅に修正して処理し、右目が左に似ていないようにしていることを想像してください。次に、これらの編集を別のビューにプッシュします。カメラの追跡と投影のワークフローは背景要素では機能しますが、おそらく前景では機能しません。そのため、当然のことながら、OculaのNewViewワークフローを活用して支援しています。まず、O_NewViewノードをO_DisparityGeneratorに接続して、視差から新しいビューを作成する最も簡単で最も標準的な方法を見てみましょう。ご覧のとおり、うまく機能していません。ダンサーの端の周りにたくさんの歪みやアーティファクトがあり、道路の中央や縁石など、背景の一部が正しく歪んでいません。これを修正するために、視差ジェネレーター、無視、および前景マスクを巧みに使用して前景と背景から別々に視差を抽出し、最後に結果を組み合わせて、他のビューのよりクリーンなビルドを提供します。このチュートリアルの前半で、無視マスクを使用して背景の視差を抽出する方法を確認したので、これを開始する場所として使用します。以前と同じラフロトマスクをO_DisparityGeneratorに適用してみましょう。NewViewノードを見ると、背景がより良く処理され、道路の縁石と中心線に沿って素敵な直線のエッジがあることがわかります。しかし、ダンサーのエリアを無視することにしたので、本質的に格差を捨ててしまったので、それを別に見積もる必要があります。また、新しいビューを推定する前に、ダンサーのアルファマスクをシャッフルしていることに注意してください。これは後で使用されます。
ダンサーの視差を正確に引き出すために、ダンサーのアルファマスクを前景マスクとしてO_DisparityGeneratorノードに提供します。これは、視差生成器に、両方のビューにわたってマスク内の領域に一致する必要があることを明示的に伝えます。今、前景の視差から新しいビューを作成するとき、背景がダンサーの視差に影響を与えていないことを確認できます。たとえば、NewViewを見ると、ほとんど歪んでいない領域はダンサーだけであり、これがまさに私たちが望むものであることがわかります。では、ダンサーのアルファを使用して、前景と背景を比較しましょう。ダンサーのゴースト効果は別として、新しいプレートはとても素敵に見えます。特に、ダンサーや背景の境界に奇妙な歪みは見られません。ゴースト効果は、これらの領域が左のビューで隠されているという事実によるものです。したがって、左から右のビューを作成すると、再構築するための正しいデータがありません。ほとんどの「ヒーロー」ビューは正しく転送されますが、これらのゴースト領域は、「ヒーロー」ビューに適用されたのと同じ処理を適用して、コンプアーティストが対処する必要があります。いくつかの簡単なマスク操作により、これらの領域をすばやく特定できます。
このチュートリアルを終了するために、少しずらして、元の右目から単純にコピーすることで、これらの欠落ビットにペイントしたふりをします。色は少しずれていますが、カラーマッチングを行っていないため、元の右目境界が新しいビューの再構成とどれだけうまく並んでいるかを確認できます。これにより、プレートの再構築ワークフローが良好に機能したことがわかります。これらのテクニックは、当社のWebサイトで利用可能な付属のスクリプトと映像を使用して自分で試すことができます。これで、視差マップの操作に関するこのOculaチュートリアルは終了です。
申し訳ありませんが、これは役に立ちませんでした
なぜこれが役に立たなかったのですか? (当てはまるもの全てをご確認ください)
ご意見をいただきありがとうございます。
探しているものが見つからない場合、またはワークフローに関する質問がある場合は、お試しくださいファウンドリサポート。
学習コンテンツを改善する方法についてご意見がある場合は、下のボタンを使用してドキュメントチームにメールを送信してください。
フィードバックをお寄せいただきありがとうございます。