GithubHelp home page GithubHelp logo

joss13aws / afx-nuke-plugins Goto Github PK

View Code? Open in Web Editor NEW

This project forked from authorityfx/afx-nuke-plugins

0.0 0.0 0.0 269 KB

Useful, everyday compositing plugins for Nuke

License: Mozilla Public License 2.0

CMake 8.37% C++ 87.53% Python 1.29% Cuda 2.81%

afx-nuke-plugins's Introduction

afx-nuke-plugins

Requirements

Optional

Build and Install

Linux

"Plug-ins compiled with GCC versions 4.1 through 4.8.2 without C++11 support should be compatible...The use of C++11 via GCC, clang or the Intel compiler is untested and unsupported, especially in terms of passing standard library objects targeted at C++11 through the plug-in interface." (NDK Dev Guide)

These plugins use some C++11 language features and therefore requires GCC 4.8. GCC 4.8.1 was the first feature-complete implementation of the 2011 C++11 standard. Although The Foundry states that the use of C++11 is untested and unsupported, the usage of C++11 in afx-nuke-plugins has not caused any issues in testing. GCC 4.8.2 is the recommended version.

To check the system version of GCC:

gcc --version

GCC 4.8.2:

dependencies: libgmp-dev libmpc-dev

tar -xvzf gcc-4.8.2.tar.gz
cd gcc-4.8.2
mkdir build
cd build
../configure --prefix=/usr/local/gcc-4.8.2 --disable-multilib --enable-language=c,c++
make -j$(nproc) bootstrap
make -j$(nproc)
sudo make install

Boost:

export BOOST_VERSION=${PWD##*/}
cd tools/build
./bootstrap.sh
./b2 install --prefix=../../boost.build
cd ../..
echo "using gcc : 4.8.2 : /usr/local/gcc-4.8.2/bin/g++ : root=/usr/local/gcc-4.8.2 <cxxflags>-std=c++11 ;" >> boost.build/user-config.jam
export BOOST_BUILD_PATH=$(pwd)/boost.build
sudo -E boost.build/bin/b2 --prefix=/usr/local/${BOOST_VERSION} --build-dir=$(pwd)/build --with-thread toolset=gcc-4.8.2 variant=release link=shared threading=multi runtime-link=shared install
sudo ln -s /usr/local/${BOOST_VERSION} /usr/local/boost

IlmBase:

wget http://download.savannah.nongnu.org/releases/openexr/ilmbase-2.2.0.tar.gz
tar -xvzf ilmbase-2.2.0.tar.gz
cd ilmbase-2.2.0
mkdir build
cd build
../configure --prefix=/usr/local/IlmBase CC=/usr/local/gcc-4.8.2/bin/gcc CXX=/usr/local/gcc-4.8.2/bin/g++
sudo make -j$(nproc) install

afx-nuke-plugins:

git clone https://github.com/AuthorityFX/afx-nuke-plugins.git
cd afx-nuke-plugins
mkdir build
cd build
cmake -DCMAKE_C_COMPILER=/usr/local/gcc-4.8.2/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/gcc-4.8.2/bin/g++ ..
make -j$(nproc) install

Windows

"NUKE on Windows is compatible with plug-ins built with: Visual Studio 2010 - (Manifest Version: 10.0.30319)" (NDK Dev Guide)

Download and install the following build tools:

With Windows 7 SDK:

Launch Cmd.exe

C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release /x64
git clone https://github.com/AuthorityFX/afx-nuke-plugins.git
cd afx-nuke-plugins
mkdir build
cd build
cmake -G "Visual Studio 10 2010 Win64" ..
cmake --build . --target INSTALL --config Release
With Visual Studio 2010:

Launch Cmd.exe

git clone https://github.com/AuthorityFX/afx-nuke-plugins.git
cd afx-nuke-plugins
mkdir build
cd build
cmake -G "Visual Studio 10 2010 Win64" ..
cmake --build . --target INSTALL --config Release
Potential Problems

If .NET Framework 4.x and/or Visual Studio C++ 2010 Redistributable are installed:

  • Uninstall conflicting packages
  • Install Windows 7 SDK
  • Reinstall confliting packages

Installing Visual Studio 2010 Service Pack 1 may remove compilers and libraries installed by the Windows SDK. The following solution is from MSDN blog

Installation order:

  1. Visual Studio 2010
  2. Windows SDK 7.1
  3. Visual Studio SP1
  4. Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1

Mac OS

"On Mac OS X, NUKE is built on Snow Leopard, using GCC 4.0. We recommend third-party developers to do the same." (NDK Dev Guide)

Ancient compiler...

Plugin Install Notes

On installation, the following code will be appended to $HOME/.nuke/init.py, where {CMAKE_INSTALL_PREFIX} will be the absolute path of the CMAKE_INSTALL_PREFIX variable:

nuke.pluginAddPath('{CMAKE_INSTALL_PREFIX}')

{CMAKE_INSTALL_PREFIX} defaults to: "{HOME}/.nuke/" if not provided.

Advanced:

Nuke will search for init.py in the default plugin paths. To add an additional search path, modify the NUKE_PATH enviroment variable:

export NUKE_PATH=$NUKE_PATH:{location-of-init.py}

Additional info on Nuke start-up scripts, init.py and menu.py
Additional info on installing plugins

Plugin Descriptions

AFXGlow — A beautiful glow with realistic falloff. The extremely intuitive controls yield predictable results. AFXGlow Youtube example

AFXSoftClip — Non-linearly reduce exposure. The algorithm was originally written for use in Eyeon Fusion. It’s much more intuitive than the Native Nuke implementation.

AFXToneMap — Exposure control, soft clipping, and dark contrast.

AFXMedian — Extremely fast median filter with sharpness parameter to reduce unwanted morphological changes and floating point size control. Faster than Nuke’s native median filter by an order of magnitude. AFXMedian Youtube example

AFXChromaKey — Generates a 2D polygon with CIELab (A, B) Cartesian coordinates to represent the chroma screen. Alpha is 0 for pixels within polygon, otherwise, alpha is function of distance to polygon. Matte is invariant to lighting and grading changes due to per frame chroma analysis.

AFXDespill — Uses Rodrigues rotation to shift screen hue to either 1/3 or 2/3. Spill suppression is is calculated using simple RGB based de-sill algorithms. Outputs a normalized spill matte.

AFXAntiAlias — Morphological anti-aliasing to smooth ‘jaggies’ that are a very common problem with keying. Extremely useful for monitor comps. AFXAntiAlias Youtube example

Redistributable Libraries

  • libboost_system
  • libboost_thread
  • libcudart
  • libippi
  • libippcore
  • libHalf
  • libhoard

TODO

  • Write documentation
  • Test on Windows and Mac OS (Built with gcc4 :( )
  • Create youtube videos for suggested usage and tips
  • Finish writing cufft implementation for afx_glow
  • Update AFXChromaKey to use non-convex hull
  • Make icons for plugins

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.