DP Filter Node Editors for LightWave 3D

DP Filter Node Editors plugins
LightWave 3D 9.6 -> 11

All plugins below coded by Denis Pontonnier.
Mac UB versions compiled by Michael Wolf.
UB are for Intel and PPC, 32-bit requires at least OSX 10.4, 64-bit at least 10.5 .
Earlier Win64 versions were compiled by Marvin Landis.


DP Filter

-Plugin module with two Filter node editors, Pixel and Image for post-processing,
Lightwave buffers or pre-processing image in Lightwave Image Editor.
Includes also tool nodes mainly for the Image Filter node editor, and
Extra Buffers node for custom buffer linked between the Surface node editor,
and the Filter node editors.

Node Editors:
Image Filter Node Editor
Pixel Filter Node Editor

Render Buffer Node
Extra Buffer Nodes
Safe Mask Node
Surface ID Node
Mask Objects Node
Mask Surfaces Node

Filter Node
Blur Node
Fast Blur Node
Histogram Node
Limit Node
Denoiser Node
Exposure Node
Linear Tone Map Node
Tone Map Node

Displace Node
SS Blur Node
Bloom Node
Vector Blur Node
DOF Node
Dispersion Node
Vignetting Node
Camera Response Node
Grain Node

Push Node
Scale Node
Rotate Node
Deformer Node
Buffer Mixer Node
Divide Node
Back Lit Node
Depth To Pos

Download DP Filter


Node Image Filter

-Node Editor for Image Filter, works like Textured Filter with several other tools.
-Except Color and Alpha, the required render buffers must be enabled in the root node panel.

-"Alpha Mode" option in root panel is a choice between:
"Replace Buffer" overwrite current LW alpha buffer with alpha input,
"Mix with Buffer" will mix alpha input with current LW alpha buffer (max value)
and color input is mixed with Color Buffer like in LW Textured Filter.

-With the "Global Buffer" option (9.5+) new inputs are added in Image Filter node editor.
Empty Global Buffers are available to export Image Filter evaluations, however Buffers already
used in Pixel Filter node editor, can't be overwritten and are locked.
Add a Get Global Buffer node to output a Buffer, which can be modified and connect to a different
and empty Global Buffer of Image Filter node editor.
Use the same Get Global Buffer node to save this new Global Buffer in a file.

All nodes below are located in DP Filter folder and subfolders.

Render Buffer Node

-Render Buffer Node, works with Node Image Editor (always full stored buffer)
and Node Pixel Editor (per pixel buffer only or full stored buffer in a second instance).

-Except Color and Alpha, Buffer outputs are available if they are properly enabled in the node editor panel.

Extra Buffer Nodes

-"Store Extra Buffer" Node for Surface node editor,
"Get Extra Buffer" Node for Pixel Filter and Image Filter node editors.

-24 Color and Scalar buffers (6 in older versions), which can be filled through different
nodal surfaces of different objects to complete partial or whole image buffer.

-Part of the rendered image like Ambient Occlusion scalar or Normal color
can be buffered with their nodal setup connected to the "Store Extra Buffer"
node in surface node editor, but not rendered in the current image,
then using the output of the "Get Extra Buffer" node these buffers can be :
redirected/connected to an LW buffer in the PixelFilter node editor,
or mixed with the rendered image or another buffer, in the ImageFilter node editor.

-The "Access" output of Store Extra Buffer node needs to be connected to any unused
channel, which accepts a constant value of 1, this is required for recovering the Extra Buffers
later in the DP Filter node editors.

-"Enable AntiAliasing Buffer x" is commonly checked for the Image Filter node editor,
evaluated spot samples are stored for each subsampling pass.
can be disabled if AntiAliasing is calculated in the PixelFilter node editor
with "MotionBlur" enabled, for detecting samples.

-"Force AntiAliasing Buffer x" is commonly checked for the Image Filter node editor,
evaluated spot samples are accumulated in the Extra Buffer and averaged later
in the node editor, do not check this option in PixelFilter node editor.
This option works with homogeneous sampling, so it is not directly compatible
with Adaptive Sampling, this can be compensated if Global Buffers are simultaneously
used in the render.

