Volumetric and Instancing Plugins for LightWave 3D


DP Instance
Volumetric plugin
LightWave3D 9.6->10.1

Plugin coded by Denis Pontonnier.
earlier x64 versions compiled by Marvin Landis.
Mac UB version compiled by Michael Wolf.
UB are for Intel and PPC, 32-bit requires at least OSX 10.4, 64-bit at least 10.5 .

Description :

-An Instance Volumetric plugin,
various distributions of instances with Custom Object plugin.


Plane populated by 100 instances of a subpatched tree (166357 polygons).

 

 

 

Usage
Custom Object Options
Distribution tab
Rotation tab
Scaling tab
Displacement tab
Nodal tab
Scene Editor
Notes and Limitations
Download

 

DP Instancer for LW11
Instancer Options
Motion tab
Nodal tab
Download

 

 

Usage :

-Instances are tied to Null/Objects, distributed on the pivot,
on the geometry or the particle positions in case of emitters.
-Add the DP Instance Custom Object plugin to this Null or Object.

-Select a Reference to clone in the Object list.
-Click on the "Add Selected Object" to get it in the "Reference List".
-With the basic "Pivot Instance position" for instance placement,
default settings and 1 "Instance Number", add the DP Instance volumetric
and render your first instance of the given Reference object.

All settings are described in detail below.

[->menu]

Global Options:

-"Freeze All Instances"
Locks preprocess at the current frame in Preview and at the first calculated
frame for rendering a sequence, faster if instances don't need to move or
be animated in the scene.

[->menu]

Custom Object Options:

-"Preview"
"Preview Off", "Point Preview", "Box Preview"
Preview Opengl may be slow for a large number of instance.

-"Add Layout Selection"
For adding all selected objects in the Layout,
to the locale "Reference List" for this Instancer.

-"Add Selected Object"
For adding one Object picked in the Object list,
to the locale "Reference List" for this Instancer.

-"Reference List"
One or more Reference Objects for this Custom Object,
each of this reference will be cloned for one or multiple instances,
use the "Remove Reference" and the "Clear All References" buttons
for removing one or clearing all the references for this Custom Object,
each 'DP Instances' Custom Object in the scene has its own Reference
List, even if they are created with the Lightwave Clone tool.
Selected Reference is instanced with its object and instance hierarchy,
including Null objects.

-With "Copy Reference Settings" enabled, the new added Reference
inherits the current selected Reference settings.

-"Reference Amount"
Relative percentage of this Reference Object
in a random distribution of a Reference list, for multiple instances,
a list of two references at 100%, means a mix of 50% of each references.

-"Reference Cloned As":
->"Based", "Displaced", "Transformed & Displaced"
Initial, displaced or moved, rotated, scaled and displaced state of the
Reference mesh to clone.
In "Based" mode, children keep their displacement deformation.

-"Reference Mixer":
"Random","Grouped", "Alternate"
Different ways for mixing multiple Reference Objects from the list in
instances, use the "Reference Amount" above for varying percentages,
this mode affects also the "Points" and "Polygons" Instance Position,
if the number of instances doesn't reach the amount of points or polys.
"Random" mode is slow for computing a large number of instances.
"Weight Map" is accessible for "Instance Position" geometry mode only,
each Reference has its own Distribution settings, the "Instance Number"
and other "Density Weight Map" parameters are set per Reference.

-"Instance Position":
->"Pivot", "Path", "Points", "Polygons", "Surface", "Particles"
Distribution mode for one (pivot position) or multiple instances
along the path of this Custom Object, points or center of polygons of
Custom Object, particle positions or evenly distributed instances on the
surface of the Custom Object.
"Surface" uses more RAM memory than "Point" or Polygon" mode.
The "Distribution" tab adds more options for setting the instance positions.
Advanced '2D/3D space' placement can be achieved with basic "Pivot" mode
by using the Distribution node in the DP Instance node editor.

-"Custom Object Mode":
->"Before Transformation", "Transformed & Displaced"
Distribution on the initial Custom Object mesh before applying move,
rotation, scaling, or distribution after all the modification of the mesh,
the "Transformed & Displaced" is previewed only with keyed transformations.
"Transformed & Displaced" at first instancing level may cause unexpected
placement for 'instances of instances' with "Based" or "Displaced"
Reference Mode.

-"Get Instance ID"
Each instance get the Custom Object ID (Pivot) or
an individual ID for multiple instances instead of the Reference Object ID,
this can be used for varying 'instance' nodal surfacing but could break
'ID dependant' surfacing like shader using a geometry preprocess.

