Need Help Getting Mat Zones from Poser into Cheetah

Need Help Getting Mat Zones from Poser into Cheetah

I'm using Poser Pro 11 to create images for a graphic novel, and I frequently use Cheetah3D to create or modify props and sets. But I'm having trouble getting objects into Cheetah that still have the same material zones and material settings they had in Poser.

By "material zone" I'm referring to the parts of a single object that are assigned to specific material settings. In other words, the "zones" correspond to Cheetah's Polygon Selection numbers in the object's Properties panel.

By "material settings" I'm referring to diffuse, specular, etc. settings as well as image maps, which are assembled in Cheetah as a "Material" that can be applied to an object, whether to a specific Polygon Selection number (aka "Shade Selection" number) or to the whole object.

Here's what I want to have happen when I bring a prop or set into Cheetah: I want the item's existing material settings to show up as Materials in the Material Browser, and I want these to already be applied to the appropriate "zones" (Polygon Selection numbers) for each object that makes up the item. I don't expect the material settings to contain anything more complex than a diffuse channel with image map attached, as I can recreate more complex shaders, if necessary, once the item is back in Poser.

Here's what I currently get: The item comes in with no Materials and no material zones (Polygon Selection numbers). Occasionally, by some miracle, the item will have retained its material zones, which I can view by cycling through the Polygon Selection numbers. In other words, I can see which parts of each object have been assigned to different Materials b/c those "assignments" show up as saved selections. But the Materials themselves are not available to be applied to those parts.

If an item has only a few objects (parts), each of which has a single zone, then it's not too hard to just create new materials in Cheetah, attach the appropriate image maps to them, and then assign them to the appropriate object. I've done that numerous times with items like chests of drawers, wardrobes, desks, etc. I've even gone to the trouble of recreating Polygon Selections based on what I can infer from the image maps that go with the item.

But there's got to be a better way to go about this, particularly for a larger set with so many material zones that trying to recreate them manually would be far too tedious. I would like to use Cheetah to assemble a kitchen for my story using parts from several different kitchen sets in my Poser library, but only if I can figure out how to have those parts come into Cheetah with materials properly assigned!

Here's what I've already tried:
  • Importing the original OBJ from the Geometries folder in my Runtime
  • importing an OBJ / MTL exported out of Poser (always with full path references to images, but I've tried every other combination of export settings)
  • importing an item exported out of Poser in other formats, such as 3DS, FBX, and DAE
  • turning off / on the "Use Existing Materials" checkbox under the Files section of Cheetah's Preferences
Thus far I get the same result (an item w/ no Materials or material zones) for every option except one. If I export out of Poser in 3DS format and import that into Cheetah, I at least get a variety of Materials in the Materials Browser AND each object in the item appears to have separate material zones (Polygon Selection numbers). But none of the Materials have image maps (just diffuse colors), and Poser's default Preview material got applied to nearly all the material zones (despite the fact that it wasn't applied to any zone within Poser). So that's not much of an improvement.

I'm aware that the problem might be the result of how Poser exports items, rather than how Cheetah imports them. But if anyone can shed light on how I might get props and scenes from Poser into Cheetah with Materials and material zones intact, I would be most grateful!

PS: I'm attaching a screenshot that shows how the Materials and zone assignments came into Cheetah when I imported a 3DS file I'd exported out of Poser, just in case that helps illustrate what I'm talking about!
 

Attachments

  • 3DSKitchen-imported-Cheetah.jpg
    3DSKitchen-imported-Cheetah.jpg
    377.2 KB · Views: 406
Hi.
Best thing I guess is try to make an example scene somehow available. So we can check what´s going on - probably - no guarantees.
We recently had a similar story here regarding seemingly double materials:
https://www.cheetah3d.com/forum/showpost.php?p=108711&postcount=9
were materials are not 100% identical.
It might be interesting to know if other 3d software loads your file flawlessly - or Poser might not be capable of exporting compatible content.

Cheers
Frank
 
Best thing I guess is try to make an example scene somehow available.
...
It might be interesting to know if other 3d software loads your file flawlessly - or Poser might not be capable of exporting compatible content.

