<div dir="ltr">IIRC its linear blending between 2+ non-linear interpolated/transformed points -same skin vertex transformed by 2 different non-linear matrices.. Around joints. And I think the weights would normally fade across the joint, from 1.0 on one segment to 1.0 on the other segment.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 13, 2018 at 8:59 AM, Andreas Plesch <span dir="ltr"><<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Doug,<br>
<br>
thanks, very helpful.<br>
<br>
Linearly blending the coordinates before and after transforming by<br>
weight looks like what is generally intended by using weights.<br>
<br>
This would produce a linear interpolation between the end points which<br>
is not quite what I would have expected for a weighted rotation. In<br>
axis-angle notation I would expect simply weighing the angular amount<br>
of rotation, around an unchanged axis: axis_x axis_y axis_z a*angle<br>
where a is the weight.<br>
<br>
In other words if animating the weights of an arm rotation, is the arm<br>
expected to rotate without changing its length, or just move to its<br>
final position on the shortest path ?<br>
<br>
Perhaps animating rotation weights is not the recommended way of<br>
animating a limb, and instead directly animating the rotation is<br>
preferred without changing weights ?<br>
<br>
-Andreas<br>
<br>
> Date: Thu, 12 Jul 2018 08:16:55 -0600<br>
> From: GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>><br>
> To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>><br>
> Subject: Re: [x3d-public] HAnim skinned deformation<br>
><br>
> Andreas more hanim samples here:<br>
> <a href="http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/" rel="noreferrer" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/Basic/<wbr>HumanoidAnimation/</a><br>
> Here's a hack I did on one:<br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/hanim/BoxManB.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.<wbr>net/web3d/tests/hanim/BoxManB.<wbr>x3d</a><br>
> - this moves one vertex of the head box<br>
><br>
> In freewrl I blended matrices: a*A + (1-a)*B but others told me that's<br>
> wrong, should blend the coordinates after transforming:<br>
> x11 = A*x1<br>
> x22 = B*x2<br>
> x = a*x11 + (1-a)*x22<br>
><br>
> I think the matrices would be usually just rotations.<br>
> That thing about the matrix to transform normals - needing to do the<br>
> inverse transpose - I think that applies when the scales are anisotropic<br>
> (not same scale on all dimensions). For HAanim likely they are all the same<br>
> scale if not 1.0 for hanim, so using the same matrix to transform normals<br>
> would probably work in all practical cases.<br>
> And if so you can use the same blending for normals.<br>
> -Doug<br>
><br>
> On Thu, Jul 12, 2018 at 6:18 AM, Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>><br>
> wrote:<br>
><br>
> > Before diving into an HAnim skinned deformation for x3dom, there are a few<br>
> > questions:<br>
> ><br>
> > proto<br>
> ><br>
> > Is there a proto implementation for skinned deformation, eg. the skin<br>
> > related fields ?<br>
> ><br>
> > examples<br>
> ><br>
> > Are there examples in addition to Joes kicking player ?<br>
> ><br>
> > skinCoordWeight<br>
> ><br>
> > This field modulates the transformation applied to the indexed coords by a<br>
> > factor ranging from 0 to 1. It is not quite clear how the factor should be<br>
> > applied. The spec. focuses on the amount of rotation but scaling and<br>
> > translation presumably should also be affected.<br>
> ><br>
> > Should scaling and translation be weighted ?<br>
> ><br>
> > The most straightforward way would be to just scale all the components of<br>
> > the transformation matrix. However, that does not work for the rotational<br>
> > components. Is there a recommended way to apply the weights to the complete<br>
> > transformation matrix ? Multiply all the individually weighted field<br>
> > matrixes ? That would be a lot of matrix multiplications, for each coord<br>
> > for each frame of an animation.<br>
> ><br>
> > skinNormals<br>
> ><br>
> > The spec. only refers to the skinCoords as being affected by the weighted<br>
> > transform. Presumably the skinNormals also need to be transformed ?<br>
> > If so, it seems to make sense to only apply the rotational component, and<br>
> > ignore scaling and translation ?<br>
> ><br>
> > Mix of skeletal and skinned bodies<br>
> ><br>
> > It is possible to have geometry both in the skin and the skeleton (within<br>
> > segments) fields.<br>
> > In this case it seems the full transform would be always applied to the<br>
> > segment geometries. That may lead to out of sync movement during animation<br>
> > but such mixed representation may not be intended to be fully supported.<br>
> > How should an implementation deal with such humanoids ?<br>
> ><br>
> > ______________________________<wbr>_________________<br>
> > x3d-public mailing list<br>
> > <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br>
> > <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/<wbr>listinfo/x3d-public_web3d.org</a><br>
> ><br>
> ><br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180712/8bf6c87d/attachment-0001.html" rel="noreferrer" target="_blank">http://web3d.org/pipermail/<wbr>x3d-public_web3d.org/<wbr>attachments/20180712/8bf6c87d/<wbr>attachment-0001.html</a>><br>
><br>
> ------------------------------<br>
><br>
> Subject: Digest Footer<br>
><br>
> ______________________________<wbr>_________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/<wbr>listinfo/x3d-public_web3d.org</a><br>
><br>
><br>
> ------------------------------<br>
><br>
> End of x3d-public Digest, Vol 112, Issue 10<br>
> ******************************<wbr>*************<br>
<br>
<br>
<br>
--<br>
Andreas Plesch<br>
Waltham, MA 02453<br>
</blockquote></div><br></div>