-"Get Instance Flags"
Each instance get the Custom Object Flags instead
of the Reference Object Flags of the Lightwave Render properties panel,
Works with "Unseen by..." properties and Light Object exclusions.
If Reference Object is "Unseen By Camera" or dissolved, Instances
should have this checked for not inheriting the Flags and being rendered.

-"Seed"
The seed of the random number generation.

[->menu]

Distribution tab (current Custom Object or selected Reference Object)

-"Instance Number" The maximum number of instances generated for all
"Instance Position" modes but limited by the total distance of
the "Path" mode, or geometry for "Points" and "Polygons" modes.

-"Min Path Distance" and "Max Path Distance"
For setting the random distance
of each instance ("Path Instance Position").

-"Based Area Evaluation"
With "Transformed & Displaced" Custom Object Mode, area evaluation
of the "Surface" Distribution is calculated on the based original mesh
instead of the displaced mesh, to maintain a constant distribution
of instances on the animated/deformed mesh.
("Surface Instance Position").

-"Density Weight Map"
Select a weight map of the Custom Object for
concentrating the instance distribution ("Geometry Instance Position").

-"Map Coverage"
Full or partial influence of the above "Density Weight Map".

-"Polygon Limit"
A slope angle for limiting the instance distribution
("Surface Instance Position").

-"Dispersion"
For perturbing the distribution of instances before mapping, with a great number
of instances on a few polygons, its value should be moderated.
("Surface Instance Position").

-"Pass Number"
Successive passes for applying Dispersion or some Relaxation after mapping,
if the "Dispersion" is set to 0%.
("Surface Instance Position").

[->menu]

Rotation tab (for selected Reference Object)

-"Min" and "Max"
Range limits of random rotation value per instance
for each axis.

-"Alignment":
->"To Surface Normal", "To Polygon Edge", "To Polygon Edge (Head.)",
"To Path", "To Target","Face To", "Face To (Head.)","Face To (Pitch)"
Different Alignment of each instance Y or Z axis applied
before above random rotation.

-"Align From":
->"Y+ Axis", "Z+ Axis"
Change the orientation of the Reference and toggle this option
if the alignment is inversed.

-"Target Item"
Item selection for target/face "Alignment".

[->menu]

-Scaling tab (selected Reference Object)
-"Min" and "Max"
Range limits of random scaling value per instance
for each axis.

-"Mode":
->"Stretch", "Size", "Size X-Z","Size X-Y","Size Y-Z
Choice between independant stretching for all axis or sizing
with full or partial axis constraint.

[->menu]

-Displacement tab (selected Reference Object)

-"DPM Motion Data Base"
For loading one or more DPM Motion Data
files for the selected Reference, use the DPM Scan Displacement plugin
for baking any kind of animation or the DPM GenScan Generic plugin for
baking a selected object and its whole hierarchy.

Different instances for this Custom Object and same selected Reference
may have different DPM Motion Data files, randomly picked in the list.
Current Reference Cloning Mode ("Based", "Transformed & Displaced")
is applied to the DPM Motion files.

Make sure that the Render Subpatch Level of the "Reference" for instancing
is the same than the Display SubPatch Level of the baked object, the same
hierarchy order must also be respected.

DPM Motion with many frames and instances has a cost for RAM memory and
rendering time.

-"End Behavior":
->"Stop","Repeat","Oscillate","Reset"
State of out of range frames,
last animated, back to first frame for replaying or reset
to the default mesh.

-"Motion Amount"
Relative percentage of this DPM Motion file
in a random distribution of a list of animation, for multiple instances.

-"Min Speed" and "Max Speed"
For a random play rate of each instance,
note that varying speed increases the memory used in DP Instance,
(see also the Random Generator node, below, for a better control).

-"Min Frame Offset" and "Max Frame Offset"
For a random 'time lag' of each instance.
Frame offset is handled internally as an integer number, not fractionnal
for moderating memory cost in DP Instance.

[->menu]

-Nodal tab (All Local Reference Objects)

-A DP Instance Node Editor, for adding instance animation
to the initial distribution,
    "Enable State", (0 = disabled)
    "Position" ,
    "Rotation" (in Radians),
    "Scaling",
    "DPM Index" (from the locale list),
    "DPM Speed",
    "DPM Offset",
    "DPM Frame".

if connected, they overwrite panel parameters except Position,
which is added to the distributed position as an offset vector.
Node tree mostly for texturing, world/local positions are tied to
the selected "Reference Cloned As" mode, there are of course many
other limitations for accessing data.
UV, Vertex Mapping for Surface, Point and (tri and quad) Polygon Distribution.
Spot Normal present for geometry distribution only, not for Path
and Particle Mode.
A zero value for State, disables the evaluated instance,
2D/3D Textures can be used for masking instances.