Note: Adaptive Sampling is limited by itself because its estimation is based
on the final Color render.

-Extra Buffers can be saved as image files in the Get Extra Buffer node
add this node in Image Filter node editor without connection, then select the desired
Extra Buffer, image format and output filename in its panel.
Image saving is also available in Pixel Filter node editor.

Note: Current LW Buffer can be modified and stored in an Extra Buffer
in the Pixel Filter node editor and saved in the Image Filter node editor.

-Replace Spot node is an addon to fill/replace a few Spot Infos in a nodal chain
in Filter node editors, original Object Spot, World Spot and Smoothed Normal should
be stored in Color Buffers with Store Extra Buffer node in the surface node setup.

All nodes below work directly with Image Filter node editor (full stored buffer)
or in a second instance of Pixel Filter node editor.
other buffers than Color & Alpha need to be enabled in the node editor panel.

Push Node

-Push Node for moving rendered image.

Scale Node

-Scale Node for scaling rendered image.

Rotate Node

-Rotate Node for rotating rendered image.

Deformer Node

-Deformer Node for displacing pixels of the rendered image.

Buffer Mixer Node

-Buffer Mixer Node, it does the same thing than Color Mixer Tool Node,
but with (square) screen Preview.

-When using Buffer Mixer in Image Filter Editor with Render Buffer Node input,
it must be connected to the rootNode first to acquire image buffer,
then it can be disconnected and still be used as a single previewer (FG input).

Divide Node

-Divide node for safe Color division, for replacing LW Math Vector Divide node,
avoiding issues while dividing a color pixel by a black pixel (zero).
It can be used for Color Buffers with empty Background.

Back Lit Node

-Back Lit is a diffusion translucency shader for back geometry.

This node accumulates lighting and radiosity if the hidden geometry is nearest
than a given "Max Distance", output is a simplified diffusion possibly mapped Color
or an unmapped scalar Lit.
-"True Back Normal" option estimates the normal of the back polygon for a better
Lambert diffusion and for texture nodal input evaluation.
-Disable "Camera Ray Only" option to get this effect in reflection and transparenvy,
however the quality of diffusion shading is not guaranted.
-Lights can be filtered with the prefix of their name.

Depth To Pos Node

-Depth To Pos node converts the input Depth in world position.

-Enable the Depth Buffer in the node editor and get the value for Depth input from
the Render Buffer node.

Histogram Node

-Inserted in a nodal Image Filter connection, this node displays the distribution of the
input image on a graph, in the exposed range value, but it shows also a part of under
and overexposed image distribution.

-"Low Luminance" and "High Luminance" node outputs can be used for adjusting exposure.

-Select the Channel mode,
"RGB" three superposed color channels,
"Blended RGB" three blended color channels,
"Luminance" averaged luminance.

Limit Node

-Three ways to limit overexposed values in an image,
"Preserve Luminosity", in conjunction with a "WorkSpace - White Point",
"Preserve Hue",
"Clamp Per Channel".

Denoiser Node

-Denoiser node is a bilateral blur for removing noise, leaving untouched
the edges in the image.

-The optional Reference Color and Alpha is used for edge detection only,
so a Depth Buffer and a Normal Color (Extra) Buffer can be input to avoid
confusion between undesired noise and current model details and edges.
Without input, the Color and/or Alpha input are used as self-reference.

-"Sigma" is the edge detection level, smaller value is best for midtone,
-"Blur" is the level of blur.
Both parameters are evaluated per image, not per pixel.

Exposure Node

-An Exposure node for applying constant exposure correction on a over-exposed
image, the highest luminance (max luminance input after rendering) is the reference
to know for adjusting "(inv) exponential exposure".

Linear Tone Map Node

-Applies a linear factor to the input color image based on the exposure,
the F-Stop and the ISO Speed of a film/sensor.

-Check the "Exposed Render" option with a classic Lightwave color render input
(uncheck it with higher irradiance of an unexposed daylight).

-"Sensitivity", panel or nodal parameter, the ISO speed of the film/sensor.

-"Use Camera Shutter", "Exposure" panel or nodal parameter, duration of the
exposure in seconds.

-"Use Camera F-Stop", "F-Stop" panel or nodal parameter.

