Tangent map in ICE?

Discussions about SOFTIMAGEs© Interactive Creative Environment©
User avatar
Werner
Posts: 157
Joined: 09 Jun 2009, 11:30

Tangent map in ICE?

Post by Werner » 23 Aug 2013, 13:47

Hi,

We are trying to find a work around when it comes to strand fur/hair on geometry with fine vector displacement maps. Every time we get a project like this, it creates all kinds of problems.

Our current fix is to use displacement maps to drive the right offset for strand positions, because displacement happens only during render time. As soon as clients change anything we are screwed and have to redo allot of work.

Sooo0000o, I came up with the idea to use our low res models to animate, generate shapes ext. and then to use local subdivision refinement to get us enough polys to displace the geometry in ICE before we render the fur in Arnold.
Now, using the usual greyscale displacement maps works ok, but vector displacement maps looks so much better and closer to the hi res sculpted mesh from zbrush or Mudbox.

I've been trying to get ICE vector displacement set up in ICE and got close, but it seems that I need to use Tangent space to drive it home. My problem is that I don't know how to use tangent maps in ICE. Converting the colour map into vectors does not give me what we would expect.

Does anyone have any idea how to convert Soft tangent colour data into working vector data so that we can displace correctly?

Any ideas are welcome.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 19:11
Location: Zagreb, Croatia

Re: Tangent map in ICE?

Post by Mathaeus » 23 Aug 2013, 16:10

For getting the meaningful orientation out of tangent map, you want yet another vector for this, let's say, point normal. Should be something like 'direction to rotation' ICE node. One input is tangent map, converted to vector (color to rgba > scalar to 3d vector). Another input is point normal. Both vectors from emit location, if there is some emit location.
Then you rotate vector, converted from colors of vector displacement map. Finally, add result to point position, strand position as well.
Most likely, you'll want to swap some of XYZ components, or negate some. I think ZB vector displacement considers Z as parallel to point normal.

By the way, how about GATOR, when it comes to transferring from low to high poly. For me, sounds much more robust.

User avatar
Werner
Posts: 157
Joined: 09 Jun 2009, 11:30

Re: Tangent map in ICE?

Post by Werner » 26 Aug 2013, 13:05

Hi,

Thanks for your input Mathaeus. We want to do displace the geometry rather then the particle or strand positions. Similar to but with vector displacement.

This way we will know for sure that the particles will follow/sit on the mesh perfectly.

I think my problem is because of a context mismatch. The tangent colour data is per object, but I need to check colour info per point.

I will play with this some more and post my findings here.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 19:11
Location: Zagreb, Croatia

Re: Tangent map in ICE?

Post by Mathaeus » 27 Aug 2013, 09:38

Werner wrote:Hi,

I think my problem is because of a context mismatch. The tangent colour data is per object, but I need to check colour info per point.
Well this seems to be something new. In my time :), tangent map, as sort of vertex color, lived on "samples", or in ICE, "node location". That is, on corners of polygon. So under one vertex, could be many of vertex colors. For example, if vertex is center of triangle fan, could be much more than three or four. That's why vertex color could describe uniform color per polygon, too.
If UV map, used to create tangent map, has only one island without any UV seam, these things will match. Otherwise, tangent map could be different under one vertex, if vertex is on UV seam.
That's why I suggested emit location for applying to particles. Location is interpolated, so it's possible to get just one, correct value. While I still have no idea what happens in case of emitting from point location.
For moving the vertices according to tangent map, if there's any UV seam, I'm afraid there is no easy way to get something useful.