Page 1 of 2

fabric engine skinning research

Posted: 02 Mar 2016, 05:39
by anhungxadieu
hi there,

little research in fabric with skinning stuff, right now still not get anything work like the way it's is in ICE. I'm try to rea create a simple Linear blend skinning in fabric ...
have a look at my video and sample canvas file to get an idea
thank for your attention

Re: fabric engine skinning research

Posted: 02 Mar 2016, 22:37
by Mathaeus
Tried to get your sphere.abc into Houdini Indie and Modo, both seems to recognize only point position, nothing else. And..... of course later :D , saw Helge's answer on FE forums, that skin weights and indices are actually one 2d array.
By the way if you're already around getting the classic skin into FE, perhaps it could be a nice exercise to somehow store the weights as point positions on mesh copies in ICE, export these mesh copies into FE and re assemble all in FE...

Re: fabric engine skinning research

Posted: 03 Mar 2016, 02:13
by anhungxadieu
Mathaeus wrote:perhaps it could be a nice exercise to somehow store the weights as point positions on mesh copies in ICE, export these mesh copies into FE and re assemble all in FE...
Hi Anto,
Nice idea, but i think only way to do is create a pointcloud an store it into a pointcloud .. :-s, not try yet but look like it's difficult

Re: fabric engine skinning research

Posted: 03 Mar 2016, 08:25
by Pooby
Wouldn't a pointcloud be the same as a mesh? Sure;y yoU just end Up with an array of positions either way..

Why can't you store it as an ICE attribute and use crate to embed it in the alembic file?

Or if you don't want to deal with 2d arrays, split the second dimension into separate attributes.

Re: fabric engine skinning research

Posted: 03 Mar 2016, 09:41
by anhungxadieu
Pooby wrote:Wouldn't a pointcloud be the same as a mesh? Sure;y yoU just end Up with an array of positions either way..

Why can't you store it as an ICE attribute and use crate to embed it in the alembic file?

Or if you don't want to deal with 2d arrays, split the second dimension into separate attributes.
sorry Pooby, can you explain more? i still not clear. Even i try to embed ice attribute to alembic it still end up with array there is no way for me can folow the same concept in ice.
Here is what i already store in abc file
i store weight as "thuy_w" and indices as "thuy_e"

Code: Select all

// INFO : [KL]: [FABRIC:MT] [".geom/.selfBnds",".geom/P",".geom/.faceIndices",".geom/.faceCounts",".geom/.arbGeomParams/thuy_e/vals",".geom/.arbGeomParams/thuy_e/subArrayIndices",".geom/.arbGeomParams/thuy_w/vals",".geom/.arbGeomParams/thuy_w/subArrayIndices"]
in ice when i end up with this i can plug into set pointposition node :x
2016-03-03 at 15-36-00.png
but in fabric ... =((
2016-03-03 at 15-35-05.png

Re: fabric engine skinning research

Posted: 03 Mar 2016, 10:40
by anhungxadieu
well another try! :))

Re: fabric engine skinning research

Posted: 03 Mar 2016, 10:52
by Mathaeus
anhungxadieu wrote:
Mathaeus wrote:perhaps it could be a nice exercise to somehow store the weights as point positions on mesh copies in ICE, export these mesh copies into FE and re assemble all in FE...
Hi Anto,
Nice idea, but i think only way to do is create a pointcloud an store it into a pointcloud .. :-s, not try yet but look like it's difficult
It's not only idea, already utilized something similar to get things in Houdini. While is not so elegant, it gives you a very visual feedback of what you really have. Two arrays (deformed indices and weights) already are stored on mesh, it's just a bit of work to decompose them in ICE and compose back in FE. If you have only few deformers assigned to point, a few meshes should be enough to store everything as 3d vectors (as indices are integers, weights are scalars). If I'm correct, in case of three deformers, it is 3x3=9 let's say scalars, so, 3 meshes.

P.S. are you completely sure that your attribute went to FE, finally. I saw a nice diagnostic example, posted on forums. Maybe there's some cleaning mechanism in export, to do not export if weights aren't utilized, or something like that.

Re: fabric engine skinning research

Posted: 03 Mar 2016, 12:43
by Pooby
Its harder than I anticipated. I forget that "per-point context" in ICE, is dealt with as just an array in Fabric, so you've used up one array dimension just on that.

Thats so locked into my way of thinking, that its hard to get my head around the fact that a simple ICE array is in fact a 2D array in Fabric. Its difficult to work with, seeing as Canvas doesn't support them yet.

Thus Trying to pick from the array of deformers is the bit I'm struggling with.

Re: fabric engine skinning research