-"Film Gamma" the gamma of the film or sensor space.

Tone Map Node

-A Tone Map node, based on Erik Reinhard's algorithm,
doing tone map correction of any HDR color input in preprocess or postprocess mode,
for previewing a larger image use Image Viewer or Viper.

-White Point:
This option should be set to a very large number (1e20 is default)
for high dynamic range images, and should only be set to a small value if the input
is already low dynamic range.
All input luminances larger than this value are mapped to white.

-Average Luminance:
The log "Average Luminance" of the input is mapped to this value (Default value 0.18).
If this produces an image that is too dark, try doubling this value.
If the image is too light, try halving this value.

-Use Scales:
By default it uses a fast and efficient global mapping.
"Use Scales" invokes the multi-level scale selection mechanism.
For some high dynamic range images, this produces better contrast.

Default value 1, means no sharpening.

Blur Node

-Blur Node for blurring rendered image, adjust pixel size and amount
for each horizontal and vertical blur.

Fast Blur Node

-Fast Blur Node for blurring rendered image.
Parameter input is evaluated 'per frame'
(for 'per pixel' evaluation of parameter input use the above Blur node).

-Fast Blur can be used as Pre-Process in Image Node Editor with Image Filter NE.

-Reference: Fast anisotropic gauss filtering.
J. M. Geusebroek, A. W. M. Smeulders, and J. van de Weijer



Displace Node

-Displace Node for Screen-Space pixel displacement along the object normal,
of the Color, Alpha and any optional Scalar channel input.

Required inputs:
-The Depth Buffer directly from Render Buffer node.
-The Bump Alpha/Scalar Displacement of the nodal Bump surfacing from Get Extra Buffer node,
setup with the Store Extra Buffer node in the Surface node editor.
-The Smoothed Normal from Extra Buffer or the "Cam. TS Normal" Buffer from Render Buffer
(LW10+ only, normal in Camera/Screen-Space and not modified by bumping).
The Depth and "Cam. TS Normal" Buffer must be enabled in the Image Filter node editor.

-The Distance panel and nodal input is the maximum displacement with 100% bump.

-There are known issues with this effect, like jaggy edges, faked offscreen displacement.

SS Blur Node

-SS Blur Node for simulating Three Layers Screen-Space Subsurface Scattering.
Parameter input evaluated 'per frame'.

-For post-processing in the Image Node Editor with Diffuse Color Buffer as Color input,
Alpha Buffer or composite Mask as Alpha input and Depth as RefScalar input.

-"SubScattering Strength" for adjusting the overall strength of the SSS effect.
-"Max Depth Difference" for limiting artefacts caused by depth discontinuities,
such as halo in dark areas of skin.
-"Correction" for modulating how subsurface scattering varies with the depth gradient.
-A Skin and a Marble preset tables with "Variances" (blur width) and "Color Weight" applied
for each successive layer.

-Reference: Screen-Space Subsurface scattering.
Jorge Jimenez and Diego Gutierrez
(Human scanned head in preview by Ten24)

Bloom Node

-Bloom Node for simulating optical effects around overexposed regions of a colored image
and its alpha channel.

List of Effects:
-"Bloom", it can be enlarged with the "Size" and get "Color Modulation".
-"Stars", 2 kind of cross or one double cross, can be enlarged with more "Passes" and "Boosted".
-Variable number of "Streaks", possible "Angle Offset", "Passes", "Color Modulated", "Boosted",
streaks can get dramatic inner reflections with a "Feedback" factor.
-"Reflections" through lens, more visible with decentered sources.

-Different "Quality" modes, from "low", fast but less defined, to "very high".
-The "Low Threshold" is the minimal luminance value for applying the effect.
-The "High Threshold" is the maximal luminance value for applying the effect. It can be used
for separating/compositing effects of low and high luminance (note that the luminance used for
both threshold is pre-filtered, slightly and differently lowered for each color channel).
-"Multiply or Additive Texture Blending" for Texture inputs, applied before or after the effect.
-"Strength" the amount of the effect, which is "Mixed" with the Color or directly output.
-The "Mix" or "Effect" can be limited to a maximal luminance with "Clamp Output" option.

Filter Node

