Desiderius opened this issue on Mar 01, 2009 · 44 posts
FYI Dr. Geep's Scale (DGS) is handy for making mental arithmetic easier, but it won't help you do precise work in Poser. It is debatable (and, indeed, debated endlessly) as to whether Poser's "inch" is really an inch. The argument usually revolves around the real-world height of humans versus commonly used Poser figures, all of which (women included) seem to be over six feet tall. They read out shorter if you believe DGS. Nevertheless, when dealing with procedural geometry, particularly procedural displacement in shaders or procedural construction of objects using other tools, it is important that you understand the conversions. I like what you did regarding moving an object versus another to see what offset you end up with. That's a good technique for understanding and proving various things to yourself. Now then, regardless of whether we like it or not, a Poser Native Unit (PNU) has a certain ratio to a Poser Inch. And a Poser Inch has a certain ratio to a Poser Meter, and so on. Now as far as I can tell, the ratios of inches/feet to centimeters/meters in Poser are the same as the real world. All that remains is to understand the nature of PNU, and you can produce coordinates in your obj that are completely predictable. Now some people don't believe me, but the ratio of PNU to inch is this: 1 PNU = 103.200005 Poser Inches You may think that 103.2 is good enough, and often it is. But if you're doing procedural displacements, you need all the precision you can get. I developed a shader that produces perfect rounded edges on boxes. When I say perfect, I mean you can zoom into a rounded edge of radius 1 mm and it looks perfect with no creases. You cannot get that with the assumed ratio of 103.2 - you have to use 103.200005. From that number, you can derive the ratios to all others, such as meters. As well, in materials we have the P node, which gives numbers indicating the exact world coordinate of the point currently being shaded. This is useful for making effects that depend on position within the scene. The P node returns XYZ coordinates as a color, scaled by the 3 arguments to the node. When the arguments are equal to 1.0, the returned data units are 1/10 of a Poser inch. Strange, huh? So 1 Poser Inch = 10 P Node Units (not to be confused with PNU) That means that if you want to measure positions in inches inside a shader, you have to divide by 10, or use .1 in the parameters to the P node, to get a number that is inches. Finally we have the units of displacement and bump. In the material room, the units are whatever you've chosen for Poser Display Units. So if you start with inches, and set a displacement of 1, and you switch to centimeters, that displacement value will display as 2.54. Regardless of what your chosen PDU is, the values stored in material files (MT5 and so on) for displacement and bump scales are always in inches. So if you create materials using external tools (as I do) then you need to know how to encode such things. Ray bias and other effect controls such as AO distance seem to be also using displacement units, i.e. inches. However, I have evidence that the material AO distance is mistakenly 1/12 of an inch. (Some programmer thought he had to convert between feet and inches, but that was already done somewhere else.) Or maybe it's actually 1/10 of an inch and my experiments were imprecise. (I did them a long time ago when I was less clear on things, as you are now.) If anything else seems strange or unclear, come back. I think knowing these things is important if you want to create content for Poser using software outside Poser, especially if you write any of this software, as I do.