Tue, Mar 17, 7:51 AM CDT

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Moderators: RedPhantom Forum Coordinators: Anim8dtoon

Poser - OFFICIAL F.A.Q (Last Updated: 2026 Mar 16 4:33 pm)



Subject: Instantiation Via (Poser) Geometry Swapping ?


3dcheapskate ( ) posted Wed, 11 March 2020 at 11:34 AM · edited Tue, 17 March 2026 at 12:21 AM

Does anybody remember Anton Kiesel's Changing Fantasy suits from way back, Victoria 1/2 time ? Sixus1's Bunch'O'Props for Behemoth ? The bit in B.L Render's "Secret's Of Figure Creation With Poser 5" (pp 109-113 in my copy) about how to implement geometry swapping ?

I'd been toying with the idea of using geometry-swapping for bookshelf contents for a year or so without really getting anywhere,and I'd got bored with that and put it aside.

I've recently been playing with abunch-of-things-thrown-in-the-air prop. I was specifically thinking playing cards, casino chips, banknotes, and coins, but somebody asked if it was possible to swap the things for "little asteroids". So I dug out my geometry-swapping bookshelf stuff and had a play...

But since I can't upload the zip file of my test CR2 to this forum I'll have to point you to my Instantiation Via (Poser) Geometry Swapping ? thread over at Hivewire.


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




EldritchCellar ( ) posted Wed, 11 March 2020 at 12:31 PM · edited Wed, 11 March 2020 at 12:33 PM

I've used Geometry Switching before. Very handy, in particular the fact that you can switch on replacement body parts, say higher res areas, without destroying pre-existing PBMs in the rest of the figure. BL Render's book is invaluable still, the writer goes by the forum name Bloodsong if I'm not mistaken.



W10 Pro, HP Envy X360 Laptop, Intel Core i7-10510U, NVIDIA GeForce MX250, Intel UHD, 16 GB DDR4-2400 SDRAM, 1 TB PCIe NVMe M.2 SSD

Mudbox 2022, Adobe PS CC, Poser Pro 11.3, Blender 2.9, Wings3D 2.2.5


My Freestuff and Gallery at ShareCG




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:01 AM

I've never used geometry switching before - I don't do figures ! 😁 However, when I played with Behemoth's Bunch'O'Props for the first time (many years back) I remember wondering "why isn't everybody using this ? It's fantastic !"

Anyway. I've posted more info over on the Hivewire thread. I'll just post the pictures here


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:01 AM

1 load.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:02 AM

2 geom1.jpg

3 geom2.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:02 AM

4 drag.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:03 AM

5 full deck.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:03 AM

6 twist+rotate.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:03 AM

7 now change geom var again.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:04 AM

When the "Geometry Variant" dial on the Body is set to zero the whole deck of cards is displayed.

Nothing clever or instantiation-ish going on.

The geometry that's being used is 54PlayingCardsCoLocated.obj ,where each card is a separate mesh with its own vertices, faces, and UV mapping - each card being mapped to a different area of the English54,6x9,1024x1024.jpg texture map shown below

English54,6x9,1024x1024.jpg


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:05 AM

However, when you set the "Geometry Variant" dial on the Body to 1 the geometry for each and every one of the 54 bones is picked up from the GeomSwapAlt01.obj file.

Likewise when you set the "Geometry Variant" dial on the Body to 2 the geometry for each and every one of the 54 bones is picked up from the GeomSwapAlt02.obj file.

The CR2 contains a reference to both of these files as alternate geometry for each and every bone

Each of those files contains a single object - GeomSwapAlt01.obj is the Suzanne Blender monkey head (the same as GeomSwapAlt-MONKEY.obj), and GeomSwapAlt02.obj is a very simple tuft of grass (the same as GeomSwapAlt-SIMPLEGRASS.obj).

Try overwriting the existing GeomSwapAlt01.obj file with a copy of the GeomSwapAlt-TORUS.obj file.

