Sat, Jan 11, 4:06 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Jan 11 12:18 am)



Subject: How do I create a morph with correct vertice order?


HellBorn ( ) posted Wed, 23 May 2007 at 7:56 AM · edited Sat, 11 January 2025 at 3:57 AM

I have been away from Poser for a while but as I need to train my programming skills a bit I was thinking of taking on an old idea I had.

I want to make a program that takes a poserfile and export morphs for selected groups.

I could work around all problems by importing the model into Silo and manually export each group in order to use them as morphs. Timeconsuming stuff if there are many groups to export. 

But in order to do this program I really have to understand how to create the correct vertice order in the morph file. That is, if I am to do a morph for the hip group then by checking the included faces I know witch vertices that is supposed to be in the file but how do i know in witch order they should be?

Does anyone know how create the correct order?


PhilC ( ) posted Wed, 23 May 2007 at 8:09 AM

If you export the body parts out of Poser as OBJ files wont they already be correctly ordered?


bantha ( ) posted Wed, 23 May 2007 at 8:37 AM

Your problem may  be related to Silo. As far as I know Silo 1.4 does change the vertice order when you import OBJ-Files (since i have read here that it does, I never tried). Silo 2.0 in the actual beta leave them intact (that part I know for sure).

Does this information solve your problem?


A ship in port is safe; but that is not what ships are built for.
Sail out to sea and do new things.
-"Amazing Grace" Hopper

Avatar image of me done by Chidori


jdcooke ( ) posted Wed, 23 May 2007 at 10:18 AM

Hey mon, Yes, Silo v1.4 does not do the OBJ thing in a way that Poser likes. The lastest "Silo 2 Beta" handles OBJ a bit better. I find, however, that importing a Poser OBJ into "Silo 2 beta" isn't always clean - export seems to work. The most success I've had is with a freeware program called Wings3D - found here: http://www.wings3d.com/. Also, Wings3D produces a fairly clean and straight forward looking OBJ text file compared to Silo. take care jdc


EnglishBob ( ) posted Wed, 23 May 2007 at 10:23 AM

Wow. The HellBorn, author of the all time most downloaded Renderosity freestuff? Welcome back. :) Compose already does what you want - as does the Poser export process as described by PhilC, but I find that more laborious. However to answer your question, as far as I know you need to make sure that the vertices in your export are in the same order as they were in the original geometry file. If the group in question is fragmented in the vertex list, you can (indeed, should) omit the vertices which belong to groups other than the one you're exporting. Hope that helps.


HellBorn ( ) posted Wed, 23 May 2007 at 12:39 PM · edited Wed, 23 May 2007 at 12:39 PM

Nice to see that people still remember my old models ;)

If I just got $5 for for each download of those file and I could had quit my jobb and done Poser stuff full time ;)

Well.
Applications won't help me as I want to do this from an application of my own.

So if I get you right.

Say a model has 10 verices witch is refered to from 0 to 9 in the face data.
Say that the vertices from 3 to 6 belongs to group A and the rest to group B.
Now if I want to export the verticese for group B they should be
0-2 followed by 7-9(jumping over the vertices belonging to groupA).

As far as I remeber thats also the only data that is needed for a morph.

Is this correct?

I suppose that this also means that if I for some reason want to write the face data aswell then I have to change the references in the face data as vertice 7 now is vertice 4.
 


ockham ( ) posted Wed, 23 May 2007 at 2:50 PM

Part of the problem is that the word "group" has two different meanings
inside Poser and many more meanings outside of Poser.

In the OBJ file, verts are numbered straight through from start
to finish, and the numbering crosses Group boundaries without
any pauses.  But in Poser, some of those Groups end up being
body parts and some may only become material zones.  For the
sake of morphs, Poser numbers verts by body part, so the 
numbering in the original OBJ won't match at all. 

