Can Blender Morph from One Mesh to Another?

Blenderartist forums has a coding section. http://blenderartists.org/forum/forumdisplay.php?47-Coding

Another idea would be to contact the developers ( They are all mostly independent developers) of the programs I mentioned in previous posting and see if they have any interest in doing some Blender coding. Maybe you could persuade them that an opportunity exists in the ‘Blender Marketplace’

Okay. I’ll definitely make a post here at BlenderArtists in the coding section. As far as contacting Poser developers and such…I don’t know if I’ll take it that far. But it’s at least a good possibility. Thanks again.

Seems you misunderstood me and I find it somewhat weired how you make this issue a philosophical one, telling me what a showstopper I am, when the facts are on the table:

I’d like such a feature, everything that makes my work easier is great, progression is great, change not always but one adapts.
I don’t see where I told you I don’t want such a feature or that I have no interest in it, I just tried to tell you how unlikely it is that you’ll get it and why.
As Richard, idh and I pointed out, what you request can already be done in Blender, just not with 2 clicks.
And there are certain things Blender (still) lacks and like Richard pointed out your chances are close to zero to get your feature done by any current dev - The todo-list is long, there are few developers and your request is so to say not important at all in the big picture.

Like I said, get a programmer, python or C(++) to work for free, or raise funds and implement the feature.
When you find a pyhton coder you might as well make a commercial addon and sell it to those who need it.

But ranting on that you need a feature because you can’t achieve what can be done with current ones, or because it’s not easy enough isn’t going to do any good.

And both Makehuman and Poser can’t transform different meshes and also not materials.
What both do is “just” matrix vertex displacement which is exactly like Blender’s shapekeys.
At least up to Poser 6.0, that’s the last one I owned - can’t tell it for the latest version.

Arexma,

First off, I don’t know how a natural-looking morph could be achieved with multiple textures. If you can demonstrate that for me, that would be great because the technique described in the BlenderCookie werewolf video is just not useful. It doesn’t morph textures, the Objects have to be designed for the morphing in advance, and they all have to have the exact same number of vertices. I tried it with two simple logos and it looked horrible - and, of course, the Materials didn’t morph.

Let’s put it this way: I was just looking to morph a pair of simple clip art logos into each other. Using the technique you favored, it looked like hell. If you think that you can do it in a reasonable amount of time - with textures - I’d be thrilled to learn of the technique.

You then complained about “ranting”. Again, you must be confused, as the only person here making declarative statements and saying anything that could be called ranting is yourself.

Finally, I can’t afford to hire people for computer animation issues. If I had money, I’d probably be using Maya or whatever else to begin with. Saying, “Just pay for it” isn’t really a practical solution.

If the issue is so challenging and has not been achieved in any other program, then, really, that will probably be a call to action among the best people, rather than something to recoil in fear or dismissive “That’s impossible” declarative statements. That’s my opinion.

Again, I don’t think that you should act like you speak for everybody. You have your own opinions. In your opinion, this technique is either impossible or a waste of resources. That’s fine. You’ve already said this multiple times and now it’s just repetitive, boring, and cynical.

I’m not one that actualy knows enough about these things yet myself, but I just wanted add my own little tidbit here.

I for one realy love the base Idea of being able to transform models from one to another. Since BF is highly unlikely to add this anytime soon, the idea of getting ahold of some coders would be the best option. I’m sure there’s plenty others that would love to see this kind of feature added into the fold.

For the record, I didn’t start this thread to request such a feature. I started it assuming that there was already a way of doing it and asking what that was. So I know that this isn’t really the place to request new features. That’s obviously why I made the post at BlenderStorm (the site that Blender.org refers you to to request new features). Since you like the idea, I encourage you to please vote the Morphing idea up:

http://www.blenderstorm.org/blenderstorm/idea/442/

And thank you for the agreement on the usefulness of such a system, and the encouragement of its creation.

(I would also like to note that I am sorry if my writing in this thread is putting any bad vibes into the forums or anything along those lines. That is not at all my intention, but just a side-effect of my writing style. Blender has been a God-send for me and the community has just been awesome - more competent, giving, and cool than I could’ve ever dreamed. I think that my writing comes across as more confrontational and terse than I intend for it to. But none of that is to dehumanize or insult any individuals at all. The last thing I’d ever want to do is bring down anybody in the Blender community, even if it’s just in small arguments.)

I’m sure most people are thick skinned enough to not to care one jot what other people say.

Note that if you look at blenderstorm you’ll see its basically a wasteland of peoples ideas, not implemented solutions.

