Hi 80pro, I'm curious about to handle this in broomstick as well. I'm
curious if you have made any progress on the problem since you
posted?

On Apr 4, 3:38 pm, 80prozent <[email protected]> wrote:
> hi,
>
> i am  new to all this GPU Programming stuff, but i am trying to
> understand shader-coding in Broomhill...
>
> what i am trying to achiv is a combination of skinning and morphing on
> one single mesh (skeleton for body / morphing for face).
>
> the kind of morphing i am looking for is using relative MorphTargets,
> not storing new positions for every vert, but just the vector, by
> which the original (base) vert should by morphed. this way i am only
> storing actual deformation, and no data for verts with no deformation.
>
> most of my riggs do not need more than max 3 joints per vert (current
> skeleton handles max 4)
>
> my guess would be to make up a new set of skeleton classes, thats like
> your original ones, but reduced in number of maximum joints, so their
> are some vertex-constants left in the vertexbuffer to handle the
> morphing.
>
> before handling the skeleton-data the shader could set the verticles
> position by this vc.
> (take vertex position->applymorph-constants->handle skeleton-data-
>
> >sent to fragmentshader)
>
> all the calculations for the morphing would be done on CPU, but in a
> 10.000 vertices Mesh, it could be that only 3000 vertices are actually
> moved by morphing, so you dont need do do any calculations for the
> left 7000 verts.
>
> this vc would have to be updated to the GPU on every Frame the
> morphing changes, but before building the mesh i could set up the data
> in a way that the verts beeing not morphed appear first in the
> vertexbuffer and then using a offset when setting the vc-data, so only
> the acctuall 3000 morphed verts of the mesh gots passed to the GPU.
>
> is this right, or dead wrong?
>
> anothert question:
> the vertex animation classes how manymorphtargets can they use?
>
> some code of VertexAnimation.as  function "getAbsoluteAGALCode":
> --------------------------------------
> var regs : Array = ["x", "y", "z", "w"];
>
> for (var i : uint = 0; i < len; ++i) {
> for (var j : uint = 0; j < _numPoses; ++j) {
> if (j == 0){
> code += AGAL.mul(temp1, attribs[i], "vc" + pass.numUsedVertexConstants
> + "." + regs[j]);
> --------------------------------------------------
>
> doesnt that mean their are only 4morph-targets (_numPoses) possible?
>
> Thanks for any help on this topics!
> sorry for bad english!

Reply via email to