It was quite fun to see that 2 days after publishing the CubeKeyer post Nuke 10 was announced with a keyer for NukeStudio. And since Nuke 10 is so close, i don’t see a reason to release mine.

It is nice to see that they added BlinkScript support under Nuke Studio, meaning that we can create our own timeline effects as we please, and i hope that the GLSL path means that we can get GPU acceleration  from non-supported GPU’s. So i am really looking forward to that.

However we still have the Blink limitation in that we can only access 1 layer at a time, so i still hope to see a RV level GLSL like support in the future. At launch, NukeStudio 10 and Hiero 10 will also not support random access, meaning that there are still a few things we can’t do, unlike the Nuke counterpart. Like doing grain check and edge detection that are vital for QC. So i am going to release my NukeStudio GrainCheck QC tool.

GrainCheck for NukeStudio & Hiero is a SoftEffect that gives you 3 options.

  1. Grain Check (Laplacian)
  2. Edge Detection (Sobel)
  3. Saturation Check

GrainCheck

As Theodor Groeneboom have already written a clean convolution matrix some years ago, i used his code as a base (i guess i owe you a beer Theo!), but its pretty self explanatory. As the GLSL syntax was changed in Nuke 9.0v7 i have added a pulldown menu to select the Nuke version range you use.

Download it here

Installation:

  1. Put the “GrainCheck.gizmo” in your /.nuke folder (ie \.nuke\GrainCheck.gizmo)
  2. in “\.nuke\Python\Startup\init.py” add the following:
    from hiero.ui import registerAction
    from PySide.QtGui import QAction, QIcon
    import nuke
    nuke.load ("GrainCheck")
    action = QAction(QIcon("icons:LUT.png"), "GrainCheck", None)
    action.setObjectName("foundry.timeline.effect.GrainCheck")
    action.setToolTip("GrainCheck for Nuke Studio")
    action.setData("GrainCheck")
    registerAction(action)
  3. Now the GrainCheck SoftEffect should be available in the softeffect list.
  4. (note that as this node uses the gpuOP node, it will not render but only display in the viewport)