Posted: 03 Mar 2016, 16:25
by EricTRocks
Pooby wrote:Thats so locked into my way of thinking, that its hard to get my head around the fact that a simple ICE array is in fact a 2D array in Fabric. Its difficult to work with, seeing as Canvas doesn't support them yet..
Sorry could you clarify this? 2D arrays are supported.

Re: fabric engine skinning research

Posted: 03 Mar 2016, 22:21
by Pooby
This is not going to work because you will have to work with two dimensional arrays. I am afraid this is only possible in code for now. Essentially you will have a an array of arrays of weights and indices for the deformers. So you will have to move your experiment to code. Sorry!
I'm just going by this from Helge on the fabric forum

Re: fabric engine skinning research

Posted: 03 Mar 2016, 22:29
by EricTRocks
Ah correct you have to use code for 2D arrays yes. The way it was phrased sounded like 2D Arrays weren't supported in general. Carry on. :)

Re: fabric engine skinning research

Posted: 03 Mar 2016, 22:44
by FXDude
What I'm wondering is, in Nguyen's clip for example, what are the few 2 to 5 second delays when doing different things including making connections in the canvas view itself, especially that we are in this case dealing with a sphere with a moderate tree?

Is it always the case? or setup related?

Re: fabric engine skinning research

Posted: 04 Mar 2016, 02:25
by anhungxadieu
Pooby wrote:Its harder than I anticipated. I forget that "per-point context" in ICE, is dealt with as just an array in Fabric, so you've used up one array dimension just on that.

Thats so locked into my way of thinking, that its hard to get my head around the fact that a simple ICE array is in fact a 2D array in Fabric. Its difficult to work with, seeing as Canvas doesn't support them yet.

Thus Trying to pick from the array of deformers is the bit I'm struggling with.
Well, exactly Pooby
Now, no way to continue without code in kl.
Even now i'm trying to learn kl in general i still don't understand it, i watched kl workshop on Vimeo from beginning but it't not enough for me. I remember "Getting Started With Scripting in SOFTIMAGE" from Helge it very good course, and really help me a lot when i try to learn how to code in softimage hope in future Fabric have something like this just help beginner understand and use their product (ex: how to create a simple tool from start to finish) i'm not say their video on Vimeo page useless but it still not focus on what we need.
I know fabric team very busy, sorry! ;;)

Re: fabric engine skinning research

Posted: 04 Mar 2016, 02:40
by anhungxadieu
Mathaeus wrote: It's not only idea, already utilized something similar to get things in Houdini. While is not so elegant, it gives you a very visual feedback of what you really have. Two arrays (deformed indices and weights) already are stored on mesh, it's just a bit of work to decompose them in ICE and compose back in FE. If you have only few deformers assigned to point, a few meshes should be enough to store everything as 3d vectors (as indices are integers, weights are scalars). If I'm correct, in case of three deformers, it is 3x3=9 let's say scalars, so, 3 meshes.

P.S. are you completely sure that your attribute went to FE, finally. I saw a nice diagnostic example, posted on forums. Maybe there's some cleaning mechanism in export, to do not export if weights aren't utilized, or something like that.
Hi Anto,
i sure that my attribute went to FE successful via Alembic but what i don't really sure are they change or not. Sorry for my stupid i still not clear understand your method here :ymblushing:

Re: fabric engine skinning research

Posted: 04 Mar 2016, 11:08
by Mathaeus
anhungxadieu wrote:
Mathaeus wrote: It's not only idea, already utilized something similar to get things in Houdini. While is not so elegant, it gives you a very visual feedback of what you really have. Two arrays (deformed indices and weights) already are stored on mesh, it's just a bit of work to decompose them in ICE and compose back in FE. If you have only few deformers assigned to point, a few meshes should be enough to store everything as 3d vectors (as indices are integers, weights are scalars). If I'm correct, in case of three deformers, it is 3x3=9 let's say scalars, so, 3 meshes.

P.S. are you completely sure that your attribute went to FE, finally. I saw a nice diagnostic example, posted on forums. Maybe there's some cleaning mechanism in export, to do not export if weights aren't utilized, or something like that.
Hi Anto,
i sure that my attribute went to FE successful via Alembic but what i don't really sure are they change or not. Sorry for my stupid i still not clear understand your method here :ymblushing:
I'll try to do working example this weekend, should be a good exercise for something else close to that, where I'm personally interested. So, expect the victory :) or.... admittance of defeat.

Re: fabric engine skinning research

Posted: 04 Mar 2016, 18:19
by anhungxadieu
Mathaeus wrote:I'll try to do working example this weekend, should be a good exercise for something else close to that, where I'm personally interested. So, expect the victory :) or.... admittance of defeat.
wait to see it! :)