• Welcome to the Community Forums at HiveWire 3D! Please note that the user name you choose for our forum will be displayed to the public. Our store was closed as January 4, 2021. You can find HiveWire 3D and Lisa's Botanicals products, as well as many of our Contributing Artists, at Renderosity. This thread lists where many are now selling their products. Renderosity is generously putting products which were purchased at HiveWire 3D and are now sold at their store into customer accounts by gifting them. This is not an overnight process so please be patient, if you have already emailed them about this. If you have NOT emailed them, please see the 2nd post in this thread for instructions on what you need to do

RELEASED The "Scatter Tool" plugin for Poser

KageRyu

Lost Mad Soul
Contributing Artist
@Ken1171 it's not really about how easy it is to convert figures to props for why I said it was not ideal for what I had in mind.
 

Ken1171

Esteemed
Contributing Artist
Real cool work. This is something i've wanted for a long time. Semideue started one right before RDNA closed but never finished it.

Thanks, man! This is going to happen, and the results are already here to see! ^___^

@Ken1171 it's not really about how easy it is to convert figures to props for why I said it was not ideal for what I had in mind.

I understand. We have to pick 1 actor, and figures have dozens, so that wouldn't work. What exactly would you be trying to do by scattering over a figure?
 

Ken1171

Esteemed
Contributing Artist
It has been ages I haven't looked into linear algebra, so I had to go back to my university books to remember some concepts necessary to calculate the alignment of a prop over a surface based on normal vectors. As we know, Poser OBJs do not contain normals, so these are calculated by Poser itself when a model is loaded. For every vertex on a model surface, Poser provides a calculated normal vector, which, apparently, is already normalized.

I've got these normal vectors and used linear algebra to calculate the projection angles on the XY and ZY planes, so I could align the props to the surface. Once I remembered the simple trigonometry formulas about triangles and angles, things started to come back to me. So here are the first results with props following the surface, and now also getting aligned to it. It appears that the auto-calculated normal vectors from Poser are not very precise, but they seem to do the job here. Much better now! ^___^

AlignedToSurface.jpg
 
Last edited:

KageRyu

Lost Mad Soul
Contributing Artist
I understand. We have to pick 1 actor, and figures have dozens, so that wouldn't work. What exactly would you be trying to do by scattering over a figure?
All sorts of evil things to a variety of figure types... ranging from circuits and wires, to weeds, grass, leaves, and ivy, to other strange things on a variety of figure types (people, animals, vehicles, especially on the Teradome figure from RDNA). All sorts of experiments I thought of doing.
 

Ken1171

Esteemed
Contributing Artist
All sorts of evil things to a variety of figure types... ranging from circuits and wires, to weeds, grass, leaves, and ivy, to other strange things on a variety of figure types (people, animals, vehicles, especially on the Teradome figure from RDNA). All sorts of experiments I thought of doing.

Oh I see! I think perhaps these kinds of things would have to be conformed, since just parenting would not follow body deformations. For example, seaweed and wires would just pokethru the body parts when the figure is posed. Not only that, but parented props also do not follow morphs. It would have to be conformed, and for that purpose, just scattering wouldn't do.

In the example above, I am positioning and then aligning each object to the plane curves. If the object were long and horizontal, parts of it would be buried under the surface, since it won't deform with it (won't follow morphs).

To create what you want, one way would be to use a bodysuit like the one from my Superhero outfit, and then scatter circuits and wires, to weeds, grass, leaves, and ivy over the UV template, leaving the rest transparent. You would then use this texture as an overlay over the suit texture, so that it looks like those things are on top of it. Photoshop and Paintshop have scattering brushes that can quickly do this kind of job. You can use other tools, like "Substance Designer" or "Bitmap To Material", to create normal, specular and bump maps for the overlay, which should make it more realistic in renders.
 

KageRyu

Lost Mad Soul
Contributing Artist
Nah, not looking for just a texture... Can't really explain what I was going to try.
 

Ken1171

Esteemed
Contributing Artist
Today I have fixed an issue with object alignment with the surface. I forgot a couple of issues we face in trigonometry when calculating tangents. That's because tangents cannot be calculated at the poles, and my code didn't account for that. This is actually the reason why Euler rotations used in Poser face gridlock glitches. When we rotate objects at angles close to the poles, the rotation becomes unstable and jumps around at random. My object alignment code now accounts for that.

Another thing was that tangents behave differently at different quadrants. The result was objects aligning correctly at one side of a slope, and then getting twisted/inverted at the other side. The code now accounts for that, too.

HOWEVER, while doing this, I have discovered something new about Poser that I hadn't noticed before. We already know Poser doesn't use normals from OBJs, preferring to calculate its own. That is good and dandy with a surface - until we start morphing it out inside Poser. The more a morph changes the surface original shape, that is, the larger the morph deltas, the most disturbed the normal vectors become. As a result, morphs can cause vertex normals to point to unexpected directions. Of course, this affects object alignment, because these vertex normal vectors from Poser are the only thing I have to calculate the alignment.

We can see some of this in the image below. The red sticks are cubes I have reshaped to make it easier to see in what direction they are pointing to, which means how well aligned they are with the surface. For the most part, it looks quite good. However, there are a couple of sticks that are way off the correct alignment, and this seems to get worse with more extreme morphs. Anyway, I am glad it works for the most part (>98%), in both placement and alignment. ^_____^

AlignedToSurface2.jpg
 
Last edited:

caisson

Admirable
Contributing Artist
Great job with aligning the scattered props, it looks so much better! Would it be possible to have a control slider to go from align to Y on one side to align to normal at the other, and fade between the two?
 

