BlinkScript
BlinkScript节点运行Foundry的Blink框架,使我们能够编写一次代码并在任何受支持的设备上运行它。这是通过代码转换来实现的,其中将闪烁代码转换为每个目标设备的特定代码。代码是即时生成和编译的,使您可以随意在设备之间切换。
BlinkScript在输出中的每个像素上运行一个Blink“内核”,其中的Blink内核类似于C ++类,但是具有一些特殊的参数类型和功能。通过转换,可以将BlinkScript节点中的代码转换为CPU的普通C ++或SIMD代码,或GPU的OpenCL。
Blink框架极大地简化了插件开发工作流程,因为您不再需要退出Nuke来编译您的代码。
注意: GPU加速需要NVIDIA GPU和CUDA 4.2或更高版本的驱动程序。要从命令行渲染时使用GPU,请在命令中添加--gpu。
您可以在“组”节点中发布内核,然后根据需要将其另存为gizmos。可以使用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上没有足够的可用内存时。 您可以通过导航到Preferences并从default blink device落下。 注意: 选择其他GPU要求您重新启动Nuke在更改生效之前。 |
Use GPU if available |
useGPUIfAvailable |
enabled |
启用后,将在Local GPU指定(如果有),而不是CPU。 注意: 如果在没有本地GPU的情况下启用此选项,则只要在具有可用GPU的计算机上打开脚本,脚本就可以在GPU上运行。
|
Vectorize on CPU |
vectorize |
enabled |
启用后,请尽可能使用CPU上的SIMD指令。 注意: 目前,这是一项实验性功能,对于某些有效的Blink内核,矢量化可能会失败。 |
Multiply |
InvertKernel_Multiply |
1 |
将InverKernel的结果乘以该因子。 注意: 乘是默认InvertKernel公开的唯一控件。有关编写内核的更多信息和一些示例,请参见Help > Documentation。 |
Publish |
publishButton |
N/A |
单击以创建一个包含当前节点副本的“组”节点。然后可以将该组另存为Gizmo。 内核参数和GPU控件在节点的已发布版本中作为用户控件公开。 |
Protect kernel |
protectKernel |
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内核中的目标高度是当前条带的高度,而不是图像的整个高度。 处理始终在图块中完成。在CPU上,处理有时是在扫描线而不是图块中完成的,因此此参数并不总是有效。 |
分步指南
例Nuke剧本
注意: 只有从以下位置启动了帮助,才能加载示例脚本Nuke并设置documentation source至local在里面Behaviors > Documentation的标签Preferences。
看到Using Script Links了解更多信息。