BlinkScript

BlinkScriptノードはFoundryのBlinkフレームワークを実行し、一度コードを記述してサポートされているデバイスで実行できるようにします。これは、Blinkコードが各ターゲットデバイスの特定のコードに変換されるコード変換によって実現されます。コードはオンザフライで生成およびコンパイルされるため、デバイスを自由に切り替えることができます。

BlinkScriptは、出力内のすべてのピクセルに対してBlink「カーネル」を実行します。Blinkカーネルは、C ++クラスに似ていますが、いくつかの特別なパラメータータイプと関数があります。変換により、BlinkScriptノードのコードは、CPUの場合は通常のC ++またはSIMDコード、GPUの場合はOpenCLに変換できます。

Blinkフレームワークは、終了する必要がないため、プラグイン開発のワークフローを大幅に合理化しますNukeコードをコンパイルします。

注意:  GPUアクセラレーションには、NVIDIA GPUとCUDA 4.2以上のドライバーが必要です。コマンドラインからレンダリングするときにGPUを使用するには、コマンドに--gpuを追加します。

必要に応じて、ギズモとして保存できるグループノードでカーネルを公開できます。BlinkScriptの組み込みカーネル保護を使用して、公開されたカーネルをエンコードしてIPを保護できます。公開されたノードがスクリプトに保存されている場合、保護されたカーネルは読み取りできません。

警告:  カーネル内で記述できるコードに制限がないため、BlinkScriptは非常に柔軟です。その結果、カーネルソースからコンパイルされたコードにより、 Nukeクラッシュするため、注意してください!

入力とコントロール

接続タイプ

接続名

関数

入力

src

BlinkScriptカーネルが適用されるイメージ。

Control (UI)

Knob (Scripting)

Default Value

関数

BlinkScript Tab

Kernel File

kernelSourceFile

none

使用されるカーネルのファイルパスを設定しますLoadそしてSave操作。BlinkScriptカーネルは.rppファイル拡張子。

Load

reloadKernelSourceFile

N/A

クリックして、指定されたカーネルをロードしてコンパイルしますKernel Fileフィールド。

Save

saveKernelFile

N/A

クリックして、現在のカーネルを、で指定された場所とファイル名に保存します。 Kernel Fileフィールド。

Clear

clearKernelSource

N/A

クリックしてカーネルエディターをクリアします。

Recompile

recompile

N/A

クリックして、現在カーネルエディタにあるカーネルを再コンパイルします。存在するコンパイルエラーはすべて画面に表示されます。

Kernel Source

Kernel Editor

kernelSource

SaturationKernel

目的に合わせて、デフォルトのSaturationKernelをコンパイルまたは編集するカーネルを入力します。

クリックRecompileボタンをクリックして、変更の結果を確認します。

Kernel Parameters Tab

Local GPU

gpuName

N/A

次の場合にレンダリングに使用されるGPUを表示しますUse GPU if available有効になっています。ローカルGPUディスプレイNot availableいつ:

Use CPUとして選択されますdefault blink deviceの中にPreferences

システムに適切なGPUが見つかりませんでした。

GPUに十分な空きメモリがない場合など、選択したGPUで処理するためのコンテキストを作成できませんでした。

可能な場合は、別のGPUを選択して、 Preferencesおよびから代替を選択するdefault blink device落ちる。

注意:  別のGPUを選択するには再起動が必要ですNuke変更が有効になる前。

Use GPU if available

useGPUIfAvailable

enabled

有効にすると、レンダリングがLocal GPU CPUではなく、使用可能な場合は指定されます。

注意:  ローカルGPUなしでこのオプションを有効にすると、GPUが利用可能なマシンでスクリプトが開かれるたびに、スクリプトがGPUで実行されます。
コマンドラインからレンダリングしたい場合もこれを選択する必要があります--gpuオプション。

見るWindowsMac OS XおよびmacOS 、またはLinux NukeがサポートするGPUの詳細については。

Vectorize on CPU

vectorize

enabled

有効にした場合、可能な場合はCPUでSIMD命令を使用します。

注意:  これは現在実験的な機能であり、いくつかの有効なBlinkカーネルではベクトル化が失敗する場合があります。

Multiply

InvertKernel_Multiply

1

InverKernelの結果にこの係数を掛けます。

注意:  乗算は、デフォルトのInvertKernelによって公開される唯一のコントロールです。カーネルの作成の詳細といくつかの例については、 Help > Documentation

Publish

publishButton

N/A

クリックして、現在のノードのコピーを含むグループノードを作成します。その後、グループをギズモとして保存できます。

カーネルパラメーターとGPUコントロールは、ノードの公開バージョンでユーザーコントロールとして公開されます。

Protect kernel

protectKernel
WhenPublishing

disabled

有効にすると、公開されたグループのカーネルはエンコードされ、公開されたノードがスクリプトに書き込まれたときに読み取り不可になります。

format

format

Dependent on Project Settings

出力形式を設定しますSpecify output formatが有効ですが、それ以外はデフォルトで入力形式のサイズに設定されます。

Specify output format

specifiedFormat

disabled

有効にすると、次を使用して出力形式を設定できます。 formatコントロール。

このコントロールを有効にすると、 format公開されたグループノードのドロップダウン。

Settings Tab

Percentage of GPU memory to use

maxGPUMemory

50

BlinkScriptノードが割り当てることができるGPUメモリの最大割合を設定します。

Percentage of image height per tile

maxTileLines

10

BlinkScriptが単一のタイルで、つまり出力を更新する前にレンダリングしようとする画像の高さの最大パーセンテージを設定します。

注意:  もしPercentage of image height per tile 100未満の場合、宛先イメージは多数の水平ストライプでレンダリングされます。BlinkScriptカーネル内の宛先の高さは、画像の全高ではなく、現在のストライプの高さです。

BlinkScriptカーネル内で出力画像の高さを使用する必要がある場合は、パラメーターとして渡すことをお勧めします。

処理は常にタイルで行われます。CPUでは、処理がタイルではなくスキャンラインで行われることがあるため、このパラメーターは常に効果があるとは限りません。

ステップバイステップガイド

BlinkScriptノードの使用

Nukeスクリプト

注意:  サンプルスクリプトの読み込みは、ヘルプを次から起動した場合にのみ機能しますNukeそして設定しましたdocumentation sourcelocalの中にBehaviors > DocumentationのタブPreferences

見るUsing Script Links詳細については。

カーネルパラメーターに追加できるすべてのノブタイプの例

ランダムアクセスと双一次補間を使用するバルーンのような効果

一次元のボックスぼかし

二次元のボックスぼかし

重みが2番目の入力から取得される重み付きブラー

1D範囲のアクセスを使用する波打つカーテンエフェクト

入力を必要としないシンプルなレンズフレアジェネレータ

Blinkの中央値関数を使用する5x5の平均

ランダムアクセス、三角関数、双線形補間を使用する渦巻き効果

2つのBlinkカーネルがチェーン接続されて実装された2パスのサイズ変更

シンプルなトランジション効果