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.
- SimpleBlurCached.cpp Example using image cache.
- 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.
- GeoTriangle.cpp Shows how to use SourceGeo to add some simple geometry into a Scene.
- GeoTetrahedron.cpp Shows how to use SourceGeo to create a 3D Tetrahedron geometry, implement UV-mapping and enable basic transformations.
- 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.
- 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.
- OCIOCDLTransform.cpp Example of an OCIO CDLTransform based on the one used in Nuke.
- OCIOColorSpace.cpp Example of an OCIO ColorSpace based on the one used in Nuke.
- OCIOConfigManager.cpp Class for managing the loading of OCIO configs.
- OCIODisplay.cpp Example of an OCIO Display based on the one used in Nuke.
- OCIOFileTransform.cpp Example of an OCIO FileTransform based on the one used in Nuke.
- OCIOLogConvert.cpp Example of an OCIO LogConvert based on the one used in Nuke.
- OCIOLookTransform.cpp Example of an OCIO LookTransform based on the one used in Nuke.
- OCIOPluginBase.cpp The base class for all OCIO example plugins
- OCIOWorkingSpaceBase.cpp Helper base class that adds a working space options for OCIOCDLTransform and OCIOFileTransform.
- 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
- dtexReaderDeep.cpp Example of reading deep data using a library
- exrReaderDeep.cpp Example of reading deep data using a library
- exrWriterDeep.cpp Example of writing deep data using a library
- cdfReaderDeep.cpp Simple example of reading deep data
- cdfWriterDeep.cpp Simple 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.
- FishEye.cpp An example of FishEye camera projection.
- 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.
- exrGeneral.h Nuke's EXR i/o which accomodates files with large numbers of channels.
- ExrChannelNameToNuke.h Nuke's EXR i/o which accomodates files with large numbers of channels.
- ExrChannelNameToNuke.cpp Nuke's EXR i/o which accomodates files with large numbers of channels.
- 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.
- 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.
- CryptomattePlugin.cpp Demonstrates the C++ implementation compatible with version 1.2.8 of the Python-based Nuke gizmo authored at Psyop by Jonah Friedman and Andy Jones (see https://github.com/Psyop/Cryptomatte).
- CryptomattePlugin.h Demonstrates the C++ implementation compatible with version 1.2.8 of the Python-based Nuke gizmo authored at Psyop by Jonah Friedman and Andy Jones (see https://github.com/Psyop/Cryptomatte).
- EncryptomattePlugin.cpp Demonstrates the C++ implementation compatible with version 1.2.8 of the Python-based Nuke gizmo authored at Psyop by Jonah Friedman and Andy Jones (see https://github.com/Psyop/Cryptomatte).
- EncryptomattePlugin.h Demonstrates the C++ implementation compatible with version 1.2.8 of the Python-based Nuke gizmo authored at Psyop by Jonah Friedman and Andy Jones (see https://github.com/Psyop/Cryptomatte).