Lens Distortion Nodes for Solid Angle Arnold
  • c++
  • Lens Distortion Nodes for Solid Angle Arnold Belal Salem
  • 3DE4 R4
  • Arnold 4.1

This is a Lens Distortion Camera Node for the Solid Angle Arnold render engine,(www.solidangle.com), it depends on the 3DEqualizer Lens Distortion Plugin Kit (ldpk)from (www.3dequalizer.com) to render the CG elements directly with the lens distortion that matches real live action footage lens distortion according to the 3D tracking camera solution done by 3DEqualizer.

The node extension is based on (ldpk-1.9.2) and (Arnold-4.2), but should work with warlier versions.
It's compatible with any Application hosts the Arnold Renderer, but specifically for Maya.

Change log:

* Building with ldpk-1.9.2
* export to maya_MtoA respects the focus_distance param.

Installation on Linux

Make sure you set the following env paths correctly.

LENSMODEL_PATH : this is where the lens distorion models libraries will be installed
ARNOLDTREE : Arnold Root directory
ARNOLD_PLUGIN_PATH : Typically the shader folder inside the ARNOLDTREE

# make mtoa_install
# make sitoa_install

If you have 3DEqualizer installed, manually copy the 3DEqualizer scripts fromtde_scripts to:

If you are using the LDPK with other plugins like the Weta's Nuke distortionnode, then you don't need to overwrite the DSO under LENSMODL_PATH,
bs_tdeLens will work with the older DSOs.

If you are running gcc 4.4.x and it happens that you are using my LDPK build,then you will need to remove libstdc++ and libgcc from the local Nuke folderto be able to load the weta's distortion node in Nuke, this will direct Nuketo depend on the system libraries which is harmless.


Get the ldpk (lens distortion plugin kit) from www.3dequalizer.com.

Place it in the root folder of the bs_tdeLens tree as ./ldpk (without version).

Set the previous env variables, then

# make mtoa_install
# make sitoa_install

If you already have the LDPK installed on your system:

# make lens && make mtoa_install
# make lens && make sitoa_install

To Compile for other OS other than linux, you will need to rename the DSO extentionin the source code of the bs_tdeLens.cpp camera node to match the equivalent extentionfor your system


  • Set the arnold camera to bs_tdeLens.
  • Set the distortion parameters then hit render.

There are several ways to set the distortion parameters for the bs_tdeLens:

  • a 3de py script that sets the lens distoriton parameter while exporting to Maya or XSI.
  • Generate a distortion parameter file either from 3DE or manually, then point to it in the Distortion File parameter of the bs_tdeLens.

**** Important Note *****

the lens distortion modes is being chosed according the Model parameter, where

Model = 0: 3DE Classic Distortion Model
Model = 1: Radial Standard, Degree 4
Model = 2: Radial Fisheye, Degree 8
Model = 3: Anamorphic, Degree 6

Distortion parameter file:

This is a plain txt file with pairs of 'Distortion parameter name'/valuefor example, read the enclosed parameter sample file.


When a distortion file is given, it will override any local user parameters, parameters that are not in the file will be taken from the local params.
Animated Parameters is not supported with Distorion Parameter Files when motion blur is enabled. Motion blur, needs sub-frame values that will not be available in parameter file.

Please save your recent changes.
You Forgot to Accept the License Agreement
Please accept the Software License Agreement in order to proceed with your download.
Your script has been rejected! Please fix all issues listed below before uploading again. Thanks!