I was thinking about that earlier today: how I might set up a sample scene using objects that aren't from sets I purchased. I'll give it a try next time I launch Poser.

As for other 3d software, after I submitted my post, above, I tried using Blender 2.79 to import an OBJ I'd exported out of Poser (and that had gone into Cheetah w/o any material assignments). I'm not that comfortable with Blender, but after I poked around a bit I saw that the material zones AND material settings were properly assigned.

So that suggests that the problem lies with the way Cheetah interprets OBJs from Poser, rather than with Poser's export settings.

I have occasionally loaded an OBJ into Cheetah and had Materials show up for it (though no image maps). But when I study those OBJ files (which I open in TextWrangler) and compare them to the ones that come into Cheetah w/o Materials, I can't figure out what's different about them.

I vastly prefer working in Cheetah over Blender, as Blender's interface makes me anxious, but I don't want to spend hours setting up material zones and connecting image maps for imported objects that should already have them set up. Then again, it may take me hours to figure out how to modify objects in Blender, but at least then I'd have a new skill!
 
Best thing I guess is try to make an example scene somehow available. So we can check what´s going on - probably - no guarantees.

I set up a demo scene to illustrate the problem of Cheetah not recognizing Materials or material zone settings in an OBJ exported from Poser.

To avoid running into copyright issues, I used a set that's mostly of my own creation. It's the bedroom for my main character and is still a work in progress.

Here are the steps I followed:

(1) Opened the scene in Cheetah (which is what I used to create it)
SaraBedroom-Setup-in-Cheetah.png


(2) Exported the scene as an OBJ
(FILE: SaraBedroom-CheetahOBJ.obj)

(3) Imported the OBJ into Poser, where all the Materials and zones were retained

CheetahOBJ-imported-to-Poser.png


(4) Exported OBJ out of Poser, with only this option checked: "Include existing groups in polygon groups"
(FILE: SaraBedroom-CheetahOBJ-intoPoser-exportedOBJ.obj)

Poser-Export-OBJ-settings.png


