Sample Source code
This is the actual source code used by many of the Nuke plug-ins.
- AddInputs.cpp
Shows how to access multiple inputs and perform basic arithmetic on them.
- LayerExtractor.cpp
A simple demonstation of dynamic enumeration knobs.
- SimpleBlur.cpp
Shows how to perform some basic pixel arithmetic on the input, in this case it blurs it.
- Normalise.cpp
Shows how to perform some basic pixel arithmetic on the input, in this case it normalises it.
- NormaliseExecute.cpp
Shows how to normalise images over a frame range, demonstrating how Executable Iops work.
- Triangle.cpp
Shows how to use SourceGeo to add some simple geometry into a Scene.
- my3dReader.cpp
Demonstrates the reading of a custom 3d format.
- my3dWriter.cpp
Demonstrates the writing of a custom 3d format.
- AddCustomQt.cpp
Shows how to use your own custom Qt widget for a knob.
- AddCustomQt.moc.h
Shows how to use your own custom Qt widget for a knob.
- Makefile.qt
Shows how to use your own custom Qt widget for a knob.
- DynamicKnobs.cpp
Demonstration of dynamic knobs.
- KnobParade.cpp
Creates one of every sort of NDK supported knob
- Serialize.cpp
Simply saves and loads a text string to and from the current Nuke script.
- Add.cpp
It doesn’t get much more basic than this!
- AddChannels.cpp
Add additional channels to the incoming stream.
- AppendClip.cpp
Example with lots of frame number manipulation.
- Assert.cpp
Simple example setting an error state.
- Blocky.cpp
This is a demonstration of a Nuke plug-in that moves pixels using DD::Image::Tile. In this case blocks of pixels are averaged together to produce the result.
- CheckerBoard2.cpp
Example of an operator that generates an image, with no input.
- ColorLookup.cpp
Example of using the lookup curve knob to present editable curves to the user.
- Constant.cpp
Generate a constant colored image. The simplest generator.
- Convolve.cpp
Generate output from two inputs and a larger region than the output.
- CornerPin2D.cpp
Example of a Transform-derived op.
- Difference.cpp
Computes an output channel based on contents of two input images.
- Dilate.cpp
Example of a two-pass algorithm.
- IDistort.cpp
Uses the sample() call to produce arbitrary distortion of an image.
- Grade.cpp
A simple color operator.
- Keymix.cpp
A very recently-created node showing current Nuke plugin coding practices.
- Mirror.cpp
Example where build_handles modifies the transform used to draw input handles.
- Noise.cpp
A slightly more complex image generator.
- Position.cpp
Example of DD::Image::Row::offset() method.
- Rectangle.cpp
Example of a DD::Image::DrawIop, showing how to draw simple shapes in a single color, for output in arbitrary channels.
- Remove.cpp
Strip channels out of the incoming stream.
- Saturation.cpp
Example of a DD::Image::PixelIop demonstrating how to access and modify multiple channels of an image simultaneously.
- Socket.cpp
Example of a parallel thread (such as a thread reading a socket) updating the output of an operator dynamically.
- TemporalMedian.cpp
Example of an operator that asks for multiple frames of its input
- AddTimeCode.cpp
Example using and generating metadata
- DeepToImage.cpp
Example of compositing deep data to 2D
- DeepCrop.cpp
Example of processing deep data
- DeepColorCorrect.cpp
Example of processing deep data
- DeepMerge.cpp
Example of processing deep data
- dtexDeepReader.cpp
Example of reading deep data using a library
- cdfReaderDeep.cpp
Example of reading deep data
- cdfWriterDeep.cpp
Example of writing deep data
- ParticleGravity.cpp
Example of particle force
- Sphere.cpp
A simple example of a 3D geometry generator node.
- LogGeo.cpp
A simple example of a 3D geometry modifier node.
- Phong.cpp
A basic material shader node.
- SimpleAxis.cpp
A simple axis node.
- UVProject.cpp
A node to project uv’s onto points and vertices.
- crwReader.cpp
Camera raw reader, which uses dcraw to convert the image and read it from stdin.
- DPXimage.h
File needed by dpxReader/Writer
- dpxReader.cpp
The DPX spec supports a wide variety of header fields, not all of which have
been implemented in Nuke. Our reader source is provided here for those users
who encounter a flavor that we do not yet support and need to implement a
custom reader to handle it before a Nuke release with built-in support can
be made available.
- dpxWriter.cpp
The DPX spec supports a wide variety of header fields, not all of which have
been implemented in Nuke. Our reader source is provided here for those users
who encounter a flavor that we do not yet support and need to implement a
custom reader to handle it before a Nuke release with built-in support can
be made available.
- exrReader.cpp
Nuke’s EXR i/o which accomodates files with large numbers of channels.
- exrWriter.cpp
Nuke’s EXR i/o which accomodates files with large numbers of channels.
- iffReader.cpp
IFF file format reader.
- pngReader.cpp
A fairly straight-forward example of interfacing with an existing file i/o library.
- pngWriter.cpp
A fairly straight-forward example of interfacing with an existing file i/o library.
- psdReader.cpp
Photoshop .psd file reader.
- tiffReader.cpp
Both tiffReader and tiffWriter are in this plugin so only one copy of libtiff
is used. This also contains an example of using DD::Image::Memory to allocate
large buffers that are freed when memory is needed.
- yuvReader.cpp
The yuv reader is provided as a basic example of a typical file format reader.
It uses DD::Image::FileReader as its base class.
- yuvWriter.cpp
This is the counterpart to the yuvReader. It demonstrates, among other things,
how Nuke creates and writes individual lines to create the final image.
- ffmpegReader.cpp
Demonstration of movie file format reader using FFmpeg as the support library.
- ffmpegWriter.cpp
This is the counterpart to the ffmpegReader.
- exifReader.h
Demonstrates using the jpeg and libexif libraries to read and write JPEG-format images.
- exifWriter.h
Demonstrates using the jpeg and libexif libraries to read and write JPEG-format images.
- jpegReader.cpp
Demonstrates using the jpeg and libexif libraries to read and write JPEG-format images.
- jpegWriter.cpp
Demonstrates using the jpeg and libexif libraries to read and write JPEG-format images.
- GPUFileShader.cpp
Demonstration of a GPU plugin. Reads a file containing a fragment shader.
- ChannelSelector.cpp
Demonstration of a very simple GPU plugin. Selects from a set of channels from the input to display.
Works in both CPU and GPU modes.
- Draw2D.cpp
An example of drawing 2D graphics (such as an image overlay) in the Viewer.
- Draw3D.cpp
An example of drawing 3D objects in the Viewer.
- Handle.cpp
An example of getting mouse interaction from the Viewer.
- PythonGeo.cpp
Demonstrates running python from a node, exposing geometry data to python and exposing a custom knob implementation to python.
- PythonGeo.h
Demonstrates running python from a node, exposing geometry data to python and exposing a custom knob implementation to python.