Mon, Nov 25, 11:59 AM CST

Renderosity Forums / Poser Technical



Welcome to the Poser Technical Forum

Forum Moderators: Staff

Poser Technical F.A.Q (Last Updated: 2024 Nov 13 12:50 am)

Welcome to the Poser Technical Forum.

Where computer nerds can Pull out their slide rules and not get laughed at. Pocket protectors are not required. ;-)

This is the place you come to ask questions and share new ideas about using the internal file structure of Poser to push the program past it's normal limits.

New users are encouraged to read the FAQ sections here and on the Poser forum before asking questions.



Checkout the Renderosity MarketPlace - Your source for digital art content!



Subject: Loading ONLY parts of whole figure?


Joe@HFG ( ) posted Wed, 16 May 2007 at 2:25 PM · edited Mon, 25 November 2024 at 11:46 AM

I can figure out loading external geomentry, like the no-gen hips on Mike2 and Dork, but how would get only that no-gen hip if it was part of complete no gen figure, rather than just the no-gen part.

Let's say I just want to load M3's head and neck, but not the rest of his body because I have a custom figure that doesn't need the rest of M3.

I don't want to export the head and neck as an OBJ because I'm trying make this Poser legal, and Poser easy.

How would I do this from a CR2, and will it REALLY only load the parts I wanted, or will it actually load the whole figure into memory and only display the head and neck.

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


EnglishBob ( ) posted Wed, 16 May 2007 at 2:54 PM

From a CR2, you can only load a complete mesh; from there, you can choose which parts are visible by making groups invisible, or making material zones 100% transparent. Anything else requires alteration of the mesh. There are ways to distribute mesh alterations while remaining within copyright, however, such as Objaction Mover or RTE.


PhilC ( ) posted Wed, 16 May 2007 at 6:27 PM

In the CR2 file simply delete the "storageOffset" and "geomHandlerGeom" lines for the body parts that you do not want to load.

{

version
 {
 number 4.01
 }
figureResFile :Runtime:Geometries:PhilC:MrTrog.obj
actor BODY:1
 {

 }
actor hip:1
 {
 storageOffset 0 0 0
 geomHandlerGeom 13 hip
 }
actor abdomen:1
 {
 }
actor chest:1
 {
 }


kuroyume0161 ( ) posted Wed, 16 May 2007 at 9:40 PM · edited Wed, 16 May 2007 at 9:40 PM

Yes, as PhilC notes, Poser divies the geometry groups into body parts which are mainly independent.  By doing that, you can selectively load groups from the OBJ file (despite the indexing which is made relative).

So, to exclude a body part, omit the the lines as PhilC specified and they will neither be loaded nor consume memory.

Is there an echo in this room? ;)

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


Joe@HFG ( ) posted Wed, 16 May 2007 at 10:39 PM

But will that really save on memory, or is the whole figure loaded and then the parts not used sit there waisting memory? The point of this exercise would be to allow a clothing item that covers most of the body to add jus the parts it doesn't cover, and make a single figure as opposed to 2 complete figures trying to move in unison as nude and a conforming figure.

No more poke through, and additional memory savings on the second character rig would also be nice.

The biggest adantage is not accidently grabbing the wrong figure part when posing and maybe even increased render time since it would have to calculate the nakid body underneith.

By the way. Thanks for answering. ;-)

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


EnglishBob ( ) posted Thu, 17 May 2007 at 3:23 AM

Not certain, but I think you'll find the entire geometry is still loaded; removing the actor references is similar to setting body parts hidden. I'd be very happy to be proven wrong on that. :D However, hidden parts will not be selected, and are ignored at render time, so those advantages still stand.


PhilC ( ) posted Thu, 17 May 2007 at 6:24 AM

You want to load the body parts that show from one figure and the clothing from another, and have it arrive in Poser as a single figure?


kuroyume0161 ( ) posted Thu, 17 May 2007 at 12:05 PM · edited Thu, 17 May 2007 at 12:10 PM

Quote - Not certain, but I think you'll find the entire geometry is still loaded; removing the actor references is similar to setting body parts hidden. I'd be very happy to be proven wrong on that. :D However, hidden parts will not be selected, and are ignored at render time, so those advantages still stand.

Nope.  Poser 6, Jessi HiRes.  First CR2 has all of the storageOffset and geomHandler lines removed - morphBinaryFile and figureResFile references still in place.  Second is the stock CR2.

Memory:

  1. At start of Poser 6 = 111238KB
  2. After loading "Empty" CR2 = 114316KB
  3. Delete that figure = 109248KB
  4. After loading Stock CR2 = 190376KB