(If I don't check this option, the OBJ comes into Cheetah with the groups all merged and messed up.)

(5) Imported that OBJ into Cheetah, where none of the Materials and zones were retained

Poser-exported-OBJ-imported-to-Cheetah.png


(6) Also imported that same OBJ into Blender 2.79, which DID show the Materials and mat zones

Poser-exported-OBJ-imported-to-Blender.png


I'm attaching a zip file with the screenshots and the following contents, in case Frank or anyone else is willing to take a closer look!

  • SaraBedroom-CheetahOBJ.obj (and .mtl)
  • SaraBedroom-CheetahOBJ-intoPoser-exportedOBJ.obj (and .mtl)
  • SaraBedroom-CheetahOBJ-intoPoser-exportedOBJ-BackIntoCheetah.jas

NOTE: The MTL files have relative rather than full paths to the textures, and I didn't include the texture files, but the important thing (to me) is simply that Cheetah is able to read the material settings (i.e., that there should be an image attached), even if I have to locate the images manually.

THANK YOU!!

PS: The zipped file was too large to attach to this post, so you can download it from my blog: PROBLEM-OBJ-from-Cheetah-to-Poser-and-back.zip
 
IDK if it makes any help but if I export from DAZ studio, I have to also export the maps to a know location for the mil file to pick them up, otherwise the result is like in your imports
 

Attachments

  • export from DAZ.png
    export from DAZ.png
    184.9 KB · Views: 335
How should we check your Poser export file when the images are not included- first please make sure file (OBJ+mtl+texture are all in the same spot before you try to import into Cheetah3d.
I made materials with confirming the naming of the mtl file and saved into the folder you provided and this is what I got by dragging the OBJ onto Cheetah3d´s .app-icon:
(the procedural glass material is manually adjusted)

Cheers
Frank
 

Attachments

  • Poser2C3d.jpeg
    Poser2C3d.jpeg
    199 KB · Views: 318
How should we check your Poser export file when the images are not included- first please make sure file (OBJ+mtl+texture are all in the same spot before you try to import into Cheetah3d.

Ordinarily, when I export an OBJ from Poser, I check the option to include "full paths to textures," so that the MTL files have full rather than relative paths. That's all Blender needs to be able to import the OBJ with all Materials, material zones, and image maps intact. Given that all my textures are stored within Poser's Runtime structure, that's certainly more convenient than copying images over to a current project folder.

But I didn't check the "full path to textures" option when I exported the OBJ to share here, since my "full path" is unique to my Mac. Also, it isn't necessary that the actual image maps show up in Cheetah when I import the OBJ so much as that the Materials show up and are assigned to the correct "zones." I can always go in and locate each image manually. That's slightly tedious, but worth the effort if it means I get to use Cheetah instead of Blender!

What's NOT worth the effort is if I have to recreate every Material AND every material zone (i.e., polygon selection) before I can start working with the set in Cheetah -- especially for a set that has tons of mat zones that aren't easy to select using Group Select. (In other words, a set more complicated than the bedroom set I shared here.)

I was kinda hoping someone more knowledgeable than me could take a look at the two sets of OBJ/MTL files to see if there's something about the set exported from Poser that makes Cheetah unable to read info about Materials and mat zones. I've put both OBJs side by side in TextWrangler to see if I could figure it out, but all I can see is that there ARE differences between them. I can't tell which of those differences might matter to Cheetah.

To clarify: if I export an OBJ out of Cheetah and then import it back in, all the Materials and mat zones are retained, as expected. If I export an OBJ out of Poser and then import it back into Poser, everything is also retained. Likewise if I import that OBJ into Blender. But if I import that OBJ into Cheetah, the model comes in with no Materials and no mat zones (poly selections) -- and that's the problem I'm trying to solve.

Thanks!!

PS: I'll see if I can come up with a suitably complex freebie model that I can use for a demo, using only Diffuse colors rather than image maps since the image maps aren't the problem.
 
When you manage to get your object with materials into Blender, have you tried to export again from Blender to obj+mtl (or fbx) and import those into Cheetah?
 
I really can´t follow you.
You´re saying Blender can recreate the scene from the folder you have provided as a download?
That´s miraculous and weird at the same time, because there´s absolute no hint in the mtl file where tose image textures are located on your computer. And what I just made clear is that if the images are in the same spot Cheetah3d can display everything like expected. Sorry - but I don´t have any other news for you.

Cheers
Frank
 
I just put together another demo that will hopefully clarify the problem. This time I used a piece from the actual set that prompted me to turn to the forum in hopes of finding a solution.

The "piece" is a wall and center island from a kitchen set I bought to use in Poser. I want to use Cheetah to modify the kitchen and combine it with parts of another kitchen set in order to create a custom kitchen for my main character's family. But when I imported the kitchen into Cheetah, none of its Materials or material zones showed up.

Below are the steps, with screenshots, that demonstrate the problem using just one "piece" of the kitchen set.

(1) Here's the "piece," as loaded in Poser. As you can see from the Materials drop-down menu in Poser, this one piece has over twenty material zones.

1-DLCH-KitchenWall-in-Poser.png


(2) Here are the options I chose when I exported the piece out of Poser as an OBJ:

2-DLCH-KitchenWall-Poser-export-settings.png


The end result is a folder that contains the OBJ and MTL files as well as copies of all the relevant image files. It's the OBJ from this folder that I used for the remaining steps.

(3) When I import the OBJ into Blender, the object's material zones and associated Materials are intact:

3-DLCH-KitchenWall-imported-to-Blender.png


(4) Likewise, when I import the OBJ into Wings3D, the object's material zones and associated Materials are intact:

4-DLCH-KitchenWall-imported-to-Wings3D.png


(5) But when I import the OBJ into Cheetah3D, the object comes in with NO material zones and NO associated Materials.

5-DLCH-KitchenWall-imported-to-Cheetah.png


In other words, it's not just the actual Materials (i.e., collections of material settings) that are missing. What's also missing are the material zones, which are the polygon selections that should be associated with the numbers under Polygon Selections on the object's Properties panel.

So that leaves me wondering: what is it that Blender and Wings can read in an OBJ exported from Poser that Cheetah can't read? And is there a workaround so that Poser users can use Cheetah to modify props (and not solely to create them)?

If you want to try the experiment yourself, download this zip file, which contains a folder with the OBJ and MTL files as well as relevant images: http://perpetualrevision.net/shareables/DLCH-KitchenWall-PoserExportOBJ.zip

If you import this OBJ into Cheetah and you see all the Materials show up in the Material Browser and they're properly applied to the object -- in other words, if your result is different from what I show in the screenshot above -- then there must be something wrong with my version of Cheetah!

Here are my specs:
Cheetah 7.0.1 (purchased upgrade)
Poser Pro 11.0.8
Blender 2.79
2017 MacBook Pro w/ all upgrades
macOS 10.13.1 High Sierra​

Thanks for the help!!
 
You´re saying Blender can recreate the scene from the folder you have provided as a download?
That´s miraculous and weird at the same time, because there´s absolute no hint in the mtl file where tose image textures are located on your computer.

I appreciate your efforts, Frank, but I think we're having a misunderstanding over the meaning of "Materials" versus images.

A Material is a collection of settings that determine the appearance of the object (or portion of an object) it's assigned to. Those settings include color and intensity for the diffuse and specular channels, as well as transparency, reflections, and so on. Sometimes those channels have image maps (i.e., textures) attached to them, and sometimes they don't. It just depends on how the individual Material is set up.

When I imported the demo bedroom OBJ into Blender, what also came with it were the Materials associated with the object -- meaning all the collections of settings that were assigned to different parts of the object. So if I selected, say, the floor, I could view the Material associated with it, with its specific diffuse, specular, and other channels.

I could also see that the diffuse channel was supposed to have an image map attached to it, but b/c I'd exported the OBJ/MTL without including full-path references to the images, Blender did not load the actual images. And that's fine, since the issue I'm trying to resolve has to do with how Cheetah handles Materials -- regardless of whether or not the Materials contain images.

I suspect there's also some confusion over the meaning of "material zone," given that the 3D community at large can't seem to settle on the kind of consistent terminology that would allow us to be sure we're all talking about the same things. "Material zone" is a phrase I picked up from the Poser world and continue to use b/c it seems more precise than the other options.

A "material zone" is a collection of polygons that have been assigned a specific Material. Some objects have only one mat zone, meaning that all of the object's polygons are shaded by only one Material. But other objects might have multiple mat zones, with each zone being assigned a different Material. Cheetah provides a way to set up separate mat zones for a model you create in Cheetah, but apparently it can't "read" the mat zones that already existed in an object that's been exported out of Poser.

If there's a way to help Cheetah "read" material zones (and import at least the most basic Materials for each zone) -- maybe by making a few changes to the OBJ file in a text editor -- then I'll do that. But if there is no way, then I'll have to bite the bullet and start learning to use Blender in order to modify Poser props.
 
It´s so nice of you explaining me the world of 3d. :p
But again you lost me here.
I´ve proven that all assignments are there and visible if just the materials listed in the mtl-file are in the same spot as the OBJ when you recall my screenshot from yesterday.

Cheers
Frank
 
It´s so nice of you explaining me the world of 3d. :p
But again you lost me here.
I´ve proven that all assignments are there and visible if just the materials listed in the mtl-file are in the same spot as the OBJ when you recall my screenshot from yesterday.

Did you try downloading and importing the second set of demo files I posted, with a kitchen wall? It has the OBJ and MTL as well as all the relevant images in the same folder, as you requested.

When I import the OBJ into Blender and Wings3D, the object comes in with Materials and material zones (or "assignments") in place. But when I import the OBJ into Cheetah, it comes in with no Materials or mat zones. If it imports into Cheetah with all mats intact for you, then there must be something wrong with my version of Cheetah and I'd like help resolving that.

I didn't mean for my comments to sound like I was "explaining the world of 3D" to you. I've learned a lot about Cheetah from you by reading these forums for several years, and I appreciate your knowledge. Instead, I was trying to explain my use of terminology like Materials and material zones, since there's so little consistency in the world of 3D about how to describe these concepts.

Even now, despite the fact that I've been a professional writer/writing instructor all my life, I'm having trouble getting you to understand the problem I'm having with Cheetah because I can't seem to find the right terminology. (I also made a mistake by sharing the bedroom set as an example, for several reasons, so I do hope you'll take a look at the kitchen wall.)

The biggest challenge I've faced in my journey towards learning to make 3D art has been the fact that so much information is conveyed in vague, imprecise language with inconsistent terminology. I'm not referring to Cheetah forums (or manual) here but to the realm of info on Poser, DAZ Studio, and Blender, as well as on general 3D modeling principles. It took me ages to work out the difference between a "material," a "texture," and a "material zone," after being confused by dozens of different information sources. So now I take pains to clarify the differences (as I mean them) whenever the topic comes up!
 
Good news: Cheetah3d7.2 will load those messy OBJs because Martin added some clean-up routines to its file loader. ;-)

Cheers
Frank
 

Attachments

  • Cheetah3DScreenSnapz001.jpg
    Cheetah3DScreenSnapz001.jpg
    207.3 KB · Views: 281
Last edited:
Good news: Cheetah3d7.2 will load those messy OBJs because Martin added some clean-up routines to its file loader.

That's great news! Thanks for sharing, and for trying out that OBJ I posted. I will go get the update now. [edited to add: or rather, I look forward to getting it when it's available!]

I've put OBJ files for the same object side by side in TextWrangler, to try and figure out what allows Cheetah to read mat zones in some but not others. And I could see that there were differences, at least in the order in which info is presented. But I don't know enough about what a "clean" OBJ file should look like to be able to recognize what's "messy"!

If you or anyone else happens to know of a resource I could consult to learn more about the proper structure for OBJ files, I'd appreciate it. And maybe I can figure out how to make Poser produce "cleaner" OBJs!
 
Last edited:
learn more about the proper structure for OBJ files, I'd appreciate it. And maybe I can figure out how to make Poser produce "cleaner" OBJs!

Short of python programming, you can't.

But you could have used daz studio to export or - as misoversaturated mentionned before - exported from blender or wings (or whatever).

I didn't look at your files, but poser content is often messy in itself, like overlapping polys and stuff like that, but the layered material zones, too. Such things can cause problems, too.

he fact that so much information is conveyed in vague, imprecise language with inconsistent terminology.

Where isn't that so? That's the way people talk (and it's almost impossible to do it otherwise without getting quartered by those they speak with as, to make sure, you would have to explain how exactly you use that certain word. If you ever read Kant you understand probably what I mean. With some of his definitions he needs 10 sentences were one would be enough (and such people are usually capable of other cruelties).

With CGI there is plain no standard. What sounds very vague to you is for someone, who usually uses other apps, quiet very clear. I for example use often the term 'freeze' for 'making editable'. Seems perfectly understandable for every ex-lightwave user. In my opinion freeze is more precise and less vague than making editable, it conveys a picture. People like Frank usually have no problem understanding all those different terms.

By the way, it's the same problem everywhere, even in informatics or psychology. Problem is, different terms sometimes have slightly different meanings, even if nobody is really able to tell the difference (like a psychopath and a sociopath).
 
But you could have used daz studio to export or - as misoversaturated mentionned before - exported from blender or wings (or whatever).

I'm not sure I follow you. If I open a prop that was made for Poser IN Poser and find that I'd like to make significant modifications to it, perhaps by deleting or moving parts and bringing in components from another prop, then what I want to do is export the prop from Poser, bring it into Cheetah to do the mods, and then import the modified version back into Poser -- without losing any material zone "assignments" in the process.

Why would I run the props through DAZ Studio, Blender, or Wings3D as part of this process? I have a strong dislike of DAZ Studio so avoid it except to export DAZ-only prop freebies in OBJ format. If I was going to bring the prop into Blender or Wings3D, then why not just modify them there instead of using Cheetah?

The answer is that I LOVE using Cheetah, while I can just barely tolerate using Blender or Wings. I love many things about using Cheetah as a modeler, but one of the most notable is that the interface is very easy to get around using only the trackpad on my MacBook Pro. Most other 3D apps seem to assume you'll be using a 3-button mouse, which isn't possible for me for ergonomic reasons.

With CGI there is plain no standard. What sounds very vague to you is for someone, who usually uses other apps, quiet very clear.

In any area of endeavor, the only way to build up a shared body of knowledge is for the community to agree on some basic definitions and to continually reinforce their use. Like most people, I've been involved in a variety of areas of endeavor in my life (horsemanship, academics, writing, etc.), and the communities around some are much better at agreeing on and using a common terminology than others.

The world of 3D is large and incredibly diverse, but there ARE some core concepts that would be impossible to talk about if we didn't agree on some kind of common terminology. For example, no matter what you do in 3D, you know the difference between point, spot, and distant lights. Some apps might have slightly different names (like "infinite" for distant lights), but the meaning is clear enough not to cause too much confusion.

But the same is not true of concepts related to materials, particularly when various sources of info use terms interchangeably in a way that obscures their different meanings. Terms like materials, textures, surfaces, shaders, material zones, and so on. I can't tell you how many times I've come across tutorials, read me files, forum posts, and articles that use these terms in very different ways, which means I first have to puzzle out what, precisely, they're referring to before I can benefit from the info. And half the time, I'm not sure the writers even know what, precisely, they're referring to!

I for example use often the term 'freeze' for 'making editable'. Seems perfectly understandable for every ex-lightwave user. In my opinion freeze is more precise and less vague than making editable, it conveys a picture.

That's an interesting example because that use of "freeze" is actually counter-intuitive to what the word means in English. It means "to lock in place," so I'd expect a "frozen" object to no longer be available for editing or manipulation of any kind -- at least until I "un-freeze" it!

What I've never understood regarding "make editable" is why I need to invoke it at all, since the whole reason for having it in my workspace is so that I can edit it!
 
Why would I run the props through DAZ Studio, Blender, or Wings3D as part of this process?

As workaround till you can download 7.2?

In this case Martin has reacted really fast, but if you need things done a workaround for a few days is sometimes helpful and important. And maybe daz produces cleaner objs, who knows.

In any area of endeavor, the only way to build up a shared body of knowledge is for the community to agree on some basic definitions and to continually reinforce their use. Like most people, I've been involved in a variety of areas of endeavor in my life (horsemanship, academics, writing, etc.), and the communities around some are much better at agreeing on and using a common terminology than others.

Well, the communities you mentioned are a small circle, your own 'pool'. In other pools they use other words for the same things. Here, you're in another pool, the cheetah one, were the terminology mostly is consistent as cheetah is the reference.

And more often than not, common standards means 'the lowest common denominator'.

You musn't forget that most people in this field aren't native English speakers. But it's not always easy to be precise in a foreign language.

And, to be honest, I think it's quiet useless talking about how imprecise people talk. Some of them just can't do better because they don't really have a way with words. Doesn't make 'em any worse.


I know what freeze means. English may have some 200'000 terms more than german, all in all something around 500'000, so they counted a long time ago, but half of them have germanic roots. Freeze is one of them. Isn't counterintuitive at all, because it does fix all those things.

make editable

I'm not sure where this comes from (could be C4d). I agree, there could be a way better term, but we all know what's the concept behind the words. So it's not important. A long time ago, in a galaxy far away, I learned that a difference which doesn't make a difference isn't a difference.


And I have some issues with Cheetah, but to be fair, every app out there has it's problems. Quiet a lot are very unstable (I had once a nurbs modeler I really liked. Only it wasn't very stable and the saves sometimes couldn't be read anymore. That's not funny if you find this out at the end of a long work day).

So sometimes it's not possible to save a problem with out-of-the-box-tools, in any of them. We can bitch about it, should tell the developers so they can change it, but for the task at hand we have to find a workaround. That involves sometimes other programs, too.
 
When working with primitive shapes, spheres, cubes, torus, etc. that shape can be altered by changing it's input parameters, length, width, and sections of polygon faces, but that's it. You really can't move vertices, extrude faces, or in any other way "edit" the mesh. The primitive is parametric, it's appearance calculated mathematically based on the input parameters.

Once you "collapse the mesh", which is another way of saying make editable, you can reshape it to your whims. Collapsing the mesh might be better used when stacking creators and modifiers, as double clicking on the parent item collapses the stack and gives you only the polygon mesh of the final result. Which you can then go one to edit further using the polygon tools.

Hope that helps, and apologies if you already knew that stuff.
 
Back
Top