In your example, the Head has 10 verts and you want to morph only the
verts numbered 012789.   It doesn't matter if the head contains Groups
that are actually material zones.  You'd still export the entire head as 
one OBJ, then use the modelling app to move those verts around, then 
save the result as an OBJ.  You'd then load the full figure in Poser,
select the Head, and add this new OBJ as a morph.  All the verts
of the Head must be listed in this new OBJ, whether you changed
them or not.  (In other words, this OBJ is a complete Head with a
different shape; it's not just the changed points.)

The vert numbers in this morph-target OBJ will then be the same as the
original Head ... provided you haven't done anything like smoothing 
that adds or subtracts verts.   (You probably know about that limitation.)  

Groups for material purposes shouldn't affect anything, because they 
are not separate body parts.   If the Lip was listed by Poser as a separate 
body part, then you'd have to exclude it from the export to begin with.

My python page
My ShareCG freebies


HellBorn ( ) posted Wed, 23 May 2007 at 4:03 PM

Yeah but if I want morph the area around the lips (and now I consider them to be different groups/bodyparts) then that would be a problem if I only could export the head or the lips.

As it is I could actually export the head and the lips.
Get them into Silo2 and edit the model.
Export the lips and then export the head.
Import respective as a morph.

This way of doing it even seems to work for a full model.

So if Silo can get this right so should I.
The needed information seems to be in the file.
By witch faces that belongs to a certain bodypart i can find witch vertices that has to be included. Question is how i find the  correct order.
Say some faces in a bodypart references the following 7 vertices.
7 2 1
1 3 4
9 6 3

Should the vertices be ordered  in the order they are used
7
2
1
3
4
9
6

Or the following way, just skipping those that not is used by the bodypart.
1
2
3
4
6
7
9
Or maybe in a compleatly different way?

What I more or less want to do is to export the full model out of Silo and the have my program to automatically write out all the morphs so I dont have to do it one by one.

Also Im not sure how the materialzones gets into this as long as we talk about exporting the geometry from poser as a morph target and importing the modified data.

 


nruddock ( ) posted Wed, 23 May 2007 at 4:35 PM · edited Wed, 23 May 2007 at 4:35 PM

If your making morphs, materials are only useful for defining sub-selections within a body part.

Whether you have one or many body part groups doesn't matter, always store, use, and (re)write the vertices in the order they appear in the "v" lines.


EnglishBob ( ) posted Wed, 23 May 2007 at 5:05 PM

Quote - Say a model has 10 verices witch is refered to from 0 to 9 in the face data.
Say that the vertices from 3 to 6 belongs to group A and the rest to group B.
Now if I want to export the verticese for group B they should be
0-2 followed by 7-9(jumping over the vertices belonging to groupA).

As far as I remeber thats also the only data that is needed for a morph.

Is this correct?

Yes. 👍 Actually vertices are numbered starting from 1, but you have the general idea right. You can use an OBJ file containing only vertices as a morph target, but most modellers will want facet definitions before you'll be able to see the mesh and edit it.


bopperthijs ( ) posted Wed, 23 May 2007 at 5:23 PM

I encounter the same problems I had in the Rhino3D-newsgroup. For some reason there are several explanations for using the "object"or "group" settings. In the obj. file. Some programs like Carrara or Poser use the "g" option for object representation, other use the "o" adjective. In Rhino3d 4.0 they  had an approved obj-im- and exporter that lets you choose if you wanted the "o" or the "g" adjective for objects. Unfortunately the importer still mess up the vertexorder, so you still can't use  it for morph editing. For the Rhino-addicts among us: there is still a freeware utility called OBJ23DM, with converts obj-files to Rhino's 3DM-files in a correct vertexorder, to use for morph editing.

Just my two-cents,

regards,

Bopper.

-How can you improve things when you don't make mistakes?


HellBorn ( ) posted Thu, 24 May 2007 at 6:41 AM

Quote - > Quote - Say a model has 10 verices witch is refered to from 0 to 9 in the face data.

Say that the vertices from 3 to 6 belongs to group A and the rest to group B.
Now if I want to export the verticese for group B they should be
0-2 followed by 7-9(jumping over the vertices belonging to groupA).

As far as I remeber thats also the only data that is needed for a morph.

Is this correct?

Yes. 👍 Actually vertices are numbered starting from 1, but you have the general idea right. You can use an OBJ file containing only vertices as a morph target, but most modellers will want facet definitions before you'll be able to see the mesh and edit it.

 

The morph files my program will create is just for import as morphs into poser.
The actuall geometry (the faces) will be keept in a file with the fully morphed model (welded and with no groups).

Any suggestions on how to order the verices that belongs to a bodypart.
 Should it be in the order they appear in the face description (in witch case also the order of the faces would be important ) or should they be ordered by sorting the vertice references in the faces.

Or are they supposed to be sorted some other way?

Unless someone can help I will have to do it  the hard way by building a 10-20 vertice model with a freaky vertice  order and then analyse the generated poser files,exported Morphtargets etc. in order to find out how poser orders the bodypart vertice data.


EnglishBob ( ) posted Thu, 24 May 2007 at 8:20 AM

Sorry if we weren't clear. I thought you'd "got" it. Here's a really simple example - a figure with two groups, one triangle in each. I've omitted UV coordinates and normals for clarity. v -0.05 0.00 0.00 v 0.05 0.00 0.00 v 0.05 0.10 0.00 v -0.05 0.10 0.00 g group1 f 3 4 1 g group2 f 2 3 1 So, an export of group1 would be the first, third and fourth vertices, in that order - not the order in which they're specified in the facet definition, but the order in which they appear in the v section. So, group1 exported would look like this: v -0.05 0.00 0.00 v 0.05 0.10 0.00 v -0.05 0.10 0.00 g group1 f 2 3 1 Vertex 2 from the orignal file is not required, so it's omitted from the v list. Vertices 3 and 4 are now renumbered as 2 and 3 respectively, and the facet definition changed accordingly.


HellBorn ( ) posted Thu, 24 May 2007 at 1:14 PM

Sorry, missed the Yes and the meaning of the happy face.
Thank's Bob :)


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.