Since the feedback for the actual concept has been very positive here - several people have commented that they’d love such a feature - what else would you suggest? That’s what Blender.org says to do. Somebody said to start a thread in the Python section here at BlenderArtists, and I’ll do that (sooner or later). Really, if the Blender developers don’t take BlenderStorm seriously, then they shouldn’t waste people’s time by sending them there.

Okay, once again, the ShapeKey method that you repeatedly keep claiming is the solution…is still not a solution. The models have to be oddly retrofitted to be the same number of vertices, and then the transitions look like crap. As far as the Material suggestion goes, if you’re starting off with two separate Objects - which is what I’m talking about - then you would have to apply the second Object’s Materials to the first Object. Because the Meshes are now absolute catastrophes because they were retrofitted to have the same number of verts, this is almost impossible (other than some sloppy UV Mapping, I guess).

Attached are a couple of very simple Objects: a Detroit Red Wings and a Detroit Lions logo generated from .SVGs and then converted into Meshes. If you can simply morph one into the other in a reasonable amount of time the way it can quickly be done in 2D imaging programs, then I’ll stand corrected.

http://www.pasteall.org/blend/11314

After saying that the solution already exists…you then say that I have to raise funds to finance a solution. This seems to me an obvious contradiction. Which is it? The problem is already solved or I should spearhead a campaign to solve it now?

I have no clue why you’re so fixated on this. You repeatedly claim that there already is a solution and, then you say that a solution is impossible and, finally, that I should pay for a solution. Setting aside the fact that all three of your claims are mutually exclusive and, therefore, contradictory, it’s just annoying at this point. You’ve also said that you have no use for a morphing tool. Fine! Then don’t waste your time on this. Please! Nobody here is asking you to constantly badger the thread with your, um, “ideas”.

You then said that BlenderStorm is a waste of time. Okay. Great. So maybe you should tell the people at Blender to not waste people’s time by directing us there and having us invest time and energy into it.

I don’t know what your fixation on this is, but it’s kind of creeping me out. You expressly said that you don’t want a morphing tool. Great. So that’s all you need to say. Please.

Lol, I am done explaining myself, I’ve tried to help you long enough and it’s reached a point where you are wasting my time. All you do is to misinterpret whatever I say and that your insisting that the solution offered requires the same vertex count and the materials of object B on object A shows you haven’t understood it.

Good luck.

The problem is, David, -and don’t take offence- those meshes you made are monstrous.



While perfectly suitable for solid representation, these auto-generated meshes are nigh impossible to manipulate after the fact.

You have to start with clean geometry. Even if there were a ‘one-click’ solution to alter the form to that of a target mesh… my prediction is that it would fail miserably due to the chaotic arrangement of your verticies.

Aomeoni,

All I did was take SVGs from Wikipedia, extrude them, and then Alt+C to convert them to Meshes (and then removed the doubles). Took 20 seconds. (Actually, there were complications with some of the logos, but rking fixed it all.)

This is exactly what I’m talking about: when you have Objects which are different in topology and shape, having them morph.

To be clear, this is not an urgent matter at all. I was just playing around and thought it would be cool to have them morph from one logo to another.

What kind of models would you like? Like I said, these were very basic .SVGs at the outset. Would you like the .SVG files?

I know exactly what you did. I’m familiar with the process and the result. The problem is the process you used, while super simple, produces a mesh that is impossible to work with. You will only be able to use this type or mesh for still images or perhaps motion graphics ( spinning logo, moving across the screen, that sort of thing).

It is impossible to morph this type of mesh into anything satisfactory ( whether by man or machine ) because of the way the faces are constructed. The topology is a nightmare.

Model your logos using either ‘box’ or ‘poly by poly’ methodologies. Morphing the 2 would then be trivial.
That would be how one would do it if one actually needed to do it…

Hi David,

as mentioned in a pm, here is a script I wrote to handle this a while back… never went too far with it.

To use, select and move an object into the scanner box and run the script and a “scan” will be produced that is made by projecting the faces of a cube onto the object. (the monkey is there as a test, if you run scan you get a scan of the monkey which will now be selected.) Every mesh you make using this method can be used as a shape keys in one object. IIRC all the verts that didn’t project are just positioned to the middle. I was thinking about using the relax operator on them … but never went much further with it.

It suited my needs since i morphed from object A to scan of object A with a halo material morphed with shape key to scan of object B then to object B. If your logos can be “scanned” (projection shrinkwrapped ) mostly from above then you may get a reasonable result morphing these scan shapes with textures (in theory maybe … etc)

Attachments