Try overwriting the existing GeomSwapAlt01.obj file with a copy of any OBJ file that you have lying around.

Now I'm not sure how Poser handles this internally, but I'm guessing that, when the "Geometry Variant" dial on the Body is set to 1, Poser has just a single copy of the data from the GeomSwapAlt01.obj file in memory, and has a reference to that data from each of the 54 bones.

Which is my understanding of what 'instantiation' is in 3D terms.


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 5:07 AM

So has Poser had instantiation hidden up it's sleeve since at least as early as Poser 5 ?


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Thu, 12 March 2020 at 11:08 AM

(N.B.Although the CR2 loads without any problem in DAZ Studio (4.11) it's more-or-less unuseable - LINK


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




bwldrd ( ) posted Thu, 12 March 2020 at 6:05 PM

Glad you are having fun with this :) Have used the geometry swapping myself a few times to remove or add tails, fingernails, etc to a few of my figures such as Melony & Mica, Sixus's Kitsune, etc. Comes in pretty handy.

--------------------------------------------------------------------------------

Consider me insane if you wish, but is your reality any better?


3dcheapskate ( ) posted Fri, 13 March 2020 at 12:30 AM

What I really enjoy doing is starting at the same point as everybody else but going off in a completely different direction - that's why I had to try using geometry swapping for a random selection of separate, disparate items. 😆

On a more general point, and directed to anybody reading this:Notice the question mark at the end of the thread title - "Instantiation Via (Poser) Geometry Swapping ?"

I'm hoping that somebody who knows about the way Poser works, and who understands the details of what 'instancing' is, can actually tell me whether what I'm doing here is, in any way, akin to this 'instancing'.


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




bwldrd ( ) posted Fri, 13 March 2020 at 1:32 AM