-An Instance Info node (DPKit/Instance folder),
with info outputs for varying nodal animation.

In the DP Instance node editor,
    "Reference Index" (local)
    "Reference ID" (original object ID)
    "Instance Index" (local)

Also available in the Surface node editor with global indexes and more outputs,
    "Is Instance"
    "Instance Position" (local)
    "Instance Rotation" (local in radians)
    "Instance Scaling" (local)
    "DPM Frame" (local)

Instance and Reference Index are indexed from 1.

-A Distribution node (DPKit/Instance folder),
for DP Instance node editor only,
various instance placement of "Pivot" mode in 2D/3D space.

"Grid" mode distributes the instances at equal distance.
"Random" modes distributes roughly the instances, look chaotic.
"Uniform" modes distribute the exact "Instance Number" in the given
area homogeneously but with undefined distances from each others.
"Distanced" modes distribute the exact or less "Instance Number",
around a fixed or drived distance input, higher "Iteration" give better
but slower result, a very small Distance may cause very long calculations.

Resulted distribution can be scaled, masked (masked instances are
disabled) and jittered/displaced, in local or world coordinates.
Jitter is the only input evaluated before "Fit To Geometry".

"Fit To Geometry" allows projection mapping on the custom object mesh,
along a selected "Axis" with a "Max Distance", this limit should be set
above the larger polygon size but a mesh with uniform subdivision gives
better results.
An alignment to the normal is provided as a Rotation output.

-A Random Generator node (DPKit/Instance folder),
for DP Instance node editor only,
output a scalar value in a given range.

Combined with a Gradient node, the number of "DPM Speed" or "DPM Offset" samples
and their distribution are finely controled (stepped), this is also recommended
to reduce the amount of RAM memory used and for faster rendering.

[->menu]

Scene Editor :

-DP Instance settings are accessible from the Scene Editor, Custom Object can be
added for an item selection, setup and modified.

-The DP Instance Volumetric plugin must be present in the scene or at least one
Custom Object, even if you remove it.

-The first bank displays info and a slot selection if more than one Custom Object
are attached to an Item, a command for adding a DP Instance Custom Object plugin
and each plugin can be enabled or disabled.

-All DP Instance settings of the first selected item can be copied to all items
of a selection in one simple action with "Copy All Settings","Add and Copy" and
"Add/Copy or Replace".

-Possibility to jump to a DP Instance panel or to its Node Editor.

-Be aware, the results of a batch process may be unpredictable if the items of the
selection have a different Reference list.

 

 

[->menu]

Notes:

-DP Instance works with radiosity with "Volumetric Radiosity" enabled
in the Render Settings Global Illumination panel.

-The DP Instance Pixel Filter overwrites the normal Alpha channel with a special
Opacity Channel for the instances only, including transparency, but no dissolve effect,
it works with the Perspective camera.
This Instance Opacity may be mixed with an Alpha channel without instances
in "Screen" Blending mode.

-Instances visibility in LW Buffers is only available in LW 10+, however no Motion,
Special and TangentSpace Buffers, also this don't work with Classic Camera.
RGB, Alpha, and Depth Buffers are always enabled and written by Lightwave,
other Buffers can be enabled in the Volumetric Plugin Panel.

Limitations (not exhaustive):

-No Surface Glow effect.
-No Surface Outline Rendering.
-No Shadow Map.
-Foreground transparency doesn't work with the Classic Camera.
-LW Preprocessed Surface nodes not working.
-Partial implementation of third party preprocessed Surface nodes.
-No Shader plugins (except shaderMeister from db&w).

[->menu]

 

 

Download DP Instance version 3.07 (Win32)
DP_Instance_x32.zip
  (updated 10/29/16)
Download DP Instance version 3.07 (Win64)
DP_Instance_x64.zip
  (updated 10/29/16)
Download DP Instance version 3.01 (Mac UB 32 and 64-bit)
DP_Instance_UB.zip
  (updated 06/19/14)

[->menu]

 

 

This plugin is freeware but donations are appreciated, thanks.

 

 

 

DP Instancer
Instancing plugin
LightWave3D 11

Plugin coded by Denis Pontonnier.
earlier x64 version compiled by Marvin Landis.
Mac UB version compiled by Michael Wolf.
UB are for Intel and PPC, 32-bit requires at least OSX 10.4, 64-bit at least 10.5 .

 

DP Instancer has almost the same Panel/Nodal Distribution modes and options
than DP Instance, but it uses the native Lightwave 11 instancing system,
faster to render than the volumetric plugin, no surfacing and material limitations,
and an extended Opengl Preview choice.

 

