Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Dec 11 2:52 am)
Something like this should be 1) standard procedure and 2) simple to fix. Unlike vertices/uvs/normals, the order of polygons is inconsequential - as long as they are grouped properly and follow their 'usemtl' material assignments shouldn't matter how you jumble them. I'll have to check, but maybe UVMapper fixes this automatically. That would be slow for all geometries, but at least an immediate solution if it does.
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
Well, correct Anton, UVMapper doesn't fix this. Deep Exploration does, but in the process it reorders the vertices. It puts each related vertex set together with its facets under the group, but this is no good. The process would be simple enough: Collect all unique groups (g blah) and then move duplicate groups under the first, minding material assignments (usemtl) - which can extend beyond groups. Then do the same for material assignments for each group.
C makes it easy to shoot yourself in the
foot. C++ makes it harder, but when you do, you blow your whole leg
off.
-- Bjarne
Stroustrup
Contact Me | Kuroyume's DevelopmentZone
Right. It would have to first move everything reducing redundant goup tags and then, within each group, consolidate the mataerials.
Message edited on: 04/24/2005 15:36
-Anton, creator of Apollo Maximus
"Conviction without truth is denial; Denial in the
face of truth is concealment."
Good sleuthing, anton! Yes, you're right. UV Mapper doesn't fix this. I've noticed this a lot because when I have a figure with more than say, 10 or 15 materials, I prefer to have them in a set order, so the user can access them more easily in Surface Materials. (I do this by adding a blank body part which contains the materials in the order I want them). Anyway, as I said, I've noticed this when I'm rooting around in obj files and it annoys me, but I don't know the solution. If someone could write an app to correct this, I'd use it a lot. mac PS I'll drop a mention of this at steve cox's forum. He's stil upgrading UVM Pro, and this might be something he could include. mac
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
btw, S.T.O.M.P stands for "Spanki's Three-d .Obj Manipulation Program" (or something like that.. I just liked the name ;).
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Also. I wrote this before I wrote my "Riptide" C4D import/export plugin (wich has the same export features)... the plugin is a bit more robust than STOMP, if you have C4D (7.3 or later) you can also do this conversion using my plugin.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Oh, one more thing... I usually sort 'By Group' and that will clean things up even more (if I recall correctly, I save out the facets by group, but by material within the groups). It might leave a few extra #usemtl lines than doing it by material, but it's a trade-off of more #g lines or more #usemtl lines. Using 'By Group' puts all the group polygons (that belong to the chest, neck, head, etc groups) in the same chunk in the file.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Thanks for that, spanki! I just d/ld it and tried it out. It works fine, although I'm wondering if anything else in the obj is changed. I'm sure you'll understand what I mean. I have a horror of putting an obj through all sorts of different apps just to correct minor details. Is there anything I should be worried about? (Off to scour the readme now). mac
Anton, Try it both ways (by group and by material) - see which works best. Mac, I initially wrote the program to generate 'smoothed' normals between disconnected body parts (to keep seams from showing up in other apps). That function is still there, but the features expanded to allow me to fix other problems with .obj files produced by other apps ;). The only caveat is... I wrote this thing back in 2002 and I hadn't looked much at the code since then, so it may be slow in some areas, or may just crash on some files (?). There is a spec for the .obj file format available, but it is apparently open to a lot of interpretation (based on some of the .obj file output I've seen), so my program may choke on some files, from some programs. My Riptide plugin for C4D re-uses a lot of that code, but I did clean it up and bullet-proof it more - which is why I mentioned that it was more robust. As far as whether anything else gets changed... no, nothing of concequence (the comments change, uv-mapper regions are lost (but retained in the plugin version) but the vertex orders are not changed or anything like that). You CAN change some other things using the program, like consolodating UV vertices, flipping (mirroring) the model, etc.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Anton, sorry, I missed your other question... it's a stand-alone PC program I wrote about 3 years ago (see post and link at message #10, above).
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Who's that Man!. Spanki's the Man! That's who the man! It fixed the problem. The test fragmented Obj's Render supper fast now. Previous test render time:1 Minute New test Render Time: 5 Seconds Ah such a good day. I love it when the community works together. Sending thread link to CL.
-Anton, creator of Apollo Maximus
"Conviction without truth is denial; Denial in the
face of truth is concealment."
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Not everyone encounters this problem. But if I did, someone else might too. I tested several obj's. File size didn't matter. The one I tested that I mentioned was 4.5 megs. Render was without textured and unshadowed. Point being, see how long the hang up was?
-Anton, creator of Apollo Maximus
"Conviction without truth is denial; Denial in the
face of truth is concealment."
Thank you both for the information and the utility!
What we do in life, echoes in eternity.
E-mail
| Renderosity
Homepage | Renderosity
Store | RDNA
Store
Yup ;) You don't have to save by group first though... only if you want to try the file that way. You can save by group OR by material.. whichever works best.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
It kin of depends on the layout and makeup of the model.. here's an extract from the readme file for my plugin... "...just as background, it doesn't adversely affect anything to change the 'order' facets are listed in the .obj file (unlike vertex ordering, which can redefine things to the extent that may break things like morph files). There are a couple of reasons that you might want to sort them differently, and most of them have to do with aesthetics (.obj files are human-readable ASCII text files) or file-size, but may also be relevant for application implementers who prefer a particular ordering. When you start adding group and material information to a .obj file, anytime a facet (polygon) belongs to a different group, material or region, you have to write out a new record before the facet record. So you can imagine that if you have a humanoid model with 50+ groups and a dozen or so materials, if you just start writing out facets based on the order they may have been created in C4D, you might constantly be writing out a new group or material record every few lines as the list meanders around through the mesh. Generally, you can produce a smaller (and more human-readable) file by sorting them by Group (if there's more groups than materials) or by Material (if there's more materials than groups). Just as an aside, you can still sort by Group, Material or Region, even if you're not exporting that particular record type (though it may or may not ultimately be non-meaningful to do so ;)."
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
So... in general, in something with more groups than materials, sort by group. In something with more materials than groups, sort by material. ....having said that, Poser might 'awlways' load it faster if sorted by material (for example), even though the file may be smaller if sorted by group. I hadn't tested any of this, just trying to shed light on the differences.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Mac, I was going to suggest that, but forgot ;). A few things can affect th filesize... adding Normals will definately increase it, but also there may be some difference in the number of digits used to specify vertex values.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
NumTVerts is the number of texture vertices (UV coordinates). Note that the file can have duplicate TVerts (particularly after a uv-mapping session). There's a function in STOMP to 'Compact Texture Indices' which will get rid of any duplicates, but I'm not sure why that changed if you didn't use that feature... EXCEPT that, if there were 'unused' TVerts, my program might throw them out on exporting (it builds tables of everything it needs and then refers to those tables when exporting, so if something in the file was not actually referenced, it would likely be thrown out).
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.
Attached Link: http://www.renderosity.com/messages.ez?Form.ShowMessage=2226454#2
See linked post for details of (un)compressing.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.
I know the number of people who might care about this are few but.. When Firefly renders you get a "adding objects" status bar. I was curious why some figures render faster than others regardless of their polygon count. Well I took the slowest ones and reduced their obj to one material and they rendered super quick. So "adding objects" is a material zone calculation. But the question still existed as to why some rendered slower. Then I opened the obj file and found the difference. Some obj files have hundreds of fragmented g/usemtl strewn throught the obj file instead of groupped neatly together. g lHand usemtl SkinHands f 17250/35129 20780/18660 32811/35130 32810/35131 g lForeArm usemtl SkinBody f 32811/35130 32812/35132 32654/25808 32650/25807 g lHand usemtl SkinHands f 20780/18660 17249/35133 32812/35132 32811/35130 g lForeArm usemtl SkinBody f 32812/35132 32813/35134 32655/25805 32654/25808 g lHand usemtl SkinHands f 17249/35133 20777/18658 32813/35134 32812/35132 g lForeArm usemtl SkinBody f 32813/35134 32814/35135 32656/18657 32655/25805 g lHand usemtl SkinHands f 20777/18658 17248/25803 32814/35135 32813/35134 ----------------------------------------------------------- It should more simply say: g lHand usemtl SkinHands f 17250/35129 20780/18660 32811/35130 32810/35131 f 20780/18660 17249/35133 32812/35132 32811/35130 f 17249/35133 20777/18658 32813/35134 32812/35132 f 20777/18658 17248/25803 32814/35135 32813/35134 g lForeArm usemtl SkinBody f 32811/35130 32812/35132 32654/25808 32650/25807 f 32812/35132 32813/35134 32655/25805 32654/25808 f 32813/35134 32814/35135 32656/18657 32655/25805 This can be easily caused my remapping/regrouping, etc etc. A python utility or something for this would be awesome.
-Anton, creator of Apollo Maximus
"Conviction without truth is denial; Denial in the face of truth is concealment."
Over 100,000 Downloads....