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->apply morph-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 many morph targets 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 4 morph-targets (_numPoses) possible?


Thanks for any help on this topics!
sorry for bad english!

Reply via email to