Forum: Poser Technical


Subject: Animation in material files?

EnglishBob opened this issue on Jul 06, 2012 · 36 posts


millighost posted Thu, 19 July 2012 at 2:27 PM

Quote - Has anyone else tried this? I've remade my digit strip more than once, and I'm sure it's accurately positioned - but no matter what I do there always seems to be that wobble as the digits switch. You can see it in the animation I posted last week.

I don't know if my node maths is faulty, or if there's something wrong with Poser's UV offset. Here's my digit strip if anyone wants to try it. 

The texture, UV map, and Firefly's pixel sampling do not play well together here, so it is hard to say what actually is "wrong". I think the main tripwire is Firefly's pixel sampling of image textures (got me once, too). For example your UV coordinates are between 0 and 1. So when U is 0, the left border of your image is used, when U is 1, the right border of your image is used. Firefly sees the image map as an array of points, so for U=0 it uses the leftmost pixel, for U=1 it uses the rightmost pixel. But the difference between the first pixel and the last pixel of a 4000 pixel wide image is 3999 pixels, not 4000, so you are missing one pixel. Normally this is not a big problem, because the texture size is large enough to make this unnoticable, but in this case the error amplifies because of the UV scaling.

For a solution for this you could make your image one pixel larger, i.e. 4001 instead of 4000 by adding a one pixel border (not by scaling).

Alternatively you could try to adjust it with the offset and scale of the image map (i am not exactly sure how they work).

Or you could also adjust the UV map of the object (undesirable, because that would make the UV map dependent on the image texture, but not uncommon).

BTW, other render engines do not have this problem, because they view an image texture as an array of small rectangular pixels with a real area, instead of a grid of points, so in other renderers an image with 4000 pixels has a width of 4000, not 3999.