View Full Version : Tangent vector displacement maps

Boris Goreta
12-22-2012, 03:30 AM
I would like to point out that we still don't have support for tangent vector displacement maps within Lightwave.

This type of displacement is very important for animation when using detailed objects exported from ZBrush.

Currently we only have displacement maps based on normals which are limited and not very accurate and world coordinate vector displacement maps which are very accurate but cannot be used for animation.

What is the difference between normal displacement maps and vector displacement maps ? With vector displacement maps you don't have to worry about the topology and shape of your base mesh which you animate. For instance, your base mesh could be a simple 6 sided box which you can animate in any way you wan't but at render time this box could transform itself in a highly detailed head with crevices, ear lobes, mouth with detailed teeths etc. If you were to use normal displacemnt maps this would not be possible because normal maps displace geometry only in the direction of a surface normal. Vector maps can displace geometry in any direction.

There is a difference between world coordinate vector maps and tangent vector maps. World coordinate vector maps displace geometry always in the same direction regardles of the position and deformation of a base mesh. This is good for static objects. But when an object is animated these maps don't work any more. Instead you have to use tangent vector displacement maps. These are vectors that sit on the surface of the mesh and move together with the displaced object. Since they sit perpendicular to this object they are called tangents. So when the object is transformed you get new tangent vectors which you can use to displace the surrounding geometry. This was a simplified explanation which might not be 100% true but at least it explains why we need this.

I have talked to Denis and he made some improvements to his Vector Map node from DP_Kit which now allows this. Thanks Denis. You have to download the latest version so you can test this scene:



So I think Lightwave should support this natively and make it work fast with 100% multithreading. This is an industry standard. What do you think ?

12-23-2012, 09:34 AM
Seems like a no brainer to me....

Good thing we have Dennis

12-24-2012, 12:04 AM

by the way, remember to donate $ (http://dpont.pagesperso-orange.fr/main_en.htm)

micro-preview >

12-24-2012, 01:13 AM
just tested it using a .mov file for experimental purposes, interestingly enough it worked... :]
might be useful later on... :]

12-24-2012, 04:24 PM
This is an interesting subject for a person looking into the purchase of z brush. Could a more thorough description of this be explained. I was also considering 3d coat.

Is there any other model issues between these programs one should no before I go purchase one? Thanks

12-25-2012, 08:49 AM
I asked for this in LW since Pixologic presented this feature long time ago. Letīs see if we will get it in LW11.5. It would be great!

12-25-2012, 12:27 PM
for those who want it right now though, download the DPont plugin.

same goes for Micro Poly Displacement, download the DPont plugin.

same goes for creating Normal Maps, download the DPont plugin.


btw, can any of DPonts plugins create a Vector Diplacment Map inside Lightwave?...

05-19-2013, 02:43 AM

05-19-2013, 05:42 PM
I agree. This is an important feature. Since it didn't make it into the 11.5 rev. Perhaps it will happen in Lightwave 12? Let's hope ...

01-06-2014, 11:41 PM
Just FYI after some zbrush diagnostic tests....for those finding this thread in the future

these following settings apply to Zbrush generated vector displacement only....

Although not perfect...it does work decent
16 bit files use 'shifted color'...32bit files turn 'shifted color' off
both types use tangent B, and pixel smoothing

the corresponding settings in Zbrush are (in import/export preferences)
vector displacement map flip switch = 3
tangent flip switch =1
no real difference with smooth UV or smooth Normal that I can see....I would leave them on

you will notice global performs perfectly and is a better choice for non animated geometry...tangent still has some errors in it, but on a high poly model may not notice too much

01-08-2014, 06:48 AM
looks like also creating a Vector map might work in LightWave....


03-03-2014, 05:18 AM
Hi, I'm loving Dennis's vector map node, but does anyone know a way to get this working in conjunction with MDDs?

The issue I'm having is with Subdivision Order, its a shame there isn't a subdivision node so this could be applied at a specific point in the displacement tree. Any solutions would be most welcome.

03-03-2014, 05:25 AM
Same as any other displacement on a sub D object, by subdividing first and displacing second... set subD before displacement, and displacement after bones.

03-03-2014, 06:07 AM
Thanks for the response. I wish it were that simple. MDD displacement requires the cage object, which means Sub D Order can't be set to 'First'.

I'm able to get Texture and Normal displacement working with MDDs using DP kit MDD Pointer. The problem I'm having is the Vector map has to go into the Displacement node and happen after Sub D, and I can't get the MDDs applied prior to this.

03-03-2014, 06:33 AM
Subdivision order -> After Bones

Displacement Order-> Before Local Displacement

This works with the MDD displacement node in the displacement node editor and plugging your bump (enable bump checkbox inside deform tab) displacement (TEXTURE or procedural) into the displacement channel in the surface node editor.

03-03-2014, 07:42 AM
Thanks again. Unfortunately though, the vector map node won't work through the bump, only via the displacement node.