-Filter node includes 23 filter presets:
Soft, Blur, Sharpen1, Sharpen2, Sharpen3, Emboss, Laplace, Shadow,
Diagonal, Horizontal, Vertical, Woodcut, North, East, South, West,
Northeast, Northwest, Southeast, Southwest,
Sobel, Prewitt, Kirsh.
-All filters apply a 3 x 3 convolution to the input image.
Sobel","Prewitt" and "Kirsh" add a second reverse convolution for edge

-Filter can be applied to the input color or scalar for an black&white,
Color or Grey ouput.

-"Threshold" affects all output types, set a zero value for full filtering effect,
-"Amount" will mix the effect with color or grey input.
-if "Border Edge" option in Filter node checked, outside pixels are ignored but
border of the image could appear "edged", if it is unchecked the image is mirrored
for outside pixels to avoid sharpened border.

Vector Blur Node

-Vector Blur simulates 2D motion blur with the LW Motion X & Y Buffers,
the Motion X and Motion Y Buffer inputs from the Render Buffer node are required,
must also be properly activated in the Image Filter node editor.

-Motion Blur can be applied to Color, Alpha and a third Scalar input.

-"Blur Length" is a percentage of the curent LW motion blur.

-With "Center" option the blur is shifted, to get a symmetrical effect arround
the moving object.

-With "Blend" (and "Center") other parts of the image like background or foreground objects
are also blurred and blended with the main effect for a smoother result.
The Depth Buffer can be connected and used for detecting and filtering static, absolutly
not moving foreground objects, however this mask is aliased, so image must be resized.

-There are of course a lot of situations where Vector Blur produces known artefacts,
like missing part of blur for object cut by image borders, or abnormaly displaced background.

DOF Node

-DOF Node for simulating Depth Of Field effect on the rendered image.

-A Color and an optionnal Alpha/Scalar must be input as base image in the node
and a Depth Buffer input from Render Buffer node is also imperatively needed
to compute the DOF effect.

-Adjust "Diaphragm Sides" and "Diaphragm Rotation" to get 'Bokeh' effect on the
out of focus of image, zero side means disk shape.

-Geometric Diaphragm can be replaced by a custom image shape, even colored,
but slower to render.

-With "Aspect Ratio", DOF effect can be anamorphic.

-Except the Camera focale and Image size, the main Depth Of Field significant
parameters are the "Lens F-Stop" and the "Focale (Focus) Distance".
"Use Camera Lens" allows to get this parameters from the current Camera settings.
"Focus Reference" is for selecting a (Null) Object, this is more paractical for animating
the Focus point.

-DOF node has different "Quality" modes, from "low" with probably some artefacts
to "very high" also very slow.

-In case of infocus edge over outfocus heavy blurred background, an optionnal
"Back Leaking Filter" can be applied for smoothing the effect but it is slow.

-"Blur Size" is a multiplier of the resulted DOF effect.

-With "Foreground Blur" and "Background Blur", back and front outfocus regions
can be adjusted separatly .

-Note that for in a realistic DOF effect, Luminosity or Specularity should be overexposed
in the input image, use the Scalar Buffers from the Render Buffer node as mask with
a multiplier for overexposing the appropriate region of the original image.

Dispersion Node

-Dispersion node for simulating Chromatic Abberations, the aspect of input image
is also proportionay resized.

-Alpha channel can also be alterated to match the transformed color channels.

Vignetting Node

-A simple node for simulating vignetting, close to Real Camera "Irradiance falloff",
but added as a postprocess effect.

-The "Aspect Ratio" of the vignetting effect can be modified.

-"Saturate" option add contrast to the vignetted part of the image.

Camera Response Node

-The Camera Response is the function relating scene radiance to image brightness.
DoRF is a Database Collection of real-world Camera Response Functions.
CAVE "Radiometric Camera Calibration".
-Reference: Michael D. Grossberg and Shree K. Nayar

-Select an individual CRF file from the DoRF database, can be a single channel monochrome
or three channel RGB color, a negative film, reversible film or CCD sensor
(see in the Download section).

-"Estimate Film Gamma", estimation done by comparing the input and output crf curves,
then the corrective gamma is applied to the output crf curve and displayed.

