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!