Well it depends on what you are actually wanting..I Looked up the definition Instantiation and was left more than a little confused .. Lol.. Can't say I've been the brightest in the batch after undergoing chemo a couple years ago.... But if you are thinking of geometry instancing (as accodring to Wiki or OpenGL Instancing. Then no you aren't as poser doesn't yet support that to the best of my knowledge .. It has the duplication, but it still renders each geometry in the scene as seperate geometry..Instancing as described on the mentioned pages is something a few of have been hoping for. And yes on the swapping bit, I believe it keeps alternates stored in memory (or used to) as when playing with it in earlier versions, I would get an out of memory error after a bit if I kept switching things out back and forth.

--------------------------------------------------------------------------------

Consider me insane if you wish, but is your reality any better?


FVerbaas ( ) posted Fri, 13 March 2020 at 2:49 AM · edited Fri, 13 March 2020 at 2:52 AM
Forum Coordinator

Geometry swapping has become a lot less useful with the advent of weight mapping. The feature you show works for loose objects that do not bend.

In traditional rigging the 'weight' of a vertex (I.e how much it partakes in the bending of a joint) is determined by the group and the xyz position relative to the angle limits and the falloff zones. You can therefore replace one object with another because the weights of the vertices of the swapped geometry can be calculated from their xyz positions.

With weight mapping weights are defined per vertex. You would have to redefine the vertex weights upon the geometry swap.

And of course Unimesh will not work either.

If the alterrnative geometry is to be defined in the figure anyway, you can of course just define it with weight maps, morphs and all, and make alternatives transparent or visible (when body part has both a parent and a child in the hierarchy) or just hide/unhide if it has only either a parent or a single child. However it is more convenient to use conformation.


3dcheapskate ( ) posted Fri, 13 March 2020 at 3:48 AM · edited Fri, 13 March 2020 at 3:50 AM

Thanks bwldrd - that OpenGL link seems to explain it nicely. I just skimmed through the article, but that's definitely the 'instancing' I was thinking of. I didn't realize that it was the bottleneck of multiple 'render/draw/whatever' calls that instancing tackled.

So that's a clear answer to the thread title "Instantiation Via (Poser) Geometry Swapping ?"

No, this definitely isn't instancing. No worries. I'm still having fun with my Non-instancing Poser geometry-swapping of loose objects that don't bend ! ! 😀


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Fri, 13 March 2020 at 3:54 AM

Thanks FVerbaas, I wasn't aware of any of that.

So it's just as well that I only want to use it for my loose objects that don't bend.

P.S. I've never used any weight-mapped figures - I'm more than happy with my pre-WM figures.


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




an0malaus ( ) posted Fri, 13 March 2020 at 2:07 PM

One of the problems that the unique channels and geometry swapping was originally the only option for was being able to hide props or limbs by dialling in a null geometry variant. Once Poser supported keyframable visibility for actors, that use was less viable, and as FVerbaas helpfully mentioned, geometry swapping is a no-no with Unimesh figures and hence subdivision is out (though only because it's tied to unimesh figures - I'm sure anything could be subdivided, but Poser currently prevents that)



My ShareCG Stuff

Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.


ironsoul ( ) posted Sat, 14 March 2020 at 12:22 AM · edited Sat, 14 March 2020 at 12:28 AM

A more flexible approach would be to use the Poser API to duplicate the master object and apply to each duplicate the transform of one of the place holder props. This would also have the advantage of being able to take pose and morph data from random frames if the master object is animated to create a more varied scene (eg marching band horn section from a single figure). The problem with this approach is managing the fake instances can become a bit of a chore. What I think is an advantage of the method above is its ability to manage the fake instances (the figure parts) as one.



ironsoul ( ) posted Sat, 14 March 2020 at 9:50 AM

Example of Poser based API faked instancing using above.

image.png



3dcheapskate ( ) posted Sun, 15 March 2020 at 4:54 AM · edited Sun, 15 March 2020 at 4:55 AM

an0malaus posted at 4:45PM Sun, 15 March 2020 - #4383456

One of the problems that the unique channels and geometry swapping was originally the only option for was being able to hide props or limbs by dialling in a null geometry variant. Once Poser supported keyframable visibility for actors, that use was less viable, and as FVerbaas helpfully mentioned, geometry swapping is a no-no with Unimesh figures and hence subdivision is out (though only because it's tied to unimesh figures - I'm sure anything could be subdivided, but Poser currently prevents that)

I have to confess here - what's unimesh ? I always thought it was something to do with DAZ gen(eration) 4...

ironsoul posted at 4:47PM Sun, 15 March 2020 - #4383511

A more flexible approach would be to use the Poser API to duplicate the master object and apply to each duplicate the transform of one of the place holder props. This would also have the advantage of being able to take pose and morph data from random frames if the master object is animated to create a more varied scene (eg marching band horn section from a single figure). The problem with this approach is managing the fake instances can become a bit of a chore. What I think is an advantage of the method above is its ability to manage the fake instances (the figure parts) as one.

I assume you're talking python here ? Regarding duplicating a master object, Ken1171 posted an interesting comment here (on the Hivewire version of this thread) regarding instancing and the use of Object > Duplicate to create a copy of a figure.


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




3dcheapskate ( ) posted Sun, 15 March 2020 at 4:57 AM · edited Sun, 15 March 2020 at 4:57 AM

ironsoul posted at 4:55PM Sun, 15 March 2020 - #4383533

Example of Poser based API faked instancing using above.

image.png

Re my "...I assume you're talking python here ?..."

...I assume you already have a script !


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




ironsoul ( ) posted Sun, 15 March 2020 at 1:37 PM

@3dcheapskate I've sent you a PM. If you didn't get it please let me know.



3dcheapskate ( ) posted Wed, 18 March 2020 at 6:27 AM

@ironsoul - thanks, got the message. May be a while before I try anything


The 3Dcheapskate (also available in DAZ and HiveWire3D flavours) occasionally posts sensible stuff. Usually by accident.
And it usually uses Poser 11, with units set to inches. Except when it's using Poser 6 or PP2014, or when its units are set to PNU.




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.