That's a difference of approx. 70MB.  Now, this could be because none of the geometry is referenced and that Poser is smart enough to just not load any of it.  I'll try with any body part reference and see if the results are about the same. :)

  1. Before loading CR2 = 123756KB
  2. After loading CR2 with Hip geometry = 137764KB

Poser only loads the geometry referenced in the body parts.

Robert

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


Joe@HFG ( ) posted Thu, 17 May 2007 at 11:33 PM

Quote - You want to load the body parts that show from one figure and the clothing from another, and have it arrive in Poser as a single figure?

Pretty close.

I've created a few customer figures. Rather than make them conforming figures, I've included a custom head, neck, hands, and arms. They are the only part of the figure that may show skin.

What I would like to do is offer versions with M3's respective parts. If I can get them as external geometry from the DAZ M3.OBJ (I know that's not what it's called but I'm too lazy to look it up.) It would mean greatly improved fuctionality. It would also simply using the figure.

I always hated the waist of a something like a conforming body suit that is basically a copy of the original figure minus the head, hands, and feet.

For figures that spend most of their time fully clothed,I missed the simplicity of the good old Casual Dork, and Cansual Possette.

If Possible, I would like to restore that kind of simple fuctionality without sacrificing compatibility, or storing more geometry than needed.

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


Joe@HFG ( ) posted Thu, 17 May 2007 at 11:35 PM

Quote - Poser only loads the geometry referenced in the body parts.

Robert

Thanks. Good news indeed.

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


Joe@HFG ( ) posted Fri, 18 May 2007 at 12:20 AM · edited Fri, 18 May 2007 at 12:23 AM

Officer Reslo >6000 Polygons

Since you guys have been nice enough to help me, here is a preview of what I'm up to.

It's an Ultra Lo Res figure. You can fit about 12 of these guys into the same polygon count as a single nakid Unimesh.

What I'm hoping is that I can pull the geometry from the Real M3, and reduced res M3 from alternate cr2's. That way the same figure works not only as a stand alone, but also for close up work.

Don't have one or both .... the respective Cr2 just loads an outfit.

Conforming clothes with out the conforming overhead. :-)

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


EnglishBob ( ) posted Fri, 18 May 2007 at 3:15 AM

Quote - EnglihBob wrote: I'd be very happy to be proven wrong on that.

Quote - kuroyume0161 wrote: Nope. [...] Poser only loads the geometry referenced in the body parts.

In that case, I'm very happy. :thumbupboth: I'd made these combined figures myself once or twice, when most of it was covered by clothing; but I hacked the geometry together using Compose. This method means these hybrids can be easily distributed at the CR2 level. Things like spacesuits, racing leathers and so on could all save memory by taking this route. Good work, Joe@HFG, and kudos for bringing it up.


Joe@HFG ( ) posted Fri, 18 May 2007 at 4:59 AM

Yup. If this technique works the way I hope, there will be a lot cr2's in my library that will get hacked. :-D

For my figures, I'm thinking that I could add my own custom neck geometry so that the points will weld between my figure and the M3 heads eliminating the whole seam problem.

mo·nop·o·ly  [muh-nop-uh-lee]
noun, plural mo·nop·o·lies.
1. exclusive control of a commodity or service in a particular market,
or a control that makes possible the manipulation of prices


PhilC ( ) posted Fri, 18 May 2007 at 6:50 AM

You can composite different OBJ files together within the CR2 file.

The objFileGeom must reference complete files, you can not call individual groups in the way that the figureResFile does. This would mean that you would need to first export out the M3 body parts and save them to a designated folder before loading this figure.

That could conceivably be executed with a read script.

{

version
 {
 number 4
 }
runPythonScript ":Runtime:Python:poserScripts:scriptToLoadM3ThenExportRequiredBodyParts.py"
figureResFile :Runtime:Geometries:P4NudeMan:blNudeMan_Gen.obj
actor BODY:2
 {

 }
actor hip:2
 {
 storageOffset 0 0 0
 geomHandlerGeom 13 hip
 }
actor abdomen:2
 {
 storageOffset 0 0 0
 geomHandlerGeom 13 abdomen
 }
actor chest:2
 {
 storageOffset 0 0 0
 geomHandlerGeom 13 chest
 }
actor neck:2
 {
 storageOffset 0 0.3487 0
 objFileGeom 0 0 :Runtime:Geometries:Your Folder:custom neck.obj
 }
actor head:2
 {
 storageOffset 0 0.3487 0
 objFileGeom 0 0 :Runtime:Geometries:Your Folder:custom head.obj
 }
actor leftEye:2
 {
 storageOffset 0 0 0
 geomHandlerGeom 13 leftEye
 }


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.