SCANNER.blend (1.48 MB)

Every program I’ve ever used that does morphs (both 2d and 3d), requires the same number (and order) of vertices/control points. That is what morphing is; distorting a mesh by moving its vertices from a default position to a target position. The shape key method Blender uses is simply a convenient way of defining target positions for your morphs. Blender’s shape keys are equivalent to 3DMax’s morph targets, but with the added convenience of being stored as the one object instead of as a series of different objects (which, just like in Blender, must have the same number of vertices and vertex order).
My point is, Blender definitely does morphing.

The traditional 2d morph that became a popular effect in the early nineties combines this distortion with a cross fade. In compositing software like Flame, it is achieved by defining control points which are then animated between two positions. The animation of these control points is used to transition the first image from unwarped to warped and the second from warped to unwarped. You then just fade between the two, and there is your morph. Although the gratuitous use of obvious face morphing has (thankfully) fallen out of favour, morphing as a method remains an essential part of the compositor’s toolkit.

I’ve actually done professional (for broadcast tv) 2d morphing jobs in Blender. It’s fairly simple; using 2 UV mapped, subdivided planes with shape keys, cross faded in the compositor. You might find that morphing your two logos could work better in 2d, i.e. as a post process.

For 3d morphs…
The shrinkwrap method described earlier in this thread seems to me to be a perfectly viable solution as a time saver. However, if it were me, I’d still want to at least tweak the morph targets by hand. To get around animating materials, you just cross fade in post. If anything more elaborate than a simple crossfade is required, I would do a render pass that defines a gradient wipe.

What you are asking for is not standard morphing. You’re asking for one mesh to warp into the shape of an arbitrary mesh with completely different topology. This is undesirable for many cases (and particularly when logos are involved) because the end position will only ever be an approximation of the actual end model. The only way around that is to have the ability for vertices to be arbitrarily added or deleted to a mesh, and maybe that’s possible, but I can’t imagine it looking very smooth.
Apart from all of that, why go to all the trouble of coding such a thing when it’s already possible to achieve the desired effect fairly easily?

Yeah, but now we’re just back to square one, basically: Have two similar Objects with an equal number of vertices. Richard Marklew linked to the Blender Cookie video showing this (although I still don’t know whether there’s a viable way of also morphing the Materials).

So, yeah, that’s an option. But I was envisioning something like:

-You have a model of a 1964 Ford Mustang made by one guy
-And a model of a 2000 Mustang made by another guy

Have the models morph into one another in an organic way, like can easily be done in 2D programs - such as this transition I made using the Morph add-on for Gimp:

http://i1222.photobucket.com/albums/dd499/ComicsPlus3/Batman-Covers-SMALL.gif

Maybe it is impossible. But it would be very cool to have and, if no other program offers it, that’s probably cause to get even more excited by the challenge rather than frightened by it.

Thanks, BatFINGER. I’ll try it right now (although, like I wrote to you, I’ve never used scripts before - I was just struggling to figure out Re:Lay and Re:Phrase, actually, and I’m a novice relative to most of you guys here).

I don’t know about the psychology of one programmer or another. I assume that one might find this to be pointless, but another might be invigorated by the challenge. So I can’t speak to why somebody might choose to pursue this, since I don’t even know who they might be.

But you definitely got to the crux of it when you said that you have “to have the ability for vertices to be arbitrarily added or deleted to a mesh”. That’s basically it. Right now, ShapeKeys computes just the location of vertices. Here, it would also have to calculate when and where to start adding (or subtracting) them. And then you’d have to morph the Materials, too! So I know that it’d be a major challenge.

You noted that the end product would probably look terrible. With the process that I wrote out (although I can’t code and really don’t know as much as most of you), that wouldn’t be an issue because the end morph would actually just be the other model.

(1) User selects the starting model and adds the “Morph” modifier.
(2) In the Modifier dialogue, he selects a Target Object.
(3) User selects how many steps in the transition he would like (let’s say 35 for now)
(4) Blender Makes 35 dummy Objects. Each one subsequently alters both the shape and the Material from one to another.
4b.) The Modifier could calculate the change in shape based upon the two Objects’ Bounding Box shapes.
(5) The 35 Morph Transition Objects are stored in a cache, much as Physics simulations are.

Maybe it is impossible. I don’t know. I just think it’s something that people could use, and it’s at least worth stewing over, in my opinion.

BatFINGER,

Almost every time I try to do anything with the .Blend, Windows makes that loud “DING” sound and gives me this warning window:


I’m using 32-bit Windows XP, if that might effect anything.