Ken1171

Esteemed
Contributing Artist
@caisson Once the props are placed, the plugin is not controlling them anymore. What I can do is to make the alignment optional, like it is with the Octane scatterer.
 

Ken1171

Esteemed
Contributing Artist
That's looking very promising Ken.

Thanks, it looks promising indeed. However, further testing reveals that the alignment code doesn't work when scattering over solids, like cubes, cylinders, and spheres. I thought only the vertex normals would be enough, but looks like it is not. Relying on tangents may be good enough for planes, flat or otherwise, but not for solids. It looks like more information is required, but Poser is not giving it. What happens is that the tangent calculations loose track of what vector is pointing "up". Computers have no idea where "up" is, so we need to tell it. Tangent vectors are calculated in relation to a reference "up" vector, but in a solid like a sphere, that direction is constantly changing. On a cube, each side has a different 'up" vector, but when I access it by vertex, I have no idea to what face it belongs to. In theory, just the normal vector should suffice, but it doesn't.
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
Computers have no idea where "up" is, so we need to tell it.
Very true, and even different software handle it differently. Poser and DS have Y as up, and Z as back and forth, but Blender, Maya and other modelling apps are the opposite, with Z as up and, Y as back and forth.

Of course they're not dealing with single vertices, but it used to drive me crazy when I first started playing in Blender, and would forget to switch it when exporting an OBJ. They always imported lying down. I never could wrap my head around why they weren't all the same. Luckily Blender has an option you can set so anything exported as an OBJ automatically sets Y as up. ~scratches head~
 

willyb53

Motivated
Basil did finish it for terradome 2. It was called Eco for terradome. It only worked on the terradome2 ground plane. Had options like different percentages based on distance from camera etc. I do not know if it is available anywhere now, He has disappeared from the poser scene.

Bill
eco system.jpg
 

Ken1171

Esteemed
Contributing Artist
He has disappeared from the poser scene.

As has nearly everyone I knew who wrote Poser Python scripts, like Phil Cook (retired), Dimention3D (passed away), and ShaderWorks (retired). NetherWorks has posted some products here, and then disappeared as well. These guys made major contributions to extend Poser capabilities, and now it looks like there is no one left.
 

Ken1171

Esteemed
Contributing Artist
On today's update, aligning props to the surface is on by default, and now it's also optional. You can disable it at the Variations settings. So far, aligning works with planes, but not with solids. We can place props on the surface of volumes, but they will not align to the surface.

NewGUI.jpg

During testings, I have noticed some props use different naming conventions for translation and rotation dials, and that can crash the tool. Poser seems to have 2 different naming conventions for naming transforms, like for example "xrot" (Poser cube primitive) and "xRotate" (Poser grouping objects). Somebody has messed up there. If the makers won't follow conventions, then who can we trust?

I have adjusted the code so the tool accepts both naming conventions to avoid crashes.
 

caisson

Admirable
Contributing Artist
Bill - thank you, I knew semidieu had made something but couldn't remember the name, it has been bugging me!

Ken - I've sent a site mail to Nerd at Rendo with this thread address, asking if there is any way to align to solid meshes. Thought it may be worth asking as he knows a lot about the internal workings of Poser.

Your scatter tool is looking excellent!
 

Karina

Member
Hello Ken!

it's absolutely fascinating to see how your script did evolve!

I would like to help you, but my Pyton-Foo is definitely not enough to even attempt to attempt this... ;)

However, I know a lot about spawning props and manipulating them.
Maybe I could be of help in writing a short tutorial about how to create new props with their centre points and orientation ready for instancing?
(I think about spent pistol cartridges here: Some stand upright, but most lie on their side. So you'ld need two different props with different xyz rotation orders for both cases.)
One can easily achieve this with *almost any* prop by using Poser's Grouping Tool, it's Joint Editor, and a bit of tinkering.

However, this would only help to keep the props' orientation *upright* vertically.
No idea however how to make them align to the orientation vector.

K
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
NetherWorks has posted some products here, and then disappeared as well. These guys made major contributions to extend Poser capabilities, and now it looks like there is no one left.
Joe got a full time job at a popular movie production company, though I can't remember which one. They have him working with Maya, so he hasn't been working with Poser in quite a while.
 

Ken1171

Esteemed
Contributing Artist
Ken - I've sent a site mail to Nerd at Rendo with this thread address, asking if there is any way to align to solid meshes. Thought it may be worth asking as he knows a lot about the internal workings of Poser.

Thank you! If someone knows anything about Poser inner works, that would be Chuck Taylor! I am a big fan, and he did a great job as product manager at SMS. Those were the best years of recent Poser development.

However, I know a lot about spawning props and manipulating them.
Maybe I could be of help in writing a short tutorial about how to create new props with their centre points and orientation ready for instancing?

Thank you! As it is, the code centers the pivot, moves the origin to the <0,0,0>, and the end point at <0,1,0>. However, this only works if the axes orientation have Y pointing up, and also if the prop was centered when saved to the library. If the geometry was saved off-center, off the ground, or rotated, I don't know if that could be recovered with code. The tool expected properly made props. Sometimes we can fix the axes with the Joint Editor, but not if the prop was saved with transforms. That is a no-no in general 3D modeling anyway.

Joe got a full time job at a popular movie production company, though I can't remember which one. They have him working with Maya, so he hasn't been working with Poser in quite a while.

That much I know, but I thought it was a limited time contract of sorts. Either ways, Joe hasn't been here ever since. He was the last one I knew of who were once actively with Poser Python.
 
Top