Forum: Poser - OFFICIAL


Subject: Poser Pro

thefixer opened this issue on Aug 07, 2007 · 430 posts


Penguinisto posted Thu, 23 August 2007 at 9:41 AM

Quote - It's not a common practice in Poser as far as I know, but in principle it's pretty easy if you wanted to take the time to set something like that up - you could just parent a primitive (e.g. cylinder) to a given body part that you want to be a cloth collider, x/y/z scale the primitive so it roughly fits that body part, and let the cloth collide against the primitives instead of the body.  Set the primitives to have a transparent material or some such to keep them from being visible in the render.  As the figure animates, the primitives will follow their parent body part.  It never occurred to me to try this approach when I used Poser heavily, and now that I no longer do, I don't have a lot of interest in trying it.

I've actually experimented with this programmatically. In a rough way, it does work, and as long as your figure isn't a complex shape (even early Quake/UT style low-poly humanoids), no problem. It's actually an expansion of a common gaming program trick of the "bounding box" (an invisible cube that surrounds a player mesh), but inverted and set to collide against one item (the bit o' cloth) instead of The World. I Poser/D|S, that approach would be sort of a nightmare due to two reasons: morphs, and the body part shapes (e.g. "chest" as a perfect example - while I adore the human female breast, they're absolute motherfsckers when it comes to calculating cloth collisions against them). I do know that because of the way D|S processes geometry, it is actually easier to just use the shape of the part, but still, there's lots of calculations that occur. I've found that one way (among others) to speed up collision calculations while maintaining shape involve a technique I'd been screwing with. It involves taking a conforming cloth, then colliding the cloth vertices of each cloth part (after programmatically reversing the vertex normals for use as the colliding calc rays) against the corresponding body part polys and the part's immediate 'neighbors', with a distance constraint to ignore neigboring body part vertices after n(const. across x,y,z). You can also set a minimum distance for each cloth vertex to keep from the body part. Smooth the cloth when done, then do a safety check for any collisions caused by smoothing. It would still take some time, but it has the advantage of working on conforming clothes (where you can break things up into parts (and when allow the user to pick which parts need the calculations, which shortens the time even more) and at the same time accounting for 95% - 99% of any poke-through. (which means you might have to run it again if the pose changes drastically). OTOH, it's damned fast - I could do the calculations in D|S using only 10% of the time usually required to fit a similar type of clothing in Poser 6. Now throw in OpenGL (I hadn't, but intend to experiment with it), and you can get some shit-hot work done in very little time. Even through OGL itself doesn't have a collision library, D|S does have some nice extensions to it that I can use approximate the same thing, and there are lots of open-source (as in, OSI-approved) library extensions that add some very interesting collision detection tweaks, and speed things up a ton. (I know, I know... I was supposed to leave the thread to the blowhards and the kiss-ups as it was counterproductive and all, but this part I like). PS: The render engine will prolly still be (blecch) FireFly. Now if Poser built a way to plug in to a commercial external rendering app or four, then yeah... it would be worth it in the render department. Otherwise, no friggin' way. /P