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

设置用于以下目的的内核的文件路径LoadSave操作。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上运行。
如果您希望使用命令行从命令行进行渲染,也应该选择此选项。 --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

单击以创建一个包含当前节点副本的“组”节点。然后可以将该组另存为Gizmo。

内核参数和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了解更多信息。

可以添加到内核参数的所有旋钮类型的示例

使用随机访问和双线性插值的气球状效果

一维框模糊

二维框模糊

加权模糊,其中权重来自第二个输入

使用1D范围访问的涟漪幕效果

无需输入的简单镜头光晕发生器

使用Blink中位数函数的5x5平均值

使用随机访问,三角函数和双线性插值的旋流效果

通过两个链接在一起的Blink内核实现两次遍历调整大小

一个简单的过渡效果