Non destructive Morph (RVK editing) and patents.

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

Post Reply
Zarf
Posts: 46
Joined: Mon Oct 14, 2002 3:54 am

Non destructive Morph (RVK editing) and patents.

Post by Zarf »

This is something that I have been thinking about for a long time....

One of the biggest problems with just about every major 3d app on the market is that once you start to define morph targets (rvk's, endomorphs, blendshapes whatever the app calls them) your model is pretty much set in stone; if you make any changes to the model the morphs are destroyed and you have to start over from scratch. AFAIK only one app ever bypassed this in a signifigant way and that was mirai from izware/nichimen/symbolics. Not only did major changes to gemoetry not destroy morphs but supposedly major topological changes would be incorporated into all existing morphs automatically. Pretty heavy stuff that made the pipeline for gollums facial animation possible in LOTR.

Anyway I have been thinking about the problem of how something like this could be implemented in blender, that is without making fundamental changes to the modeller and the associated datatypes. I *think* I may have worked out some ideas that this could conceivably be done in blender without having to implement a topology database or boundry-representation on top of the existing mesh DNA but then I got to thinking 'why the heck hasnt anyone else done this besides izware?' (if another app DOES in fact do this excuse my ignorance and disregard this whole post I suppose...)

Is it possible that non-destructive morph editing is patented? This got me thinking about the nature of open source development and problems that blender could concievably run afoul of its taken in a direction that is not so much along the lines of 'common practice' in 3d. It would probably be too expensive for the blender foundation to offer a service where it does a patent search for these types of things. Does anyone have any thoughts on this issue?



Cheers,
Zarf

z3r0_d
Posts: 289
Joined: Wed Oct 16, 2002 2:38 am
Contact:

Re: Non destructive Morph (RVK editing) and patents.

Post by z3r0_d »

Zarf wrote:Is it possible that non-destructive morph editing is patented?
it is possible, but I haven't looked for such a patent
you can probably search for patents of izware...

I hadn't heard anyone speak of this problem before...

it doesn't seem all _that_ difficult, but it may be easier with a differnt mesh data structure (as you suggest)...

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Yes, it would be very cool if you could edit the mesh heavily after creating RVKs. I do belive Sofimage XSI lets you do it too. I'll just check..

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Yes Softimage XSI does all of what you discribe. I tried to extrude some faces after creating a morph. No problem. Then I tried to edit the mesh heavily, including changing positions of many vertices. It still managed to work out how to do the morph.. I don't have acces to Maya or 3Ds MAX so I don't know about them, but they may be able to do it too. Can anyone test?

Zarf
Posts: 46
Joined: Mon Oct 14, 2002 3:54 am

Post by Zarf »

Monkeyboi wrote:Yes Softimage XSI does all of what you discribe. I tried to extrude some faces after creating a morph. No problem. Then I tried to edit the mesh heavily, including changing positions of many vertices. It still managed to work out how to do the morph.. I don't have acces to Maya or 3Ds MAX so I don't know about them, but they may be able to do it too. Can anyone test?
Hey thanks for looking into that!

XSI actually incorporates the new geometry into the morph? (for instance extrude a nose out for a face and the nose shouldn't be 'left behind' but should follow along in morhps that made areas of that face shift a lot....)

If thats the case I think this is great and I am encouraged that it isnt as obscure an issue to work around as I first thought. As for blender I think this would be very possible. It would involve some additions to most of the modelling functions, although not changing their core functionality. Every command could be structured to call auxilarry functions to figure out the best way to perform the same function on all the morphs at once. For instance I doubt the knife command would require too much modification (the new geometry it produces is predictably relative to the surrounding geometry...) but something like the extrude command would have to examine some of the original edges that it was extruded from and build a matrix representing a kind of coordinate system local to that part of the mesh and then calculate a vector to move the new geometry along relative to that matrix for each morph. The merge command maybe would take an 'average' of all the morph offsets for each vertex that is combined into one and so on and so on.....

It would be kind of a hassle having to make every command 'safe' like that but I'm sure that theres some overlap there that they could use a lot of the same code. There would also have to be a lookup table defined that kept track of the old indices of vertices versus the new indices after editing so that when the code goes to perform the modelling ops on the rest of the morphs it does it to the right parts. This would slow things down, I could only guess as to how much. How would this work with the undo system?

Just some thoughts....

Cheers,
Zarf.

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Yes XSI incorporates new geometry in morph! Even when I subdivide (not subdivision surface, real subdivision) areas that morph, it works out how the new geometry shal move.


But even if it didn't work out the movement of new points it would still be very useful! Just the fact that you CAN create extra geometry once you have made morph targets is VERY valuable, even if new geometry wont actually move automaticly. You can always enter the morph target and alter the new geometry to fit the shape. IMO it is not that important that it works out the movement, although it would be cool!

Good luck!

Zarf
Posts: 46
Joined: Mon Oct 14, 2002 3:54 am

Post by Zarf »

Monkeyboi wrote:Yes XSI incorporates new geometry in morph! Even when I subdivide (not subdivision surface, real subdivision) areas that morph, it works out how the new geometry shal move.


But even if it didn't work out the movement of new points it would still be very useful! Just the fact that you CAN create extra geometry once you have made morph targets is VERY valuable, even if new geometry wont actually move automaticly. You can always enter the morph target and alter the new geometry to fit the shape. IMO it is not that important that it works out the movement, although it would be cool!

Good luck!
I understand why some wouldnt think that incorporating new geometrys *position* in space relative to all morphs wouldn't be all that important but I am of the opinion its pretty crucial since morphs are incredibly usefull not only in the animation process, but also in modelling and texturing as well (like running a command similar to wings/nendo 'tighten' on all the verts of a face mesh, make a new morph, grab a uv cylindrical projection based on that morph then morph back to base shape....), or morphing very tricky areas of a mesh into a more easily viewed format for doing some knife ops to add edge loops then morphing back. Furthermore if your making severe adjustments to the edge loop structure of tricky areas like the mouth and some such it would probably become an unholy mess to untangle the verts that get 'left behind' when fixing morphs .

Just simple non-destructive editing would be a good start though before moving into the more sophisticated aspects. Furthermore if your making severe adjustments to the edge loop structure of tricky areas like the mouth and some such it would probably become an unholy mess to untangle the verts that get 'left behind' when fixing morphs .

I think this would require eventually a new interface for the RVK's to acheive its full usefullness. Maybe I will have some free time to look at blenders code soon and post more ideas.

Cheers,
Zarf.

Hos
Posts: 185
Joined: Wed Oct 16, 2002 12:06 am

Post by Hos »

OK, I have committed code to the latest tuhopuu
that should allow you to add or remove verts from
a mesh with vertex keys without things going
completely to hell. No fancy xsi stuff ... you get what
you pay for. Be warned that if your mesh is also
parented to an armature, the new verts will not have any
vertex groups and will not deform with the
armature until you skin them.

I'm not 100% comfortable with the vertex key code, so
please test rigourously for bugs ...

Chris

ilac
Posts: 131
Joined: Mon Oct 14, 2002 8:24 am

Post by ilac »

Hos wrote:OK, I have committed code to the latest tuhopuu
that should allow you to add or remove verts from
a mesh with vertex keys without things going
completely to hell. No fancy xsi stuff ... you get what
you pay for. Be warned that if your mesh is also
parented to an armature, the new verts will not have any
vertex groups and will not deform with the
armature until you skin them.

I'm not 100% comfortable with the vertex key code, so
please test rigourously for bugs ...

Chris
:D Must be one of the fastest implementations I've ever seen! Thanks! Hope it proves to be stable and find its way into the official tree soon! :wink:

TorQ
Posts: 29
Joined: Wed Jan 29, 2003 2:03 am

Post by TorQ »

ilac wrote:Hope it proves to be stable and find its way into the official tree soon! :wink:
ME TOO! Thanks Hos, you're swell! :)

TorQ

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

Wow Hos, thats flippin' amazing! :shock: :shock: :shock:

Can't wait 'till it gets implemented in the official tree! The possobilities available with this addition are amazing. Please port this to official tree someone!

Post Reply