-"Film Gamma" user defined film gamma, can be derived from the above estimation.

-"Invert" for simulating special film processes, inverts the Camera Response Function.

Grain Node

-A Grain/Noise generator for the Image Filter node editor.
Color and Scalar nodal output the original image blended with grain,
Grain Color and Grain Scalar output grain only.

"Gaussian" most used for film grain,
"Poisson" a fast version,
"Impulse" (Salt and Pepper"),
"Gamma" a fast version.
Note that there are many different implementations of these noise generators
in various programs, which may give different results.

-"Blur" for blurring grain.
-"Saturation" for desaturating grain, 0% means monochrome.
-"Grain" panel or nodal parameter, controls the amount of grain for the Color output.

-"MidTones Mask" applied only to the blended Color or Scalar output, film grain
is commonly subtle in dark/shadowed and highlighted areas.

"Blend" modes:
or "Additive + ColorDodge", best choice for preserving the luminosity of
the original image.



Node Pixel Filter

-Node Editor for Pixel Filter, works with Render and Extra Buffer Node,
but in one instance, buffers can't be transformed with nodes like in Image Filter, since
it doesn't store the whole image buffer.

-Pixel Filter node editor has a huge difference with Image Filter node editor,
it can only store Buffer image entirely at the end of the evaluation of its first instance,
but filter nodes like Deformer, Blur etc, need to evaluate neighbored pixel in the image,
this is possible in a second instance of Pixel Filter NE.
Simply add a first Pixel Filter NE without opening it, then add a second Pixel Filter NE
for building your node tree, checking buffers in the root panel of one node editor
is sufficient.

Viper can be used for previewing and adding presets.

-"Alpha Mode" option in root panel is a choice between:
"Replace Buffer" overwrite current LW alpha buffer with alpha input,
"Mix with Buffer" will mix alpha input with current LW alpha buffer (max value)
and color input is mixed with Color Buffer like in LW Textured Filter.

-Pixel Filter NE can antialias procedural input, with Perspective, Real Lens or Advanced Cameras,
with the Multithreading option in the root panel of Pixel Filter.
Note that these options are not fully compatible with the color Backdrop Buffer,
and the node editor preview doesn' work.

-"Global 3D Shading" evaluation in Pixel Filter node editor (9.5+ only).

With "Raytracing/Global 3D Shad." disabled (Default) in main panel,
PFNE works like older versions, procedurals are evaluated in 2D like LW Texture Filter.

With "Raytracing/Global 3D Shad." enabled, almost all procedurals, shaders
and Spot Info node values are evaluated in 3D for all surfaced
objects in the field of view,
working with Classic and Advanced Cameras (including Real Lens).
Check "MultiThread/Persp. AA" to get Pixel Filter AntiAliasing with Advanced Cameras.
Global 3D Shading can't be previewed in the node editor or Viper, but can be mixed
with Render Buffer output.

-Global Shading can be connected in 24 Global Buffers, Color or Alpha(Scalar),
these buffers are temporary but can be saved with the Get Global buffer node.
Add this node in the Pixel Filter node editor without connection, then select buffer,
format and output filename in its panel.
Or add it in the Image Filter node editor for adding/blending effect like blur to the
Get Global Buffer ouputs.

-The Global Buffers are only accessible in Pixel Filter NE with one or both
of the "Persp.AA" and "3D Global shading" (9.6+).

Known issues:
-Photoreal DepthOfField and Motion blur samples of Advanced Camera don't match exactly
LW samples.

-Adaptive Sampling (e.g Persp.AA) is only correct for PFNE Root Color and Alpha inputs,
for redirected noisy shading like Ambient Occlusion in Diffuse Buffer, use more samples
in Shader node or high AA level in Advanced Camera panel.
-"Multithread/Persp. AA" with Multicore could crash with a few 3rd party Shaders,
a possible fix, in "Render Settings" set the MultiThreading option to "One Thread".
-In a second instance of Pixel Filter node editor, reconnecting to the same Global Buffer,
may give unexpected results (always half-mixed).

-Legacy Subsurface Scattering with Perspective Camera and "Multithreading" don't work.
-LW Shader needing preprocess such as SSS and SS2 don't work.

-A few 3rd party Shaders or specific settings like 'Blur' in LW Reflection node crash Layout
as soon as they are connected to the Root node,
rendering (even partially) the current frame, before doing anything in the node editor
allows safe connection with LW shaders (e.g Reflection node + blur).
In this case add the Safe Mask node to filter/protect connection to the root.

Safe Mask Node

-Safe Mask node (9.5+) is an utility for Global 3d Shading in the Pixel Filter node editor.

-It disables node root preview for all previous connections to prevent issues/crashes in connection
(e.g. 3rd party AO nodes or LW Reflection Blur).

-It disables also Pixel Filter render process (node evaluation) on background, to prevent other kind of issues.
Since DP Filter Global 3d Shading has different Perspective DOF and PRMB sampling than LW render,
there are two available mask modes, LW Alpha Buffer or Global Shading Alpha.

Surface ID Node

-Surface ID output (9.5+) for Global 3D Shading in the Pixel Filter node editor.

-This is a pseudo ID number, rather the position of 'unique' surface id in the scene surface list,
so removing or adding a surface will change the output value.

Mask Objects Node

-Select within a List Box the Objects to include from scene, others are masked,
a Color buffer can be input and output with this mask through the node.

-9.6 version of Pixel Filter node editor needs Global 3D Shading and/or an objectID
input if available, 10+ version works without input in all modes.

Mask Surfaces Node

-Select within a List Box the Surfaces per object to include from scene, others are
masked, a Color buffer can be input and output with this mask through the node.

-9.6 version of Pixel Filter node editor needs Global 3D Shading and/or a surfaceID
node as input, 10+ version works without input in all modes.



Download DP Filter

Thanks to Gerardo Estrada for testing this tools.
Gerardo wrote an amazing article about Multipass Rendering in the issue 30 of the HDRI 3D magazine,
also available on the Lightwiki Tutorial pages.


win32 and Win64 versions of Filter node editors, dedicated nodes and Extra Buffer nodes
are included in one module, called DP Filter available for Lightwave 9.0, 9.5, 9.6, 10, 11.
Changes in this module could fail with a previous installation, so please remove
and re-add DP Filter after each update.

Older versions of DP Filter for Lightwave 9.0 (no more updated).

Download (Win32) DP_Filter_9_x32.zip
(updated 06/10/09)
Download (Win64) DP_Filter_9_x64.zip
(updated 06/07/09)


Older versions of DP Filter for Lightwave 9.5 (no more updated).

Download (Win32) DP_Filter_95_x32.zip
(updated 12/04/11)
Download (Win64) DP_Filter_95_x64.zip
(updated 09/07/09)


Versions of DP Filter for Lightwave 9.6.

Download (Win32) DP_Filter_96_x32.zip
(updated 10/27/16)
Download (Win64) DP_Filter_96_x64.zip
(updated 10/27/16)
Download (Mac UB 32 and 64-bit)  DP_Filter_96_UB.zip
(updated 06/19/14)


Versions of DP Filter for Lightwave 10.

Download (Win32) DP_Filter_10_x32.zip
(updated 05/05/17)
Download (Win64) DP_Filter_10_x64.zip
(updated 05/05/17)
Download (Mac UB 32 and 64-bit)  DP_Filter_10_UB.zip
(updated 06/19/14)


Versions of DP Filter for Lightwave 11.

Download (Win32) DP_Filter_11_x32.zip
(updated 05/05/17)
Download (Win64) DP_Filter_11_x64.zip
(updated 05/05/17)
Download (Mac UB 32 and 64-bit)  DP_Filter_11_UB.zip
(updated 06/19/14)



Versions of DP Filter for Lightwave 2015.

not fully tested,
temporary fix (for 2015.1)and respect overscan camera for DOF and Bloom nodes,
new Edge/CS Buffers.

Download (Win32) DP_Filter_2015_x32.zip
(updated 05/05/17)
Download (Win64) DP_Filter_2015_x64.zip
(updated 05/05/17)


Download Camera Response Functions files (crf) CameraResponseFunctions.zip



These plugins are freeware but donations are appreciated, thanks.








Copyright © 2017 Denis Pontonnier. Denis.Pontonnier@wanadoo.fr