Major option and behavior changes,
-"Reference Cloned As" popup is replaced by "Reference Coordinates",
-Optional "Include Hierarchy" and "Include Instances" for a given Reference.
-"Update Instances" is a local option for a given Instancer.
-DP Instancer uses specific Instance Info and Distribution nodes,
located in the DP Kit/Instance Generator folder, no compatibility with DP Instance.
-LW Instances are rendered only with the raytracing cameras.
-No "Get Instance ID" and "Get Instance Flags" option, Instance Info node outputs,
since LW instances inherit directly all Reference object properties.
Index per instance for a given instancer or an unique ID in the Surface node editor.
-DP Instancer "Timing" option works with object transformations only, not for morph/bone
or texture displacement, and not compatible with "DPM Motion" cache files.

Go back to the DP Instance menu for common parameters.
Changes in the options are detailed below.

Instancer Options:

-"Preview"
"Preview Off", "Point Preview", "Box Preview", "Wireframe",
"Front Face Wireframe", "Shaded Solid", "Texture Shaded Solid"
Preview Opengl may be slow for a large number of instance.

-"Update Instances"
"Full", "Refresh", "Off"
Fully recomputes the instance distribution for each frame,
or locks the distribution and refreshes the transformations of the instancer,
or locks both the distribution and the transformations of the instancer.
Instances are reinitialized for each panel modifications in all cases.

-"Reference Coordinates":
->"World", "Local", "Timing World"
Moved, rotated, scaled (World) or without transformation (Local) state
of the Reference mesh to instance, "Timing" allows PhotoReal Motion Blur
and Animation Speed/Offset variations in the "Motion" tab
(same than "Parent" in the native LW Instancer).
"Timing" works with object transformations only, not for morph/bone or
texture displacement.

-"Include Hierarchy"
All childrens in the tree hierarchy of the Reference will be instanced.

-"Include Instances"
All instances of the Reference will be instanced, in this case the Reference
must be evaluated first, so the objects need to be correctly ordered
considering their unique ID in the scene (chronological order).

[->menu]

-Motion tab (selected Reference Object)

-"Min Speed" and "Max Speed"
Random play rate for the animation of each instance.

-"Min Frame Offset" and "Max Frame Offset"
Random 'time lag' for the animation of each instance.

[->menu]

-Nodal tab (All Local Reference Objects)

-A DP Instancer Node Editor, for adding instance animation
to the initial distribution,
    "Enable State", (0 = disabled)
    "Ref Index", (first = 0)
    "Position", (offset added to the initial position)
    "Rotation" (in Radians),
    "Scaling",
    "Speed",
    "Offset",
    "Frame".

if connected, they overwrite the panel parameters except Position,
which is added to the distributed position as an offset vector.
For textures, world/local positions are tied to the selected
"Reference Coordinate" mode.
UV, Vertex Mapping for Surface, Point and (tri and quad) Polygon
Distribution.
Spot Normal is present for geometry distribution only, not for Path
and Particle Mode.
A zero value for Enable State, disables the evaluated instance,
2D/3D Textures can be used for masking instances.
Ref Index for replacing the population already set/mixed in the panel,
but doesn't change other initial panel settings of the original Reference.

-An Instance Info node ("DPKit/Instance Generator" folder),
with info outputs for varying nodal animation.

In the DP Instancer node editor,
    "Reference Index" (first = 1, local for this instancer)
    "Reference ID" (original object ID)
    "Instance Index" (first = 1, local for this instancer)

Also available in the Surface node editor with local indexes
global ID and more outputs,
    "Is Instance" (Ref = 0, Inst = 1)
    "Instance Index" (first = 0, local for this instancer)
    "Instance ID" (Ref = 0, first = 1, global)
    "Instance Count" (Number of instances for this instancer)
    "Total Count" (...for all DP Instancers)
    "Instance Position"
    "Instance Rotation" (in radians)
    "Instance Scaling"

Other common options described in the DP Instance documentation.
[->menu]

 

 

 

Download DP Instancer version 1.45 (Win32)
DP_Instancer_x32.zip
  (updated 10/29/16)
Download DP Instancer version 1.45 (Win64)
DP_Instancer_x64.zip
  (updated 10/29/16)
Download DP Instancer version 1.16 (Mac UB 32 and 64-bit)
DP_Instancer_UB.zip
  (updated 06/19/14)

 

Download DPInstancerClone Lscript, including command template:
DPInstancerClone_Lscript.zip
  (updated 08/29/13)

 

 

[->menu]

 

 

This plugin is freeware but donations are appreciated, thanks.

 

 

 

 

 

 

 

Home Page


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